Jump to content

2 Dia do ACBr

O Dia da Automação Comercial está chegando!
Inscreva-se

Nova Loja Oficial
loja.projetoacbr.com.br
Ajude o projeto a crescer, com estilo

Comprar

Balança SM100 performance surpreendente

Tecnologia Japonesa   Teclado e Visor resistentes a água
Consumo inteligente de etiquetas   Baixo custo de manutenção
Comunicação Ethernet e WIFI independentes

Saiba mais

Impressora de Etiquetas ELGIN - L42 PRO

Protocolos PPLA, PPLB, ZPL, EPL (automático)
Porta USB padrão Opcionais: Ethernet, Serial, Paralela
Sensor de Etiquetas Móvel Garantia de 18 meses

Saiba mais

joaolenosi

Como obter o evento de DistribuicaoDFe ?

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.

Share this post


Link to post
Share on other sites

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?

  • Like 1

Consultor SAC ACBr Italo Jurisato 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

Share this post


Link to post
Share on other 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

Edited by 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.

Share this post


Link to post
Share on other 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

Edited by 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.

Share this post


Link to post
Share on other 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

  • Like 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...