lealhugui / node-dfe

Geração/integração de NF-e/NFC-e para node.js
MIT License
257 stars 99 forks source link

Nfe cancelamento #21

Closed tfiliano closed 4 years ago

tfiliano commented 4 years ago

Guilheme,

Implementei inicialmente o evento de cancelamento, mas deixei algumas coisas preparadas para outros eventos tbm. Realizei o teste por hora apenas em SP, onde tenho um certificado para testar.

Nesse pull request, tomei a liberdade de estruturar algumas coisas da seguinte maneira: nfeProcessor2 ( centraliza os demais processors nele ) ou seja enviaProcessor ( responsavel apenas por enviar DFe e receber o nro de recibo ) retornoProvessor ( responsavel por processar o retorno da DFe, consultando o nro de recbido ) eventoProcessor ( responsavel por realizar os eventos do DFe )

o nfeProcessor na minha opiniao seria substituido pelo nfeProcessor2, deixei ambos por questao de compatibilidade.

o nfeProcessor2 possui o metodo processarDocumento tbm, para questao de compatibilidade, pq nessa nova estrutura, chamei o metodo principal de executar, exemplo: eventoProcessor.executar( evento )

Da forma que implementei, o create precisa receber um objeto do tipo Configuracoes, assim com apenas 1 parametro, recebemos tudo que eh necessario.

O usuario pode emitir um DFe de 2 formas:

  1. Opcao:

    • instanciando o enviaProcessor e guarda o nro de recibo etc..
    • instancia o retornoProcessor, e consulta a situacao do lote processado
  2. instancia o nfeProcessor e executa o metodo .executar ( aqui jah faz envio e o retorno como antes, porém, coloquei uma melhoria no intuito de evitar consumo indevido ), essa melhoria consiste em um parametro, onde é possivel determinar a quantidade de tentativas, e o intervalo de tempo entre cada tentativa de consulta do lote.

Bom cara, teria mais coisas que poderia discutir, qqr coisa me passa teu email e mantemos contato melhor. meu: tfiliano@gmail.com

lealhugui commented 4 years ago

@tfiliano , nao me oponho a remodelagens, DESDE QUE as interfaces de entrada/saida da lib sejam as mesmas (justamente por questoes de compatibilidade). Ao idealizar a lib, eu e o @lhfioravanso sempre tivemos em mente que a compatibilidade dela deve andar junto com as versoes dos DFes, ou seja, so pode ser quebrado se a versao da DFe quebrar.

Essa MR pode ser aprovada apenas se os 2 core members aprovarem.

tfiliano commented 4 years ago

Tranquilo, eu acabei alterando algumas interfaces, mas não foi nada de mudança brusca, algumas propriedades como descEventoField por exemplo, coloquei descEvento, e adicionei novas interfaces, para poder trabalhar os xmls para os eventos.

Existe um motivo for para ter o Field na frente das props? se tiver, posso dar um jeito de usar com eles.

Estou trabalhando aqui na carta de correção. flw

sonarcloud[bot] commented 4 years ago

SonarCloud Quality Gate failed.

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities (and Security Hotspot 0 Security Hotspots to review)
Code Smell A 19 Code Smells

No Coverage information No Coverage information
58.3% 58.3% Duplication

lhfioravanso commented 4 years ago

Opa, desculpem a demora. Não me oponho também, visto que manteve a compatibilidade da lib.

Obrigado pela contribuição @tfiliano !

lealhugui commented 4 years ago

Beleza pessoal.

@tfiliano , apenas existe conflito nessa branch. Para realizarmos o merge, precisamos que sejam resolvidos.

tfiliano commented 4 years ago

Beleza pessoal.

@tfiliano , apenas existe conflito nessa branch. Para realizarmos o merge, precisamos que sejam resolvidos.

Não estou encontrando aqui no git a indicação dos conflitos pra corrigir.

Posso fazer um novo request comparando meu repositório inteiro, nele já fiz uma serie de outras melhorias, mas mantendo mesma estrutura, das interfaces, etc?