Ir para conteúdo
  • Cadastre-se

dev botao

Consulta de lotes de Nf-es (diretorio)


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

Recommended Posts

Bons dias amigos.

Gostaria de que, se alguem já teve esse problema, me desse alguma ideia.

Por motivos que não sei explicar, várias notas estão sendo arquivadas sem o devido numero de autorização (apesar de terem sido homologadas pela SEFAZ. (eu faço o backup para o servidor da empresa, tendo como origem a pasta contendo as notas AUTORIZADAS) .

Dessa forma, estou tentando fazer uma rotina de consulta de todas as notas já emitidas, a fim de sanar essa falha. Como é sabido, se nos consultarmos determinada nota CARREGANDO o XML (pelo demo do ACBRNFe ) no retorno recebemos o Xml com o numero de autorização e o problema fica resolvido. Mas eu so consigo fazer com cada nota, individualmente. Tentei utilizar a rotina que se segue, ela consulta na SEFAZ, um diretorio completo, porem os XMLs continuam sem o numero de autorizalção.

Fico aguardando alguma sugestao, muito obrigado pessoal.

No form == 01 buttom e 01 FileListBox (da paleta Win31 );

01 WebBrowser (paleta internet - WBResposta ) e dois memos

(memoResp e MemoRespWS ) .

Utilizo Delphi 7.

procedure TForm1.Button1Click(Sender: TObject);

var

I: Integer;

S: string;

begin

S := '';

For i := 0 to FileListBox1.Items.Count - 1 do

begin

S := S + FileListBox1.Items ; // + #13 + #10 ; // uma lista separada por enter e linha

// ShowMessage (S);

if Copy (S, 45, 8) = '-nfe.xml' then // a chave tem 44 digitos

begin

ACBRNfe1.Configuracoes.Certificados.NumeroSerie := 'Numero do Certificado'; // substituir pelo Hexa do certificado obtido no IExplorer

ACBrNFe1.NotasFiscais.Clear;

ACBrNFe1.NotasFiscais.LoadFromFile(S);

ACBrNFe1.Consultar;

// ShowMessage(ACBrNFe1.WebServices.Consulta.Protocolo);

MemoResp.Lines.Text := UTF8Encode(ACBrNFe1.WebServices.Consulta.RetWS);

memoRespWS.Lines.Text := UTF8Encode(ACBrNFe1.WebServices.Consulta.RetornoWS);

LoadXML(MemoResp, WBResposta);

S := ''

end;

end;

end;

Link para o comentário
Compartilhar em outros sites

Ola a todos, boas tardes.

Somente para que possa servir a alguem mais que possa ter tido o mesmo problema que eu tive , vou postar aqui o codigo que funciona , sendo que é praticamente o que postei anteriormente com apenas uma pequena correção.

Agora, posso consultar qualquer quantidade de notas, que elas ficam atualizadas (no XML ).. Se alguem conseguir colocar uma progressbar por favor, editem o codigo e postem de novo, pois a rotina ficou um pouco lenta e somente no final dela é que o usuário sabe que terminou.

No mesmo diretorio do projeto deverão ser colocadas as notas a serem consultadas . (desculpem a observação mas sempre suponho que algum newbie - assim como eu sou -- vai ler meu tópico ( rs rs ).

Não esquecer de editar o numero do certificado digital (válido)..

Testei com duzentas Nf-e e o tempo de espera foi de aproximadamente dois minutos.

Codigos :

procedure TForm1.Button1Click(Sender: TObject);

var

I : Integer;

S : string;

begin

S := '';

ShowMessage (InttoStr (FileListBox1.Items.Count));

For i := 0 to FileListBox1.Items.Count -1 do

begin

S := S + FileListBox1.Items ;

if Copy (S, 45, 8) = '-nfe.xml' then // chave tem 44 digitos

begin

ACBRNfe1.Configuracoes.Certificados.NumeroSerie := 'NumerodoCertificadoDigital';

ACBrNFe1.NotasFiscais.Clear;

ACBrNFe1.NotasFiscais.LoadFromFile(S);

ACBrNFe1.Consultar;

MemoResp.Lines.Text := UTF8Encode(ACBrNFe1.WebServices.Consulta.RetWS);

memoRespWS.Lines.Text := UTF8Encode(ACBrNFe1.WebServices.Consulta.RetornoWS);

LoadXML(MemoResp, WBResposta);

Label1.Caption := 'Nota Nr. '+ S + ' consultada.' ;

end;

S := '';

Application.ProcessMessages;

end;

ShowMessage ('Todas as notas foram consultadas');

end;

Se alguem quiser o codigo em arquivo .rar por favor me diz como faço para posta-lo neste forum (nem sei se é possivel ).

Link para o comentário
Compartilhar em outros sites

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