Olá pessoal
Confirme prometido estou anexando aqui nessa postagem o programa exemplo do componente ACBrNFSe refatorado para que vocês possam realizar os testes com os provedores de seus clientes.
Caso tenham algum problema, em alguma funcionalidade favor anexar os XMLs de envio e de retorno que funciona atualmente e os gerados com o novo componente para que eu possa fazer as devidas correções.
Foram implementados nesse novo componente 32 provedores que se utilizam da versão 1 do layout da ABRASF, 55 provedores (inclusive: SiapSistemas e DSFv2) que se utilizam da versão 2 do layout da ABRASF e 20 provedores que seguem o seu próprio layout, totalizando 107 provedores, abrangendo 1215 cidades.
Como realizar os testes:
Na sua maquina de desenvolvimento crie uma pasta (Por exemplo: NovoACBrNFSe) descompacte o arquivo ACBrNFSe_Exemplo.rar dentro dessa pasta.
Ao executar ele pela primeira vez vai aparecer a tela de erro:
O motivo de aparece essa tela é porque ainda não existe o arquivo de configuração.
Clique no botão [OK]
E configure da mesma forma que você configurou o programa exemplo do componente atual, ou antes de executar copie para dentro dessa pasta o arquivo de configuração (ACBrNFSe_Exemplo.ini) do programa exemplo que esta na pasta: ...\Exemplos\ACBrDFe\ACBrNFSe\Delphi
Note que nesse novo programa exemplo temos um botão chamado Envio:
Foi criado um novo método chamado Emitir que tem por finalidade abstrair os métodos de envio de cada provedor.
Vamos a alguns exemplos: Os provedores que seguem a versão 1 do layout da ABRASF só possuem 1 método de envio que é o Enviar, logo o método Emitir vai usar esse método, por outro lado o provedor 4R que segue a versão 2 do layout da ABRASF e deveria ter disponibilizado os métodos Enviar, EnviarSincrono e Gerar, disponibilizou somente o EnvioSincrono, logo o método Emitir vai usar esse método.
O provedor MegaSoft que também segue a versão 2 do layout da ABRSAF e que deveria ter disponibilizado os 3 métodos citados acima, só disponibilizou o método Gerar, logo o método Emitir vai se utilizar do método Gerar para enviar o RPS par o WebService.
Assim que liberarmos os fontes do novo componente conto com todos para melhorarmos o método Emitir, pois acredito que ele vai simplificar bastante.
Por fim peço a todos que postem os resultados dos testes aqui no fórum.
Para quem não é membro do SAC favor postar em: Home / Fórum Aberto - ACBr / ACBrDFe / ACBrNFSe
Para quem é membro do SAC favor postar em: Home / Suporte Pago - SAC / DFe - Documentos Fiscais Eletrônicos
Programa exemplo do novo componente ACBrNFSe:
ACBrNFSe_Exemplo.exe(compilado: 11/11/2020 as 16:14)
Desde já muito obrigado pela colaboração de todos.