Leonardo_Sysmo Posted November 4, 2015 Share Posted November 4, 2015 (edited) 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 November 4, 2015 by Leonardo_Sysmo 1 Link to comment Share on other sites More sharing options...
Fundadores Daniel Simoes Posted November 4, 2015 Fundadores Share Posted November 4, 2015 Poderia por favor anexar as Units modificadas ? Daniel Simões de Almeida O melhor TEF, é com o Projeto ACBr - Clique e Conheça Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Link to comment Share on other sites More sharing options...
Leonardo_Sysmo Posted November 4, 2015 Author Share Posted November 4, 2015 Segue em anexo a Unit pcnNFeW.pas contendo as modificações. pcnNFeW.pas 1 Link to comment Share on other sites More sharing options...
Fundadores Daniel Simoes Posted November 4, 2015 Fundadores Share Posted November 4, 2015 Sua Unit parece estar bem defasada em relação a Unit atual do "Trunk2"... Poderia por favor efetuar o Merge e enviá-la novamente ? Daniel Simões de Almeida O melhor TEF, é com o Projeto ACBr - Clique e Conheça Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Link to comment Share on other sites More sharing options...
Augusto Fontana Posted November 4, 2015 Share Posted November 4, 2015 Boa tarde, já tinha percebido também essa situação levantada pelo Leonardo, incluí as alterações feitas por ele nos fontes e funcionou corretamente. Daniel, Segue arquivo atualizado com as alterações. Leonardo, obrigado pela colaboração. pcnNFeW.pas 1 Link to comment Share on other sites More sharing options...
Fundadores Daniel Simoes Posted November 5, 2015 Fundadores Share Posted November 5, 2015 Obrigado pela analise e correção... já enviei para o SVN Daniel Simões de Almeida O melhor TEF, é com o Projeto ACBr - Clique e Conheça Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Link to comment Share on other sites More sharing options...
Recommended Posts