Leonardo_Sysmo Postado 4 Novembro, 2015 Compartilhar 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 Link para o comentário Compartilhar em outros sites More sharing options...
Fundadores Daniel Simoes Postado 4 Novembro, 2015 Fundadores Compartilhar 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. Link para o comentário Compartilhar em outros sites More sharing options...
Leonardo_Sysmo Postado 4 Novembro, 2015 Autor Compartilhar Postado 4 Novembro, 2015 Segue em anexo a Unit pcnNFeW.pas contendo as modificações. pcnNFeW.pas 1 Link para o comentário Compartilhar em outros sites More sharing options...
Fundadores Daniel Simoes Postado 4 Novembro, 2015 Fundadores Compartilhar 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. Link para o comentário Compartilhar em outros sites More sharing options...
Augusto Fontana Postado 4 Novembro, 2015 Compartilhar 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 Link para o comentário Compartilhar em outros sites More sharing options...
Fundadores Daniel Simoes Postado 5 Novembro, 2015 Fundadores Compartilhar 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. Link para o comentário Compartilhar em outros sites More sharing options...
Recommended Posts
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 contaEntrar
Já tem uma conta? Faça o login.
Entrar Agora