Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Pessoal, tive a necessidade de implementar eventos de onBefore e onAfter no componente do ACBrNFe, e estou disponibilizando aqui pois poderá ser útil a mais pessoas, caso seja publicado nas versões oficiais do componente.

Necessito destes eventos pois com eles faço o controle dos lotes e notas no banco de dados. Como essas ações (enviar, cancelar e etc) são usadas em diversos lugares do sistema, fica mais seguro controlar com eventos pois garanto que eles sempre serão executados, claro se implementado.

O uso é semelhante a qualquer outro evento, se desejar usar é só implementar.

Foram criados eventos onBefore e onAfter para as seguintes ações do NFe:

* Enviar / Retorno / Recibo / Consulta / Cancelamento / Inutilizacao / ConsultaCadastro / EnviarDPEC / ConsultaDPEC / EnvEvento / ConsNfeDest / DowloadNFe;

Atualmente estou utilizando apenas os eventos OnBeforeEnviar, OnAfterEnviar, OnAfterRetorno, OnAfterRecibo, OnAfterInutilizacao, OnAfterEnvEvento, porém já implementei para os outros eventos caso alguém necessite usar.

Então dentro da classe TACBrNFe, unit ACBrNFe.pas, criei as propriedade do tipo TNotifyEvent, com exceção do evento OnBeforeEnviar que é uma procedure com um parâmetro denominado Abortar do tipo boolean. Se dentro da sua implementação vocês retornar true para esse parâmetro, o evento de envio do lote será abortado. Eu utilizo isso, por exemplo, para abortar o envio de NFe caso algum erro ocorra na inclusão das informações das notas no banco de dados.

As propriedades criadas são chamadas nas funções de cada ação que estão na unit ACBrNFeWebServices.pas. Olhando para a minha implementação percebe-se que os eventos BeforeEnviar e AfterEnviar são os únicos que não são chamadas de dentro da function Executar da respectiva ação, isso se deve ao uso do parâmetro Abortar mencionado anteriormente.

Vale se atentar que o evento enviar executa a ação Enviar e Retorno, então ao enviar um lote temos a execução da seguinte ordem de eventos: BeforeEnviar, AfterEnviar, BeforeRetorno e AfterRetorno.

Segue em anexo a versão das units antes e depois da minha implementação.

Aguardo retorno dos administradores.

ACBrNFe.rar

Murilo Rodrigues

Edata Tecnologia

http://www.edata.com.br/

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

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 conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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.