|
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.