Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Boa tarde pessoal,

   Estou com um problema no envio do evento por email.

 

   Ao enviar o email de um evento pelo comando  ACBrNFe1.EnviarEmailEvento com o parâmetro EnviaPDF = True está dando um erro que o sistema não encontra o PDF do evento.

   Ocorre que na revision 7487 a unit ACBrNFe.pas foi alterada, na linha 804 de:       

NomeArq := StringReplace(EventoNFe.Evento[0].InfEvento.id,'ID', '', [rfIgnoreCase]);

para:

        NomeArq := Copy(EventoNFe.Evento[0].InfEvento.id, 09, 44) +
                   Copy(EventoNFe.Evento[0].InfEvento.id, 03, 06) +
                   Copy(EventoNFe.Evento[0].InfEvento.id, 53, 02);

   Ocorre que nas units que geram o PDF (Utilizo o Rave Codebase e o Fast Report) o nome do arquivo não foi alterado. 

 

   Não sei como posso resolver esse problema, pois a alteração envolve muitas units, inclusive algumas que eu não utilizo e não tenho como testar. 

 

No Aguardo,

Jonas Henrique Montoia

 

   

 

 

Postado

Bom dia Juliomar.

   Meus fontes estão atualizados sim.

   Na dúvida exclui todos os arquivos da pasta acbr\Fontes\ACBrNFe2 e dei um update.

 

   O problema somente ocorre ao enviar o email com a opção EnviaPDF = True.

   Na Unit ACBrNFe a procedure EnviarEmailEvento está assim:

    if (EnviaPDF) then
    begin
      if DANFE <> nil then
      begin
        ImprimirEventoPDF;
//        NomeArq := StringReplace(EventoNFe.Evento[0].InfEvento.id,'ID', '', [rfIgnoreCase]);
        NomeArq := Copy(EventoNFe.Evento[0].InfEvento.id, 09, 44) +
                   Copy(EventoNFe.Evento[0].InfEvento.id, 03, 06) +
                   Copy(EventoNFe.Evento[0].InfEvento.id, 53, 02);   // Aqui tenta ler como IDNFe+TipoEvento+CodEvento
        NomeArq := PathWithDelim(DANFE.PathPDF)+NomeArq+'evento.pdf';
        AnexosEmail.Add(NomeArq);
      end;
    end;

    EnviaEmail(sSmtpHost,

   Na procedure ImprimirEVENTOPDF da Unit ACBrNFeDANFEFR.pas está da seguinte forma:

  if PrepareReportEvento then
  begin
    dmDanfe.frxPDFExport.Author     := Sistema;
    dmDanfe.frxPDFExport.Creator    := Sistema;
    dmDanfe.frxPDFExport.Producer   := Sistema;
    dmDanfe.frxPDFExport.Title      := TITULO_PDF;
    dmDanfe.frxPDFExport.Subject    := TITULO_PDF;
    dmDanfe.frxPDFExport.Keywords   := TITULO_PDF;
    dmDanfe.frxPDFExport.ShowDialog := False;

    {
    NomeArq := TACBrNFe(ACBrNFe).EventoNFe.Evento[0].InfEvento.chNFe;
    NomeArq := NomeArq + '-' + TACBrNFe(ACBrNFe).EventoNFe.Evento[0].InfEvento.TipoEvento;
    NomeArq := NomeArq + '-' + IntToStr(TACBrNFe(ACBrNFe).EventoNFe.Evento[0].InfEvento.nSeqEvento);
    }
    {
    NomeArq := TACBrNFe(ACBrNFe).EventoNFe.Evento[0].InfEvento.TipoEvento;
    NomeArq := NomeArq + TACBrNFe(ACBrNFe).EventoNFe.Evento[0].InfEvento.chNFe;
    }

    NomeArq := Copy(TACBrNFe(ACBrNFe).EventoNFe.Evento.Items[0].InfEvento.id, 3, 52); // Aqui salva como TipoEvento+IDNFe+CódigoEvento
    
    dmDanfe.frxPDFExport.FileName := PathWithDelim(Self.PathPDF) + NomeArq + 'evento.pdf';
    dmDanfe.frxReport.Export(dmDanfe.frxPDFExport);
  end;

   Observe que essa procedure é chamada antes de ler o PDF. Como os nomes de arquivo estão diferentes o sistema dá esse erro.

   Só tenho como testar os relatórios em Fast e em RaveCB, que são os que eu uso e nos dois casos o problema continua.

 

Att,

Jonas

  • Membros Pro
Postado

Boa tarde Juliomar !,

 

Tive este mesmo problema e resolvi com a seguinte alteração abaixo, comentando a parte em vermelho e incluindo o comando em azul,

 

veja abaixo parte do codigo EnviarEmailEvento da unit ACBrNFe:

 

segue anexo unit ACBrNFe.pas, para analise e posterior versionamento para correção deste problema.

 

 

   // AnexosEmail.Add('');
    if (EnviaPDF) then
    begin
      if DANFE <> nil then
      begin
        ImprimirEventoPDF;
//        NomeArq := StringReplace(EventoNFe.Evento[0].InfEvento.id,'ID', '', [rfIgnoreCase]);
 
{
        NomeArq := Copy(EventoNFe.Evento[0].InfEvento.id, 09, 44) +
                   Copy(EventoNFe.Evento[0].InfEvento.id, 03, 06) +
                   Copy(EventoNFe.Evento[0].InfEvento.id, 53, 02);
}
        NomeArq := Copy(EventoNFe.Evento[0].InfEvento.id, 3, 52);
        
        NomeArq := PathWithDelim(DANFE.PathPDF)+NomeArq+'evento.pdf';
        AnexosEmail.Add(NomeArq);
      end;
    end;
 

ACBrNFe.pas

  • Moderadores
Postado

Bom dia Léo

Estou verificando ! pois o problema parece não ser nesse ponto mas sim onde gera os nomes dos arquivos no evento!

comparando com os CT-e ele está da mesma forma e funciona!

 

 

Boa tarde Juliomar !,

 

Tive este mesmo problema e resolvi com a seguinte alteração abaixo, comentando a parte em vermelho e incluindo o comando em azul,

 

veja abaixo parte do codigo EnviarEmailEvento da unit ACBrNFe:

 

segue anexo unit ACBrNFe.pas, para analise e posterior versionamento para correção deste problema.

 

 

   // AnexosEmail.Add('');
    if (EnviaPDF) then
    begin
      if DANFE <> nil then
      begin
        ImprimirEventoPDF;
//        NomeArq := StringReplace(EventoNFe.Evento[0].InfEvento.id,'ID', '', [rfIgnoreCase]);
 
{
        NomeArq := Copy(EventoNFe.Evento[0].InfEvento.id, 09, 44) +
                   Copy(EventoNFe.Evento[0].InfEvento.id, 03, 06) +
                   Copy(EventoNFe.Evento[0].InfEvento.id, 53, 02);
}
        NomeArq := Copy(EventoNFe.Evento[0].InfEvento.id, 3, 52);
        
        NomeArq := PathWithDelim(DANFE.PathPDF)+NomeArq+'evento.pdf';
        AnexosEmail.Add(NomeArq);
      end;
    end;

 

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

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

 

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