Ir para conteúdo
  • Cadastre-se

dev botao

Forma de Pagamento | tpIntegra não é gerado em venda cartão


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

Recommended Posts

Boa Tarde,

Para adequar a geração de XML a  Nota Técnica 2015_002, ao gerar o grupo "pag" com tpag = 03 ou 04 (cartão) passa a gerar também no grupo "card" o novo campo tpIntegra e para atender esta nota técnica, teremos que passar a gerar este campo sempre, mesmo que ele seja opcional, pois é a critério da UF.

Exemplo de XML quando tpIntegra =1 (TEF):
<pag>
  <tPag>03</tPag> 
  <vPag>20.00</vPag> 
  <card> 
    <tpIntegra>1</tpIntegra>   
    <CNPJ>79408498000186</CNPJ>   
    <tBand>01</tBand>   
    <cAut>12345678901234567890</cAut>   
  </card>
</pag>

Exemplo de XML quando tpIntegra =2 (POS):
<pag>
  <tPag>03</tPag>
  <vPag>20.00</vPag>
  <card>
    <tpIntegra>2</tpIntegra>
  </card>
</pag>


Em venda TEF quando o CNPJ da credenciadora estiver zerado/em branco, para que não ocorra a rejeição da NFC-e, passamos o campo “tPag” com valor 99 (Outros), sendo assim, o grupo “card” não será obrigatório (somente é obrigatório quando "tPag” = 03 ou 04 ).

Exemplo de XML quando CNPJ da credenciadora estiver zerado/em branco:

<pag>
  <tPag>99</tPag>
  <vPag>20.00</vPag>
</pag>

 

O Problema ocorre quando não informamos CNPJ para administradora em venda POS, o mesmo não gera o grupo "card" com o campo "tpIntegra", devido a está validação no código da Unit pcnNfceW.pas na função GerarPag:

    Gerador.wGrupo('pag', 'YA01');
    Gerador.wCampo(tcStr, 'YA02', 'tPag', 02, 02, 1, FormaPagamentoToStr(nfe.pag[i].tPag), DSC_TPAG);
    Gerador.wCampo(tcDe2, 'YA03', 'vPag', 01, 15, 1, nfe.pag[i].vPag, DSC_VPAG);
    if nfe.pag[i].CNPJ <> '' then
     begin
       Gerador.wGrupo('card', 'YA04');
       Gerador.wCampo(tcStr, 'YA04a', 'tpIntegra', 01, 01, 0, tpIntegraToStr(nfe.pag[i].tpIntegra), DSC_TPINTEGRA);
       Gerador.wCampo(tcStr, 'YA05', 'CNPJ ', 14, 14, 0, nfe.pag[i].CNPJ, DSC_CNPJ);
       Gerador.wCampo(tcStr, 'YA06', 'tBand', 02, 02, 0, BandeiraCartaoToStr(nfe.pag[i].tBand), DSC_TBAND);
       Gerador.wCampo(tcStr, 'YA07', 'cAut ', 01, 20, 0, nfe.pag[i].cAut, DSC_CAUT);
       Gerador.wGrupo('/card');
     end;
    Gerador.wGrupo('/pag');

 

Como sugestão:

Na Nota Técnica 2015_002 o grupo "card" é obrigatório quando tpag = 03 ou 04 (cartão), e a venda para Cartão POS não necessita dos demais campos, somente do tpIntegrarealizei está alteração no mesmo trecho de código :

    Gerador.wGrupo('pag', 'YA01');
    Gerador.wCampo(tcStr, 'YA02', 'tPag', 02, 02, 1, FormaPagamentoToStr(nfe.pag[i].tPag), DSC_TPAG);
    Gerador.wCampo(tcDe2, 'YA03', 'vPag', 01, 15, 1, nfe.pag[i].vPag, DSC_VPAG);
    if(NFe.pag[i].tPag in [fpCartaoDebito,fpCartaoCredito]) then
    begin
      Gerador.wGrupo('card', 'YA04');
      Gerador.wCampo(tcStr, 'YA04a', 'tpIntegra', 01, 01, 0, tpIntegraToStr(nfe.pag[i].tpIntegra), DSC_TPINTEGRA);
      if nfe.pag[i].CNPJ <> '' then
      begin
        Gerador.wCampo(tcStr, 'YA05', 'CNPJ ', 14, 14, 0, nfe.pag[i].CNPJ, DSC_CNPJ);
        Gerador.wCampo(tcStr, 'YA06', 'tBand', 02, 02, 0, BandeiraCartaoToStr(nfe.pag[i].tBand), DSC_TBAND);
        Gerador.wCampo(tcStr, 'YA07', 'cAut ', 01, 20, 0, nfe.pag[i].cAut, DSC_CAUT);
      end;
      Gerador.wGrupo('/card');
    end;
    Gerador.wGrupo('/pag');

 

Assim o grupo "card" sempre será gerado quando venda de cartão crédito/débito contendo o campo tpIntegra, porém os demais campos só serão gerados caso o CNPJ seja informado.

Editado por Leonardo_Sysmo
  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Fundadores

Sua Unit parece estar bem defasada em relação a Unit atual do "Trunk2"... Poderia por favor efetuar o Merge e enviá-la novamente ?

 

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

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

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 3066 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.