Passed
Push — master ( bb4aeb...d67f2e )
by João
10:45
created

ICMS::setMotDesICMS()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

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