Ir para conteúdo
  • Cadastre-se

dev botao

Componente ACBrNFSe


  • Este tópico foi criado há 1245 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Consultores

Olá pessoal,

Para quem ainda não sabe estou promovendo um Refactoring no componente ACBrNFSe.

Ele praticamente foi reescrito do zero e infelizmente teremos algumas quebras de código quando ele for liberado.

Mas vamos falar de coisas boas.

Hoje temos que disponibilizar para os nossos clientes além do executável, DLLs, os famosos arquivos INI, o arquivo Cidades.ini e os arquivos INI dos provedores.

Pois bem, isso acabou.

Os arquivos INI referente aos provedores se transformaram em Unit, ou seja, fazem parte do fonte do componente.

O conteúdo do arquivo Cidades.ini migrou para o arquivo ACBrNFSeServicos.ini que é transformando no ACBrNFSeServicos.res através do BAT: Compila_RES.

O arquivo ACBrNFSeServicos.res é incorporado ao executável, logo vocês só vão precisar distribuir o executável e as DLLs para os seus clientes.

O que vocês acharam dessa mudança?

 

Ainda não esta 100%, em função das diferenças dos provedores, mas criei um novo método chamado Emitir que tem por finalidade gerar o XML do RPS, assinar se necessário, gerar o Lote e assinar se necessário, enviar, aguardar o retorno do XML da NFSe.

Independente do serviço que o provedor se utiliza para recepcionar o XML do RPS.

Vou dar um exemplo:

O provedor 4R que segue a versão 2 do layout da ABRASF implementou somente o método EnviarLoteRpsSincrono para recepcionar o RPS, sendo que no Manual da ABRASF versão 2 estão previstos os métodos: EnviarLoteRps, EnviarLoteRpsSincrono e GerarNfse.

Por outro lado o provedor ISSJoinville que também segue a versão 2 do layout da ABRASF implementou somente o método EnviarLoteRps.

Se vocês tem clientes cujas cidades utilizam o provedor 4R e tem clientes em Joinville, ou vocês tem duas aplicações ou a aplicação tem uma tela de configuração para definir qual método a ser utilizado.

O método Emitir vem para tentar resolver esse problema da seguinte forma: se o provedor for 4R ele vai se utilizar do método EnviarLoteRpsSincrono automaticamente, agora se for ISSJoinville vai usar o EnviarLoteRps.

Desta forma não precisamos de nos preocuparmos com qual o método devemos usar para enviar o RPS para o webservice.

Acredito que vai ficar muito bom e pratico.

O que vocês acham?

 

Muita coisa já foi feita e muito mais precisa ser feito.

Para que vocês tenham uma ideia foi criado 32 Units, ou seja, uma para cada provedor que segue a versão 1 do layout da ABRASF, mais 53 Units para os provedores que seguem a versão 2 do layout da ABRASF e mais 19 Units para os provedores que tem o seu próprio layout.

 

Até o final deste mês de outubro estarei disponibilizando o programa exemplo compilado para que vocês possam fazer mais testes.

Em breve vou explicar como vão ser os testes e como reportar os resultados.

Antes que eu esqueça, esse Refactoring visa poder incluir a emissão da NFS-e no ACBrMonitor Plus e a criação do ACBrLibNFSe (DLL).

Um forte abraço a todos.

  • Curtir 23
  • Obrigado 5
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...
  • Consultores

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:

Erro1.jpg

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:

Imagem1.jpg

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.

  • Curtir 13
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.