Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Executar Função dentro de outra Função no Form Bom dia a todos. Tenho esse código que gera NFe, (aqui não está completo), esta é aparte final da geração. Preciso que na parte citada após gerar a NFe e o XML executasse a Função para enviar o e-mail ao Cliente. ...
CM
Executar Função dentro de outra Função no Form  
Bom dia a todos.

Tenho esse código que gera NFe, (aqui não está completo), esta é aparte final da geração.
Preciso que na parte citada após gerar a NFe e o XML executasse a Função para enviar o e-mail ao Cliente.

  1. <?php 
  2. if ($resp->codigo != 5023) {
  3.                             if ($resp->sucesso) {
  4.                                 // autorizado
  5.                                 $venda->xml $resp->xml;
  6.                                 $venda->pdf $resp->pdf;
  7.                                 $venda->nota_fiscal_status "NFe Enviada";
  8.                                 $venda->store();
  9.                                 TTransaction::close();
  10.                                 TApplication::postData('VendasFormMaster',__CLASS__,'onEmail'); // NESTE PONTO PRECISO EXECUTAR A FUNÇÃO DE ENVIO
  11.                                 
  12.                                 MensagemSweetAlert::Sucesso('NOTA FISCAL AUTORIZADA! XML E NOTA FISCAL ENVIADOS AO CLIENTE!');
  13.                                 AdiantiCoreApplication::loadPage'VendasList' );
  14.                       
  15.  $file "tmp/nfe/{$venda->chave_nf}.pdf";
  16.                                 if (!file_put_contents($filebase64_decode($venda->pdf))) {
  17.                                     throw new Exception("Erro ao tentar gerar Danfe!");
  18.                                 }
  19.                                 TPage::openFile($file);
  20.                                 exit;
  21.                             } else {
  22.                                 // rejeição
  23.                                 MensagemSweetAlert::Erro("{$resp->codigo} - {$resp->mensagem}");
  24.                                 TTransaction::close();
  25.                                 exit;
  26.                             }
  27.                         }
  28. ?>


Porém gostaria de enviar ao Cliente a NFe em PDF e o XML, isso já consigo com o código abaixo:

  1. <?php
  2.  public static function onEmail$param )
  3.     {
  4.       
  5.         try{
  6.         
  7.          TTransaction::open('ourorio');
  8.          $venda = new Vendas($param['id_venda']);
  9.           $mail = new TMail;
  10.           $mail->setFrom('gestor.zeromeia@gmail.com','OuroRio Quiosques');
  11.           $mail->setSubject('Nota Fiscal Nº '.$venda->nota_fiscal_emitida);
  12.           $mail->addAddress($venda->cliente_email$venda->cliente_txt);
  13.           $mail->addBCC('contato@zeromeia.com');  
  14.           $mail->setHtmlBody('Olá ' .$venda->cliente_txt'<br><br>
  15.           
  16.           O objetivo dessa mensagem é informar a confirmação da emissão da Nota Fiscal Nº <b>'.$venda->nota_fiscal_emitida'</b>.
  17.           <br><br>
  18.           A Nota Fiscal e o arquivo XML estão em anexo neste e-mail.
  19.           <br><br>
  20.           Você pode verificar a autenticidade no endereço abaixo, informando a Chave:  <br><br>' .$venda->chave_nf'
  21.           <br><br>
  22.           <a href=http://www4.fazenda.rj.gov.br/consultaDFe/paginas/consultaChaveAcesso.faces">Consulta Nota Fiscal</a>
  23.           <br><br>
  24.           Se houver dúvidas, entre em contato conosco.
  25.           <br><br>
  26.           Agradecemos pela compra.
  27.           <br>
  28.           <img src = "https://zeromeia.com/sistemas/clientes/web/ourorio/app/images/logo_fundo_preto.png" ><br>
  29.           <b><i>OURORIO QUIOSQUES</i></b><br>
  30.           <i>Mensagem automática <b>GESTOR ® WEB</i></b>');
  31.           $mail->SetUseSmtp();
  32.           $mail->SetSmtpHost('smtp.gmail.com''465'); // 465 porta com criptografia
  33.           $mail->SetSmtpUser('MeuEmaillDeEnvio@gmail.com''senha'); //retirei a senha por questão de segurança
  34.           $target_file_pdf "tmp/nfe/{$venda->chave_nf}.pdf";
  35.           $target_file_xml "tmp/nfe/{$venda->chave_nf}.xml";
  36.           if (!file_put_contents($target_file_xmlbase64_decode($venda->xml))) 
  37.           {
  38.               MensagemSweetAlert::Erro('Não Existe NFe emitida para esse Registro!');
  39.           
  40.                   //throw new Exception("Erro ao tentar gerar Danfe!");
  41.           }
  42.           $mail->addAttach$target_file_pdf );
  43.           $mail->addAttach$target_file_xml );
  44.           
  45.           $mail->send(); // enviar
  46.           MensagemSweetAlert::Sucesso('NOTA FISCAL E XML ENVIADOS AO CLIENTE COM SUCESSO!');
  47.           AdiantiCoreApplication::loadPage'VendasList' );
  48.         }
  49.         catch (Exception $e)
  50.         {
  51.           new TMessage('error''<b>Error</b> ' $e->getMessage() );
  52.       }
  53.     }
  54. ?>

Pacotão Dominando o Adianti Framework 7
O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado! Versão 7.4


Dominando o Adianti 7 Quero me inscrever agora!

Comentários (2)


MR

Olá, após a impressa da nfe, chamo a classe para envio do email.


  1. <?php
  2. class DanfePrintCloud
  3. {
  4.     public function PrintDanfeNfe($chave)
  5.     { 
  6.             $window TWindow::create(($chave.'.pdf'), 0.80.8);
  7.             $iframe = new TElement('iframe');
  8.             $iframe->id "iframe_external";
  9.             $iframe->src $url_danfe;
  10.             $iframe->frameborder "0";
  11.             $iframe->scrolling "yes";
  12.             $iframe->width "100%";
  13.             $iframe->height "100%";
  14.             $window->add($iframe);
  15.             $window->show(); 
  16. //classe para enviar enviar o email
  17.      $enviaemail1 NFeEmail::NFeEnviaMail($chave);
  18.     }
  19. }
  20. ?>
CM

Ou Marcos obrigado.
Meu código já gera o PDF direto abrindo a janela com a NF-E gerada.
Daí queria executar a função de envio.
Não tenho classe específica para enviar o e-mail.

A função está dentro do próprio form.