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. MensagemSweetAlert::Sucesso('NOTA FISCAL AUTORIZADA! XML E NOTA FISCAL ENVIADOS AO CLIENTE!');
  12. AdiantiCoreApplication::loadPage( 'VendasList' );
  13. $file = "tmp/nfe/{$venda->chave_nf}.pdf";
  14. if (!file_put_contents($file, base64_decode($venda->pdf))) {
  15. throw new Exception("Erro ao tentar gerar Danfe!");
  16. }
  17. TPage::openFile($file);
  18. exit;
  19. } else {
  20. // rejeição
  21. MensagemSweetAlert::Erro("{$resp->codigo} - {$resp->mensagem}");
  22. TTransaction::close();
  23. exit;
  24. }
  25. }
  26. ?>


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

Curso Dominando o Adianti Framework

O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!


Dominando o Adianti Framework 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.8, 0.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.