1
|
|
|
<?php |
2
|
|
|
/**@category Teste |
3
|
|
|
* @package Spedmdfeexamples |
4
|
|
|
* @copyright 2009-2016 NFePHP |
5
|
|
|
* @name testaMakeMDFe.php |
6
|
|
|
* @license http://www.gnu.org/licenses/gpl.html GNU/GPL v.3 |
7
|
|
|
* @link http://github.com/nfephp-org/sped-cte for the canonical source repository |
8
|
|
|
* @author Maison K. Sakamoto <[email protected]> |
9
|
|
|
* |
10
|
|
|
* TESTE PARA A VERSÃO 3.0 do MDFe |
11
|
|
|
**/ |
12
|
|
|
error_reporting(E_ALL); |
13
|
|
|
ini_set('display_errors', 'On'); |
14
|
|
|
|
15
|
|
|
require_once '../bootstrap.php'; |
16
|
|
|
|
17
|
|
|
use NFePHP\MDFe\Make; |
18
|
|
|
use NFePHP\MDFe\Tools; |
19
|
|
|
|
20
|
|
|
function timezone_offset_string() |
21
|
|
|
{ |
22
|
|
|
$offset = timezone_offset_get(new DateTimeZone('America/Sao_Paulo'), new DateTime()); |
23
|
|
|
return sprintf("%s%02d:%02d", ( $offset >= 0 ) ? '+' : '-', abs($offset / 3600), abs($offset % 3600)); |
24
|
|
|
} |
25
|
|
|
|
26
|
|
|
$make= new Make(); |
27
|
|
|
$tools = new Tools('../config/config.json'); |
|
|
|
|
28
|
|
|
$dhEmi = date("Y-m-d\TH:i:s".timezone_offset_string()); |
29
|
|
|
|
30
|
|
|
//$cteTools->aConfig['siglaUF'] = $obj->emitenteUFNome; // SIGLA DA UF |
31
|
|
|
//$cteTools->aConfig['cnpj']= Formatador::somenteNumeros($obj->emitenteCNPJ); // CNPJ do emitente |
32
|
|
|
//$cteTools->aConfig['ie']= Formatador::somenteNumeros($obj->emitenteIE); // Inscricao estadual |
33
|
|
|
//$cteTools->aConfig['razaosocial']=$obj->emitenteRazao; // Razao social |
34
|
|
|
$tools->aConfig['nomefantasia']="BARTHOLO TRANSPORTES RODOVIARIOS LTDA"; // Nome fantasia |
|
|
|
|
35
|
|
|
$tools->aConfig['schemesCTe']="PL_CTe_300"; // Versao do XML |
|
|
|
|
36
|
|
|
$tools->aConfig['pathXmlUrlFileCTe']="cte_ws3.xml"; |
|
|
|
|
37
|
|
|
|
38
|
|
|
$cUF = '41'; // 41-PR, 42-SC |
39
|
|
|
$tpAmb = '2'; // 1-Producao(versao fiscal), 2-Homologacao(versao de teste) |
40
|
|
|
$mod = '58'; // Modelo do documento fiscal: 58 para identificação do MDF-e |
41
|
|
|
$serie = '1'; // Serie do MDFe |
42
|
|
|
$tpEmis = '1'; // Forma de emissao do MDFe: 1-Normal; 2- Contingencia |
43
|
|
|
$numeroMDFe = '104'; |
44
|
|
|
$cMDF = '00000010'; |
45
|
|
|
|
46
|
|
|
|
47
|
|
|
$chave = $make->montaChave( |
|
|
|
|
48
|
|
|
$cUF, // Codigo da UF da tabela do IBGE: 41-PR |
49
|
|
|
$ano = date('y', strtotime($dhEmi)), |
50
|
|
|
$mes = date('m', strtotime($dhEmi)), |
51
|
|
|
$cnpj = $tools->aConfig['cnpj'], |
|
|
|
|
52
|
|
|
$mod, // Modelo do documento fiscal: 58 para identificação do MDF-e |
53
|
|
|
$serie, // Serie do MDFe |
54
|
|
|
$numero = $numeroMDFe, // Numero do MDFe |
55
|
|
|
$tpEmis, // Forma de emissao do MDFe: 1-Normal; 2- Contingencia |
56
|
|
|
$cCT = $cMDF // Código aleatório gerado pelo emitente |
57
|
|
|
); |
58
|
|
|
|
59
|
|
|
$make->taginfMDFe($chave, $versao = '3.00'); |
|
|
|
|
60
|
|
|
|
61
|
|
|
$cDV = substr($chave, -1); //Digito Verificador |
62
|
|
|
$make->tagide( |
63
|
|
|
$cUF, // Codigo da UF da tabela do IBGE: 41-PR |
|
|
|
|
64
|
|
|
$tpAmb, // 1-Producao(versao fiscal), 2-Homologacao(versao de teste) |
|
|
|
|
65
|
|
|
$tpEmit = '1', // 1-Prestador de serviço de transporte 2-Transportador de Carga Própria |
66
|
|
|
$tpTransp = '', // 1-ETC 2-TAC 3-CTC (facultativo) |
67
|
|
|
$mod, // Modelo do documento fiscal: 58 para identificação do MDF-e |
68
|
|
|
$serie, // Serie do MDFe |
69
|
|
|
$nMDF = $numeroMDFe, // Numero do Manifesto |
70
|
|
|
$cMDF = $cMDF, // Código aleatório gerado pelo emitente |
71
|
|
|
$cDV, // Digito Verificador |
72
|
|
|
$modal = '1', // 1-Rodoviário; 2-Aéreo; 3-Aquaviário; 4-Ferroviário. |
73
|
|
|
$dhEmi, // Data e hora de emissão do Manifesto (Formato AAAA-MM-DDTHH:MM:DD TZD) |
74
|
|
|
$tpEmis, // 1-Normal; 2-Contingência |
75
|
|
|
$procEmi = '0', // 0-Aplicativo do Contribuinte; 3-Aplicativo fornecido pelo Fisco |
76
|
|
|
$verProc = '3', // Informar a versão do aplicativo emissor de MDF-e. |
77
|
|
|
$UFIni = 'PR', // Sigla da UF do Carregamento |
78
|
|
|
$UFFim = 'SC', // Sigla da UF do Descarregamento |
79
|
|
|
$dhIniViagem = '' |
80
|
|
|
); |
81
|
|
|
|
82
|
|
|
$make->tagInfMunCarrega( |
83
|
|
|
$cMunCarrega = '4108304', // Código do Município de Carregamento (IBEGE) |
|
|
|
|
84
|
|
|
$xMunCarrega = 'Foz do Iguacu' // Nome do Municipio de CArregamento |
|
|
|
|
85
|
|
|
); |
86
|
|
|
|
87
|
|
|
$make->tagemit( |
88
|
|
|
$CNPJ = '81450900000132', |
|
|
|
|
89
|
|
|
$IE = '4220816074', |
|
|
|
|
90
|
|
|
$xNome = 'BARTHOLO TRANSPORTES RODOVIARIOS LTDA', |
91
|
|
|
$xFant = 'BARTHOLO TRANSPORTES RODOVIARIOS LTDA' |
92
|
|
|
); |
93
|
|
|
|
94
|
|
|
$make->tagenderEmit( |
95
|
|
|
$xLgr = 'RUA CARLOS LUZ', |
|
|
|
|
96
|
|
|
$nro = '1', |
|
|
|
|
97
|
|
|
$xCpl = '', |
98
|
|
|
$xBairro = 'PARQUE PRESIDENTE', |
99
|
|
|
$cMun = '4108304', |
100
|
|
|
$xMun = 'Foz do Iguacu', |
101
|
|
|
$CEP = '85863150', |
102
|
|
|
$UF = 'PR', // Sigla da UF, , informar EX para operações com o exterior |
103
|
|
|
$fone = '35221216', |
104
|
|
|
$email = '[email protected]' |
105
|
|
|
); |
106
|
|
|
|
107
|
|
|
$make->tagInfModal($versaoModal = '3.00'); |
|
|
|
|
108
|
|
|
|
109
|
|
|
$make->tagInfANTT( |
110
|
|
|
$RNTRC = '00739357' |
|
|
|
|
111
|
|
|
); |
112
|
|
|
|
113
|
|
|
$make->tagInfcontratante( |
114
|
|
|
$cpf = '', |
|
|
|
|
115
|
|
|
$cnpj = '79525242000159' |
|
|
|
|
116
|
|
|
); |
117
|
|
|
|
118
|
|
|
$make->tagCondutor( |
119
|
|
|
$xNome = 'VALDIR NUNES GOMES', |
|
|
|
|
120
|
|
|
$propCPF = '01754762921' |
|
|
|
|
121
|
|
|
); |
122
|
|
|
|
123
|
|
|
$make->tagVeicTracao( |
124
|
|
|
$cInt = '123', // Código interno do veículo |
|
|
|
|
125
|
|
|
$placa = 'BEH6886', |
|
|
|
|
126
|
|
|
$tara = '16500', |
127
|
|
|
$capKG = '25500', |
128
|
|
|
$capM3 = '100', |
129
|
|
|
$tpRod = '03', // 01 - Truck; 02 - Toco; 03 - Cavalo Mecânico; 04 - VAN; 05 - Utilitário; 06 - Outros. |
130
|
|
|
$tpCar = '02', // 00-não aplicável; 01-Aberta; 02-Fechada/Baú; 03-Granelera; 04-Porta Container; 05-Sider |
131
|
|
|
$UF = 'PR', |
132
|
|
|
$propRNTRC = '', |
133
|
|
|
$RENAVAM = '00588892793' |
134
|
|
|
); |
135
|
|
|
|
136
|
|
|
$make->tagInfMunDescarga( |
137
|
|
|
$nItem = 0, // index do array ( podem ser varios ) |
|
|
|
|
138
|
|
|
$cMunDescarga = '4202404', |
|
|
|
|
139
|
|
|
$xMunDescarga = 'Blumenau' |
140
|
|
|
); |
141
|
|
|
|
142
|
|
|
$make->tagInfCTe( |
143
|
|
|
$nItem = 0, // index do array ( podem ser varios ) |
|
|
|
|
144
|
|
|
$chCTe = '42171081450900000566570010000001571000000100', |
|
|
|
|
145
|
|
|
$segCodBarra = '', |
146
|
|
|
$indReentrega = '' |
147
|
|
|
); |
148
|
|
|
|
149
|
|
|
|
150
|
|
|
$make->tagInfResp( |
|
|
|
|
151
|
|
|
$respSeg = '1', // Responsável pelo seguro [1-Emitente; 2-Resp. pela contratação do serviço de transporte] |
152
|
|
|
$CNPJ = '81450900000566', |
153
|
|
|
$CPF = '' |
154
|
|
|
); |
155
|
|
|
$make->tagInfSeg( |
|
|
|
|
156
|
|
|
$xSeg = 'CHUBB SEGUROS', // Nome da Seguradora |
157
|
|
|
$CNPJ = '07476410000124' // CNPJ da seguradora |
158
|
|
|
); |
159
|
|
|
$make->tagSeg( |
160
|
|
|
$nApol = '13128-001', // Número da Apólice |
|
|
|
|
161
|
|
|
$nAver = '1089' // Número da Averbação |
|
|
|
|
162
|
|
|
); |
163
|
|
|
$make->tagTot( |
164
|
|
|
$qCTe = '1', // Quantidade total de CT-e relacionados no Manifesto |
|
|
|
|
165
|
|
|
$qNFe = '', // Quantidade total de NF-e relacionadas no Manifesto |
|
|
|
|
166
|
|
|
$qMDFe = '', // Quantidade total de MDF-e relacionados no Manifesto Aquaviário |
167
|
|
|
$vCarga = '21627.26', // Valor total da carga / mercadorias transportadas |
168
|
|
|
$cUnid = '01', // Codigo da unidade de medida do Peso Bruto da Carga / Mercadorias transportadas |
169
|
|
|
$qCarga = '55.8200' // Peso Bruto Total da Carga / Mercadorias transportadas |
170
|
|
|
); |
171
|
|
|
|
172
|
|
|
$make->tagautXML( |
173
|
|
|
$cnpj = '04898488000177' // CNPJ do autorizado |
|
|
|
|
174
|
|
|
); |
175
|
|
|
|
176
|
|
|
$resp = $make->montaMDFe(); |
177
|
|
|
$filename = "../xml/{$chave}-mdfe.xml"; |
178
|
|
|
if ($resp) { |
179
|
|
|
//header('Content-type: text/xml; charset=UTF-8'); |
180
|
|
|
$xml = $make->getXML(); |
181
|
|
|
file_put_contents($filename, $xml); |
182
|
|
|
//chmod($filename, 0777); |
183
|
|
|
//echo $xml; |
184
|
|
|
} else { |
185
|
|
|
//header('Content-type: text/html; charset=UTF-8'); |
186
|
|
|
foreach ($make->erros as $err) { |
|
|
|
|
187
|
|
|
echo 'tag: <'.$err['tag'].'> ---- '.$err['desc'].'<br>'; |
188
|
|
|
} |
189
|
|
|
} |
190
|
|
|
|
191
|
|
|
$xmlAssinado = $tools->assina($xml); |
|
|
|
|
192
|
|
|
file_put_contents($filename, $xmlAssinado); |
193
|
|
|
|
194
|
|
|
$aRetorno = array(); |
195
|
|
|
$tools->sefazEnviaLote($xmlAssinado, $tpAmb, $idLote = '', $aRetorno); |
|
|
|
|
196
|
|
|
|
197
|
|
|
echo "<pre>"; |
198
|
|
|
echo htmlspecialchars($tools->soapDebug); |
|
|
|
|
199
|
|
|
echo print_r($aRetorno); |
200
|
|
|
echo "</pre>"; |
201
|
|
|
|
This check looks for function calls that miss required arguments.