<?php error_reporting(E_ALL); ini_set('display_errors', 'On'); require_once '../../bootstrap.php'; use NFePHP\NFe\ToolsNFe; $nfe = new ToolsNFe('../../config/config.json'); $nfe->setModelo('55'); $aResposta = array(); $siglaUF = $nfe->aConfig['siglaUF']; $tpAmb = '2'; $cnpj = $nfe->aConfig['cnpj']; // Consulta por CNPJ ou IE ou CPF $iest = ''; $cpf = ''; $retorno = $nfe->sefazCadastro($siglaUF, $tpAmb, $cnpj, $iest, $cpf, $aResposta); echo '<br><br><pre>'; echo htmlspecialchars($nfe->soapDebug); echo '</pre><br><pre>'; print_r($aResposta); echo "</pre><br>";
<?php error_reporting(E_ALL); ini_set('display_errors', 'On'); include_once '../../bootstrap.php'; use NFePHP\NFe\ToolsNFe; $nfe = new ToolsNFe('../../config/config.json'); $nfe->setModelo('55'); $ultNSU = 0; // se estiver como zero irá retornar os dados dos ultimos 15 dias até o limite de 50 registros // se for diferente de zero irá retornar a partir desse numero os dados dos // últimos 15 dias até o limite de 50 registros $numNSU = 0; // se estiver como zero irá usar o ultNSU // se for diferente de zero não importa o que está contido em ultNSU será retornado apenas // os dados deste NSU em particular $tpAmb = '1'; // esses dados somente existirão em ambiente de produção pois em ambiente de testes // não existem dados de eventos, nem de NFe emitidas para o seu CNPJ $cnpj = ''; // deixando vazio irá pegar o CNPJ default do config // se for colocado um CNPJ tenha certeza que o certificado está autorizado a // baixar os dados desse CNPJ pois se não estiver autorizado haverá uma // mensagem de erro da SEFAZ //array que irá conter os dados de retorno da SEFAZ $aResposta = array(); //essa rotina deve rá ser repetida a cada hora até que o maxNSU retornado esteja contido no NSU da mensagem //se estiver já foram baixadas todas as referencias a NFe, CTe e outros eventos da NFe e não a mais nada a buscar //outro detalhe é que não adianta tentar buscar dados muito antigos o sistema irá informar que //nada foi encontrado, porque a SEFAZ não mantêm os NSU em base de dados por muito tempo, em //geral são mantidos apenas os dados dos últimos 15 dias.
$servidor = 'localhost'; $usuario = 'root'; $senha = ''; $banco = 'fit4'; // Conecta-se ao banco de dados MySQL $mysqli = new mysqli($servidor, $usuario, $senha, $banco); // Caso algo tenha dado errado, exibe uma mensagem de erro if (mysqli_connect_errno()) { trigger_error(mysqli_connect_error()); } ini_set('display_errors', 'On'); include_once 'nfe/bootstrap.php'; use NFePHP\NFe\ToolsNFe; if (isset($_POST['password']) && $_POST['password'] == "senha") { //Se estiver setada e correta a senha de upload $nfe = new ToolsNFe('C:/xampp/htdocs/cristiano/fit4/nfe/config.json'); $nfe->setModelo('55'); ############################################################# TRANSMISSÃO NFE ########################################################## if (isset($_POST['function']) && $_POST['function'] == "transmissao") { //SE FOR TRANSMISSÃO DE NOTA FISCAL $uploaddir = 'C:\\xampp\\htdocs\\cristiano\\fit4\\nfe\\enviadas'; //Instancia variavel com o destino do arquivo if (!is_dir($uploaddir)) { //Se não existe mkdir($uploaddir); //Cria o destino } $uploadfile = $uploaddir . "\\" . basename($_FILES['xml']['name']); //Contrói o namespace completo do file if (move_uploaded_file($_FILES['xml']['tmp_name'], $uploadfile)) { //Se conclui o upload
<?php error_reporting(E_ALL); ini_set('display_errors', 'On'); include_once '../../bootstrap.php'; use NFePHP\NFe\ToolsNFe; $nfe = new ToolsNFe('../../config/config.json'); $nfe->setModelo('55'); $aResposta = array(); $tpAmb = '2'; $recibo = '521000011732162'; $retorno = $nfe->sefazConsultaRecibo($recibo, $tpAmb, $aResposta); echo '<br><br><pre>'; echo htmlspecialchars($nfe->soapDebug); echo '</pre><br><br><pre>'; print_r($aResposta); echo "</pre><br>";
<?php error_reporting(E_ALL); ini_set('display_errors', 'On'); include_once '../../bootstrap.php'; use NFePHP\NFe\ToolsNFe; $nfe = new ToolsNFe('../../config/config.json'); $aResposta = array(); $pathNFefile = '/var/www/nfe/homologacao/assinadas/35150158716523000119550010000000071000000076-nfe.xml'; $pathProtfile = '/var/www/nfe/homologacao/temporarias/201501/35150158716523000119550010000000071000000076-retConsSitNFe.xml'; $saveFile = true; $retorno = $nfe->addProtocolo($pathNFefile, $pathProtfile, $saveFile); echo '<br><br><PRE>'; echo htmlspecialchars($retorno); echo '</PRE><BR>'; echo "<br>";
<?php error_reporting(E_ALL); ini_set('display_errors', 'On'); require_once '../../bootstrap.php'; use NFePHP\NFe\MakeNFe; use NFePHP\NFe\ToolsNFe; $nfe = new MakeNFe(); $nfeTools = new ToolsNFe('../../config/config.json'); //Dados da NFCe - infNFe $cUF = '52'; $cNF = '00000200'; $natOp = 'Venda ao consumidor'; $indPag = '0'; $mod = '65'; $serie = '1'; $nNF = '200'; $dhEmi = date("Y-m-d\\TH:i:sP"); //Formato: “AAAA-MM-DDThh:mm:ssTZD” (UTC - Universal Coordinated Time). $dhSaiEnt = ''; //Não informar este campo para a NFC-e. $tpNF = '1'; $idDest = '1'; $cMunFG = '5208707'; $tpImp = '4'; $tpEmis = '1'; //normal $tpAmb = '2'; //homolocação $finNFe = '1'; $indFinal = '1';
<?php error_reporting(E_ALL); ini_set('display_errors', 'On'); require_once '../../bootstrap.php'; use NFePHP\NFe\ToolsNFe; $nfe = new ToolsNFe('../../config/config.json'); $aResposta = array(); $pathNFefile = '/var/www/nfe/homologacao/enviadas/aprovadas/201501/35150158716523000119550010000000071000000076-protNFe.xml'; $pathProtfile = '/var/www/nfe/homologacao/temporarias/201501/35150158716523000119550010000000071000000076-CancNFe-retEnvEvento.xml'; $saveFile = true; $retorno = $nfe->addCancelamento($pathNFefile, $pathProtfile, $saveFile); echo '<br><br><PRE>'; echo htmlspecialchars($retorno); echo '</PRE><BR>'; echo "<br>";
<?php error_reporting(E_ALL); ini_set('display_errors', 'On'); include_once '../../bootstrap.php'; use NFePHP\NFe\ToolsNFe; $nfe = new ToolsNFe('../../config/config.json'); $nfe->setModelo('65'); /* Operações de administração CSC (indOp): 01 – Consulta 02 – Solicitação 03 – Revogação */ $indOp = '1'; $tpAmb = '2'; $raizCNPJ = ''; // Deixe vazio para utilizar o CNPJ do Certificado $idCsc = ''; $codigoCsc = ''; $saveXml = true; // Salva o resultado em XML na pasta csc $aResposta = array(); $xml = $nfe->sefazManutencaoCsc($indOp, $tpAmb, $raizCNPJ, $idCsc, $codigoCsc, $saveXml, $aResposta); echo '<br><br><PRE>'; echo htmlspecialchars($nfe->soapDebug); echo '</PRE><BR><PRE>'; print_r($aResposta); echo "</PRE><br>";
<?php error_reporting(E_ALL); ini_set('display_errors', 'On'); include_once '../../bootstrap.php'; use NFePHP\NFe\ToolsNFe; $nfe = new ToolsNFe('../../config/config.json'); $aResposta = array(); $pathNFefile = ''; $pathB2Bfile = ''; $tagB2B = ''; $retorno = $nfe->addB2B($pathNFefile, $pathB2Bfile, $tagB2B); echo '<br><br><PRE>'; echo htmlspecialchars($nfe->soapDebug); echo '</PRE><BR>'; print_r($aResposta); echo "<br>";
<?php error_reporting(E_ALL); ini_set('display_errors', 'On'); include_once '../../bootstrap.php'; use NFePHP\NFe\ToolsNFe; $nfe = new ToolsNFe('../../config/config.json'); $nfe->setModelo('55'); //210200 – Confirmação da Operação //210210 – Ciência da Operação //210220 – Desconhecimento da Operação //210240 – Operação não Realizada ===> é obritatoria uma justificativa para esse caso $chave = '35150158716523000119550010000000071000000076'; $tpAmb = '2'; $xJust = ''; $tpEvento = '210210'; //ciencia da operação $aResposta = array(); $xml = $nfe->sefazManifesta($chave, $tpAmb, $xJust = '', $tpEvento = '', $aResposta); echo '<br><br><PRE>'; echo htmlspecialchars($nfe->soapDebug); echo '</PRE><BR>'; print_r($aResposta); echo "<br>";
<?php error_reporting(E_ALL); ini_set('display_errors', 'On'); include_once '../../bootstrap.php'; use NFePHP\NFe\ToolsNFe; $nfe = new ToolsNFe('../../config/config.json'); $chave = '52160500067985000172550010000000101000000100'; // $filename = "/var/www/nfe/homologacao/entradas/{$chave}-nfe.xml"; // Ambiente Linux $filename = "D:/xampp/htdocs/GIT-nfephp-org/nfephp/xmls/NF-e/homologacao/entradas/{$chave}-nfe.xml"; // Ambiente Windows $xml = file_get_contents($filename); $xml = $nfe->assina($xml); // $filename = "/var/www/nfe/homologacao/assinadas/{$chave}-nfe.xml"; // Ambiente Linux $filename = "D:/xampp/htdocs/GIT-nfephp-org/nfephp/xmls/NF-e/homologacao/assinadas/{$chave}-nfe.xml"; // Ambiente Windows file_put_contents($filename, $xml); chmod($filename, 0777); echo $chave;
<?php error_reporting(E_ALL); ini_set('display_errors', 'On'); include_once '../../bootstrap.php'; use NFePHP\NFe\ToolsNFe; $nfe = new ToolsNFe('../../config/config.json'); $nfe->setModelo('55'); $aResposta = array(); $chave = '35150158716523000119550010000000071000000076'; $nProt = '135150000408219'; $tpAmb = '2'; $xJust = 'Teste de cancelamento em ambiente de homologação'; $retorno = $nfe->sefazCancela($chave, $tpAmb, $xJust, $nProt, $aResposta); echo '<br><br><PRE>'; echo htmlspecialchars($nfe->soapDebug); echo '</PRE><BR>'; print_r($aResposta); echo "<br>";
<?php error_reporting(E_ALL); ini_set('display_errors', 'On'); include_once '../../bootstrap.php'; use NFePHP\NFe\ToolsNFe; $nfe = new ToolsNFe('../../config/config.json'); $nfe->setModelo('55'); $aResposta = array(); $chNFe = '35150258716523000119550010000000091000000090'; $tpAmb = '2'; $xCorrecao = 'Teste de carta de correcao em ambiente homologacao'; $nSeqEvento = 1; $retorno = $nfe->sefazCCe($chNFe, $tpAmb, $xCorrecao, $nSeqEvento, $aResposta); echo '<br><br><PRE>'; echo htmlspecialchars($nfe->soapDebug); echo '</PRE><BR>'; print_r($aResposta); echo "<br>";
/** * Metodo para envio da manifestacao para a SEFAZ * * @name setManifesto * @access public * @author Roberson Faria * @param Numeric $customer_id * @param Numeric $chNFe * @param Numeric $operacao * @param String $justificativa * @return Json $respostaSefaz */ public function setManifesto($customer_id, $chNFe, $operacao, $xJust = "") { $customer = Customer::find($customer_id)->toArray(); $nfe = new ToolsNFe($this->setConfig($customer)); $xml = $nfe->sefazManifesta($chNFe, $this->dadosConfig["tpAmb"], $xJust = '', $tpEvento = '', $aResposta); return $aResposta; }
<?php error_reporting(E_ALL); ini_set('display_errors', 'On'); require_once '../../bootstrap.php'; use NFePHP\NFe\ToolsNFe; $nfe = new ToolsNFe('../../config/config.json'); $nfe->setModelo('55'); $chave = '52160500067985000172550010000000101000000100'; $tpAmb = '2'; // $xml = "/var/www/nfe/homologacao/assinadas/{$chave}-nfe.xml"; // Ambiente Linux $xml = "D:/xampp/htdocs/GIT-nfephp-org/nfephp/xmls/NF-e/homologacao/assinadas/{$chave}-nfe.xml"; // Ambiente Windows if (!$nfe->validarXml($xml) || sizeof($nfeTools->errors)) { echo "<h3>Eita !?! Tem bicho na linha .... </h3>"; foreach ($nfe->errors as $erro) { if (is_array($erro)) { foreach ($erro as $err) { echo "{$err} <br>"; } } else { echo "{$erro} <br>"; } } exit; } echo "NFe Valida !";
<?php error_reporting(E_ALL); ini_set('display_errors', 'On'); include_once '../../bootstrap.php'; use NFePHP\NFe\MakeNFe; use NFePHP\NFe\ToolsNFe; $tools = new ToolsNFe('../../config/config.json'); $nfe = new MakeNFe(); $cUF = '35'; $ano = '15'; $mes = '10'; $cnpj = '58716523000119'; $mod = '65'; $serie = '1'; $nNF = '175'; $tpEmis = '2'; $cNF = '00000175'; $versao = '3.10'; $natOp = 'Venda ao consumidor'; $indPag = '0'; $dhEmi = str_replace(' ', 'T', date('Y-m-d H:i:sP')); $dhSaiEnt = str_replace(' ', 'T', date('Y-m-d H:i:sP')); $tpNF = '1'; $idDest = '1'; $cMunFG = '4314902'; $tpImp = '4'; $tpAmb = '2'; $finNFe = '1'; $indFinal = '1'; $indPres = '1';
<?php error_reporting(E_ALL); ini_set('display_errors', 'On'); include_once '../../bootstrap.php'; use NFePHP\NFe\ToolsNFe; $nfe = new ToolsNFe('../../config/config.json'); $nfe->setModelo('55'); $aResposta = array(); $chave = '35150258716523000119550010000000091000000090'; $tpAmb = '2'; $aXml = file_get_contents("/var/www/nfe/homologacao/assinadas/{$chave}-nfe.xml"); $idLote = ''; $indSinc = '0'; $flagZip = false; $retorno = $nfe->sefazEnviaLote($aXml, $tpAmb, $idLote, $aResposta, $indSinc, $flagZip); echo '<br><br><PRE>'; echo htmlspecialchars($nfe->soapDebug); echo '</PRE><BR>'; print_r($aResposta); echo "<br>";
<?php error_reporting(E_ALL); ini_set('display_errors', 'On'); include_once '../../bootstrap.php'; use NFePHP\NFe\ToolsNFe; $nfe = new ToolsNFe('../../config/config.json'); $nfe->setModelo('55'); $aResposta = array(); $pathXmlFile = '/var/www/nfephpdev/exemplos/xml/35150258716523000119550000000344861511504837-nfe.xml'; if (!$nfe->verificaValidade($pathXmlFile, $aResposta)) { echo "<h1>NFe INVÁLIDA!!</h1>"; } else { echo "<h1>NFe valida.</h1>"; } echo '<br><br><PRE>'; echo htmlspecialchars($nfe->soapDebug); echo '</PRE><BR>'; print_r($aResposta); echo "<br>";
<?php error_reporting(E_ALL); ini_set('display_errors', 'On'); require_once '../../bootstrap.php'; use NFePHP\NFe\ToolsNFe; $nfe = new ToolsNFe('../../config/config.json'); $nfe->setModelo('55'); $chNFe = '35150458716523000119550010000000131000000139'; $tpAmb = '2'; $cnpj = '58716523000119'; $aResposta = array(); $resp = $nfe->sefazDownload($chNFe, $tpAmb, $cnpj, $aResposta); echo '<br><br><PRE>'; echo htmlspecialchars($nfe->soapDebug); echo '</PRE><BR>'; print_r($aResposta); echo "<br>";
<?php error_reporting(E_ALL); ini_set('display_errors', 'On'); include_once '../../bootstrap.php'; use NFePHP\NFe\ToolsNFe; $nfe = new ToolsNFe('../../config/config.json'); $nfe->setModelo('55'); $aResposta = array(); $nSerie = 1; $nIni = 8; $nFin = 8; $xJust = 'teste de inutilização de notas fiscais em homologacao'; $tpAmb = '2'; $xml = $nfe->sefazInutiliza($nSerie, $nIni, $nFin, $xJust, $tpAmb, $aResposta); echo '<br><br><PRE>'; echo htmlspecialchars($nfe->soapDebug); echo '</PRE><BR>'; print_r($aResposta); echo "<br>";
<?php error_reporting(E_ALL); ini_set('display_errors', 'On'); require_once '../../bootstrap.php'; use NFePHP\NFe\ToolsNFe; $nfe = new ToolsNFe('../../config/config.json'); $nfe->setModelo('55'); $ncm = '22030000'; $exTarif = '0'; $siglaUF = 'GO'; $resp = $nfe->getImpostosIBPT($ncm, $exTarif, $siglaUF); print_r($resp);
/** * o objetivo desta função é ler o XML e gerar o DANFE NFC-e com auxilio de conversão HTML-PDF * @param boolean $ecoNFCe false = Não (NFC-e Completa); true = Sim (NFC-e Simplificada) * @return string */ public function montaDANFCE($ecoNFCe = true) { $toolsNFe = new ToolsNFe('../../config/config.json'); //DADOS DA NF $dhRecbto = $nProt = ''; if (isset($this->nfeProc)) { $nProt = $this->pSimpleGetValue($this->nfeProc, "nProt"); $dhRecbto = $this->pSimpleGetValue($this->nfeProc, "dhRecbto"); } $digVal = $this->pSimpleGetValue($this->nfe, "DigestValue"); $chNFe = str_replace('NFe', '', $this->infNFe->getAttribute("Id")); $chNFe = $this->pFormat($chNFe, "#### #### #### #### #### #### #### #### #### #### ####"); $tpAmb = $this->pSimpleGetValue($this->ide, 'tpAmb'); $tpEmis = $this->pSimpleGetValue($this->ide, 'tpEmis'); $cUF = $this->pSimpleGetValue($this->ide, 'cUF'); $nNF = $this->pSimpleGetValue($this->ide, 'nNF'); $serieNF = str_pad($this->pSimpleGetValue($this->ide, "serie"), 3, "0", STR_PAD_LEFT); $dhEmi = $this->pSimpleGetValue($this->ide, "dhEmi"); $vTotTrib = $this->pSimpleGetValue($this->ICMSTot, "vTotTrib"); $vICMS = $this->pSimpleGetValue($this->ICMSTot, "vICMS"); $vProd = $this->pSimpleGetValue($this->ICMSTot, "vProd"); $vDesc = $this->pSimpleGetValue($this->ICMSTot, "vDesc"); $vOutro = $this->pSimpleGetValue($this->ICMSTot, "vOutro"); $vNF = $this->pSimpleGetValue($this->ICMSTot, "vNF"); $qtdItens = $this->det->length; if ($this->urlQR == '') { //Busca no XML a URL da Consulta $urlQR = $toolsNFe->zGetUrlQR($cUF, $tpAmb); } else { $urlQR = $this->urlQR; } //DADOS DO EMITENTE if (empty($this->logomarca)) { $image = $toolsNFe->aConfig['aDocFormat']->pathLogoNFCe; $imageData = base64_encode(file_get_contents($image)); $this->logomarca = "data: " . mime_content_type($image) . ";base64,{$imageData}"; } $emitRazao = $this->pSimpleGetValue($this->emit, "xNome"); $emitCnpj = $this->pSimpleGetValue($this->emit, "CNPJ"); $emitCnpj = $this->pFormat($emitCnpj, "##.###.###/####-##"); $emitIE = $this->pSimpleGetValue($this->emit, "IE"); $emitFone = $this->pSimpleGetValue($this->enderEmit, "fone"); $foneLen = strlen($emitFone); if ($foneLen > 0) { $fone2 = substr($emitFone, 0, $foneLen - 4); $fone1 = substr($emitFone, 0, $foneLen - 8); $emitFone = '(' . $fone1 . ') ' . substr($fone2, -4) . '-' . substr($emitFone, -4); } else { $emitFone = ''; } $emitLgr = $this->pSimpleGetValue($this->enderEmit, "xLgr"); $emitNro = $this->pSimpleGetValue($this->enderEmit, "nro"); $emitCpl = $this->pSimpleGetValue($this->enderEmit, "xCpl"); $emitBairro = $this->pSimpleGetValue($this->enderEmit, "xBairro"); $emitCEP = $this->pFormat($this->pSimpleGetValue($this->enderEmit, "CEP"), "#####-###"); $emitMun = $this->pSimpleGetValue($this->enderEmit, "xMun"); $emitUF = $this->pSimpleGetValue($this->enderEmit, "UF"); //necessário para QRCode $cDest = ''; if (isset($this->dest)) { $considEstrangeiro = !empty($this->dest->getElementsByTagName("idEstrangeiro")->item(0)->nodeValue) ? $this->dest->getElementsByTagName("idEstrangeiro")->item(0)->nodeValue : ''; $consCPF = !empty($this->dest->getElementsByTagName("CPF")->item(0)->nodeValue) ? $this->dest->getElementsByTagName("CPF")->item(0)->nodeValue : ''; $consCNPJ = !empty($this->dest->getElementsByTagName("CNPJ")->item(0)->nodeValue) ? $this->dest->getElementsByTagName("CNPJ")->item(0)->nodeValue : ''; $cDest = $consCPF . $consCNPJ . $considEstrangeiro; //documentos do consumidor } //DADOS PARA QRCODE if (!empty($this->qrCode)) { $this->imgQRCode = self::imgQR($this->qrCode); } else { $this->imgQRCode = self::makeQRCode($chNFe, $urlQR, $tpAmb, $cDest, $dhEmi, $vNF, $vICMS, $digVal, $this->idToken, $this->emitToken); } //FORMATAÇÃO DOS CAMPOS $numNF = "Número " . $this->pFormat($nNF, "###.###.###"); $tsHora = $this->pConvertTime($dhEmi); if ($dhRecbto == '') { $dhRecbto = $dhEmi; } $tsProt = $this->pConvertTime($dhRecbto); //$valorProdutos = number_format($vProd, 2, ",", "."); //$valorTotal = number_format($vNF, 2, ",", "."); /* * Leiaute de Impressão DANFE NFC-e em acordo com * Manual Padrões Técnicos do DANFE-NFC-e e QR Code * Versão 3.4 * Outubro 2015 * Refatorado por: Chinnon Santos - 05/2016 */ $this->html = ""; $this->html .= "<html>\n"; $this->html .= "<head>\n"; $this->html .= "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">"; $this->html .= $this->css; $this->html .= "</head>\n"; $this->html .= "<body>\n"; // *** ***// // *** Via Única ou Via do Consumidor em Modo Contigência ***// // *** ***// // -- Divisão I - Informações do Cabeçalho $this->html .= "<table width=\"100%\">\n"; $this->html .= "<tr>\n"; $this->html .= "<td><img src=\"{$this->logomarca}\" width=\"82\" ></td>\n"; $this->html .= "<td colspan=\"2\">" . htmlspecialchars($emitRazao) . "<br>CNPJ:{$emitCnpj} I.E.:{$emitIE}<br>" . htmlspecialchars($emitLgr . ", nº" . $emitNro) . "<br>" . htmlspecialchars($emitCpl) . "<br>" . htmlspecialchars($emitBairro . ", " . $emitMun . ", " . $emitUF) . "<br>CEP: {$emitCEP} {$emitFone}</td>\n"; $this->html .= "</tr>\n"; $this->html .= "</table>\n"; // -- Divisão II – Identificação do DANFE NFC-e $this->html .= "<table width=\"100%\">\n"; $this->html .= "<tr>\n"; $this->html .= "<td colspan=\"3\" class=\"tCenter\"><strong>" . htmlspecialchars("DANFE NFC-e - DOCUMENTO AUXILIAR DA NOTA FISCAL DE CONSUMIDOR ELETRÔNICA") . "</strong></td>\n"; $this->html .= "</tr>\n"; $this->html .= "</table>\n"; // -- Divisão III – Informações de detalhes de produtos/serviços if (!$ecoNFCe) { $this->html .= self::itens($this->det); } // -- Divisão IV – Informações de Totais do DANFE NFC-e $this->html .= "<table width=\"100%\">\n"; $this->html .= "<tr>\n"; $this->html .= "<td class=\"tLeft\">Qtde. Total de Itens</td>\n"; $this->html .= "<td class=\"tRight\">{$qtdItens}</td>\n"; $this->html .= "</tr>\n"; $this->html .= "<tr>\n"; $this->html .= "<td class=\"tLeft\">" . htmlspecialchars('Valor Total R$') . "</td>\n"; $this->html .= "<td class=\"tRight\">" . number_format($vProd, 2, ',', '.') . "</td>\n"; $this->html .= "</tr>\n"; $this->html .= "<tr>\n"; // Acréscimos (frete, seguro e outras despesas)/Desconto R$ (Exibe somente se houver!) $hasAD = false; if ($vDesc != '0.00') { $this->html .= "<tr>\n"; $this->html .= "<td class=\"tLeft\">" . htmlspecialchars('Desconto R$') . "</td>\n"; $this->html .= "<td class=\"tRight\">-" . number_format($vDesc, 2, ',', '.') . "</td>\n"; $this->html .= "</tr>\n"; $this->html .= "<tr>\n"; $hasAD = true; } if ($vOutro != '0.00') { $this->html .= "<tr>\n"; $this->html .= "<td class=\"tLeft\">" . htmlspecialchars('Acréscimos R$') . "</td>\n"; $this->html .= "<td class=\"tRight\">" . number_format($vOutro, 2, ',', '.') . "</td>\n"; $this->html .= "</tr>\n"; $this->html .= "<tr>\n"; $hasAD = true; } // (Total Itens - Descontos + Acréscimos) deve ser impresso apenas se existir acréscimo ou desconto if ($hasAD) { $this->html .= "<tr>\n"; $this->html .= "<td class=\"tLeft\">" . htmlspecialchars('Valor a Pagar R$') . "</td>\n"; $this->html .= "<td class=\"tRight\">" . number_format($vOutro, 2, ',', '.') . "</td>\n"; $this->html .= "</tr>\n"; } // Formas de Pagamentos $this->html .= "<tr>\n"; $this->html .= "<th class=\"tLeft\">FORMA DE PAGAMENTO</th>\n"; $this->html .= "<th class=\"tRight\">VALOR PAGO</th>\n"; $this->html .= "</tr>\n"; $this->html .= self::pagamento($this->pag); $this->html .= "</table>\n"; // -- Divisão V – Área de Mensagem Fiscal $this->html .= "<table width=\"100%\">\n"; if ($tpEmis != 1) { $this->html .= "<tr>\n"; $this->html .= "<td colspan=\"3\"><strong>" . htmlspecialchars("EMITIDA EM CONTINGÊNCIA") . "</strong></td>\n"; $this->html .= "</tr>\n"; } elseif ($tpAmb == 2) { $this->html .= "<tr>\n"; $this->html .= "<td colspan=\"3\"><strong>" . htmlspecialchars("EMITIDA EM AMBIENTE DE HOMOLOGAÇÃO – SEM VALOR FISCAL") . "<strong></td>\n"; $this->html .= "</tr>\n"; } elseif (!empty($this->infAdFisco)) { $this->html .= "<tr>\n"; $this->html .= "<td colspan=\"3\"><strong>" . htmlspecialchars("INFORMAÇÕES ADICIONAIS DE INTERESSE DO FISCO") . "<strong></td>\n"; $this->html .= "<td colspan=\"3\">{$this->infAdFisco}</td>\n" . ($this->html .= "</tr>\n"); } $this->html .= "</table>\n"; // -- Divisão VI – Informações de Identificação da NFC-e e do Protocolo de Autorização $this->html .= "<table width=\"100%\">\n"; $this->html .= "<tr>\n"; $this->html .= "<td colspan=\"3\">" . htmlspecialchars($numNF); $this->html .= " " . htmlspecialchars('Série: ') . "{$serieNF}"; if ($tpEmis == 1) { $this->html .= " " . htmlspecialchars('Emissão: ') . date('d/m/y H:i:s', $tsHora) . "</td>\n"; } else { $this->html .= " " . htmlspecialchars('Emissão: ') . date('d/m/y H:i:s', $tsHora); $this->html .= "<br><strong>Via do Consumidor</strong></td>\n"; } $this->html .= "</tr>\n"; $this->html .= "<tr>\n"; $this->html .= "<td colspan=\"3\">Consulte pela Chave de Acesso em <a href=\"{$urlQR}\">{$urlQR}</a></td>\n"; $this->html .= "</tr>\n"; $this->html .= "<tr>\n"; $this->html .= "<td colspan=\"3\">Chave de Acesso<br>{$chNFe}</td>\n"; $this->html .= "</tr>\n"; if ($tpEmis == 1) { $this->html .= "<tr>\n"; $this->html .= "<td colspan=\"3\">Protocolo de autorização: {$nProt} - " . date('d/m/y H:i:s', $tsProt) . "</td>\n"; $this->html .= "</tr>\n"; } $this->html .= "</table>\n"; // -- Divisão VII – Informações sobre o Consumidor $this->html .= self::consumidor($this->dest); // -- Divisão VIII – Informações da Consulta via QR Code $this->html .= "<table width=\"100%\">\n"; $this->html .= "<tr>\n"; $this->html .= "<td colspan=\"3\"><img src=\"{$this->imgQRCode}\" ></td>\n"; $this->html .= "</tr>\n"; $this->html .= "</table>\n"; // -- Divisão IX – Mensagem de Interesse do Contribuinte $this->html .= "<table width=\"100%\" class=\"noBorder\">\n"; $this->html .= "<tr>\n"; $this->html .= "<td colspan=\"3\" class=\"menor tCenter\"><strong>{$this->infCpl}</strong></td>\n"; $this->html .= "</tr>\n"; $this->html .= "</table>\n"; // *** ***// // *** Via do Estabelecimento em Modo Contigência ***// // *** ***// if ($tpEmis != 1) { $html2via = str_replace('Via do Consumidor', 'Via do Estabelecimento', $this->html); $this->html .= "<br><hr><br>\n"; $this->html .= $html2via; } $this->html .= "</body>\n</html>\n"; return $chNFe; }
<?php error_reporting(E_ALL); ini_set('display_errors', 'On'); include_once '../../bootstrap.php'; //NOTA: o envio de email com o DANFE somente funciona para modelo 55 // o modelo 65 nunca requer o envio do DANFCE por email use NFePHP\NFe\ToolsNFe; $xml = __DIR__ . '/../xml/35150300822602000124550010009923461099234656-nfe.xml'; $nfe = new ToolsNFe('../../config/config.json'); $nfe->setModelo('55'); $aMails = ['*****@*****.**']; //se for um array vazio a classe Mail irá pegar os emails do xml $templateFile = ''; //se vaizio usará o template padrão da mensagem $comPdf = true; try { $nfe->enviaMail($xml, $aMails, $templateFile, $comPdf); } catch (NFePHP\Common\Exception\RuntimeException $e) { echo $e->getMessage(); }
<?php error_reporting(E_ALL); ini_set('display_errors', 'On'); require_once '../../bootstrap.php'; use NFePHP\NFe\ToolsNFe; $nfe = new ToolsNFe('../../config/config.json'); //$nfe->ativaContingencia('GO','Contingência Ativada pela SEFAZ GO desde 08/10/2010 18:00:00',''); //$nfe->desativaContingencia(); $nfe->setModelo('55'); $aResposta = array(); $siglaUF = 'GO'; $tpAmb = '2'; $retorno = $nfe->sefazStatus($siglaUF, $tpAmb, $aResposta); echo '<br><br><pre>'; echo htmlspecialchars($nfe->soapDebug); echo '</pre><br><br><pre>'; print_r($aResposta); echo "</pre><br>";
<?php error_reporting(E_ALL); ini_set('display_errors', 'On'); require_once '../../bootstrap.php'; use NFePHP\NFe\ToolsNFe; $nfe = new ToolsNFe('../../config/config.json'); $nfe->setModelo('55'); $chave = '52160500067985000172550010000000101000000100'; $tpAmb = '2'; $aResposta = array(); $xml = $nfe->sefazConsultaChave($chave, $tpAmb, $aResposta); echo '<br><br><pre>'; echo htmlspecialchars($nfe->soapDebug); echo '</pre><br><pre>'; print_r($aResposta); echo "<pre><br>";
<?php error_reporting(E_ALL); ini_set('display_errors', 'On'); include_once '../../bootstrap.php'; use NFePHP\NFe\ToolsNFe; $nfe = new ToolsNFe('../../config/config.json'); $nfe->setModelo('55'); $chave = '35150458716523000119550010000000131000000139'; $tpAmb = '2'; $xml = "/var/www/nfe/homologacao/assinadas/{$chave}-nfe.xml"; if (!$nfe->validarXml($xml)) { echo "Eita !?! Tem bicho na linha .... <br>"; foreach ($nfe->errors as $erro) { echo "{$erro} <br>"; } exit; } echo "NFe Valida !";