Ir para conteúdo
  • Cadastre-se

dev botao

Como obter o evento de DistribuicaoDFe ?


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

Recommended Posts

Boa tarde!

Estou desenvolvendo uma rotina para realizar o downlaods dos XMLS emitidos contra meu CNPJ.

Já desenvolvi a rotina que baixa os XMLS e da ciência de operação!

Porém tenho algumas dúvidas, a primeira é essa: como obter o evento atrelado a nota?
 

  case frmMenu.NFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.
            Items[I].resEvento.tpEvento of
            teManifDestCiencia:
              tipoManifesto := 'Ciência da Operação';
            teManifDestConfirmacao:
              tipoManifesto := 'Confirmação da Operação';
            teManifDestDesconhecimento:
              tipoManifesto := 'Desconhecimento da Operação';
            teManifDestOperNaoRealizada:
              tipoManifesto := 'Registro da Operação não Realizada';
          end;

Debugando o código vi que a aplicação não entra em nenhuma das opções do CASE

Claro que eu podia gravar no banco de dados o evento que foi aplicado em relação a nota, quando o usuário enviasse algum evento para SEFAZ, mas não funcionária, se caso ele usasse um sistema de terceiros para enviar um determinado evento.

 

Outra dúvida: olhando a nota técnica e a documentação do ACbr: https://acbr.sourceforge.io/ACBrMonitor/ManifestacaodoDestinatarioOperac.html, vi que quando é enviado um evento de "Manifestação do Destinatário - Operação Não Realizada" , é necessário informar a justificativa, porém a varivel xJust ela não é reconhecida dentro do código.
Minha rotina de evento:

    with frmMenu.NFe1.EventoNFe.Evento.new do
        begin
          InfEvento.cOrgao       := 91;
          InfEvento.ChNFE        := dm.qrManifesstacaoDestinario.FieldByName('man_chave').AsString; 
          InfEvento.CNPJ         := SomenteNumeros(dm.Query1.FieldByName('emp_cnpj').asstring) ;
          InfEvento.dhEvento     := now;
  		  InfEvento.tpEvento     := TpcnTpEvento.teManifDestOperNaoRealizada;
          InfEvento.versaoEvento := '1.00';
          InfEvento.xJust        := 'Essa variavél não é reconhecida!!';
         resultado               := frmMenu.NFe1.EnviarEvento(frmMenu.NFe1.EventoNFe.idLote);
        end;

 

 

sistema.PNG

João Leno

Developer In Lunar Tecnologia
Formação: Bacharel em Sistemas de Informação
Pós Graduação: Infraestrutura e aplicações em redes de computadores (Cursando)
Cell: (84) 8135-9585
Skype: joaolenosi
Site: http://lunartecnologia.com.br/

Se não puder vencer pelo o talento, vença pelo o esforço.

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde João,

Lembre-se que o DistribuicaoDFe não retorna o que você emite.

O evento de Manifestação do Destinatário foi emitido por você, logo a SEFAZ entende que você tem que ter o XML do mesmo.

Por outro lado o XML da nota do seu fornecedor bem como o evento de Carta de Correção (por exemplo) emitidos por ele você consegue baixar através do DistribuicaoDFe.

Entendeu?

  • Curtir 1
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

6 minutos atrás, Italo Jurisato Junior disse:

Boa tarde João,

Lembre-se que o DistribuicaoDFe não retorna o que você emite.

O evento de Manifestação do Destinatário foi emitido por você, logo a SEFAZ entende que você tem que ter o XML do mesmo.

Por outro lado o XML da nota do seu fornecedor bem como o evento de Carta de Correção (por exemplo) emitidos por ele você consegue baixar através do DistribuicaoDFe.

Entendeu?

Entendo, mas como eu vou saber se o meu cliente deu Ciência de Operação em um software de terceiros?

Digo isso, por que estou desenvolvendo o meu e comparando com um software chamado "Fiscal.io - Monitor de Documentos Fiscais", se eu enviar um evento de Ciência de Operação nesse software, como saberei que essa nota já foi enviado o respectivo evento dentro do meu sistema?

Só se for pelo o status de NFe Resumida e NFe Completa

Editado por joaolenosi

João Leno

Developer In Lunar Tecnologia
Formação: Bacharel em Sistemas de Informação
Pós Graduação: Infraestrutura e aplicações em redes de computadores (Cursando)
Cell: (84) 8135-9585
Skype: joaolenosi
Site: http://lunartecnologia.com.br/

Se não puder vencer pelo o talento, vença pelo o esforço.

Link para o comentário
Compartilhar em outros sites

  • Consultores

João,

Esse outro software não grava os XML de eventos (por exemplo) ou possui um relatório das notas manifestadas?

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

Ele não possui relatório que exibe as notas manifestadas, mas tem uma coluna na listagem chamada eventos.

E nessa coluna observe, que a nota 63479 possui um X, e essa foi a única nota que baixei por lá, as demais notas eu baixei pelo o meu sistema.

segue o print por anexo!

É interessante eu salvar no meu banco de dados o evento atrelado a nota, quando o usuário realizar alguma ação?

Para que caso no futuro, precise exibir só as notas manifestadas ou só as notas que foram dada ciência.

software.PNG

Editado por joaolenosi

João Leno

Developer In Lunar Tecnologia
Formação: Bacharel em Sistemas de Informação
Pós Graduação: Infraestrutura e aplicações em redes de computadores (Cursando)
Cell: (84) 8135-9585
Skype: joaolenosi
Site: http://lunartecnologia.com.br/

Se não puder vencer pelo o talento, vença pelo o esforço.

Link para o comentário
Compartilhar em outros sites

Infelizmente a versão oficial dos schemas disponibilizados não permite a visualização do status atual da manifestação. Porém...

Se observarmos o software gratuito da SEFAZ, percebemos que ao "baixar" uma nota já vem o status atual da manifestação. Mesmo se a manifestação do destinatário tenha sido realizada em outro software.

Isso acontece pois o software gratuito utiliza uma versão mais recente dos schemas (v.135). Nessa versão existe uma tag chamada: cSitConf. (se olhar a nota técnica até existe a menção dessa tag)

 

Mas como essa não é uma versão oficial, digo, disponibilizada pela SEFAZ. Creio que ACBr não irá utilizar. De qualquer forma vou deixar aqui o link para download desses schemas.

Com uma simples alteração na unit pcnRetDistDFeInt você adiciona uma nova property e na sequencia pode ler o valor desse campo.

Nessa versão infelizmente o método DistribuicaoDFePorChaveNFe não funciona. (Mas é possível contornar isso alterando algumas linhas)

--Se for DistribuicaoDFePorChaveNFe utiliza 1.02 caso contrário, utiliza a 1.35

v1.35.zip

  • Curtir 3
Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1765 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.

The popup will be closed in 10 segundos...