Clipper On Line • Ver Tópico - DigestValue não confere

DigestValue não confere

Discussão sobre desenvolvimento de software para atender as exigências da legislação fiscal e tributária (ECF, TEF, SINTEGRA, NF-e, ECD, EFD, etc.)

Moderador: Moderadores

 

DigestValue não confere

Mensagempor jelias » 02 Mar 2018 19:55

Olá amigos,

Nestes últimos dias estou sofrendo com alguns problemas incomuns. Irei explicar minha rotina.

Acontece que, após enviar uma NF-e para o ACBrPlus, o arquivo de retorno pode travar, por razões que na maioria das vezes não tem nada com o ACBrPlus. Sendo assim, eu não sei se a NF-e foi autorizada pela Receita corretamente e o sistema não tem a confirmação por não poder tratar o retorno. Como não tenho o retorno, o que faço e deixar o usuário enviar novamente. Caso o retorno apresente a mensagem de duplicidade, eu sei que a NF-e foi emitida corretamente, entretanto o XML pode estar desatualizado, e para atualizar faço uma consulta para receber a confirmação que a NF-e está autorizada. 

Passos: ACBr MonitorPLUS Ver.1.1.0.33

1. - NFE.CriarEnviarNFE() - Se o retorno foi cStat=100, tudo certo com a NF-e, envio o e-mail e imprime o DANFE. Se for DENEGADA, também faço o procedimento. Se estiver com erros, apresento ao usuário.

2. - Caso o arquivo de retorno trave, eu não consiga ler para saber o que aconteceu, faço o seguinte, libero o sistema para o usuário enviar novamente, 

      NFE.CriarEnviarNFE() - Envio o arquivo TXT novamente e o ACBrPlus gera o TXT novamente.

     Se o retorno for duplicidade, faço uma consulta NFE.CONSULTARNFE(G:\NFEPDS\XML\Mar2018\31180319678344000182550010000054481000054488-nfe.XML)

     Nunca tive problemas, o ACBrPlus atualizava o XML pra mim e eu imprimia o DANFE e enviava o e-mail. Sempre fiz desta maneira. 

    Acontece que hoje, recebi o seguinte retorno.

   02/03/2018 17:35:51 - NFE.CONSULTARNFE(G:\NFEPDS\XML\Mar2018\31180319678344000182550010000054481000054488-nfe.XML)  
   02/03/2018 17:35:52 - ERRO: Autorizado o uso da NF-e

   DigestValue do documento 31180319678344000182550010000054481000054488 não confere.

- Alguma coisa modificou neste processo?

- Como  neste cliente existe muitos usuários, pode ser que algum tenha gerado a NF-e com uma versão antiga do ACBrNFeMonitor2 0.9.10.0 e agora outra máquina pode estar tentando criar o XML e pode estar modificando algo?

nArquivo=FOPEN(cFileRetorno,0)
if nArquivo = -1
   Autorizada=.F.
   cDenegada=.F.
   //---------------------------------------------------------------------------------------------------------------
   // Caso o sistema não consiga abrir o arquivo TXT, irei fazer mais uma tentativa com MEMORED
   // Não sei por qual razao, parece que o acbr está travando o arquivo e não consigo abrir
   // por isso fiz esta rotina abaixo para testar.
   if FILE(cFileRetorno)
      gTexto:=MEMOREAD(cFileRetorno)
      if AT("CStat=100",gTexto)>0
         Autorizada=.T.
      elseif (AT("CStat=110",gTexto)>0 .or. AT("CStat=301",gTexto)>0 .or. AT("CStat=302",gTexto)>0 .or. AT("CStat=205",gTexto)>0)
         cDenegada=.T.
      end
   end
else   
   lEof=.F.
   cStat=.F.
   Autorizada=.F.
   cDenegada=.F.
   vChave=""
   RetCStat=""
   do whil !lEof
      cLinha=LINHAARQ(nArquivo,1024)
      cStat=IIF(ALLTRIM(cLinha)="[NFE"+ALLTRIM(STR(VAL(AL_SAIDA->codigo),6))+"]",.T.,cStat)
      if cStat
         if LEFT(cLinha,5)="CStat"
            RetCStat=SUBS(cLinha,7,3)
            if SUBS(cLinha,7,3)="100"
               // Nota Fiscal Altorizada
               Autorizada=.T.
            elseif (SUBS(cLinha,7,3)="110" .or. SUBS(cLinha,7,3)="301" .or. SUBS(cLinha,7,3)="302" .or. SUBS(cLinha,7,3)="205")
               // Nota Fiscal Denegada
               cDenegada=.T.
            end
         end
      end
   end
