Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

  • Membros Pro

Enviei este comando

Form_NFe.ACBrNFe1.Enviar(vNumLote,False,True);

 

 

e reu erro de retorno da sefaz,

ai tentei enviar de novo

Form_NFe.ACBrNFe1.Enviar(vNumLote,False,True);

 

deu esta massagem

(imagem )

 

 

como faço para pegar este chave e este protocolo. ?

 

obrigado pela atenção.

post-4970-0-87957000-1404745632_thumb.jp

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Heto Andrade,

 

Ao enviar pela primeira vez qual foi o erro?

 

Se não foi de rejeição, você não pode enviar novamente e sim carregar o XML assinado e não protocolado e realizar uma consulta para obter o protocolo de autorização.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Heto Andrade,

 

Normalmente o erro 999 é falha no Web Service.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Resumindo...

quando mando

Form_NFe.ACBrNFe1.Enviar(vNumLote,False,True);

e recebo a massagem erro: 539 (imagem)

 

tem como pega a chavedeacesso e o protocolo

com algum comando ex:

 

    ShowMessage(ACBrNFe1.WebServices.Consulta.Protocolo);
    MemoResp.Lines.Text := UTF8Encode(ACBrNFe1.WebServices.Consulta.RetWS);
    memoRespWS.Lines.Text := UTF8Encode(ACBrNFe1.WebServices.Consulta.RetornoWS);

 

 

eu tive que pega a string da massagem

e copiar chave e o protocolo com

copy( messagem, 94,44 ) e copy( messagem,142,15 )

post-4970-0-17863900-1405103157_thumb.jp

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Quando você envia e da erro no SEFAZ, você deve consultar a situação da nota depois de um tempo para verificar se ela foi autorizada ou não.

Se foi ele retorna os dados de protocolo, etc, etc

 

Se você tenta enviar novamente ele mostra a mensagem de duplicidade, se você mudar alguma coisa na chave de acesso, ele mostra o erro de duplicidade com diferença na chave de acesso, esse erro geralmente acontece porque você mudou o cNF.

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
Link para o comentário
Compartilhar em outros sites

  • Moderadores

Veja várias situações, desde uma simples movimentação do cursor até mesmo um refresh nos dados ao gerar a nf-e e assim pega os dados de outra nota o seu sistema!

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Heto Andrade,

 

     ACBrNFe.Enviar(Lote);
 
     sRecibo   := ACBrNFe.WebServices.Enviar.Recibo;
 
     ACBrNFe.WebServices.Retorno.Recibo := sRecibo;
     if ACBrNFe.WebServices.Retorno.Executar
      then begin
       for i := 0 to (ACBrNFe.WebServices.Retorno.NFeRetorno.ProtNFe.Count - 1) do
        begin
         sDataHora     := DateTimeToStr(ACBrNFe.WebServices.Retorno.NFeRetorno.ProtNFe.Items.dhRecbto);
         sProtocolo    := ACBrNFe.WebServices.Retorno.NFeRetorno.ProtNFe.Items.nProt;
         sStat         := IntToStr(ACBrNFe.WebServices.Retorno.NFeRetorno.ProtNFe.Items.cStat);
         sMotivo       := ACBrNFe.WebServices.Retorno.NFeRetorno.ProtNFe.Items.xMotivo;
         sChave   := ACBrNFe.WebServices.Retorno.NFeRetorno.ProtNFe.Items.chNFe;
 
        // Atualizar o banco de dados 
 
       end;
     end;
 

Espero ter ajudado.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

A variável sRecibo, Ta retornando ''  nada, o que deve ser ?

 

 

var

sRecibo : string;

--------------------------

 

     Form_NFe.ACBrNFe1.Enviar(vNumLote,False,True);
 
     sRecibo   := Form_NFe.ACBrNFe1.WebServices.Enviar.Recibo;
Editado por hetoandrade
Link para o comentário
Compartilhar em outros sites

  • Membros Pro

resumindo nao vou pode usar esta função, que pena.

 

 

     sRecibo   := ACBrNFe.WebServices.Enviar.Recibo;

 
     ACBrNFe.WebServices.Retorno.Recibo := sRecibo;
     if ACBrNFe.WebServices.Retorno.Executar
      then begin

       for i := 0 to (ACBrNFe.WebServices.Retorno.NFeRetorno.ProtNFe.Count - 1) do
        begin
         sDataHora     := DateTimeToStr(ACBrNFe.WebServices.Retorno.NFeRetorno.ProtNFe.Items.dhRecbto);
         sProtocolo    := ACBrNFe.WebServices.Retorno.NFeRetorno.ProtNFe.Items.nProt;
         sStat         := IntToStr(ACBrNFe.WebServices.Retorno.NFeRetorno.ProtNFe.Items.cStat);
         sMotivo       := ACBrNFe.WebServices.Retorno.NFeRetorno.ProtNFe.Items.xMotivo;
         sChave   := ACBrNFe.WebServices.Retorno.NFeRetorno.ProtNFe.Items.chNFe;
 
        // Atualizar o banco de dados 
 
       end;
     end;
Link para o comentário
Compartilhar em outros sites

  • Membros Pro

quando

Form_NFe.ACBrNFe1.Enviar(vNumLote,False,True);

e recebo a massagem erro: 539 (imagem)

duplicamento

 

preciso saber que a nfc-e que ta na sefaz é o mesmo, cupom que to tentando enivar

