Ir para conteúdo
  • Cadastre-se

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

Recommended Posts

Postado

Ola pessoal Boa tarde, como faço para obter o retorno da carta de correção apos o comando:

ACBrNFe.EnviarCartaCorrecao(CodigoLote);

Andei dado uma olhada mas não consegui obter o retorno, se foi OK ou não, alguém sabe como fazer ?

desde já gradeço.

Thiago Balbino

Analista de Sistemas Programador

email: [email protected]

Muriaé - MG

 

Postado

Ola,

Isso tem a ver com o horario de verão, verifique se o pc ainda

esta no horario de verão.

Outro detalhe, voce esta informando valor de impostos na carta de

correção, o que me parece que não é permitido, de uma olhado no manual

da carta de correção.

Até ..

Postado

Boa tarde Walter,

não sei se vc já conseguiu, mas aqui mesmo no fórum vi esta dica, ainda não testei, mas segue a mesma:

altere a linha - decrescendo de 5 minutos a hora atual -

infEvento.dhEvento := IncMinute(now,-5);

Aproveitando a deixa, algum amigo sabe me informar como obter pelo ACBR o nº do protocolo da CCe?

Att.

"Não me envergonho de mudar de opinião, porque não me envergonho de pensar" (Blaise Pascal)

Postado

Galera desculpa ae, acho que encontrei.

ACBrNFe.webServices.CartaCorrecao.cStat

onde cStat = 100 - Autorizado

Confirma ?

Esse seria o retorno do lote.

Para o retorno do evento (CCe):

AcbrNFe.WebServices.CartaCorrecao.CCeRetorno.retEvento.Items.RetInfEvento.cStat

cStat = 135 que eh autorizado

Jeanny Paiva Lopes

Analista de Sistemas / Desenvolvedora 

[email protected]

[email protected]
Tel.: +55 (32) 3539-5700

 

 

Postado

Encontrei, a forma de obter o nº do Protocolo, aproveitando a informação prestada pelo amigo Nellien, testei e encontrei:

AcbrNFe1.WebServices.CartaCorrecao.CCeRetorno.retEvento.Items.RetInfEvento.nProt

"Não me envergonho de mudar de opinião, porque não me envergonho de pensar" (Blaise Pascal)

  • 5 semanas depois ...
Postado

Foi feito o tratamento do retorno da cc-e?

Por que por exemplo aqui comigo enviei uma carta e o motivo no XML era "CNPJ do autor da mensagem difere do CNPJ do certificado" e deu que foi enviado com sucesso e não me retornou esse erro.

Alguém poderia confirmar para mim. Obrigado.

  • 2 meses depois ...
Postado

Olá,

Estou tendo um problema.

O sistema estava trasmitindo as CCes normalmente e recebendo o retorno sem problemas,

mas agora o protocolo no retorno da carta de correção está vindo vazio.

Se eu consultar a carta de correção no site da fazenda eu encontro ela normal.

O código que estou usando para pegar o número de protocolo é

protocolo := AcbrNFe1.WebServices.CartaCorrecao.CCeRetorno.retEvento.Items[0].RetInfEvento.nProt;

Mudou alguma coisa?

Thiago Fonseca Lima

Programador Delphi e Java

Postado

O código que estou utilizando para o envio e recebimento é o seguinte:

ACBrNFe1.Evento.Eventos.Evento.Clear;

ACBrNFe1.Evento.Eventos.idLote := 1 ; //Não faz diferença pro webservice

with ACBrNFe1.Evento.Eventos.Evento.Add do

