Jump to content

dev botao

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


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

Edited by Leonardo_Sysmo
  • Like 1
Link to comment
Share on other 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 to comment
Share on other sites

  • Este tópico foi criado há 3235 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Guest
This topic is now closed to further replies.
×
×
  • 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.