Ir para conteúdo
  • Cadastre-se

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

Recommended Posts

Postado

Boa tarde estou com dificuldade em obter os dados vinculados no evento de inclusão nf, nao sei o que estou fazendo de erado,

nesse trecho sempre esta vazio > procEventoMDFe.Items[I].RetEventoMDFe.infEvento.DetEvento.infDoc.Count

 

 

  FACBrMDFe.WebServices.Consulta.MDFeChave := FMDfeModel.ChvMdfe;
  FACBrMDFe.WebServices.Consulta.Executar;

 with FACBrMDFe.WebServices.Consulta do
  begin
    for I := 0 to pred(procEventoMDfe.Count) do
    begin
      if (procEventoMDFe.Items[I].RetEventoMDFe.InfEvento.tpEvento = teInclusaoDFe) and
        (procEventoMDFe.Items[I].RetEventoMDFe.InfEvento.nSeqEvento >= ASequencia) then
      begin
       try
          LModel := TMdfeEventosModel.Create();
          LMdfeNfeModel := TMdfeNfeModel.Create();

          LModel.CarregarProtocolo(procEventoMDFe.Items[I].RetEventoMDFe.retEvento.Items[0].RetInfEvento.nProt);
          LModel.MdfeId := FMDfeModel.Id;
          LModel.CodigoOperacao := IntToStr(ALote);
          LModel.MdfeDescricaoOperacao := 'Inclusão de DF-e';
          LModel.Status := procEventoMDFe.Items[I].RetEventoMDFe.retEvento.Items[0].RetInfEvento.cStat;
          LModel.HistoricoOperacao := procEventoMDFe.Items[I].RetEventoMDFe.retEvento.Items[0].RetInfEvento.xMotivo;
          LModel.Protocolo := procEventoMDFe.Items[I].RetEventoMDFe.retEvento.Items[0].RetInfEvento.nProt;
          LModel.DataHoraOperacao := procEventoMDFe.Items[I].RetEventoMDFe.retEvento.Items[0].RetInfEvento.dhRegEvento;
          LModel.Sequencia := procEventoMDFe.Items[I].RetEventoMDFe.retEvento.Items[0].RetInfEvento.nSeqEvento;
          LModel.Persiste();

          for J := 0 to pred(procEventoMDFe.Items[I].RetEventoMDFe.infEvento.DetEvento.infDoc.Count) do
          begin
            LMdfeNfeModel.CarregarEvento(LModel.Id);
            LMdfeNfeModel.NumMdfe := FMDfeModel.NumMdfe;
            LMdfeNfeModel.SerieMdfe := FMDfeModel.SerieMdfe;
            LMdfeNfeModel.Codcidade := FMDfeModel.CodMunCarrega;
            LMdfeNfeModel.Cidade := TCidadesDAO.GetDado('Cidade', FMDfeModel.CodMunCarrega);
            LMdfeNfeModel.CodigoCidadeCarrega := FMDfeModel.CodMunCarrega;
            LMdfeNfeModel.CodigoCidadeDescarrega := procEventoMDFe.Items[I].RetEventoMDFe.infEvento.DetEvento.infDoc.Items[J].cMunDescarga;
            LMdfeNfeModel.CidadeDescarrega := procEventoMDFe.Items[I].RetEventoMDFe.infEvento.DetEvento.infDoc.Items[J].xMunDescarga;
            LMdfeNfeModel.ChvNfe := procEventoMDFe.Items[I].RetEventoMDFe.infEvento.DetEvento.infDoc.Items[J].chNFe;
            LMdfeNfeModel.MdfeEventId := LModel.Id;
            LMdfeNfeModel.Persiste();
          end;
          ASequencia := procEventoMDFe.Items[I].RetEventoMDFe.InfEvento.nSeqEvento;
        finally
          FreeAndNil(LModel);
          FreeAndNil(LMdfeNfeModel);
        end;
      end;
    end;

Postado (editado)

Ha Resolvi o problema desa forma 

FACBrMDFe.WebServices.Consulta.MDFeChave := FMDfeModel.ChvMdfe;
  FACBrMDFe.WebServices.Consulta.Executar;
  ACBrUtil.WriteToTXT(SysTempDir + 'temp.xml', ACBrUtil.ConverteXMLtoUTF8(FACBrMDFe.WebServices.Consulta.RetornoWS), False, False);

  LXMLDocument.LoadFromFile(SysTempDir + 'temp.xml');
  Self.PercorrerXML(LXMLDocument.DocumentElement);

 

procedure TForm1.PercorrerXML(const AXMLDocument: IXMLNode);
var
  LIndexPrincipal, LIndexProcEventoMDFe, LIndexEventoMDFe: Integer;
  LNodeProcEvento, LNodeEventoMDFe, LNode: IXMLNode;
  LNodeNameProcEventoMDFe, LNodeName: String;
begin
  if AXMLDocument <> nil then
  begin
    if AXMLDocument.HasChildNodes then
      for LIndexPrincipal := 0 to Pred(AXMLDocument.ChildNodes.Count) do
      begin
        LNodeNameProcEventoMDFe := AXMLDocument.ChildNodes[LIndexPrincipal].NodeName;
        if 'procEventoMDFe' = LNodeNameProcEventoMDFe then
        begin
          LNodeProcEvento := AXMLDocument.ChildNodes[LIndexPrincipal];
          LNode := GetNodeXML(LNodeProcEvento, 'retEventoMDFe');
          Self.PersistDadosRetornoEvento(LNode);
          LNode := GetNodeXML(LNodeProcEvento, 'eventoMDFe');
          LNode := GetNodeXML(LNode, 'infEvento');
          Self.PersistDetEvento(LNode);
        end;
        Self.PercorrerXML(AXMLDocument.ChildNodes[LIndexPrincipal]);
      end;
  end;
end;

Editado por Carlos.Batista
  • Consultores
Postado

Veja houve confusão aqui. ele está falando de NFC-e e tu postou de MDFe

Movi para um local correto e dividi

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
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 !!

Postado
Em 26/11/2020 at 18:51, Juliomar Marchetti disse:

Veja houve confusão aqui. ele está falando de NFC-e e tu postou de MDFe

Movi para um local correto e dividi

OK obrigado, não tinha reparado 👍

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