Ir para conteúdo
  • Cadastre-se

dev botao

Retorno em consulta de Nfe destinadas.


Ver Solução Respondido por raosistemas,
  • Este tópico foi criado há 636 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado
     j := acbrnfe1.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 := ' ';

       if acbrnfe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resDFe.chDFe <> ''
        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.

         sChave := acbrnfe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resdFe.chdFe;

         sSerie  := Copy(sChave, 23, 3);
         sNumero := Copy(sChave, 26, 9);
         sCNPJ := acbrnfe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resdFe.CNPJCPF;
         sNome := acbrnfe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resdFe.xNome;
         sIEst := acbrnfe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resdFe.IE;
         case acbrnfe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resdFe.tpNF of
          tnEntrada: sTipoNFe := 'E';
          tnSaida:   sTipoNFe := 'S';
         end;
         sNSU  := acbrnfe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].NSU;
         sEmissao := DateToStr(acbrnfe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resdFe.dhEmi);
         Valor := acbrnfe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resdFe.vNF;

         case acbrnfe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resdFe.cSitdFe of
          snAutorizado: Impresso := 'A';
          snDenegado:   Impresso := 'D';
          snCancelado:  Impresso := 'C';
         end;
        end;

        memoresp.lines.Add('Chave.........: '+schave+chr(13)+
                           'Numero........: '+snumero+chr(13)+
                           'CNPJ..........: '+scnpj+chr(13)+
                           'Razão.........: '+snome+chr(13)+
                           'Insc.Est......: '+siest+chr(13)+
                           'E/S...........: '+stiponfe+chr(13)+
                           'NSU...........: '+snsu+chr(13)+
                           'Emissão.......: '+semissao+chr(13)+
                           'Valor.........: R$ '+formatfloat('###,###,##0.00',valor)+chr(13)+
                           'Status........: '+impresso+chr(13)

        )

Estou realizando essa consulta por enquanto... estou colocando nsu = 0 pra fazer um teste ok?

e está retornando essa lista, porém alguns registros estão vindo em branco...

dessa forma, não entendi o pq.

Nesse caso os NSUs, 2041,2042,2043,2044,2045 e 2046 retornaram em branco, voltando a preencher no 2047.


 

Chave.........: 35200102369933000186550010001652441367536740
Numero........: 000165244
CNPJ..........: 02369933000186
Razão.........: ACP COMERCIO ATACADISTA DE COMPONENTES ELETRONICOS LTDA
Insc.Est......: 115416004118
E/S...........: S
NSU...........: 000000000002039
Emissão.......: 16/01/2020
Valor.........: R$ 729,75
Status........: A

Chave.........: 35200102658605000108550010001143971277121267
Numero........: 000114397
CNPJ..........: 02658605000108
Razão.........: DISPLAY MAX ELETRONICA LTDA
Insc.Est......: 115199680115
E/S...........: S
NSU...........: 000000000002040
Emissão.......: 16/01/2020
Valor.........: R$ 1.216,97
Status........: A

Chave.........: 35200102658605000108550010001143971277121267
Numero........:
CNPJ..........:
Razão.........:
Insc.Est......:
E/S...........:
NSU...........:
Emissão.......:
Valor.........: R$ 0,00
Status........:  

Chave.........: 35200102658605000108550010001143971277121267
Numero........:
CNPJ..........:
Razão.........:
Insc.Est......:
E/S...........:
NSU...........:
Emissão.......:
Valor.........: R$ 0,00
Status........: 

 

  • Moderadores
Postado

Os "em branco" podem ser eventos e não notas.

Você pode testar o tipo de documento retornado acessando a propriedade schema:

case ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[0].schema of
  schresNFe: ; // resumo de nfe
  schresEvento: ; // resumo de evento
  schprocNFe: ; // nfe completa
  schprocEventoNFe: ; // evento 
end;
  • Curtir 2
Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Postado
39 minutos atrás, BigWings disse:

Os "em branco" podem ser eventos e não notas.

Você pode testar o tipo de documento retornado acessando a propriedade schema:


case ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[0].schema of
  schresNFe: ; // resumo de nfe
  schresEvento: ; // resumo de evento
  schprocNFe: ; // nfe completa
  schprocEventoNFe: ; // evento 
end;

aparentemente, usei todos os tipos possíveis, mesmo assim retorna da mesma forma.

         case ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[0].schema of
            schresEvento:      stipodoc  := 'Resumo de Evento'; // resumo de evento
            schresNFe:         stipodoc  := 'Resumo NF-e';      // resumo de nfe
            schprocNFe:        stipodoc  := 'Nf-e Completa';    // nfe completa
            schprocEventoNFe:  stipodoc  := 'Evento NF-e';      // evento
            schresCTe:         stipodoc  := 'Resumo CT-e';      // resumo CTE
            schprocCTe:        stipodoc  := 'CT-e Completa';    // CT-e Completa
            schprocCTeOS:      stipodoc  := 'CT-e OS Completa'; // cteos completa
            schprocEventoCTe:  stipodoc  := 'Evento CT-e';      // evento
            schprocMDFe:       stipodoc  := 'MDF-e Completa';   // Manifesto completo
            schresMDFe:        stipodoc  := 'Resumo MDF-e';     // resumo do mdfe
            schprocEventoMDFe: stipodoc  := 'Evento MDF-e';     // evento
            schresBPe:         stipodoc  := 'Resumo BP-e';      // resumo bilhete de passagem
            schprocBPe:        stipodoc  := 'BP-e Completo';    // bilhete de passagem eletronico
            schprocEventoBPe:  stipodoc  := 'Evento BP-e';      // evento de bilhete de passagem
         end;

 