end
FCLOSE(nArquivo)
sFileCopy:=""
if (!Autorizada .and. !cDenegada)
   //-------------------------------------------------------------------------
   // Se na primeira consulta nao houve retorno
   // cStat = 100 - Autorizado Uso da NF-e
   // cStat = 110 / 301 / 302 = Nota Fiscal Denegada
   // Aconteceu algum problema no arquivo de retorno da NF-e
   
   *sFileCopy:=aw_acbr+"SAINFE"+ALLTRIM(AL_SAIDA->serien)+AL_SAIDA->codigo+".COP"
   *COPY FILE &cFileRetorno TO &sFileCopy
   FERASE( cFileRetorno )
   
   cLine := "NFE.CONSULTARNFE("+ALLTRIM(AL_SAIDA->arqxml)+")"+cCHR
   HB_MEMOWRIT( cFileEnvio, cLine )

   nCont:=1
   do whil !FILE(cFileRetorno) .and. nCont<=120
      inkey(1) ; nCont++
   end

   if FILE(cFileRetorno)
      gTexto:=MEMOREAD(cFileRetorno)
      if AT("CStat=100",gTexto)>0
         Autorizada=.T.
      elseif (AT("CStat=110",gTexto)>0 .or. AT("CStat=301",gTexto)>0 .or. AT("CStat=302",gTexto)>0 .or. AT("CStat=205",gTexto)>0)
         lDenegada=.T.
      end
   end
   
   *__COPYFILE( cFileRetorno, cFileArquivoRetorno )
   FERASE( cFileRetorno )
   *AEVAL( DIRECTORY(aw_nfe+"xml\*-rec.xml","D"), {|aFile| FERASE(aw_nfe+"xml\"+aFile[1]) })
end


Desde já agradeço.

Saudações, 

Júlio. 
xHarbour 1.2.1 (simplex) + BCC 5.8.2 + Hwgui + SQLRDD
Clipper 5.2e / Blinker 7
Júlio Cézar Elias
e-mail: jelias@tpnet.psi.br
jelias
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 249
Data de registro: 27 Ago 2008 11:32
Cidade/Estado: Minas Gerais
Curtiu: 0 vez
Mens.Curtidas: 16 vezes

DigestValue não confere

Mensagempor lucimauro » 03 Mar 2018 18:05

Eu também já tive esse problema na consulta da nf-e, resolvi desabilitando no acbrmonitor a opção (Validar digest value ao consulta XML) na aba Dfe do acbr.
lucimauro
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 448
Data de registro: 21 Set 2004 21:02
Cidade/Estado: Sobral-CE
Curtiu: 15 vezes
Mens.Curtidas: 19 vezes

DigestValue não confere

Mensagempor JoséQuintas » 03 Mar 2018 21:09

O digestvalue é algo como um dígito de controle do XML, e esse digestvalue é que acaba sendo assinado.

Digestvalue diferente significa que a nota também está diferente.
O XML atual tem um conteúdo diferente do XML que foi autorizado.
Pode ser um horário, pode ser a nota inteira...
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

DigestValue não confere

Mensagempor JoséQuintas » 03 Mar 2018 21:26

Complemento:

No momento vocês tem notas falsificadas.
Sim... se as notas são diferentes das originais... e estão se passando por autorizadas.... então são falsificadas.

O que pode acontecer?
Sei lá...
Continuo achando tudo isso uma porcaria, e que o governo nunca vai admitir que fez porcaria.

Fazendo notas iguais a essas, os políticos podem tirar muito dinheiro do governo.
Vão cobrar 1 milhão do governo, com base em notas autorizadas de 1 real....
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes




Retornar para Legislação Fiscal e Tributária

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 5 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro