Ir para conteúdo
  • Cadastre-se

dev botao

Sugestão De Modificação Cce Acbr / Eventos


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

Recommended Posts

Pessoal;
 
Já alguns dias tenho notado que os retornos das CCe estavam ficando com o numero de protocolo em branco, fui depurar um pouco o fonte e cheguei a conclusão de que as informações do protocolo e data de registro do evento não estão sendo preenchidas de acordo com o resultado.
 
Bem, resumindo, fiz uma pequena modificação na unit ACBrNFeWebServices, linha 3615;
 

 
...
           if FEvento.Evento.Items.InfEvento.chNFe = EventoRetorno.retEvento.Items[j].RetInfEvento.chNFe then begin
 
              { as proximas 3 linhas copian o resultado do processamento de arquivo de retorno para as propriedades originais que criaram os eventos}
              FEvento.Evento.Items.RetInfEvento.nProt       := EventoRetorno.retEvento.Items[j].RetInfEvento.nProt;           
              FEvento.Evento.Items.RetInfEvento.dhRegEvento := EventoRetorno.retEvento.Items[j].RetInfEvento.dhRegEvento;
              FEvento.Evento.Items.RetInfEvento.cStat       := EventoRetorno.retEvento.Items[j].RetInfEvento.cStat;
 
              wProc := TStringList.Create;
 
Apenas a titulo de exemplo, segue print de como ficou o pdf da cce;

post-6589-0-99699600-1363204978_thumb.pn

Link para o comentário
Compartilhar em outros sites

Olá, bom dia;

 

Claro;

 

Segue também uma classe genérica para fazer autorização dos eventos; (sugestões são bem vindas).

 

 


  TNotaFiscalEventosWebService = class(TObject)
  private
    FOnwer     : TACBrNfe;
    FSequencia : Integer;
    FEvento    : TNotaFiscalEventos;
    FChave     : String;
    FMotivo    : String;
    FCodigoUF  : Integer;
    FCNPJ      : String;

    FProtocolo : String;
    FData      : TDateTime;
  public
    constructor Create(AOwner : TACBrNfe);
    destructor  Destroy; override;

    property Sequencia : Integer            read FSequencia write FSequencia;
    property Evento    : TNotaFiscalEventos read FEvento    write FEvento;
    property Motivo    : String             read FMotivo    write FMotivo;
    property Chave     : String             read FChave     write FChave;
    property CNPJ      : String             read FCNPJ      write FCNPJ;
    property CodigoUF  : Integer            read FCodigoUF  write FCodigoUF;

    property Protocolo : String             read FProtocolo;
    property Data      : TDateTime          read FData;

    function Autorizar : Boolean;
  end;


{ TNotaFiscalEventosWebService }
constructor TNotaFiscalEventosWebService.Create(AOwner: TNotaFiscalWebService);
begin
  FOnwer := AOwner;
end;

destructor TNotaFiscalEventosWebService.Destroy;
begin
  inherited Destroy;
end;

function TNotaFiscalEventosWebService.Autorizar: Boolean;
var
  evEvento : TInfEventoCollectionItem;
begin
  FOnwer.EventoNFe.Evento.Clear;

  evEvento := FOnwer.EventoNFe.Evento.Add;

  evEvento.InfEvento.cOrgao     := FCodigoUF;
  evEvento.InfEvento.CNPJ       := FCNPJ;
  evEvento.InfEvento.tpAmb      := FOnwer.ACBr.Configuracoes.WebServices.Ambiente;
  evEvento.InfEvento.chNFe      := Chave;
  evEvento.InfEvento.nSeqEvento := Sequencia;
  evEvento.InfEvento.dhEvento   := Now;

  case Evento of
    nfevCartaCorrecao : begin
      evEvento.InfEvento.tpEvento            := teCCe;
      evEvento.InfEvento.detEvento.xCorrecao := Motivo;
      evEvento.InfEvento.detEvento.xCondUso  := '';
    end;
  end;

  Result := ACBr.EnviarEventoNFe(1);
  if Result then begin
    FProtocolo := evEvento.RetInfEvento.nProt;
    FData      := evEvento.RetInfEvento.dhRegEvento;
  end;

  ACBr.ImprimirEvento;
  ACBr.ImprimirEventoPDF;
end;

 

 

ACBrNFeWebServices.pas

Link para o comentário
Compartilhar em outros sites

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