Olá Pessoa, estou com dificuldade para emissão da nota no modelo 67, fiz as alterações para emissão e no final sempre me retorna o mesmo Erro. vou anexar o código de exemplo que estou usando e o erro abaixo.Coloquei abaixo dos dados da empresa e o certificado, o mesmo que já uso para emitir o modelo 57.
$tools->model('67');
$cte = new Make();
$dhEmi = date("Y-m-d\TH:i:s-03:00");
$numeroCTE = '127';
$chave = montaChave(
'43', date('y', strtotime($dhEmi)), date('m', strtotime($dhEmi)), $arr['cnpj'], $tools->model(), '1', $numeroCTE, '1', '10'
);
$infCte = new stdClass();
$infCte->versao = "3.00";
$infCte->Id = "";
$cte->taginfCTe($infCte);
$cDV = substr($chave, -1); //Digito Verificador
$ide = new stdClass();
$ide->cUF = '51'; // Codigo da UF da tabela do IBGE
$ide->cCT = '99999999'; // Codigo numerico que compoe a chave de acesso
$ide->CFOP = '6932'; // Codigo fiscal de operacoes e prestacoes
$ide->natOp = 'PRESTACAO DE SERVICO DE TRANSPORTE'; // Natureza da operacao
$ide->mod = '67'; // Modelo do documento fiscal: 57 para identificação do CT-e
$ide->serie = '0'; // Serie do CTe
$ide->nCT = $numeroCTE; // Numero do CTe
$ide->dhEmi = $dhEmi; // Data e hora de emissão do CT-e: Formato AAAA-MM-DDTHH:MM:DD
$ide->tpImp = '1'; // Formato de impressao do DACTE: 1-Retrato; 2-Paisagem.
$ide->tpEmis = ' 1'; // Forma de emissao do CTe: 1-Normal; 4-EPEC pela SVC; 5-Contingência
$ide->cDV = $cDV; // Codigo verificador
$ide->tpAmb = '2'; // 1- Producao; 2-homologacao
$ide->tpCTe = '0';
$ide->procEmi = '0'; // Descricao no comentario acima
$ide->verProc = '3.0'; // versao do aplicativo emissor
$ide->cMunEnv = '5103403 '; // Utilizar a tabela do IBGE. Informar 9999999 para as operações com o exterior.
$ide->xMunEnv = 'CUIABÁ'; // Informar PAIS/Municipio para as operações com o exterior.
$ide->UFEnv = 'MT'; // Informar 'EX' para operações com o exterior.
$ide->modal = '01'; // Preencher com:01-Rodoviário; 02-Aéreo; 03-Aquaviário;04-
$ide->tpServ = '6'; // 0- Normal; 1- Subcontratação; 2- Redespacho;
$ide->indIEToma = '1';
$ide->cMunIni = '5103403'; // Utilizar a tabela do IBGE. Informar 9999999 para as operações com o exterior.
$ide->xMunIni = 'CUIABA'; // Informar 'EXTERIOR' para operações com o exterior.
$ide->UFIni = 'MT'; // Informar 'EX' para operações com o exterior.
$ide->cMunFim = '5103403'; // Utilizar a tabela do IBGE. Informar 9999999 para operações com o exterior.
$ide->xMunFim = 'CUIABA'; // Informar 'EXTERIOR' para operações com o exterior.
$ide->UFFim = 'MT'; // Informar 'EX' para operações com o exterior.
$ide->dhCont = ''; // Informar 'EX' para operações com o exterior.dhContdhCont
$ide->xJust = ''; // Informar 'EX' para operações com o exterior.dhContdhCont
$cte->tagideCTeOS($ide);
$perc = new stdClass();
$perc->uf = 'MT';
$cte->taginfPercurso($perc);
$emit = new stdClass();
$emit->CNPJ = $arr['cnpj']; // CNPJ do emitente
$emit->IE = '0100072968'; // Inscricao estadual
$emit->IEST = ""; // Inscricao estadual
$emit->xNome = $arr['razaosocial']; // Razao social
$emit->xFant = 'Nome Fantasia'; // Nome fantasia
$cte->tagemit($emit);
$enderEmit = new stdClass();
$enderEmit->xLgr = 'RUA CARLOS LUZ'; // Logradouro
$enderEmit->nro = '123'; // Numero
$enderEmit->xCpl = ''; // Complemento
$enderEmit->xBairro = 'PARQUE PRESIDENTE'; // Bairro
$enderEmit->cMun = '4302105'; // Código do município (utilizar a tabela do IBGE)
$enderEmit->xMun = 'FOZ DO IGUACU'; // Nome do municipio
$enderEmit->CEP = '85863150'; // CEP
$enderEmit->UF = $arr['siglaUF']; // Sigla UF
$enderEmit->fone = '4535221216'; // Fone
$cte->tagenderEmit($enderEmit);
$toma4 = new stdClass();
$toma4->toma = '4'; // 4-Outros; informar os dados cadastrais do tomador quando ele for outros
$toma4->CNPJ = '11509962000197'; // CNPJ
$toma4->CPF = ''; // CPF
$toma4->IE = 'ISENTO'; // Iscricao estadual
$toma4->xNome = 'RAZAO SOCIAL'; // Razao social ou Nome
$toma4->xFant = 'NOME FANTASIA'; // Nome fantasia
$toma4->fone = '5532128202'; // Telefone
$toma4->email = '[email protected]'; // email
$cte->tagtoma4($toma4);
$enderToma = new stdClass();
$enderToma->xLgr = 'Avenida Independência'; // Logradouro
$enderToma->nro = '482'; // Numero
$enderToma->xCpl = ''; // COmplemento
$enderToma->xBairro = 'Centro'; // Bairro
$enderToma->cMun = '4308607'; // Codigo do municipio do IBEGE Informar 9999999 para operações com o exterior
$enderToma->xMun = 'Garibaldi'; // Nome do município (Informar EXTERIOR para operações com o exterior.
$enderToma->CEP = '95720000'; // CEP
$enderToma->UF = $arr['siglaUF']; // Sigla UF (Informar EX para operações com o exterior.)
$enderToma->cPais = '1058'; // Codigo do país ( Utilizar a tabela do BACEN )
$enderToma->xPais = 'Brasil'; // Nome do pais
$cte->tagenderToma($enderToma);
$vPrest = new stdClass();
$vPrest->vTPrest = 3334.32; // Valor total da prestacao do servico
$vPrest->vRec = 3334.32; // Valor a receber
$cte->tagvPrest($vPrest);
$comp = new stdClass();
$comp->xNome = 'FRETE VALOR'; // Nome do componente
$comp->vComp = '3334.32'; // Valor do componente
$cte->tagComp($comp);
$icms = new stdClass();
$icms->cst = '00'; // 00 - Tributacao normal ICMS
$icms->pRedBC = ''; // Percentual de redução da BC (3 inteiros e 2 decimais)
$icms->vBC = 3334.32; // Valor da BC do ICMS
$icms->pICMS = 12; // Alícota do ICMS
$icms->vICMS = 400.12; // Valor do ICMS
$icms->vBCSTRet = ''; // Valor da BC do ICMS ST retido
$icms->vICMSSTRet = ''; // Valor do ICMS ST retido
$icms->pICMSSTRet = ''; // Alíquota do ICMS
$icms->vCred = ''; // Valor do Crédito Outorgado/Presumido
$icms->vTotTrib = 754.38; // Valor de tributos federais; estaduais e municipais
$icms->outraUF = false; // ICMS devido à UF de origem da prestação; quando diferente da UF do emitente
$icms->vICMSUFIni = 0;
$icms->vICMSUFFim = 0;
$cte->tagicms($icms);
$infCarga = new stdClass();
$infCarga->vCarga = 130333.31; // Valor total da carga
$infCarga->proPred = 'TUBOS PLASTICOS'; // Produto predominante
$infCarga->xOutCat = ''; // Outras caracteristicas da carga
$infCarga->vCargaAverb = '';
$cte->taginfCarga($infCarga);
$cte->taginfCTeNorm(); // Grupo de informações do CT-e Normal e Substituto
$serv = new StdClass();
$serv->xDescServ = 'PASSAGEIROS';
$serv->qCarga = 30;
$cte->taginfServico($serv);
$infModal = new stdClass();
$infModal->versaoModal = "CTeModalRodoviarioOS_v3.00";
$cte->taginfModal($infModal);
$rodo = new stdClass();
$rodo->TAF = '007393579999';
$rodo->nroRegEstadual = '122323232323232';
$cte->tagrodoOS($rodo);
$veic = new stdClass();
$veic->placa = 'NJJ6300';
$veic->RENAVAM = 'SDF32323232323';
$veic->xNome='';
$veic->uf='MT';
$cte->tagveicCTeOS($veic);
$cte->taginfDoc();
$cte->montaCTe();
$chave = $cte->chCTe;
$filename = "../xml/{$chave}-cte.xml";
$xml = $cte->getXML();
file_put_contents($filename, $xml);
//Assina
$xml = $tools->signCTe($xml);
//Imprime XML na tela
header('Content-type: text/xml; charset=UTF-8');
//Envia lote e autoriza
$axmls[] = $xml;
$lote = substr(str_replace(',', '', number_format(microtime(true) * 1000000, 0)), 0, 15);
$res = $tools->sefazEnviaLote($axmls, $lote);
//Converte resposta
$stdCl = new Standardize($res);
//Output array
$arr = $stdCl->toArray();
//print_r($arr);
//Output object
$std = $stdCl->toStd();
if ($std->cStat != 103) {//103 - Lote recebido com Sucesso
//processa erros
print_r($arr);
}
//Consulta Recibo
$res = $tools->sefazConsultaRecibo($std->infRec->nRec);
$stdCl = new Standardize($res);
$arr = $stdCl->toArray();
$std = $stdCl->toStd();
if ($std->protCTe->infProt->cStat == 100) {//Autorizado o uso do CT-e
//adicionar protocolo
}
echo '
';
print_r($arr);
exit();
function montaChave($cUF, $ano, $mes, $cnpj, $mod, $serie, $numero, $tpEmis, $codigo = '')
{
if ($codigo == '') {
$codigo = $numero;
}
$forma = "%02d%02d%02d%s%02d%03d%09d%01d%08d";
$chave = sprintf(
$forma, $cUF, $ano, $mes, $cnpj, $mod, $serie, $numero, $tpEmis, $codigo
);
return $chave . calculaDV($chave);
}
function calculaDV($chave43)
{
$multiplicadores = array(2, 3, 4, 5, 6, 7, 8, 9);
$iCount = 42;
$somaPonderada = 0;
while ($iCount >= 0) {
for ($mCount = 0; $mCount < count($multiplicadores) && $iCount >= 0; $mCount++) {
$num = (int) substr($chave43, $iCount, 1);
$peso = (int) $multiplicadores[$mCount];
$somaPonderada += $num * $peso;
$iCount--;
}
}
$resto = $somaPonderada % 11;
if ($resto == '0' || $resto == '1') {
$cDV = 0;
} else {
$cDV = 11 - $resto;
}
return (string) $cDV;
}
Erro Retornado:
Catchable fatal error: Argument 1 passed to NFePHP\Common\DOMImproved::appChild() must be an instance of DOMElement, instance of NFePHP\Common\DOMImproved given, called in /var/www/html/app/vendor/nfephp-org/sped-cte/src/Make.php on line 733 and defined in /var/www/html/app/vendor/nfephp-org/sped-common/src/DOMImproved.php on line 181