begin

  strId := 'ID'+Trim(Querys.Query.FieldByName('CODEVENTO').AsString)+Trim(Querys.Query.FieldByName('CHAVE_NFE').AsString)+StrZero(Querys.Query.FieldByName('SEQUENCIAL').AsInteger,2);

  seq := Querys.Query.FieldByName('SEQUENCIAL').AsInteger;

  infEvento.chNFe := Querys.Query.FieldByName('CHAVE_NFE').AsString;

  infEvento.CNPJ   := Querys.Query.FieldByName('CNPJ').AsString;

  infEvento.dhEvento := now;

  infEvento.tpEvento := teCCe;

  infEvento.nSeqEvento := Querys.Query.FieldByName('SEQUENCIAL').AsInteger;

  infEvento.detEvento.xCorrecao := Troca_String(Querys.Query.FieldByName('CORRECAO').AsString,[#13#10],[' ']); //Texto da correção

end;

Querys.Query.Active := False;

if ACBrNFe1.EnviarEvento(1)

then begin

  if Pos('REJEICAO:',AnsiUpperCase(String(AcbrNFe1.WebServices.Eventos.EventoRetorno.retEvento.Items[0].RetInfEvento.xMotivo))) <> 0

  then begin

    Querys.Query.Active := False;

    Querys.Query.RequestLive := false;

    Querys.Query.SQL.Clear;

    Querys.Query.SQL.Add('UPDATE CARTAS_CORRECAO SET ID = :ID, DATA = :DATA, HORA = :HORA, MOTIVO_REJEITADA = :MOTIVO_REJEITADA, STATUS = ''R''');

    Querys.Query.SQL.Add('WHERE EMPRESA = :EMPRESA AND NUMERO = :NUMERO AND SERIE = :SERIE AND SEQUENCIAL = :SEQUENCIAL');

    with AcbrNFe1.WebServices.Eventos.EventoRetorno.retEvento.Items[0]

    do begin

      Querys.Query.ParamByName('ID').AsString := strId;

      Querys.Query.ParamByName('DATA').AsDate := StrToDate(FormatDateTime('dd/mm/yyyy', RetInfEvento.dhRegEvento));

      Querys.Query.ParamByName('HORA').AsTime := StrToTime(FormatDateTime('hh:nn:ss', RetInfEvento.dhRegEvento));

      Querys.Query.ParamByName('MOTIVO_REJEITADA').AsString := RetInfEvento.xMotivo;

      strMotivo := RetInfEvento.xMotivo;

      nomeArquivo := caminho_xml+'\CCe-'+RetInfEvento.chNFe+'-Rejeitada-'+FormatDateTime('dd_mm_yyyy__hh_nn_ss', RetInfEvento.dhRegEvento)+'.xml'

    end;

    Querys.Query.ParamByName('EMPRESA').AsString := vEmpresa;

    Querys.Query.ParamByName('NUMERO').AsString := vNumero;

    Querys.Query.ParamByName('SERIE').AsString := vSerie;

    Querys.Query.ParamByName('SEQUENCIAL').AsInteger := seq;

    Querys.Query.ExecSQL;


    ShowMessage('CCe Rejeitada.'+#13#10+strMotivo);


    Result := False;

  end else begin

    Querys.Query.Active := False;

    Querys.Query.RequestLive := false;

    Querys.Query.SQL.Clear;

    Querys.Query.SQL.Add('UPDATE CARTAS_CORRECAO SET ID = :ID, DATA = :DATA, HORA = :HORA, PROTOCOLO = :PROTOCOLO, STATUS = ''T''');

    Querys.Query.SQL.Add('WHERE EMPRESA = :EMPRESA AND NUMERO = :NUMERO AND SERIE = :SERIE AND SEQUENCIAL = :SEQUENCIAL');

    with AcbrNFe1.WebServices.Eventos.EventoRetorno.retEvento.Items[0]

    do begin

      Querys.Query.ParamByName('ID').AsString := strId;

      Querys.Query.ParamByName('DATA').AsDate := StrToDate(FormatDateTime('dd/mm/yyyy', RetInfEvento.dhRegEvento));

      Querys.Query.ParamByName('HORA').AsTime := StrToTime(FormatDateTime('hh:nn:sss', RetInfEvento.dhRegEvento));

      Querys.Query.ParamByName('PROTOCOLO').AsString := RetInfEvento.nProt;


      nomeArquivo := caminho_xml+'\CCe-'+RetInfEvento.chNFe+'-'+RetInfEvento.nProt+'.xml'

    end;

    Querys.Query.ParamByName('EMPRESA').AsString := vEmpresa;

    Querys.Query.ParamByName('NUMERO').AsString := vNumero;

    Querys.Query.ParamByName('SERIE').AsString := vSerie;

    Querys.Query.ParamByName('SEQUENCIAL').AsInteger := seq;

    Querys.Query.ExecSQL;


    Querys.Query.Active := False;

    Querys.Query.RequestLive := false;

    Querys.Query.SQL.Clear;

    Querys.Query.SQL.Add('UPDATE CARTAS_CORRECAO SET STATUS = ''S''');

    Querys.Query.SQL.Add('WHERE EMPRESA = :EMPRESA AND NUMERO = :NUMERO AND SERIE = :SERIE AND SEQUENCIAL <> :SEQUENCIAL AND STATUS = ''T''');

    Querys.Query.ParamByName('EMPRESA').AsString := vEmpresa;

    Querys.Query.ParamByName('NUMERO').AsString := vNumero;

    Querys.Query.ParamByName('SERIE').AsString := vSerie;

    Querys.Query.ParamByName('SEQUENCIAL').AsInteger := seq;

    Querys.Query.ExecSQL;

    Result := True;

  end;

end;

Thiago Fonseca Lima

Programador Delphi e Java

Postado

Faça a consulta da NFe que ela retorna os eventos associados.

Mesmo na consulta não está retornando o número do protocolo. Traz todos os dados menos o bendito protocolo.

Thiago Fonseca Lima

Programador Delphi e Java

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