e estou mostrando essa variavel stipodoc no meu memo também... mas aparece em branco.

schema="procEventoNFe_v1.00.xsd esse é o evento das que não aparecem.

  • Moderadores
Postado
36 minutos atrás, raosistemas disse:

schema="procEventoNFe_v1.00.xsd esse é o evento das que não aparecem.

Devia cair no schprocEventoNFe.

Consegue ver pelo debug qual schema está carregando?

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Postado

configurei o path do download no ACBRNFE, mas como vem tudo o sistema não distingue o tipo de xml, posso fazer alguma coisa antes de tentar carregar o xml, por ex, se eu tentar carregar um xml de evento dá "ARGUMENT OUT OF RANGE", mesmo dentro de um bloco try... except...

quando carrego um xml vai normal.

como consigo testar o xml antes?

  • Moderadores
Postado
14 minutos atrás, raosistemas disse:

configurei o path do download no ACBRNFE, mas como vem tudo o sistema não distingue o tipo de xml, posso fazer alguma coisa antes de tentar carregar o xml, por ex, se eu tentar carregar um xml de evento dá "ARGUMENT OUT OF RANGE", mesmo dentro de um bloco try... except...

Provavelmente tem algo errado no código e está tentando acessar um item que não existe.

Se estiver usando for..do aninhados verifique as variáveis de controle.

16 minutos atrás, raosistemas disse:

quando carrego um xml vai normal.

como consigo testar o xml antes?

Não entendi essa parte.

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Postado

Voltando ao assunto @BigWings, a questão é que o meu sistema faz uma varredura na pasta downloads (documentos baixados automaticamente pelo acbnfe1) e quando não é nfe dá o erro acima.

a procedure de leitura do arquivo é a seguinte:

begin
   try
    ACBrNFe1.NotasFiscais.Clear;
    ACBrNFe1.NotasFiscais.Add;
    NFeRTXT := TNFeRTXT.Create(ACBrNFe1.NotasFiscais.Items[0].NFe);
    NFeRTXT.CarregarArquivo(arquivo);
    if NFeRTXT.LerTxt then
       NFeRTXT.Free
    else
    begin
       NFeRTXT.Free;
       ACBrNFe1.NotasFiscais.Clear;
       try
          ACBrNFe1.NotasFiscais.LoadFromFile(arquivo);
          StatusBar1.Panels[2].text:='Arquivo NFe Carregado!!!';
       except
          showmessage('1');
          StatusBar1.Panels[2].text:='Arquivo NFe Inválido';
          label_aviso.Caption:='Inválido';
          exit;
       end;
    end;
   except
          StatusBar1.Panels[2].text:='Arquivo NFe Inválido';
          label_aviso.Caption:='Inválido';
          exit;
   end;

erro ocorre na função carregar arquivo!

  • Moderadores
Postado
2 minutos atrás, raosistemas disse:

Voltando ao assunto @BigWings, a questão é que o meu sistema faz uma varredura na pasta downloads (documentos baixados automaticamente pelo acbnfe1) e quando não é nfe dá o erro acima.

Que saiba o ACBrNFe pelo método DistribuicaoDFe não salva os arquivos em TXT.

Isso me parece outro assunto, talvez você deva abrir outro tópico.

Eu não trabalho nem tenho conhecimento do formato em TXT.

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

  • Solution
Postado
12 minutos atrás, BigWings disse:

Que saiba o ACBrNFe pelo método DistribuicaoDFe não salva os arquivos em TXT.

Isso me parece outro assunto, talvez você deva abrir outro tópico.

Eu não trabalho nem tenho conhecimento do formato em TXT.

Consegui aqui, o esquema era o seguinte... na importacao de arquivos do proprio demo... ele tenta ler o txt e depois o xml... mas já contornei aqui, obrigado.

no download automatico dos DFes tem como eu selecionar só arquivos de nota para baixar?

  • Moderadores
Postado
40 minutos atrás, raosistemas disse:

Consegui aqui, o esquema era o seguinte... na importacao de arquivos do proprio demo... ele tenta ler o txt e depois o xml... mas já contornei aqui, obrigado.

no download automatico dos DFes tem como eu selecionar só arquivos de nota para baixar?

Não, mas você pode desativar a gravação automática pelo componente e salvar manualmente de acordo com o schema.

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Postado

Oi @BigWings, pode me mostrar como fazer isso? existe um método para testar o schema ou faço pelo fim do nome do arquivo? e como salvo manualmente?

Agora, raosistemas disse:

Oi @BigWings, pode me mostrar como fazer isso? existe um método para testar o schema ou faço pelo fim do nome do arquivo? e como salvo manualmente?

Desculpe, já vi como testar, só preciso saber como salvar... muito obrigado.

  • 3 anos depois...
Postado

tenho um arquivo baixado como  no exemplo abaixo, porem nao consigo extrair as NF's na TAG criptografadas, alguem pode me ajudar por favor, obrigado.

mceclip1.png

  • Consultores
Postado

Veja no programa de exemplo como ler um XML, no botão Distribuição por último NSU.

Caso tenha novas dúvidas, favor abrir um novo tópico, fechando este e o outro antigos com a mesma dúvida.

3.1 - Não faça flooding - Inundar o fórum com posts repetidos, com a mesma dúvida ou as mesmas palavras é chamado de flooding. Isso é proibido. Apenas um post feito no lugar certo é suficiente. Pesquise antes de postar, talvez sua dúvida já está respondida em outro post. Favor leia as regras do fórum.

 

  • Curtir 1
  • Este tópico foi criado há 636 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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...