Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

  • Membros Pro
Postado

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

  • Consultores
Postado

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 / Araraquara-SP

Araraquara - A era dos Trólebus

  • Membros Pro
Postado

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

  • Moderadores
Postado

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
  • Consultores
Postado

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 / Araraquara-SP

Araraquara - A era dos Trólebus

  • Membros Pro
Postado (editado)

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
  • Membros Pro
Postado (editado)

Não sei , serio,

 

envio com este codigo  (NFC-e)

 

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

 

 

qual o melhor para NFC-e  sincrono ou assincrono

Editado por hetoandrade
  • Membros Pro
Postado

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;
  • Membros Pro
Postado

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)
  • Membros Pro
Postado

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 ?

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