/** * enviaMail * Envia a NFe por email aos destinatários * Caso $aMails esteja vazio serão obtidos os email do destinatário e * os emails que estiverem registrados nos campos obsCont do xml * @param string $pathXml * @param array $aMails * @param string $templateFile path completo ao arquivo template html do corpo do email * @param boolean $comPdf se true o sistema irá renderizar o DANFE e anexa-lo a mensagem * @return boolean * @throws Exception\RuntimeException */ public function enviaMail($pathXml = '', $aMails = array(), $templateFile = '', $comPdf = false) { $mail = new MailNFe($this->aMailConf); $pathPdf = ''; if ($comPdf && $this->modelo == '55') { $docxml = Files\FilesFolders::readFile($pathXml); $danfe = new Extras\Danfe($docxml, 'P', 'A4', $this->aDocFormat['pathLogoFile'], 'I', ''); $id = $danfe->montaDANFE(); $pathPdf = $this->aConfig['pathNFeFiles'] . DIRECTORY_SEPARATOR . $this->ambiente . DIRECTORY_SEPARATOR . 'pdf' . DIRECTORY_SEPARATOR . $id . '.pdf'; $pdf = $danfe->printDANFE($pathPdf, 'F'); } if ($mail->envia($pathXml, $aMails, $comPdf, $pathPdf) === false) { throw new Exception\RuntimeException('Email não enviado. ' . $mail->error); } return true; }
<?php /** * ATENÇÃO : Esse exemplo usa classe PROVISÓRIA que será removida assim que * a nova classe DANFE estiver refatorada e a pasta EXTRAS será removida. */ error_reporting(E_ALL); ini_set('display_errors', 'On'); include_once '../../bootstrap.php'; use NFePHP\Extras\Danfe; use NFePHP\Common\Files\FilesFolders; $chaveNotaFiscal = $_GET['chaveNotaFiscal']; $logoLoja = $_GET['logoLoja']; //var_dump($logoLoja); //exit(); $xml = '../xml/' . $chaveNotaFiscal . '-nfe.xml'; $docxml = FilesFolders::readFile($xml); $danfe = new Danfe($docxml, 'P', 'A4', '../../../../logos/' . $logoLoja, 'I', ''); $id = $danfe->montaDANFE(); $teste = $danfe->printDANFE($id . '.pdf', 'I');
/** *Método que faz o download da DANFE * * @name gerarDANFE * @access public * @author Roberson Faria * @param Numeric $customer_id * @param String $arquivo Caminho para o arquivo xml * @param Char $tipoDownload Defini o tipo do download do arquivo "I" - abre o pdf no browser "D" - faz o download do PDF para a maquina do cliente. */ public function printDanfe($arquivo, $tipoDownload = "I") { $dxml = base64_decode($arquivo); $logo = 'images/logo.jpg'; if (strpos($arquivo, 'recebidas')) { $logo = ''; } $docxml = FilesFolders::readFile($arquivo); $danfe = new Danfe($docxml, 'P', 'A4', $logo, $tipoDownload, ''); $id = $danfe->montaDANFE(); $danfe->printDANFE($id . '.pdf', $tipoDownload); }
use NFePHP\Common\Files\FilesFolders; $chave = isset($_POST['chave']) ? $_POST['chave'] : ''; $xml = isset($_POST['xml']) ? $_POST['xml'] : ''; $para = isset($_POST['para']) ? $_POST['para'] : ''; $comPdf = isset($_POST['comPdf']) ? $_POST['comPdf'] : '0'; $dxml = base64_decode($xml); $xml = gzdecode($dxml); $pathPdf = ''; $bPdf = false; if ($comPdf === '1') { $bPdf = true; $logo = 'images/logo.jpg'; if (strpos($xml, 'recebidas')) { $logo = ''; } $docxml = FilesFolders::readFile($xml); $danfe = new Danfe($docxml, 'P', 'A4', $logo, 'I', ''); $id = $danfe->montaDANFE(); $pathPdf = '../base/' . $id . '.pdf'; $pdf = $danfe->printDANFE($pathPdf, 'F'); } $mail = new Mail(); $resp = $mail->envia($xml, $para, $bPdf, $pathPdf); if ($resp === true) { echo "SUCESSO NFe n. {$chave}, enviada para {$para}."; } else { echo "FRACASSO!! houve algum problema. {$mail->error}"; } if ($comPdf && is_file($pathPdf)) { unlink($pathPdf); }
<?php /** * ATENÇÃO : Esse exemplo usa classe PROVISÓRIA que será removida assim que * a nova classe DANFE estiver refatorada e a pasta EXTRAS será removida. */ error_reporting(E_ALL); ini_set('display_errors', 'On'); require_once '../../bootstrap.php'; use NFePHP\NFe\ToolsNFe; use NFePHP\Extras\Danfe; use NFePHP\Common\Files\FilesFolders; $nfe = new ToolsNFe('../../config/config.json'); $chave = '52160500067985000172550010000000101000000100'; $xmlProt = "D:/xampp/htdocs/GIT-nfephp-org/nfephp/xmls/NF-e/homologacao/enviadas/aprovadas/201605/{$chave}-protNFe.xml"; // Uso da nomeclatura '-danfe.pdf' para facilitar a diferenciação entre PDFs DANFE e DANFCE salvos na mesma pasta... $pdfDanfe = "D:/xampp/htdocs/GIT-nfephp-org/nfephp/xmls/NF-e/homologacao/pdf/201605/{$chave}-danfe.pdf"; $docxml = FilesFolders::readFile($xmlProt); $danfe = new Danfe($docxml, 'P', 'A4', $nfe->aConfig['aDocFormat']->pathLogoFile, 'I', ''); $id = $danfe->montaDANFE(); $salva = $danfe->printDANFE($pdfDanfe, 'F'); //Salva o PDF na pasta $abre = $danfe->printDANFE("{$id}-danfe.pdf", 'I'); //Abre o PDF no Navegador