Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 2110 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado (editado)

Pessoal, segue uma contribuição caso seja necessário para a comunidade, a descrição da bandeira do cartão na forma de pagamento cartão crédito ou débito no danfe NFCe Fortes sendo impresso conforme imagem abaixo;
image.png.a2b99b4f5cfa5c9cf68b4f23d22554e2.png

Local do Arquivo:  ..\ACBr\Fontes\ACBrDFe\ACBrNFe\DANFE\NFCe\Fortes\ACBrDANFCeFortesFr.pas

Foi implementado a rotina no procedure TACBrNFeDANFCeFortesFr.rlbPagamentoBeforePrint(Sender: TObject; conforme descrito abaixo:

procedure TACBrNFeDANFCeFortesFr.rlbPagamentoBeforePrint(Sender: TObject; var PrintIt: boolean);
  var
  pBandeira: String;
begin
  with ACBrNFeDANFCeFortes.FpNFe.pag.Items[fNumPagto] do
  begin
      if (tPag = fpCartaoCredito) or (tPag = fpCartaoDebito) then
        begin
           case tBand of
              bcVisa:            pBandeira := 'Visa'            ;//+ ' NSU: ' + cAut;
              bcMasterCard:      pBandeira := 'MasterCard'      ;//+ ' NSU: ' + cAut;
              bcAmericanExpress: pBandeira := 'AmericanExpress' ;//+ ' NSU: ' + cAut;
              bcSorocred:        pBandeira := 'Sorocred'        ;//+ ' NSU: ' + cAut;
              bcDinersClub:      pBandeira := 'Diners Club'     ;//+ ' NSU: ' + cAut;
              bcElo:             pBandeira := 'Elo'             ;//+ ' NSU: ' + cAut;
              bcHipercard:       pBandeira := 'Hipercard'       ;//+ ' NSU: ' + cAut;
              bcAura:            pBandeira := 'Aura'            ;//+ ' NSU: ' + cAut;
              bcCabal:           pBandeira := 'Cabal'           ;//+ ' NSU: ' + cAut;
              bcOutros:          pBandeira := 'Outros'          ;//+ ' NSU: ' + cAut;
            end;
        end;
    lMeioPagamento.Caption  := ACBrStr(FormaPagamentoToDescricao(tPag)) + ' '+ pBandeira;
    lPagamento.Caption      := FormatFloatBr(vPag);
    fTotalPagto             := fTotalPagto + vPag;
  end;
end;

 

Editado por Aurino
  • Curtir 1
  • Obrigado 1

Aurino

 

 

Postado (editado)
1 hora atrás, Aurino disse:

Pessoal, segue uma contribuição caso seja necessário para a comunidade, a descrição da bandeira do cartão na forma de pagamento cartão crédito ou débito no danfe NFCe Fortes sendo impresso conforme imagem abaixo;
image.png.a2b99b4f5cfa5c9cf68b4f23d22554e2.png

Local do Arquivo:  ..\ACBr\Fontes\ACBrDFe\ACBrNFe\DANFE\NFCe\Fortes\ACBrDANFCeFortesFr.pas

Foi implementado a rotina no procedure TACBrNFeDANFCeFortesFr.rlbPagamentoBeforePrint(Sender: TObject; conforme descrito abaixo:


procedure TACBrNFeDANFCeFortesFr.rlbPagamentoBeforePrint(Sender: TObject; var PrintIt: boolean);
  var
  pBandeira: String;
begin
  with ACBrNFeDANFCeFortes.FpNFe.pag.Items[fNumPagto] do
  begin
      if (tPag = fpCartaoCredito) or (tPag = fpCartaoDebito) then
        begin
           case tBand of
              bcVisa:            pBandeira := 'Visa'            ;//+ ' NSU: ' + cAut;
              bcMasterCard:      pBandeira := 'MasterCard'      ;//+ ' NSU: ' + cAut;
              bcAmericanExpress: pBandeira := 'AmericanExpress' ;//+ ' NSU: ' + cAut;
              bcSorocred:        pBandeira := 'Sorocred'        ;//+ ' NSU: ' + cAut;
              bcDinersClub:      pBandeira := 'Diners Club'     ;//+ ' NSU: ' + cAut;
              bcElo:             pBandeira := 'Elo'             ;//+ ' NSU: ' + cAut;
              bcHipercard:       pBandeira := 'Hipercard'       ;//+ ' NSU: ' + cAut;
              bcAura:            pBandeira := 'Aura'            ;//+ ' NSU: ' + cAut;
              bcCabal:           pBandeira := 'Cabal'           ;//+ ' NSU: ' + cAut;
              bcOutros:          pBandeira := 'Outros'          ;//+ ' NSU: ' + cAut;
            end;
        end;
    lMeioPagamento.Caption  := ACBrStr(FormaPagamentoToDescricao(tPag)) + ' '+ pBandeira;
    lPagamento.Caption      := FormatFloatBr(vPag);
    fTotalPagto             := fTotalPagto + vPag;
  end;
end;

 

Diretorio do arquivo: ..\ACBr\Fontes\ACBrDFe\ACBrNFe\DANFE\NFCe\EscPos\ACBrNFeDANFeESCPOS.pas

procedure TACBrNFeDANFeESCPOS.GerarPagamentos;
var
  i: Integer;
  Troco: Real;
  pBandeira : String;

begin
  //Total := 0;
  FPosPrinter.Buffer.Add('<c>' + PadSpace('FORMA DE PAGAMENTO | VALOR PAGO R$',
     FPosPrinter.ColunasFonteCondensada, '|'));

  for i := 0 to FpNFe.pag.Count - 1 do
  begin

     with FpNFe.pag.Items[i] do
      begin
          if (tPag = fpCartaoCredito) or (tPag = fpCartaoDebito) then
            begin
               case tBand of
                  bcVisa:            pBandeira := 'Visa'            ;//+ ' NSU: ' + cAut;
                  bcMasterCard:      pBandeira := 'MasterCard'      ;//+ ' NSU: ' + cAut;
                  bcAmericanExpress: pBandeira := 'AmericanExpress' ;//+ ' NSU: ' + cAut;
                  bcSorocred:        pBandeira := 'Sorocred'        ;//+ ' NSU: ' + cAut;
                  bcDinersClub:      pBandeira := 'Diners Club'     ;//+ ' NSU: ' + cAut;
                  bcElo:             pBandeira := 'Elo'             ;//+ ' NSU: ' + cAut;
                  bcHipercard:       pBandeira := 'Hipercard'       ;//+ ' NSU: ' + cAut;
                  bcAura:            pBandeira := 'Aura'            ;//+ ' NSU: ' + cAut;
                  bcCabal:           pBandeira := 'Cabal'           ;//+ ' NSU: ' + cAut;
                  bcOutros:          pBandeira := 'Outros'          ;//+ ' NSU: ' + cAut;
                end;
            end;
      end;
    FPosPrinter.Buffer.Add('<c>' + ACBrStr(PadSpace(FormaPagamentoToDescricao(FpNFe.pag.Items[i].tPag) +  ' ' + pBandeira +
       '|' + FormatFloatBr(FpNFe.pag.Items[i].vPag),
       FPosPrinter.ColunasFonteCondensada, '|')));
  end;

  Troco := IIf(FpNFe.pag.vTroco > 0,FpNFe.pag.vTroco,vTroco);

  if Troco > 0 then
    FPosPrinter.Buffer.Add('<c>' + PadSpace('Troco R$|' +
       FormatFloatBr(Troco), FPosPrinter.ColunasFonteCondensada, '|'));

end;

 

Editado por Aurino
  • Curtir 1

Aurino

 

 

Postado
49 minutos atrás, Fabrício G. Araújo disse:

Hum... só uma dúvida... e isso é permitido? Está de acordo com as notas técnicas?

As NT's não informa que deve ser informado as bandeiras dos cartões mas também não diz que é proibido.
Porém, mantem a mesma regra, informar o meio de pagamento clara e segundo as regras NT's e Procons.

Aurino

 

 

Postado
12 minutos atrás, Aurino disse:

As NT's não informa que deve ser informado as bandeiras dos cartões mas também não diz que é proibido.
Porém, mantem a mesma regra, informar o meio de pagamento clara e segundo as regras NT's e Procons.

Entendo, mas aí vai da interpretação de cada um. Legal disponibilizar esse recurso, pois quem quiser utilizar, está disponível. E também entendo a pressão que temos de nossos clientes para colocar do jeito que eles querem. Por exemplo, já vi DANFE com os dados do TEF acima do Qr-Code, que pelas NT não seria possível, e sim ao final. Mas quem irá fiscalizar né... é meio que uma terra sem lei, cada uma faz o DANFE que deseja mesmo.

Postado

Compreendo mas acredito que essa simples alteração, não causaria penalidades ao detalhar a bandeira do cartão respectiva ao pagamento realizado.
Como na imagem, o cliente saberá claramente qual valor e em qual cartão foi pago os valores da compra.

Aurino

 

 

Postado

Aurino!

Meus parabéns pela iniciativa muito bom mesmo. Creio que não haja problema algum com relação as Sefaz ver isso como algo errado. Pois, acho que assim fica mais explicito ainda para o cliente.

De qualquer modo seria realmente implementar de uma maneira que ficasse flexível para optar por usar ou não desta forma.

Postado
13 horas atrás, Aurino disse:

Pessoal, segue uma contribuição caso seja necessário para a comunidade, a descrição da bandeira do cartão na forma de pagamento cartão crédito ou débito no danfe NFCe

Valeu pela iniciativa... como o @André Ferreira de Moraes comentou, espero que seja aproveitado...

Uma dica que notei olhando teu código, não seria necessário testar também se há integração de pagamento? Algo como

if tpIntegra = tiPagIntegrado then
  case tBand of
    ...

Att

Ricardo

  • 4 meses depois ...
  • Membros Pro
Postado

Acompanhei os ultimos commit's e não identifique a alteração.

 

Acreditam que vão colocar essa opção no ESCPOS ou é necessario mudar manual mesmo?

 

Se for preciso posso enviar a classe com as alterações para ser feito o commit.

  • Membros Pro
Postado

Daniel Simoes Obrigado pela velocidade.

 

Acabei implementando a autorização do cartão. 

 

Consegue adicionar pra gente?

 

var
  i: Integer;
  Troco: Real;
  DescPagto, DescBandeira,CodigoAutorizacao: String;
begin
  //Total := 0;
  FPosPrinter.Buffer.Add('<c>' + PadSpace('FORMA DE PAGAMENTO | VALOR PAGO R$',
     FPosPrinter.ColunasFonteCondensada, '|'));

  for i := 0 to FpNFe.pag.Count - 1 do
  begin
    with FpNFe.pag.Items[i] do
    begin
      DescPagto := ACBrStr(FormaPagamentoToDescricao(tPag));
      if (tPag in [fpCartaoCredito, fpCartaoDebito]) then
      begin
        DescBandeira := BandeiraCartaoToDescStr(tBand);
        CodigoAutorizacao := 'Aut: '+cAut;
      end
      else
      begin
        DescBandeira := '';
        CodigoAutorizacao := '';
      end;

      FPosPrinter.Buffer.Add('<c>' + PadSpace(
         DescPagto + ' ' + DescBandeira + ' ' + CodigoAutorizacao + '|' +
         FormatFloatBr(vPag),
         FPosPrinter.ColunasFonteCondensada, '|'));
    end;
  end;

  Troco := IIf(FpNFe.pag.vTroco > 0,FpNFe.pag.vTroco,vTroco);

  if Troco > 0 then
    FPosPrinter.Buffer.Add('<c>' + PadSpace('Troco R$|' +
       FormatFloatBr(Troco), FPosPrinter.ColunasFonteCondensada, '|'));

end;

 

  • 3 semanas depois ...
Postado

Boa tarde,

Estou informando pagamento na NFCe e usando ACBrNFeDANFeESCPOS

- <pag>
- <detPag>
  <tPag>04</tPag>
  <vPag>39.50</vPag>
- <card>
  <tpIntegra>2</tpIntegra>
  </card>
  </detPag>
  </pag>
 
Nas formas de pagamento com cartões esta saindo sempre a bandeira "Visa" alguém poderia me dar uma sugestão de onde estaria o erro?
  • Membros Pro
Postado

Boa tarde.

Com relação a incluir o código de autorização na impressão do cupom, não sei se é adequado por isso a princípio não incluí a alteração do @Marcelo Aguiar Alvim sugerida logo acima. Porém eu alterei a impressão para que só imprima a bandeira do cartão junto da forma de pagamento quando o tpIntegra = tiPagIntegrado, pois se não tiver essa validação, sempre imprime a bandeira "Visa" para as formas de pagamento de cartões quando tpIntegra <> tiPagIntegrado.

Peço que analisem os arquivos em anexo para uma possível submissão ao repositório de fontes.

Agradeço desde já.

 

ACBrNFeDANFeESCPOS.pas

ACBrDANFCeFortesFr.pas

  • Curtir 1
  • 2 semanas depois ...
  • Moderadores
Postado
Em 19/12/2018 at 18:30, Marcelo Aguiar Alvim disse:

Acabei implementando a autorização do cartão. 

 

Consegue adicionar pra gente?

Bom dia

Foi adicionado nos componentes de Impressão NFCe (Fortes e ESCPOS) a propriedade: "DescricaoPagamentos"  onde pode selecionar o tipo de impressão. Podendo ser a junção de: Tipo, Bandeira e Autorização.

Favor atualizar os fontes e reinstalar os componentes para testes... 

  • Obrigado 1
Consultor SAC ACBr

José Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Postado
26 minutos atrás, José M. S. Junior disse:

Bom dia

Foi adicionado nos componentes de Impressão NFCe (Fortes e ESCPOS) a propriedade: "DescricaoPagamentos"  onde pode selecionar o tipo de impressão. Podendo ser a junção de: Tipo, Bandeira e Autorização.

Favor atualizar os fontes e reinstalar os componentes para testes... 

Bom dia.

Este implementação ainda não foi feito para os danf em FastReport não né?

 

  • 3 semanas depois ...
  • Membros Pro
Postado
Em 23/01/2019 at 10:18, Daniel Simoes disse:

Obrigado... corrigido no SVN...

Exelente a implementação, mas sempre tem um porem né...

 

O colega informou um bug pois estava sempre imprimendo bandeira visa, mas acredito que é pelo fato de quando a venda não for integrada ele não preenche as informações de autorização, no meu caso eu já preencho e precisava que imprimisse. Podemos tratar de outra forma?

  • Este tópico foi criado há 2110 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...