Leonardo_Sysmo Postado 4 Novembro, 2015 Postado 4 Novembro, 2015 (editado) 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 4 Novembro, 2015 por Leonardo_Sysmo 1
Fundadores Daniel Simoes Postado 4 Novembro, 2015 Fundadores Postado 4 Novembro, 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.
Leonardo_Sysmo Postado 4 Novembro, 2015 Autor Postado 4 Novembro, 2015 Segue em anexo a Unit pcnNFeW.pas contendo as modificações. pcnNFeW.pas 1
Fundadores Daniel Simoes Postado 4 Novembro, 2015 Fundadores Postado 4 Novembro, 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.
Augusto Fontana Postado 4 Novembro, 2015 Postado 4 Novembro, 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
Fundadores Daniel Simoes Postado 5 Novembro, 2015 Fundadores Postado 5 Novembro, 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.
Recommended Posts