Ir para conteúdo
  • Cadastre-se

dev botao

Erro consulta NFs Destinadas


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

Recommended Posts

Bom dia,

Estou fazendo a opção para fazer a consulta  das NFs destinadas, sempre retorna status 137-Nenhum documento localizado, e ja fiz nfe para o proprio cnpj da empresa mas não retorna. Se fizer a consulta passando zero para o NSU retorna um xml com status 138 não tem as chaves das NFe, segue em anexo este arquivo retornado e a rotina que estou utilizando.

procedure TfrmManifestacao.btnConsultarClick(Sender: TObject);
var
  J,
  I: Integer;
  sMotivo,
  sTemMais,
  UltNSU,
  sUltimoNSU,
  sChave,
  sSerie,
  sNumero,
  sCNPJ,
  sNome,
  sIEst,
  sNSU,
  sEmissao,
  sTipoNFe,
  sUF,
  Impresso: string;
  Valor: Double;
  dhAuto: TDateTime;
begin
  ValidarSQL('SELECT E.CGC, E.UF FROM VI_EMPRESA E',['E.COD='+CODEMP_COR],[@sCNPJ,@sUF]);
  with dmNFE_TR do
  repeat
    try
      {$IFDEF SIMULARETORNO}
        SimulaRetorno;
      {$ELSE}
        UltNSU := ParametroTxt('NSU','4',CODEMP_COR);
        NFEletronica.DistribuicaoDFePorUltNSU(UFtoCUF(sUF),sCNPJ,UltNSu);
      {$ENDIF}
      // Pega os dados retornados
      sMotivo    := NFEletronica.WebServices.DistribuicaoDFe.retDistDFeInt.xMotivo;
      sUltimoNSU := NFEletronica.WebServices.DistribuicaoDFe.retDistDFeInt.ultNSU;

      // Verifica a tag se possui mas documentos
      if NFEletronica.WebServices.DistribuicaoDFe.retDistDFeInt.cStat = 137 then
        sTemMais := 'N'
      else
        sTemMais := 'S';

      // Grava o ultiomo NSU na tabela de parametros
      GravaUltimaConsulta(sUltimoNSU);
    except on e: exception do
      raise Exception.Create('Falha ao Consultar NFe Destinadas.' + #13 + 'Erro Capturado: ' + e.Message);
    end;

    try
      if NFEletronica.WebServices.DistribuicaoDFe.retDistDFeInt.cStat = 138 then
      begin
        J := NFEletronica.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Count -1;

        for I := 0 to J do
        begin
          sSerie   := '';
          sNumero  := '';
          sCNPJ    := '';
          sNome    := '';
          sIEst    := '';
          sNSU     := '';
          sEmissao := '';
          sTipoNFe := '';
          Valor    := 0.0;
          Impresso := ' ';
          dhAuto   := 0;

          if NFEletronica.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resNFe.chNFe <> '' then
          begin
            // Conjunto de informações resumo da NF-e localizadas.
            // Este conjunto de informação será gerado quando a NF-e for autorizada ou denegada.
            sEmissao := DateToStr(NFEletronica.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resNFe.dhEmi);
            sChave   := NFEletronica.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resNFe.chNFe;
            sCNPJ    := NFEletronica.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resNFe.CNPJCPF;
            Valor    := NFEletronica.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resNFe.vNF;
            sNome    := NFEletronica.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resNFe.xNome;
            sIEst    := NFEletronica.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resNFe.IE;
            sNSU     := NFEletronica.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].NSU;
            sSerie   := Copy(sChave, 23, 3);
            sNumero  := Copy(sChave, 26, 9);
            case NFEletronica.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resNFe.tpNF of
              tnEntrada: sTipoNFe := 'E';
              tnSaida:   sTipoNFe := 'S';
            end;

            case dmNFE_TR.NFEletronica.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resNFe.cSitNFe of
              snAutorizado: Impresso := 'A';
              snDenegado  : Impresso := 'D';
              snCancelado : Impresso := 'C';
            end;
            dhAuto := NFEletronica.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resNFe.dhRecbto;
          end;
          // Registra no Banco de Dados as Notas Retornadas pela Consulta
          if not ExisteChaveNFE(StrToInt(CODEMP_COR),sChave) then
          begin
            with sqlManifestacao, sqlManifestacao.Sql do
            begin
              Clear;
              Add('INSERT INTO TB_MANIFESTACAO');
              Add('  (CODEMP, CNPJ, NOME, IE, EMISSAO, TIPO, VALOR,SITUACAO, CONFIRMACAO, NSU, CHAVE, DTAUTORIZACAO, NUMNF)');
              Add('VALUES ');
              Add('  (:CODEMP, :CNPJ, :NOME, :IE, :EMISSAO, :TIPO, :VALOR, :SITUACAO, :CONFIRMACAO, :NSU, :CHAVE, :DTAUTORIZACAO, :NUMNF)');
              Params[0].AsString   :=CODEMP_COR;
              Params[1].AsString   :=sCNPJ;
              Params[2].AsString   :=sNome;
              Params[3].AsString   :=sIEst;
              Params[4].AsDate     :=StrToDate(sEmissao);
              Params[5].AsString   :=sTipoNFe;
              Params[6].AsFloat    :=Valor;
              Params[7].AsString   :=Impresso;
              Params[8].AsString   :='';
              Params[9].AsString   :=sNSU;
              Params[10].AsString  :=sChave;
              Params[11].AsDateTime:=dhAuto;
              Params[12].AsString  :=sNumero;
              //***
              try
                if Transaction.InTransaction then
                  Transaction.Rollback
                else
                  Transaction.StartTransaction;
                ExecSQL;
                Transaction.Commit;
              except
                Transaction.Rollback;
              end
            end;
          end;
        end; // Fim do For
      end
      else
      begin
        if NFEletronica.WebServices.DistribuicaoDFe.retDistDFeInt.cStat = 137 then
        begin
          ExibirMsg('Ultimo NSU: '+NFEletronica.WebServices.DistribuicaoDFe.retDistDFeInt.ultNSU+#13#10+
                    'Status    : '+IntToStr(NFEletronica.WebServices.DistribuicaoDFe.retDistDFeInt.cStat)+#13#10+
                    'Motivo    : '+NFEletronica.WebServices.DistribuicaoDFe.retDistDFeInt.xMotivo+#13#10+
                    'Data/Hota : '+DateTimeToStr(NFEletronica.WebServices.DistribuicaoDFe.retDistDFeInt.dhResp),
                    'Manifestação das Nota Fiscal Eletrônica');
        end
        else
        begin
          ExibirMsg('Falha ao realizar a consulta.'+#13#10+
                    'Status    : '+IntToStr(NFEletronica.WebServices.DistribuicaoDFe.retDistDFeInt.cStat)+#13#10+
                    'Motivo    : '+NFEletronica.WebServices.DistribuicaoDFe.retDistDFeInt.xMotivo+#13#10+
                    'Manifestação das Nota Fiscal Eletrônica');
        end;
      end;
    except on e: exception do
      raise Exception.Create('Falha ao gravar as NFe Destinadas.' + #13 + 'Erro Capturado: ' + e.Message);
    end;
  until (NFEletronica.WebServices.DistribuicaoDFe.retDistDFeInt.cStat = 137) or (sTemMais = 'S');
  //
end;

Obrigado.

20180612090345-dist-dfe.xml

Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois ...

Bom dia,

Realmente não estou conseguindo fazer a consulta da  distribuição das NFs, fiz também pelo ACBrNFe_Demo, acontece a mesma coisa, também fiz algumas nota para o próprio cnpj e nada, alguma dica do que pode ser. Obrigado

Link para o comentário
Compartilhar em outros sites

  • 6 meses depois ...
  • Administradores

Boa tarde.

Este tópico está inativo a algum tempo e por isso será fechado, caso necessário favor criar um novo tópico.

Att.

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link para o comentário
Compartilhar em outros sites

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