entao , pego a chavedeacesso da messagem (imagem)

 

eu tive que pega a string da massagem

e copiar chave e o protocolo com

 

 

                        msmChaveAcesso:='';
                        
                        if Form_NFe.ACBrNFe1.NotasFiscais.Items[0].NFe.procNFe.cStat=204 then
                        begin
                          msmChaveAcesso:= copy( Form_NFe.ACBrNFe1.NotasFiscais.Items[0].NFe.infNFe.ID, 4,44 );
                        end;


                        if Form_NFe.ACBrNFe1.NotasFiscais.Items[0].NFe.procNFe.cStat=539 then
                        begin
                          msmChaveAcesso:= SoNumeros( copy(Form_NFe.ACBrNFe1.NotasFiscais.Items[0].NFe.procNFe.xMotivo, 55, 45 ));
                          msmProtocolo:=   SoNumeros( copy(Form_NFe.ACBrNFe1.NotasFiscais.Items[0].NFe.procNFe.xMotivo, 104, 16 ));

                          if Length(msmChaveAcesso)<>44 then
                          begin
                            msmChaveAcesso:='';
                          end;
                        end;

 

 

 

 

ai faço a consulta ,

pra saber a data da nfc-e

para verifica se e a mesma data da nfc-e que to tentando enviar

 

pego assim

se for a mesma data, pego a chavedeacesso e protocoque da messagem,

e colo no bando de dados,

as vezes envio a sefaz nao retorna nada, quando tento enviar de novo da duplicamento.

 

 

                        duplicar:=2;

                        Form_NFe.memoLog.Clear;


                        //Form_NFe.ACBrNFe1.WebServices.Consulta.NFeChave := Form_NFe.ACBrNFe1.NotasFiscais.Items[0].NFe.procNFe.chNFe;

                        if msmChaveAcesso<>'' then
                        Form_NFe.ACBrNFe1.WebServices.Consulta.NFeChave := msmChaveAcesso else
                        Form_NFe.ACBrNFe1.WebServices.Consulta.NFeChave := ChaveOriginal;

                                        
                        Form_NFe.MudarParaNFeOuNFCe(0);
                        Form_NFe.ACBrNFe1.WebServices.Consulta.Executar;
                        Form_NFe.ACBrNFe1.NotasFiscais.Items[0].NFe.procNFe.cStat:=0;



function PegaLinhaDeUmMumu:string;
var
  i : integer;
  Linha: string;
begin

  Result:='';

  for i := 0 to Form_NFe.memoLog.Lines.Count - 1 do
  begin
    Linha:=Form_NFe.memoLog.Lines.Strings;

    if pos('Recebimento',Linha)<>0 then
    begin
      Result:=Copy(Linha,15,10);
      //ShowMessage(Result);
    end;


  end;

end;


                        if PegaLinhaDeUmMumu<>'' then
                        begin
                           try
                           dataduplicar:= StrToDate(PegaLinhaDeUmMumu);


                                //DataProtocolo nao pode ser menor que a data do cupom
                                if  dataduplicar >= StrToDate(cupomData) then
                                begin

                                    //cupom iqual
                                    duplicar:=1;
                                    vresChaveAcesso  :=  Form_NFe.ACBrNFe1.WebServices.Consulta.NFeChave;
                                    vresProtocolo    :=  Form_NFe.ACBrNFe1.WebServices.Consulta.Protocolo;

                                end else
                                duplicar:=3; //1
                                

                           except
                              duplicar:=2; //1
                           end;
                        end else
                        duplicar:=2;   //1
                        //novo se for iqual nao duplicar   0=sim   1=nao

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Imagem(ns) anexada(s)
Link para o comentário
Compartilhar em outros sites

  • Moderadores

Vamos fazer diferente, me passe o que precisa fazer, deixe eu entender o que precisa para tentar lhe ajudar.

 

Me passe o problema e o que está tentando fazer para resolver, não em linguagem de programação, mas sua ideia, passo-a-passo.

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Blz, 

em vez em quando a sefaz ta com problema,

ai quando eu envio nao retorna nada erro 999

blz, mudo o xml para modo offline e imprimo o cupom para o cliente,

depois tento enviar de novo so que da erro de duplicamento,

que dizer, a primeira vez que enviei ja gravou na sefaz e a sefaz nao min retornou nada,

 

quando tento enviar de novo da erro de duplicameto,

entao pra saber se é duplicamento de verdade ou é o mesmo nfc-e ,.

pego a messegem que deu , falando que tem duplicamento,

na messagem tem a chave e o protocolo da nfc-e que ta na sefaz,

 

pego a chave faço uma consulta , min retorno a data da nfc-e,

compara com a data do registro que to tentando enviar.

se for o mesmo dia,

pego a chave o protocolo e salvo no registro que to tentando enviar.

 

--------------------------

quando pego a messagem tenho que fazer uns copy

msmChaveAcesso:= SoNumeros( copy(Form_NFe.ACBrNFe1.NotasFiscais.Items[0].NFe.procNFe.xMotivo, 55, 45 ));
msmProtocolo:=   SoNumeros( copy(Form_NFe.ACBrNFe1.NotasFiscais.Items[0].NFe.procNFe.xMotivo, 104, 16 ));

 

existe uma opcao para pega esta chave e protocolo, sem precisar fazer isto ?

Link para o comentário
Compartilhar em outros sites

×
×
  • 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.