Jump to content

Assista click.png tectoy.png

C6 chamada_c6.png botao.png

NFCe pagamentos


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

Recommended Posts

  • Consultores

Bom dia Antonio,

Nem sempre o programa exemplo acompanha na mesma velocidade as mudanças do componente.

E outra coisa, o programa exemplo é um exemplo, portanto não apresenta todas as possibilidades.

A NT que você se refere é a 2015/002 e a alteração referente a Formas de Pagamento é a inclusão de uma nova TAG: tpIntegra que faz parte do grupo <card>.

O grupo <card> só é gerado caso exista um pagamento através de cartão.

Dentro do grupo <card> agora temos as seguintes TAGs: tpIntegra, CNPJ, tBand e cAut,  todas agora são opcionais.

Para mais informações sobre cada uma dessas TAGs vide a NT página 6.

No caso da TAG tpIntegra foi criado o tipo:

         // TtpIntegra = (tiNaoInformado, tiPagIntegrado, tiPagNaoIntegrado);

Como você faz para alimentar as TAGs já existentes?

não é mais ou menos assim:

       with pag.Add do
        begin
         // TpcnFormaPagamento = (fpDinheiro, fpCheque, fpCartaoCredito, fpCartaoDebito, fpCreditoLoja,
         //                       fpValeAlimentacao, fpValeRefeicao, fpValePresente, fpValeCombustivel,
         //                       fpOutro);
         tPag := fpDinheiro; // por exemplo
         vPag := vPagValor;

         // Informações sobre o Cartão de Crédito / Débito
         CNPJ := sCNPJCartao;
         // TpcnBandeiraCartao = (bcVisa, bcMasterCard, bcAmericanExpress, bcSorocred, bcOutros);
         tBand := bcVisa; // por exemplo
         cAut := sNumAutorizacao;
        end;

Pois bem você vai acrescentar antes do CNPJ a seguinte linha:

         // TtpIntegra = (tiNaoInformado, tiPagIntegrado, tiPagNaoIntegrado);
         tpIntegra := tiPagIntegrado; // por exemplo

Caso você informe o valor tiNaoInformado a TAG tpIntegra não será gerada no XML.

Espero ter ajudado.

 

 

Consultor SAC ACBr Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Link to comment
Share on other sites

Oi Italo, muito obrigado pelo esclarecimento.

O sistema que estou fazendo, por enquanto não vai trabalhar com TEF, apenas POS, somente após estar mais maduro é que sera submetido a homologação.

Tenho uma tabela onde você  cadastra o Nome da bandeira e o CNPJ ( onde pegar essa informação, se esta na NT002/2015 não vi ) procurei no Google e são retornados muitos resultados diferentes ate de localização.

Cada bandeira cadastrada cria duas modalidades CREDITO e DEBITO

Então pelas suas explicações, usando um exemplo de venda no valor de R$ 100,00 , metade em Dinheiro e metade em cartão ( POS ) DEBITO a forma correta seria :

 

 

 

no caso de metade em diCartão POS por exemplo , posso dizer que 

with pag.Add do
        begin
            tPag := fpDinheiro;

            vPag := 50,00;

            tPag := fpCartaoDebito;

            tpIntegra :=   tiPagNaoIntegrado;
            CNPJ := sCNPJCartao;
            tBand := bcVisa;
            //  cAut := sNumAutorizacao; // não utilizado por ser POS
        end;

estaria correto ?

 

while not cdsPgto65.Eof do

   begin

      case forma do

       fpDinheiro : begin
                              tPag := fpDinheiro; 

                              vPag := cdsPgto65.FieldByName('valor').asFloat;  //    50,00;

                            end;

        fpCartaoDebito : begin

                                      tPag       :=  fpCartaoDebito;

                                      tpIntegra :=   tiPagNaoIntegrado;
                                      CNPJ      :=   sCNPJCartao;
                                      tBand      :=   bcVisa;

                                      vPag := cdsPgto65.FieldByName('valor').asFloat;  //    50,00;
                                       //  cAut := sNumAutorizacao; // não utilizado por ser POS
                                     end;

....

cdsPgto65.next

end;

Link to comment
Share on other sites

  • Consultores

Bom dia Antonio,

Se o pagamento será realizando parte em dinheiro e outra em cartão você deverá executar o bloco:

with pag.add do

begin

(...)

end;

duas vezes, a primeira para a parte do pagamento em dinheiro  e a segunda para a parte do pagamento com o cartão.

Supondo que eu vou no supermercado, a compra ficou em 230 reais na hora de pagar, pago 30 reais no meu cartão vale alimentação, 40 reais no cartão vale alimentação da minha esposa e o restante no meu cartão de crédito ou débito.

O bloco acima deverá ser executado 3 vezes.

Consultor SAC ACBr Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Link to comment
Share on other sites

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.