Prezados amigos bom dia!
Por favor uma ajuda:
A tempos que não tenho que utilizar a CC-e aqui na empresa, fiz as atualizações devidas quanto ao envio por evento mas:
Esta retornando o erro código: 573 - Duplicidade de evento (tpEvento + chNfe + nSeqEvento), acredito ser conforme, estive lendo em alguns post do amigo Régys, o número sequencial do evento, mas acontece que ao consultar a NFe na base da SEFAZ, consta o envio da correção.
NFe chave de acesso: 35130613378171000109550000000033171000033173
Que papagaida estou fazendo?
Agradeço pela atenção de todos.
Abraços.
José de Moura
Linhas do código:
...
NumeroLote := StrToInt(FormatDateTime('yymmddhhmm', NOW));
ACBrNFe1.EventoNFe.Evento.Clear;
ACBrNFe1.EventoNFe.idLote := NumeroLote;
with ACBrNFe1.EventoNFe.Evento.Add do begin
infEvento.chNFe := Chave;
infEvento.cOrgao := StrToInt(Copy(Chave,1,2));
infEvento.CNPJ := CNPJ;
infEvento.dhEvento := now;
infEvento.tpEvento := teCCe;
infEvento.nSeqEvento := StrToInt(nSeqEvento);
infEvento.versaoEvento := '1.00';
infEvento.detEvento.descEvento := 'Carta de Correção';
infEvento.detEvento.xCorrecao := Correcao;
infEvento.detEvento.xCondUso := ''; //Texto fixo conforme NT 2011.003 - http://www.nfe.fazenda.gov.br/portal
end;
ACBrNFe1.EnviarEventoNFe(StrToInt(idLote));
MemoResp.Lines.Text := UTF8Encode(ACBrNFe1.WebServices.EnvEvento.RetWS);
LoadXML(MemoResp, WBResposta);
if ACBrNFe1.EnviarEventoNFe(NumeroLote) then begin
with ACBrNFe1.WebServices.EnvEvento do begin
if not(EventoRetorno.retEvento.Items[0].RetInfEvento.cStat in [135, 136]) then begin
raise EDatabaseError.CreateFmt(
'Ocorreu o seguinte erro ao enviar a carta de correção:' + sLineBreak +
'Código:%d' + sLineBreak +
'Motivo: %s', [
EventoRetorno.retEvento.Items[0].RetInfEvento.cStat,
EventoRetorno.retEvento.Items[0].RetInfEvento.xMotivo
]);
end;
// retornos
DataHoraEvento := EventoRetorno.retEvento.Items[0].RetInfEvento.dhRegEvento;
NumeroProtocolo := EventoRetorno.retEvento.Items[0].RetInfEvento.nProt;
XMLCCe := EventoRetorno.retEvento.Items[0].RetInfEvento.XML;
CodigoStatus := EventoRetorno.retEvento.Items[0].RetInfEvento.cStat;
MotivoStatus := EventoRetorno.retEvento.Items[0].RetInfEvento.xMotivo;
end;
end else begin
with ACBrNFe1.WebServices.EnvEvento do begin
raise Exception.Create(
'Ocorreram erros ao enviar a Carta de Correção:' + sLineBreak +
'Lote: ' + IntToStr(EventoRetorno.idLote) + sLineBreak +
'Ambiente: ' + TpAmbToStr(EventoRetorno.tpAmb) + sLineBreak +
'Orgao: ' + IntToStr(EventoRetorno.cOrgao) + sLineBreak +
sLineBreak +
'Status: ' + IntToStr(EventoRetorno.cStat) + sLineBreak +
'Motivo: ' + EventoRetorno.xMotivo
);
end;
end;