1
|
|
|
<?php |
2
|
|
|
|
3
|
|
|
declare(strict_types=1); |
4
|
|
|
|
5
|
|
|
namespace Gbbs\NfeCalculos; |
6
|
|
|
|
7
|
|
|
use Exception; |
8
|
|
|
|
9
|
|
|
class ICMS |
10
|
|
|
{ |
11
|
|
|
private $orig; // Origem da mercadoria |
12
|
|
|
private $CST; // Tributação do ICMS |
13
|
|
|
private $modBC; // Modalidade de determinação da BC do ICMS |
14
|
|
|
private $pRedBC; // Percentual da Redução de BC |
15
|
|
|
private $vBC; // Valor da BC do ICMS |
16
|
|
|
private $pICMS; // Alíquota do imposto |
17
|
|
|
private $vICMS; // Valor do ICMS |
18
|
|
|
private $modBCST; // Modalidade de determinação da BC do ICMS ST |
19
|
|
|
private $pMVAST; // Percentual da margem de valor Adicionado do ICMS ST |
20
|
|
|
private $pRedBCST; // Percentual da Redução de BC do ICMS ST |
21
|
|
|
private $vBCST; // Valor da BC do ICMS ST |
22
|
|
|
private $pICMSST; // Alíquota do imposto do ICMS ST |
23
|
|
|
private $vICMSST; // Valor do ICMS ST |
24
|
|
|
private $UFST; // UF para qual é devido o ICMS ST |
25
|
|
|
private $pBCop; // Percentual da BC operação própria |
26
|
|
|
private $vBCSTRet; // Valor da BC do ICMS Retido Anteriormente |
27
|
|
|
private $vICMSSTRet; // Valor do ICMS Retido Anteriormente |
28
|
|
|
private $motDesICMS; // Motivo da desoneração do ICMS |
29
|
|
|
private $vBCSTDest; // Valor da BC do ICMS ST da UF destino |
30
|
|
|
private $vICMSSTDest; // Valor do ICMS ST da UF destino |
31
|
|
|
private $pCredSN; // Alíquota aplicável de cálculo do crédito (Simples Nacional) |
32
|
|
|
private $vCredICMSSN; // Valor crédito do ICMS que pode ser aproveitado nos termos do art. 23 da LC 123 (SIMPLES NACIONAL) |
33
|
|
|
private $vICMSDeson; // Valor do ICMS da desoneração |
34
|
|
|
private $vICMSOp; // Valor do ICMS da Operação |
35
|
|
|
private $pDif; // percentual do diferimento |
36
|
|
|
private $vICMSDif; // Valor do ICMS Diferido |
37
|
|
|
private $vBCFCP; // Valor da Base de Cálculo do FCP |
38
|
|
|
private $pFCP; // Percentual do FCP |
39
|
|
|
private $vFCP; // Valor do FCP |
40
|
|
|
private $vBCFCPST; // Valor da Base de Cálculo do FCP retido por Substituição Tributária |
41
|
|
|
private $pFCPST; // Percentual do FCP retido por Substituição Tributária. |
42
|
|
|
private $vFCPST; // Valor do FCP retido por Substituição Tributária |
43
|
|
|
private $vBCFCPSTRet; // Valor da BC do FCP retido anteriormente por Substituição Tributária |
44
|
|
|
private $pFCPSTRet; // Alíquota do FCP retido anteriormente por Substituição Tributária |
45
|
|
|
private $vFCPSTRet; // Valor do FCP retido anteriormente por Substituição Tributária |
46
|
|
|
private $pST; // Alíquota suportada pelo Consumidor Final |
47
|
|
|
|
48
|
|
|
/** |
49
|
|
|
* @param $ICMS |
50
|
|
|
* @param $pICMSST |
51
|
|
|
* @param $reducao |
52
|
|
|
* @return ICMS |
53
|
|
|
* @throws Exception |
54
|
|
|
*/ |
55
|
|
|
public static function calcular(self $ICMS, $pICMSST, $reducao): self |
56
|
|
|
{ |
57
|
|
|
$ST = 0; |
58
|
|
|
|
59
|
|
|
//REDUÇÃO DO PERCENTUAL DA ALIQUOTA ICMS |
60
|
|
|
if ($reducao > 0 and $ICMS->getCST() === '51') { |
61
|
|
|
$ICMS->pICMS = $reducao; |
62
|
|
|
} |
63
|
|
|
if ($reducao > 0) { |
64
|
|
|
$ICMS->pICMSST = $reducao; |
65
|
|
|
} else { // CASO NÃO HAJA REDUÇÃO, ELE IRÁ CALCULAR NORMALMENTE |
66
|
|
|
$ICMS->pICMSST = $ST > 0 ? $ST : $pICMSST; |
67
|
|
|
} |
68
|
|
|
|
69
|
|
|
if ($ICMS->getCST() === '00') { |
70
|
|
|
self::calcCST00($ICMS); |
71
|
|
|
} elseif ($ICMS->getCST() === '10') { |
72
|
|
|
self::calcCST10($ICMS); |
73
|
|
|
} elseif ($ICMS->getCST() === '20') { |
74
|
|
|
throw new Exception('Not implemented'); |
75
|
|
|
// self::calcCST20($ICMS); |
76
|
|
|
} elseif ($ICMS->getCST() === '30') { |
77
|
|
|
throw new Exception('Not implemented'); |
78
|
|
|
// self::calcCST30($ICMS, $pICMSST, $ST); |
79
|
|
|
} elseif ($ICMS->getCST() === '40') { |
80
|
|
|
throw new Exception('Not implemented'); |
81
|
|
|
// self::calcCST40($ICMS); |
82
|
|
|
} elseif ($ICMS->getCST() === '41') { |
83
|
|
|
throw new Exception('Not implemented'); |
84
|
|
|
// self::calcCST41($ICMS); |
85
|
|
|
} elseif ($ICMS->getCST() === '50') { |
86
|
|
|
throw new Exception('Not implemented'); |
87
|
|
|
// self::calcCST50($ICMS); |
88
|
|
|
} elseif ($ICMS->getCST() === '51') { |
89
|
|
|
throw new Exception('Not implemented'); |
90
|
|
|
// self::calcCST51($ICMS); |
91
|
|
|
} elseif ($ICMS->getCST() === '60') { |
92
|
|
|
throw new Exception('Not implemented'); |
93
|
|
|
// self::calcCST60($ICMS); |
94
|
|
|
} elseif ($ICMS->getCST() === '70') { |
95
|
|
|
throw new Exception('Not implemented'); |
96
|
|
|
// self::calcCST70($ICMS, $pICMSST, $ST); |
97
|
|
|
} elseif ($ICMS->getCST() === '90') { |
98
|
|
|
throw new Exception('Not implemented'); |
99
|
|
|
// self::calcCST90c($ICMS); |
100
|
|
|
} elseif ($ICMS->getCST() === '101') { |
101
|
|
|
throw new Exception('Not implemented'); |
102
|
|
|
// self::calcCSOSN101($ICMS); |
103
|
|
|
} elseif ($ICMS->getCST() === '102') { |
104
|
|
|
throw new Exception('Not implemented'); |
105
|
|
|
// self::calcCSOSN102($ICMS); |
106
|
|
|
} elseif ($ICMS->getCST() === '103') { |
107
|
|
|
throw new Exception('Not implemented'); |
108
|
|
|
// FIXME Do nothing? |
109
|
|
|
} elseif ($ICMS->getCST() === '200') { |
110
|
|
|
throw new Exception('Not implemented'); |
111
|
|
|
// self::calcCST200($ICMS); |
112
|
|
|
} elseif ($ICMS->getCST() === '201') { |
113
|
|
|
throw new Exception('Not implemented'); |
114
|
|
|
// self::calcCSOSN201($ICMS, $pICMSST, $ST); |
115
|
|
|
} elseif ($ICMS->getCST() === '202') { |
116
|
|
|
throw new Exception('Not implemented'); |
117
|
|
|
// self::calcCSOSN202($ICMS, $pICMSST, $ST); |
118
|
|
|
} elseif ($ICMS->getCST() === '203') { |
119
|
|
|
throw new Exception('Not implemented'); |
120
|
|
|
// self::calcCSOSN203($ICMS, $pICMSST, $ST); |
121
|
|
|
} elseif ($ICMS->getCST() === '300') { |
122
|
|
|
throw new Exception('Not implemented'); |
123
|
|
|
// FIXME Do nothing? |
124
|
|
|
} elseif ($ICMS->getCST() === '400') { |
125
|
|
|
throw new Exception('Not implemented'); |
126
|
|
|
// FIXME Do nothing? |
127
|
|
|
} elseif ($ICMS->getCST() === '500') { |
128
|
|
|
throw new Exception('Not implemented'); |
129
|
|
|
// self::calcCSOSN500($ICMS); |
130
|
|
|
} elseif ($ICMS->getCST() === '900') { |
131
|
|
|
throw new Exception('Not implemented'); |
132
|
|
|
// self::calcCSOSN900($ICMS, $pICMSST, $ST); |
133
|
|
|
} else { |
134
|
|
|
throw new Exception('Erro ao calcular ICMS' . print_r($ICMS, true)); |
135
|
|
|
} |
136
|
|
|
return $ICMS; |
137
|
|
|
} |
138
|
|
|
|
139
|
|
|
// /* |
140
|
|
|
// * @Calcula o Valor crédito do ICMS que pode ser aproveitado |
141
|
|
|
// */ |
142
|
|
|
// private static function calcvCredICMSSN($ICMS) |
143
|
|
|
// { |
144
|
|
|
// return ($ICMS->vBC * $ICMS->pCredSN) / 100; |
145
|
|
|
// } |
146
|
|
|
|
147
|
|
|
/** |
148
|
|
|
* Calcula o Valor do ICMS |
149
|
|
|
* @param $ICMS |
150
|
|
|
* @return float |
151
|
|
|
*/ |
152
|
|
|
private static function calcvICMS(self $ICMS): float |
153
|
|
|
{ |
154
|
|
|
return $ICMS->getVBC() * ($ICMS->getPICMS() / 100); |
155
|
|
|
} |
156
|
|
|
|
157
|
|
|
/** |
158
|
|
|
* Calcula o Valor do ICMSST |
159
|
|
|
* @param $ICMS |
160
|
|
|
* @return float |
161
|
|
|
*/ |
162
|
|
|
private static function calcvICMSST(self $ICMS): float |
163
|
|
|
{ |
164
|
|
|
if ($ICMS->getPMVAST() === 0.0) { |
|
|
|
|
165
|
|
|
return 0.0; |
166
|
|
|
} |
167
|
|
|
|
168
|
|
|
$ICMS->setVICMS(self::calcvICMS($ICMS)); |
169
|
|
|
$ICMS->setVBCST($ICMS->getVBCST() * (1 + ($ICMS->getPMVAST() / 100))); // VERIFICAR AQUI OQUE ESTÃO ACONTECENDO |
170
|
|
|
return ((($ICMS->getVBCST() - ($ICMS->getVBCST() * ($ICMS->getPRedBCST() / 100)))) * ($ICMS->getPICMSST() / 100)) - $ICMS->getVICMS(); |
171
|
|
|
} |
172
|
|
|
|
173
|
|
|
// private static function calcvICMSDesonIsento($ICMS) |
174
|
|
|
// { |
175
|
|
|
// $icms_normal = ($ICMS->vBC * ($ICMS->pICMS / 100)); |
176
|
|
|
// $ICMS->vICMSDeson = $icms_normal; |
177
|
|
|
// return $ICMS->vICMSDeson; |
178
|
|
|
// } |
179
|
|
|
// |
180
|
|
|
// private static function calcvICMSDeson($ICMS) |
181
|
|
|
// { |
182
|
|
|
// $icms_normal = ($ICMS->vBC * ($ICMS->pICMS / 100)); |
183
|
|
|
// $icms_reduzido = ($ICMS->vBC - ($ICMS->vBC * ($ICMS->pRedBC / 100))) * ($ICMS->pICMS / 100); |
184
|
|
|
// $ICMS->vICMSDeson = $icms_normal - $icms_reduzido; |
185
|
|
|
// return $ICMS->vICMSDeson; |
186
|
|
|
// } |
187
|
|
|
// |
188
|
|
|
// /** |
189
|
|
|
// * Calcula a redução na base de culculo do ICMS |
190
|
|
|
// * @param $ICMS |
191
|
|
|
// * @return float |
192
|
|
|
// */ |
193
|
|
|
// private static function calcRedBC(self $ICMS): float |
194
|
|
|
// { |
195
|
|
|
// return $ICMS->getVBC() - ($ICMS->getVBC() * ($ICMS->getPRedBC() / 100)); |
196
|
|
|
// } |
197
|
|
|
|
198
|
|
|
/** |
199
|
|
|
* Calcula a redução na base de culculo do ICMSST |
200
|
|
|
* @param $ICMS |
201
|
|
|
* @return float |
202
|
|
|
*/ |
203
|
|
|
private static function calcRedBCST(self $ICMS): float |
204
|
|
|
{ |
205
|
|
|
return $ICMS->getVBCST() - ($ICMS->getVBCST() * ($ICMS->getPRedBCST() / 100)); |
206
|
|
|
} |
207
|
|
|
|
208
|
|
|
// /* /// SIMPLES NACIONAL /// */ |
209
|
|
|
// private static function calcCSOSN101($ICMS) |
210
|
|
|
// { |
211
|
|
|
// $ICMS->vCredICMSSN = self::calcvCredICMSSN($ICMS); |
212
|
|
|
// } |
213
|
|
|
// |
214
|
|
|
// private static function calcCSOSN102($ICMS) |
215
|
|
|
// { |
216
|
|
|
// $ICMS->vBC = null; |
217
|
|
|
// $ICMS->vICMS = null; |
218
|
|
|
// $ICMS->vBCST = null; |
219
|
|
|
// $ICMS->vBCSTRet = null; |
220
|
|
|
// $ICMS->vICMSSTRet = null; |
221
|
|
|
// } |
222
|
|
|
|
223
|
|
|
/** |
224
|
|
|
* @param $ICMS |
225
|
|
|
* @throws Exception |
226
|
|
|
*/ |
227
|
|
|
private static function calcCST00(self $ICMS): void |
228
|
|
|
{ |
229
|
|
|
if ($ICMS->getModBC() === 0) { |
230
|
|
|
$ICMS->setVICMS(self::calcvICMS($ICMS)); |
231
|
|
|
} else { |
232
|
|
|
throw new Exception('Not implemented'); |
233
|
|
|
} |
234
|
|
|
} |
235
|
|
|
|
236
|
|
|
/** |
237
|
|
|
* @param $ICMS |
238
|
|
|
* @throws Exception |
239
|
|
|
*/ |
240
|
|
|
private static function calcCST10(self $ICMS): void |
241
|
|
|
{ |
242
|
|
|
if ($ICMS->getModBCST() === 4) { |
243
|
|
|
$ICMS->setVBCST(self::calcRedBCST($ICMS)); |
244
|
|
|
$ICMS->setVICMS(self::calcvICMS($ICMS)); |
245
|
|
|
$ICMS->setVICMSST(self::calcvICMSST($ICMS)); |
246
|
|
|
} else { |
247
|
|
|
throw new Exception('Not implemented'); |
248
|
|
|
} |
249
|
|
|
} |
250
|
|
|
|
251
|
|
|
// private static function calcCSOSN201($ICMS, $pICMSST, $ST) |
252
|
|
|
// { |
253
|
|
|
// $ICMS->pICMSST = $ST > 0 ? $ST : $pICMSST; |
254
|
|
|
// $ICMS->vCredICMSSN = self::calcvCredICMSSN($ICMS); |
255
|
|
|
// $ICMS->vICMSST = (self::calcvICMSST($ICMS)); |
256
|
|
|
// } |
257
|
|
|
// |
258
|
|
|
// private static function calcCSOSN202($ICMS, $pICMSST, $ST) |
259
|
|
|
// { |
260
|
|
|
// $ICMS->pICMSST = $ST > 0 ? $ST : $pICMSST; |
261
|
|
|
// $ICMS->vICMSST = (self::calcvICMSST($ICMS)); |
262
|
|
|
// } |
263
|
|
|
// |
264
|
|
|
// private static function calcCSOSN203($ICMS, $pICMSST, $ST) |
265
|
|
|
// { |
266
|
|
|
// $ICMS->pICMSST = $ST > 0 ? $ST : $pICMSST; |
267
|
|
|
// $ICMS->vICMSST = (self::calcvICMSST($ICMS)); |
268
|
|
|
// } |
269
|
|
|
// |
270
|
|
|
// private static function calcCSOSN500($ICMS) |
271
|
|
|
// { |
272
|
|
|
// $ICMS->vBC = null; |
273
|
|
|
// $ICMS->vICMS = null; |
274
|
|
|
// $ICMS->vBCST = null; |
275
|
|
|
// $ICMS->vICMSST = null; |
276
|
|
|
// } |
277
|
|
|
// |
278
|
|
|
// private static function calcCSOSN900($ICMS, $pICMSST, $ST) |
279
|
|
|
// { |
280
|
|
|
// $ICMS->pICMSST = $ST > 0 ? $ST : $pICMSST; |
281
|
|
|
// $ICMS->vCredICMSSN = self::calcvCredICMSSN($ICMS); |
282
|
|
|
// $ICMS->vICMS = (self::calcvICMS($ICMS)); |
283
|
|
|
// $ICMS->vICMSST = (self::calcvICMSST($ICMS)); |
284
|
|
|
// } |
285
|
|
|
// |
286
|
|
|
// // --- FUNCOES CALCULOS POR CST DO REGIME NORMAL --- |
287
|
|
|
// |
288
|
|
|
// private static function calcCST200($ICMS) |
289
|
|
|
// { |
290
|
|
|
// $ICMS->vICMS = (self::calcvICMS($ICMS)); |
291
|
|
|
// $ICMS->vICMSST = 0; |
292
|
|
|
// $ICMS->vBCST = 0; |
293
|
|
|
// $ICMS->pMVAST = 0; |
294
|
|
|
// $ICMS->pICMSST = 0; |
295
|
|
|
// } |
296
|
|
|
// |
297
|
|
|
// private static function calcCST20($ICMS) |
298
|
|
|
// { |
299
|
|
|
// $ICMS->vICMSDeson = self::calcvICMSDeson($ICMS); |
300
|
|
|
// $ICMS->vBC = self::calcRedBC($ICMS); |
301
|
|
|
// $ICMS->vICMS = (self::calcvICMS($ICMS)); |
302
|
|
|
// |
303
|
|
|
// $ICMS->vICMSST = 0; |
304
|
|
|
// $ICMS->vBCST = 0; |
305
|
|
|
// $ICMS->pMVAST = 0; |
306
|
|
|
// $ICMS->pICMSST = 0; |
307
|
|
|
// } |
308
|
|
|
// |
309
|
|
|
// private static function calcCST30($ICMS, $pICMSST, $ST) |
310
|
|
|
// { |
311
|
|
|
// $ICMS->vBCST = self::calcRedBCST($ICMS); |
312
|
|
|
// $ICMS->pICMSST = $ST > 0 ? $ST : $pICMSST; |
313
|
|
|
// $ICMS->vICMSST = (self::calcvICMSST($ICMS)); |
314
|
|
|
// } |
315
|
|
|
// |
316
|
|
|
// private static function calcCST40($ICMS) |
317
|
|
|
// { |
318
|
|
|
// $ICMS->vICMSDeson = self::calcvICMSDesonIsento($ICMS); |
319
|
|
|
// if ($ICMS->SUFRAMA === 1) { |
320
|
|
|
// $ICMS->Desconto = $ICMS->vBC * ($ICMS->pICMS / 100); |
321
|
|
|
// } else { |
322
|
|
|
// $ICMS->Desconto = 0; |
323
|
|
|
// } |
324
|
|
|
// |
325
|
|
|
// $ICMS->vBC = 0; |
326
|
|
|
// $ICMS->vICMS = 0; |
327
|
|
|
// $ICMS->pICMS = 0; |
328
|
|
|
// |
329
|
|
|
// $ICMS->vICMSST = 0; |
330
|
|
|
// $ICMS->vBCST = 0; |
331
|
|
|
// $ICMS->pMVAST = 0; |
332
|
|
|
// $ICMS->pICMSST = 0; |
333
|
|
|
// } |
334
|
|
|
// |
335
|
|
|
// private static function calcCST41($ICMS) |
336
|
|
|
// { |
337
|
|
|
// $ICMS->vICMSDeson = self::calcvICMSDesonIsento($ICMS); |
338
|
|
|
// $ICMS->vBC = 0; |
339
|
|
|
// $ICMS->vICMS = 0; |
340
|
|
|
// $ICMS->pICMS = 0; |
341
|
|
|
// |
342
|
|
|
// $ICMS->vICMSST = 0; |
343
|
|
|
// $ICMS->vBCST = 0; |
344
|
|
|
// $ICMS->pMVAST = 0; |
345
|
|
|
// $ICMS->pICMSST = 0; |
346
|
|
|
// } |
347
|
|
|
// |
348
|
|
|
// private static function calcCST50($ICMS) |
349
|
|
|
// { |
350
|
|
|
// $ICMS->vBC = 0; |
351
|
|
|
// $ICMS->vICMS = 0; |
352
|
|
|
// $ICMS->pICMS = 0; |
353
|
|
|
// |
354
|
|
|
// $ICMS->vICMSST = 0; |
355
|
|
|
// $ICMS->vBCST = 0; |
356
|
|
|
// $ICMS->pMVAST = 0; |
357
|
|
|
// $ICMS->pICMSST = 0; |
358
|
|
|
// } |
359
|
|
|
// |
360
|
|
|
// private static function calcCST51($ICMS) |
361
|
|
|
// { |
362
|
|
|
// $ICMS->vBC = self::calcRedBC($ICMS); |
363
|
|
|
// $ICMS->vICMS = (self::calcvICMS($ICMS)); |
364
|
|
|
// |
365
|
|
|
// $ICMS->vICMSST = 0; |
366
|
|
|
// $ICMS->vBCST = 0; |
367
|
|
|
// $ICMS->pMVAST = 0; |
368
|
|
|
// $ICMS->pICMSST = 0; |
369
|
|
|
// } |
370
|
|
|
// |
371
|
|
|
// private static function calcCST60($ICMS) |
372
|
|
|
// { |
373
|
|
|
// $ICMS->vBC = 0; |
374
|
|
|
// $ICMS->vICMS = 0; |
375
|
|
|
// $ICMS->pICMS = 0; |
376
|
|
|
// $ICMS->vICMSST = 0; |
377
|
|
|
// $ICMS->vBCST = 0; |
378
|
|
|
// $ICMS->pMVAST = 0; |
379
|
|
|
// $ICMS->pICMSST = 0; |
380
|
|
|
// } |
381
|
|
|
// |
382
|
|
|
// private static function calcCST70($ICMS, $pICMSST, $ST) |
383
|
|
|
// { |
384
|
|
|
// $ICMS->vBCST = self::calcRedBCST($ICMS); |
385
|
|
|
// $ICMS->vBC = self::calcRedBC($ICMS); |
386
|
|
|
// $ICMS->pICMSST = $ST > 0 ? $ST : $pICMSST; |
387
|
|
|
// $ICMS->vICMS = (self::calcvICMS($ICMS)); |
388
|
|
|
// $ICMS->vICMSST = (self::calcvICMSST($ICMS)); |
389
|
|
|
// } |
390
|
|
|
// |
391
|
|
|
// private static function calcCST90c($ICMS) |
392
|
|
|
// { |
393
|
|
|
// if ($ICMS->CSTNotaRef === '10') { |
394
|
|
|
// $ICMS->vICMS = (self::calcvICMS($ICMS)); |
395
|
|
|
// $ICMS->vICMSST = self::calcvICMSST($ICMS); |
396
|
|
|
// } else { |
397
|
|
|
// $ICMS->vICMS = (self::calcvICMS($ICMS)); |
398
|
|
|
// } |
399
|
|
|
// $ICMS->vICMSDeson = self::calcvICMSDesonIsento($ICMS); |
400
|
|
|
// } |
401
|
|
|
|
402
|
|
|
/** |
403
|
|
|
* @return string |
404
|
|
|
*/ |
405
|
|
|
public function getOrig(): string |
406
|
|
|
{ |
407
|
|
|
return $this->orig; |
408
|
|
|
} |
409
|
|
|
|
410
|
|
|
/** |
411
|
|
|
* @param string $orig |
412
|
|
|
* 0 - Nacional, exceto as indicadas nos códigos 3, 4, 5 e 8; |
413
|
|
|
* 1 - Estrangeira - Importação direta, exceto a indicada no código 6; |
414
|
|
|
* 2 - Estrangeira - Adquirida no mercado interno, exceto a indicada no código 7; |
415
|
|
|
* 3 - Nacional, mercadoria ou bem com Conteúdo de Importação superior a 40% e inferior ou igual a 70%; |
416
|
|
|
* 4 - Nacional, cuja produção tenha sido feita em conformidade com os processos produtivos básicos de que tratam as legislações citadas nos Ajustes; |
417
|
|
|
* 5 - Nacional, mercadoria ou bem com Conteúdo de Importação inferior ou igual a 40%; |
418
|
|
|
* 6 - Estrangeira - Importação direta, sem similar nacional, constante em lista da CAMEX e gás natural; |
419
|
|
|
* 7 - Estrangeira - Adquirida no mercado interno, sem similar nacional, constante em lista da CAMEX e gás natural. |
420
|
|
|
* 8 - Nacional, mercadoria ou bem com Conteúdo de Importação superior a 70%; |
421
|
|
|
*/ |
422
|
|
|
public function setOrig(string $orig): void |
423
|
|
|
{ |
424
|
|
|
$this->orig = $orig; |
425
|
|
|
} |
426
|
|
|
|
427
|
|
|
/** |
428
|
|
|
* @return string |
429
|
|
|
*/ |
430
|
|
|
public function getCST(): string |
431
|
|
|
{ |
432
|
|
|
return $this->CST; |
433
|
|
|
} |
434
|
|
|
|
435
|
|
|
/** |
436
|
|
|
* @param string $CST |
437
|
|
|
*/ |
438
|
|
|
public function setCST(string $CST): void |
439
|
|
|
{ |
440
|
|
|
$this->CST = $CST; |
441
|
|
|
} |
442
|
|
|
|
443
|
|
|
/** |
444
|
|
|
* @return int |
445
|
|
|
* 0 - Margem Valor Agregado (%); |
446
|
|
|
* 1 - Pauta (valor); |
447
|
|
|
* 2 - Preço Tabelado Máximo (valor); |
448
|
|
|
* 3 - Valor da Operação. |
449
|
|
|
*/ |
450
|
|
|
public function getModBC(): int |
451
|
|
|
{ |
452
|
|
|
return $this->modBC; |
453
|
|
|
} |
454
|
|
|
|
455
|
|
|
/** |
456
|
|
|
* @param int $modBC |
457
|
|
|
*/ |
458
|
|
|
public function setModBC(int $modBC): void |
459
|
|
|
{ |
460
|
|
|
$this->modBC = $modBC; |
461
|
|
|
} |
462
|
|
|
|
463
|
|
|
/** |
464
|
|
|
* @return float |
465
|
|
|
*/ |
466
|
|
|
public function getPRedBC(): float |
467
|
|
|
{ |
468
|
|
|
return $this->pRedBC; |
469
|
|
|
} |
470
|
|
|
|
471
|
|
|
/** |
472
|
|
|
* @param float $pRedBC |
473
|
|
|
*/ |
474
|
|
|
public function setPRedBC(float $pRedBC): void |
475
|
|
|
{ |
476
|
|
|
$this->pRedBC = $pRedBC; |
477
|
|
|
} |
478
|
|
|
|
479
|
|
|
/** |
480
|
|
|
* @return float |
481
|
|
|
*/ |
482
|
|
|
public function getVBC(): float |
483
|
|
|
{ |
484
|
|
|
return $this->vBC; |
485
|
|
|
} |
486
|
|
|
|
487
|
|
|
/** |
488
|
|
|
* @param float $vBC |
489
|
|
|
*/ |
490
|
|
|
public function setVBC(float $vBC): void |
491
|
|
|
{ |
492
|
|
|
$this->vBC = $vBC; |
493
|
|
|
} |
494
|
|
|
|
495
|
|
|
/** |
496
|
|
|
* @return float |
497
|
|
|
*/ |
498
|
|
|
public function getPICMS(): float |
499
|
|
|
{ |
500
|
|
|
return $this->pICMS; |
501
|
|
|
} |
502
|
|
|
|
503
|
|
|
/** |
504
|
|
|
* @param float $pICMS |
505
|
|
|
*/ |
506
|
|
|
public function setPICMS(float $pICMS): void |
507
|
|
|
{ |
508
|
|
|
$this->pICMS = $pICMS; |
509
|
|
|
} |
510
|
|
|
|
511
|
|
|
/** |
512
|
|
|
* @return float |
513
|
|
|
*/ |
514
|
|
|
public function getVICMS(): float |
515
|
|
|
{ |
516
|
|
|
return $this->vICMS; |
517
|
|
|
} |
518
|
|
|
|
519
|
|
|
/** |
520
|
|
|
* @param float $vICMS |
521
|
|
|
*/ |
522
|
|
|
public function setVICMS(float $vICMS): void |
523
|
|
|
{ |
524
|
|
|
$this->vICMS = $vICMS; |
525
|
|
|
} |
526
|
|
|
|
527
|
|
|
/** |
528
|
|
|
* @return int |
529
|
|
|
*/ |
530
|
|
|
public function getModBCST(): int |
531
|
|
|
{ |
532
|
|
|
return $this->modBCST; |
533
|
|
|
} |
534
|
|
|
|
535
|
|
|
/** |
536
|
|
|
* @param int $modBCST |
537
|
|
|
* 0 - Preço tabelado ou máximo sugerido; |
538
|
|
|
* 1 - Lista Negativa (valor); |
539
|
|
|
* 2 - Lista Positiva (valor); |
540
|
|
|
* 3 - Lista Neutra (valor); |
541
|
|
|
* 4 - Margem Valor Agregado (%); |
542
|
|
|
* 5 - Pauta (valor). |
543
|
|
|
*/ |
544
|
|
|
public function setModBCST(int $modBCST): void |
545
|
|
|
{ |
546
|
|
|
$this->modBCST = $modBCST; |
547
|
|
|
} |
548
|
|
|
|
549
|
|
|
/** |
550
|
|
|
* @return float |
551
|
|
|
*/ |
552
|
|
|
public function getPMVAST(): float |
553
|
|
|
{ |
554
|
|
|
return $this->pMVAST; |
555
|
|
|
} |
556
|
|
|
|
557
|
|
|
/** |
558
|
|
|
* @param float $pMVAST |
559
|
|
|
*/ |
560
|
|
|
public function setPMVAST(?float $pMVAST): void |
561
|
|
|
{ |
562
|
|
|
$this->pMVAST = $pMVAST; |
563
|
|
|
} |
564
|
|
|
|
565
|
|
|
/** |
566
|
|
|
* @return float |
567
|
|
|
*/ |
568
|
|
|
public function getPRedBCST(): float |
569
|
|
|
{ |
570
|
|
|
return $this->pRedBCST; |
571
|
|
|
} |
572
|
|
|
|
573
|
|
|
/** |
574
|
|
|
* @param float $pRedBCST |
575
|
|
|
*/ |
576
|
|
|
public function setPRedBCST(float $pRedBCST): void |
577
|
|
|
{ |
578
|
|
|
$this->pRedBCST = $pRedBCST; |
579
|
|
|
} |
580
|
|
|
|
581
|
|
|
/** |
582
|
|
|
* @return float |
583
|
|
|
*/ |
584
|
|
|
public function getVBCST(): float |
585
|
|
|
{ |
586
|
|
|
return $this->vBCST; |
587
|
|
|
} |
588
|
|
|
|
589
|
|
|
/** |
590
|
|
|
* @param float $vBCST |
591
|
|
|
*/ |
592
|
|
|
public function setVBCST(float $vBCST): void |
593
|
|
|
{ |
594
|
|
|
$this->vBCST = $vBCST; |
595
|
|
|
} |
596
|
|
|
|
597
|
|
|
/** |
598
|
|
|
* @return float |
599
|
|
|
*/ |
600
|
|
|
public function getPICMSST(): ?float |
601
|
|
|
{ |
602
|
|
|
return $this->pICMSST; |
603
|
|
|
} |
604
|
|
|
|
605
|
|
|
/** |
606
|
|
|
* @param float $pICMSST |
607
|
|
|
*/ |
608
|
|
|
public function setPICMSST(float $pICMSST): void |
609
|
|
|
{ |
610
|
|
|
$this->pICMSST = $pICMSST; |
611
|
|
|
} |
612
|
|
|
|
613
|
|
|
/** |
614
|
|
|
* @return float |
615
|
|
|
*/ |
616
|
|
|
public function getVICMSST(): float |
617
|
|
|
{ |
618
|
|
|
return $this->vICMSST; |
619
|
|
|
} |
620
|
|
|
|
621
|
|
|
/** |
622
|
|
|
* @param mixed $vICMSST |
623
|
|
|
*/ |
624
|
|
|
public function setVICMSST(float $vICMSST): void |
625
|
|
|
{ |
626
|
|
|
$this->vICMSST = $vICMSST; |
627
|
|
|
} |
628
|
|
|
|
629
|
|
|
/** |
630
|
|
|
* @return string |
631
|
|
|
*/ |
632
|
|
|
public function getUFST(): string |
633
|
|
|
{ |
634
|
|
|
return $this->UFST; |
635
|
|
|
} |
636
|
|
|
|
637
|
|
|
/** |
638
|
|
|
* @param string $UFST |
639
|
|
|
*/ |
640
|
|
|
public function setUFST(string $UFST): void |
641
|
|
|
{ |
642
|
|
|
$this->UFST = $UFST; |
643
|
|
|
} |
644
|
|
|
|
645
|
|
|
/** |
646
|
|
|
* @return float |
647
|
|
|
*/ |
648
|
|
|
public function getPBCop(): float |
649
|
|
|
{ |
650
|
|
|
return $this->pBCop; |
651
|
|
|
} |
652
|
|
|
|
653
|
|
|
/** |
654
|
|
|
* @param float $pBCop |
655
|
|
|
*/ |
656
|
|
|
public function setPBCop(float $pBCop): void |
657
|
|
|
{ |
658
|
|
|
$this->pBCop = $pBCop; |
659
|
|
|
} |
660
|
|
|
|
661
|
|
|
/** |
662
|
|
|
* @return float |
663
|
|
|
*/ |
664
|
|
|
public function getVBCSTRet(): float |
665
|
|
|
{ |
666
|
|
|
return $this->vBCSTRet; |
667
|
|
|
} |
668
|
|
|
|
669
|
|
|
/** |
670
|
|
|
* @param float $vBCSTRet |
671
|
|
|
*/ |
672
|
|
|
public function setVBCSTRet(float $vBCSTRet): void |
673
|
|
|
{ |
674
|
|
|
$this->vBCSTRet = $vBCSTRet; |
675
|
|
|
} |
676
|
|
|
|
677
|
|
|
/** |
678
|
|
|
* @return float |
679
|
|
|
*/ |
680
|
|
|
public function getVICMSSTRet(): float |
681
|
|
|
{ |
682
|
|
|
return $this->vICMSSTRet; |
683
|
|
|
} |
684
|
|
|
|
685
|
|
|
/** |
686
|
|
|
* @param float $vICMSSTRet |
687
|
|
|
*/ |
688
|
|
|
public function setVICMSSTRet(float $vICMSSTRet): void |
689
|
|
|
{ |
690
|
|
|
$this->vICMSSTRet = $vICMSSTRet; |
691
|
|
|
} |
692
|
|
|
|
693
|
|
|
/** |
694
|
|
|
* @return int |
695
|
|
|
*/ |
696
|
|
|
public function getMotDesICMS(): int |
697
|
|
|
{ |
698
|
|
|
return $this->motDesICMS; |
699
|
|
|
} |
700
|
|
|
|
701
|
|
|
/** |
702
|
|
|
* @param int $motDesICMS |
703
|
|
|
*/ |
704
|
|
|
public function setMotDesICMS(int $motDesICMS): void |
705
|
|
|
{ |
706
|
|
|
$this->motDesICMS = $motDesICMS; |
707
|
|
|
} |
708
|
|
|
|
709
|
|
|
/** |
710
|
|
|
* @return float |
711
|
|
|
*/ |
712
|
|
|
public function getVBCSTDest(): float |
713
|
|
|
{ |
714
|
|
|
return $this->vBCSTDest; |
715
|
|
|
} |
716
|
|
|
|
717
|
|
|
/** |
718
|
|
|
* @param float $vBCSTDest |
719
|
|
|
*/ |
720
|
|
|
public function setVBCSTDest(float $vBCSTDest): void |
721
|
|
|
{ |
722
|
|
|
$this->vBCSTDest = $vBCSTDest; |
723
|
|
|
} |
724
|
|
|
|
725
|
|
|
/** |
726
|
|
|
* @return float |
727
|
|
|
*/ |
728
|
|
|
public function getVICMSSTDest(): float |
729
|
|
|
{ |
730
|
|
|
return $this->vICMSSTDest; |
731
|
|
|
} |
732
|
|
|
|
733
|
|
|
/** |
734
|
|
|
* @param float $vICMSSTDest |
735
|
|
|
*/ |
736
|
|
|
public function setVICMSSTDest(float $vICMSSTDest): void |
737
|
|
|
{ |
738
|
|
|
$this->vICMSSTDest = $vICMSSTDest; |
739
|
|
|
} |
740
|
|
|
|
741
|
|
|
/** |
742
|
|
|
* @return float |
743
|
|
|
*/ |
744
|
|
|
public function getPCredSN(): float |
745
|
|
|
{ |
746
|
|
|
return $this->pCredSN; |
747
|
|
|
} |
748
|
|
|
|
749
|
|
|
/** |
750
|
|
|
* @param float $pCredSN |
751
|
|
|
*/ |
752
|
|
|
public function setPCredSN(float $pCredSN): void |
753
|
|
|
{ |
754
|
|
|
$this->pCredSN = $pCredSN; |
755
|
|
|
} |
756
|
|
|
|
757
|
|
|
/** |
758
|
|
|
* @return float |
759
|
|
|
*/ |
760
|
|
|
public function getVCredICMSSN(): float |
761
|
|
|
{ |
762
|
|
|
return $this->vCredICMSSN; |
763
|
|
|
} |
764
|
|
|
|
765
|
|
|
/** |
766
|
|
|
* @param float $vCredICMSSN |
767
|
|
|
*/ |
768
|
|
|
public function setVCredICMSSN(float $vCredICMSSN): void |
769
|
|
|
{ |
770
|
|
|
$this->vCredICMSSN = $vCredICMSSN; |
771
|
|
|
} |
772
|
|
|
|
773
|
|
|
/** |
774
|
|
|
* @return float |
775
|
|
|
*/ |
776
|
|
|
public function getVICMSDeson(): float |
777
|
|
|
{ |
778
|
|
|
return $this->vICMSDeson; |
779
|
|
|
} |
780
|
|
|
|
781
|
|
|
/** |
782
|
|
|
* @param float $vICMSDeson |
783
|
|
|
*/ |
784
|
|
|
public function setVICMSDeson(float $vICMSDeson): void |
785
|
|
|
{ |
786
|
|
|
$this->vICMSDeson = $vICMSDeson; |
787
|
|
|
} |
788
|
|
|
|
789
|
|
|
/** |
790
|
|
|
* @return float |
791
|
|
|
*/ |
792
|
|
|
public function getVICMSOp(): float |
793
|
|
|
{ |
794
|
|
|
return $this->vICMSOp; |
795
|
|
|
} |
796
|
|
|
|
797
|
|
|
/** |
798
|
|
|
* @param float $vICMSOp |
799
|
|
|
*/ |
800
|
|
|
public function setVICMSOp(float $vICMSOp): void |
801
|
|
|
{ |
802
|
|
|
$this->vICMSOp = $vICMSOp; |
803
|
|
|
} |
804
|
|
|
|
805
|
|
|
/** |
806
|
|
|
* @return float |
807
|
|
|
*/ |
808
|
|
|
public function getPDif(): float |
809
|
|
|
{ |
810
|
|
|
return $this->pDif; |
811
|
|
|
} |
812
|
|
|
|
813
|
|
|
/** |
814
|
|
|
* @param float $pDif |
815
|
|
|
*/ |
816
|
|
|
public function setPDif(float $pDif): void |
817
|
|
|
{ |
818
|
|
|
$this->pDif = $pDif; |
819
|
|
|
} |
820
|
|
|
|
821
|
|
|
/** |
822
|
|
|
* @return float |
823
|
|
|
*/ |
824
|
|
|
public function getVICMSDif(): float |
825
|
|
|
{ |
826
|
|
|
return $this->vICMSDif; |
827
|
|
|
} |
828
|
|
|
|
829
|
|
|
/** |
830
|
|
|
* @param float $vICMSDif |
831
|
|
|
*/ |
832
|
|
|
public function setVICMSDif(float $vICMSDif): void |
833
|
|
|
{ |
834
|
|
|
$this->vICMSDif = $vICMSDif; |
835
|
|
|
} |
836
|
|
|
|
837
|
|
|
/** |
838
|
|
|
* @return float |
839
|
|
|
*/ |
840
|
|
|
public function getVBCFCP(): float |
841
|
|
|
{ |
842
|
|
|
return $this->vBCFCP; |
843
|
|
|
} |
844
|
|
|
|
845
|
|
|
/** |
846
|
|
|
* @param float $vBCFCP |
847
|
|
|
*/ |
848
|
|
|
public function setVBCFCP(float $vBCFCP): void |
849
|
|
|
{ |
850
|
|
|
$this->vBCFCP = $vBCFCP; |
851
|
|
|
} |
852
|
|
|
|
853
|
|
|
/** |
854
|
|
|
* @return float |
855
|
|
|
*/ |
856
|
|
|
public function getPFCP(): float |
857
|
|
|
{ |
858
|
|
|
return $this->pFCP; |
859
|
|
|
} |
860
|
|
|
|
861
|
|
|
/** |
862
|
|
|
* @param float $pFCP |
863
|
|
|
*/ |
864
|
|
|
public function setPFCP(float $pFCP): void |
865
|
|
|
{ |
866
|
|
|
$this->pFCP = $pFCP; |
867
|
|
|
} |
868
|
|
|
|
869
|
|
|
/** |
870
|
|
|
* @return float |
871
|
|
|
*/ |
872
|
|
|
public function getVFCP(): float |
873
|
|
|
{ |
874
|
|
|
return $this->vFCP; |
875
|
|
|
} |
876
|
|
|
|
877
|
|
|
/** |
878
|
|
|
* @param float $vFCP |
879
|
|
|
*/ |
880
|
|
|
public function setVFCP(float $vFCP): void |
881
|
|
|
{ |
882
|
|
|
$this->vFCP = $vFCP; |
883
|
|
|
} |
884
|
|
|
|
885
|
|
|
/** |
886
|
|
|
* @return float |
887
|
|
|
*/ |
888
|
|
|
public function getVBCFCPST(): float |
889
|
|
|
{ |
890
|
|
|
return $this->vBCFCPST; |
891
|
|
|
} |
892
|
|
|
|
893
|
|
|
/** |
894
|
|
|
* @param float $vBCFCPST |
895
|
|
|
*/ |
896
|
|
|
public function setVBCFCPST(float $vBCFCPST): void |
897
|
|
|
{ |
898
|
|
|
$this->vBCFCPST = $vBCFCPST; |
899
|
|
|
} |
900
|
|
|
|
901
|
|
|
/** |
902
|
|
|
* @return float |
903
|
|
|
*/ |
904
|
|
|
public function getPFCPST(): float |
905
|
|
|
{ |
906
|
|
|
return $this->pFCPST; |
907
|
|
|
} |
908
|
|
|
|
909
|
|
|
/** |
910
|
|
|
* @param float $pFCPST |
911
|
|
|
*/ |
912
|
|
|
public function setPFCPST(float $pFCPST): void |
913
|
|
|
{ |
914
|
|
|
$this->pFCPST = $pFCPST; |
915
|
|
|
} |
916
|
|
|
|
917
|
|
|
/** |
918
|
|
|
* @return float |
919
|
|
|
*/ |
920
|
|
|
public function getVFCPST(): float |
921
|
|
|
{ |
922
|
|
|
return $this->vFCPST; |
923
|
|
|
} |
924
|
|
|
|
925
|
|
|
/** |
926
|
|
|
* @param float $vFCPST |
927
|
|
|
*/ |
928
|
|
|
public function setVFCPST(float $vFCPST): void |
929
|
|
|
{ |
930
|
|
|
$this->vFCPST = $vFCPST; |
931
|
|
|
} |
932
|
|
|
|
933
|
|
|
/** |
934
|
|
|
* @return float |
935
|
|
|
*/ |
936
|
|
|
public function getVBCFCPSTRet(): float |
937
|
|
|
{ |
938
|
|
|
return $this->vBCFCPSTRet; |
939
|
|
|
} |
940
|
|
|
|
941
|
|
|
/** |
942
|
|
|
* @param float $vBCFCPSTRet |
943
|
|
|
*/ |
944
|
|
|
public function setVBCFCPSTRet(float $vBCFCPSTRet): void |
945
|
|
|
{ |
946
|
|
|
$this->vBCFCPSTRet = $vBCFCPSTRet; |
947
|
|
|
} |
948
|
|
|
|
949
|
|
|
/** |
950
|
|
|
* @return float |
951
|
|
|
*/ |
952
|
|
|
public function getPFCPSTRet(): float |
953
|
|
|
{ |
954
|
|
|
return $this->pFCPSTRet; |
955
|
|
|
} |
956
|
|
|
|
957
|
|
|
/** |
958
|
|
|
* @param float $pFCPSTRet |
959
|
|
|
*/ |
960
|
|
|
public function setPFCPSTRet(float $pFCPSTRet): void |
961
|
|
|
{ |
962
|
|
|
$this->pFCPSTRet = $pFCPSTRet; |
963
|
|
|
} |
964
|
|
|
|
965
|
|
|
/** |
966
|
|
|
* @return float |
967
|
|
|
*/ |
968
|
|
|
public function getVFCPSTRet(): float |
969
|
|
|
{ |
970
|
|
|
return $this->vFCPSTRet; |
971
|
|
|
} |
972
|
|
|
|
973
|
|
|
/** |
974
|
|
|
* @param float $vFCPSTRet |
975
|
|
|
*/ |
976
|
|
|
public function setVFCPSTRet(float $vFCPSTRet): void |
977
|
|
|
{ |
978
|
|
|
$this->vFCPSTRet = $vFCPSTRet; |
979
|
|
|
} |
980
|
|
|
|
981
|
|
|
/** |
982
|
|
|
* @return float |
983
|
|
|
*/ |
984
|
|
|
public function getPST(): float |
985
|
|
|
{ |
986
|
|
|
return $this->pST; |
987
|
|
|
} |
988
|
|
|
|
989
|
|
|
/** |
990
|
|
|
* @param float $pST |
991
|
|
|
*/ |
992
|
|
|
public function setPST(float $pST): void |
993
|
|
|
{ |
994
|
|
|
$this->pST = $pST; |
995
|
|
|
} |
996
|
|
|
} |
997
|
|
|
|