diff --git a/examples/testaMakeCTe.php b/examples/testaMakeCTe.php index 61e2592..696ea7e 100644 --- a/examples/testaMakeCTe.php +++ b/examples/testaMakeCTe.php @@ -4,12 +4,10 @@ require_once '../bootstrap.php'; -use NFePHP\CTe\Make; -use NFePHP\CTe\Tools; -use NFePHP\CTe\Complements; -use NFePHP\CTe\Common\Standardize; use NFePHP\Common\Certificate; -use NFePHP\Common\Soap\SoapCurl; +use NFePHP\CTe\Common\Standardize; +use NFePHP\CTe\MakeCTe; +use NFePHP\CTe\Tools; //tanto o config.json como o certificado.pfx podem estar //armazenados em uma base de dados, então não é necessário @@ -42,7 +40,7 @@ $tools->model('57'); -$cte = new Make(); +$cte = new MakeCTe(); //$dhEmi = date("Y-m-d\TH:i:s-03:00"); Para obter a data com diferença de fuso usar 'P' $dhEmi = date("Y-m-d\TH:i:sP"); @@ -275,7 +273,7 @@ $aereo->nOCA = ''; // Número Operacional do Conhecimento Aéreo $aereo->dPrevAereo = date('Y-m-d'); $aereo->natCarga_xDime = ''; // Dimensões 1234x1234x1234 em cm -$aereo->natCarga_cInfManu = [ ]; // Informação de manuseio, com dois dígitos, pode ter mais de uma ocorrência. +$aereo->natCarga_cInfManu = []; // Informação de manuseio, com dois dígitos, pode ter mais de uma ocorrência. $aereo->tarifa_CL = 'G'; // M - Tarifa Mínima / G - Tarifa Geral / E - Tarifa Específica $aereo->tarifa_cTar = ''; // código da tarifa, deverão ser incluídos os códigos de três digítos correspondentes à tarifa $aereo->tarifa_vTar = 100.00; // valor da tarifa. 15 posições, sendo 13 inteiras e 2 decimais. Valor da tarifa por kg quando for o caso @@ -301,8 +299,6 @@ exit(); - - //Envia lote e autoriza $axmls[] = $xml; $lote = substr(str_replace(',', '', number_format(microtime(true) * 1000000, 0)), 0, 15); @@ -317,8 +313,8 @@ $std = $stdCl->toStd(); if ($std->cStat != 103) {//103 - Lote recebido com Sucesso - //processa erros - print_r($arr); + //processa erros + print_r($arr); } //Consulta Recibo @@ -327,7 +323,7 @@ $arr = $stdCl->toArray(); $std = $stdCl->toStd(); if ($std->protCTe->infProt->cStat == 100) {//Autorizado o uso do CT-e - //adicionar protocolo + //adicionar protocolo } echo '
';
 print_r($arr);
@@ -337,34 +333,34 @@
 
 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);
+    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--;
+    $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;
     }
-  }
-  $resto = $somaPonderada % 11;
-  if ($resto == '0' || $resto == '1') {
-    $cDV = 0;
-  } else {
-    $cDV = 11 - $resto;
-  }
-  return (string) $cDV;
+    return (string)$cDV;
 }
diff --git a/examples/testaMakeCTeOS.php b/examples/testaMakeCTeOS.php
index be4b11c..5bd7f16 100644
--- a/examples/testaMakeCTeOS.php
+++ b/examples/testaMakeCTeOS.php
@@ -4,7 +4,7 @@
 
 require_once '../bootstrap.php';
 
-use NFePHP\CTe\Make;
+use NFePHP\CTe\MakeCTeOS;
 use NFePHP\CTe\Tools;
 use NFePHP\CTe\Complements;
 use NFePHP\CTe\Common\Standardize;
@@ -41,7 +41,7 @@
 $tools = new Tools($configJson, Certificate::readPfx($content, '123456'));
 
 $tools->model('67');
-$cte = new Make();
+$cte = new MakeCTeOS();
 $dhEmi = date("Y-m-d\TH:i:s-03:00");
 $numeroCTE = '1';
 $chave = montaChave(
diff --git a/src/MakeCTe.php b/src/MakeCTe.php
index 36f669c..7b96c7f 100644
--- a/src/MakeCTe.php
+++ b/src/MakeCTe.php
@@ -526,7 +526,12 @@ public function monta()
             $this->dom->appChild($this->infCte, $this->infCTeNorm, 'Falta tag "infCTeNorm"');
             $this->dom->appChild($this->infCTeNorm, $this->infCarga, 'Falta tag "infCarga"');
             foreach ($this->infQ as $infQ) {
-                $this->dom->appChild($this->infCarga, $infQ, 'Falta tag "infQ"');
+                $node = $this->infCarga->getElementsByTagName("vCargaAverb")->item(0);
+                if (!empty($node)) {
+                    $this->infCarga->insertBefore($infQ, $node);
+                } else {
+                    $this->dom->appChild($this->infCarga, $infQ, 'Falta tag "infQ"');
+                }
             }
             foreach ($this->infNF as $infNF) {
                 $this->dom->appChild($this->infDoc, $infNF, 'Falta tag "infNF"');
@@ -3201,7 +3206,7 @@ public function taginfQ($std)
             $this->conditionalNumberFormatting($std->qCarga, 4),
             true,
             $identificador . 'Quantidade'
-        );       
+        );
         return $this->infQ[$posicao];
     }