Skip to content

Commit

Permalink
Merge pull request #312 from nfephp-org/4
Browse files Browse the repository at this point in the history
CTe 4.00
  • Loading branch information
cleitonperin authored Sep 10, 2023
2 parents d809da2 + ac0d581 commit 60fd307
Show file tree
Hide file tree
Showing 63 changed files with 5,813 additions and 12,336 deletions.
85 changes: 0 additions & 85 deletions examples/testaInutilizaCTe.php

This file was deleted.

70 changes: 33 additions & 37 deletions examples/testaMakeCTe.php
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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");
Expand Down Expand Up @@ -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
Expand All @@ -301,8 +299,6 @@
exit();




//Envia lote e autoriza
$axmls[] = $xml;
$lote = substr(str_replace(',', '', number_format(microtime(true) * 1000000, 0)), 0, 15);
Expand All @@ -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
Expand All @@ -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 '<pre>';
print_r($arr);
Expand All @@ -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;
}
4 changes: 2 additions & 2 deletions examples/testaMakeCTeOS.php
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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(
Expand Down
Loading

0 comments on commit 60fd307

Please sign in to comment.