Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Boa tarde, a quem puder me ajudar. Estou com o seguinte problema na manifestacao das notas pelo ACBrNFe1.DistribuicaoDFe eu faço um laço For para pegar os dados que preciso, e alguns deles nao aparecem, um deles é o que ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.resNFe.chNFe, nao esta trazendo. Poderia ser alguma configuração especifica que tenho que fazer?

Postado

Sim estou procurando pelo ultimo nsu.

while ultNSU <= sMaxNSU  do begin
    Tem_Doctos := 'N' ;
    ACBrNFe1.NotasFiscais.Clear ;
    ACBrNFe1.EventoNFe.Evento.Clear ;
    try
      ConfigurarNFE;
      ACBrNFe1.DistribuicaoDFe(cAutorizador,CNPJ,ultNSU,'' );
      // Retorno de NFe Destinadas
      if ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.cStat = 137 then begin
        Application.MessageBox('Não existem mais notas, por favor realize uma nova consulta em uma hora.','Atenção',MB_OK+MB_ICONEXCLAMATION);
        Label3.Visible := false;
        Label3.Caption := '';
        Exit;
      end;
      sMaxNSU := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.maxNSU;
      iMaxNSU := StrToInt(sMaxNSU);
      sMaxNSU := IntToStr(iMaxNSU);
      if ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.cStat = 138 then begin
        for i := 0 to ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Count -1 do begin

          if (ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.resEvento.tpEvento = teCancelamento) and (ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.resEvento.chNFe <> '') then
            sNFE := 'CANC';
          if sNFE <> 'CANC' then begin
            ShowMessage('resEvento: ' + ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.resEvento.chNFe);
            ShowMessage('resNFe: ' + ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.resNFe.chNFe);
            if Trim(ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.resEvento.chNFe ) <> '' then begin
              sChave  := AcbrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.resEvento.chNFe;
              sSerie  := Copy(sChave, 23, 3);
              sNumero := Copy(sChave, 26, 9);
              sCNPJ   := AcbrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.resEvento.CNPJCPF;
              sNome   := AcbrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.resNFe.xNome;
              sIEst   := AcbrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.resNFe.IE;
              sXML    := AcbrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.XML;

              case AcbrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.resNFe.tpNF of
                tnEntrada: sTipoNFe := 'E';
                tnSaida:   sTipoNFe := 'S';
              end;

              sNSU     := AcbrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.NSU;
              sEmissao := DateToStr(AcbrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.resNFe.dhEmi);
              Valor    := AcbrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.resNFe.vNF;

              case AcbrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.resNFe.cSitNFe of
                snAutorizado: Impresso := 'A';
                snDenegado  : Impresso := 'D';
                snCancelado : Impresso := 'C';
              end;
              ShowMessage('Valor: ' + FloatToStr(Valor));
              CDSManifestacao.Edit;
              CDSManifestacao.FieldByName('CHAVENFE').AsString     := sChave;
              CDSManifestacao.FieldByName('CNPJ').AsString         := sCNPJ;
              CDSManifestacao.FieldByName('NOME').AsString         := sNome;
              CDSManifestacao.FieldByName('NSU').AsString          := sNSU;
              CDSManifestacao.FieldByName('DATA_EMISSAO').AsString := sEmissao;
              CDSManifestacao.FieldByName('NUMNOTA').AsString      := sNumero;
              CDSManifestacao.FieldByName('VALOR').AsFloat         := Valor;//FormatFloat('#,###,##0.00',Valor);
              CDSManifestacao.Append;
              if LocalizaChaveNFe(sChave) then begin
                QryUPDATE := TZQuery.Create( Nil );
                QryUPDATE.Connection  := Conexao;
                QryUPDATE.RequestLive := true;
                QryUPDATE.SQL.Clear;
                QryUPDATE.SQL.Add('UPDATE MANIFESTACAO SET NSU=:nsu WHERE CHAVENFE=:chavenfe');
                QryUPDATE.ParamByName('chavenfe').AsString  := sChave;
                QryUPDATE.ParamByName('nsu').AsString       := sNSU;
                QryUPDATE.ExecSQL;
              end else begin
                // AQUI GRAVAR NO BANCO DE DADOS
                Qry := TZQuery.Create( Nil );
                Qry.Connection := Conexao;
                Qry.RequestLive := true;
                Qry.SQL.Clear;
                Qry.SQL.Add('INSERT INTO MANIFESTACAO (NUMNOTA, CHAVENFE, CNPJ, NOME, DATA_EMISSAO, VALOR, NSU) Values (:numnota, :chavenfe, :cnpj, :Nome, :data_emissao, :Valor, :NSU)');
                Qry.ParamByName('numnota').AsInteger       := StrToInt(sNumero);
                Qry.ParamByName('chavenfe').AsString       := sChave;
                Qry.ParamByName('cnpj').AsString           := sCNPJ;
                Qry.ParamByName('Nome').AsString           := sNome;
                Qry.ParamByName('data_emissao').AsDateTime := StrToDateTime(sEmissao);
                Qry.ParamByName('Valor').AsFloat           := Valor;
                Qry.ParamByName('NSU').AsString            := sNSU;
                Qry.ExecSQL;
              end;
            end;
          end;
          ultNSU := sNSU;
        end ;
        ultNSU := PegarUltimoNSU;
      end;
      ACBrNFe1.NotasFiscais.Clear ;
      ACBrNFe1.EventoNFe.Evento.Clear ;
      Qry.Free;
      QryUPDATE.Free;
      Application.MessageBox('Notas Consultados com sucesso ','UniComercial',MB_OK+MB_ICONINFORMATION);
      Label3.Visible := false;
      Label3.Caption := '';
      Application.ProcessMessages;
    except
      on e :exception do begin
        ShowMessage(e.ClassName + 'Erro Gerado, Com Mensagem : ' + e.Message);
        Exit;
      end;
    end ;
  end ;

O erro em questao é em uma cliente que usa certificado de cartão A3.

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