Passed
Push — master ( 56ee19...663194 )
by João
13:17
created

COFINS::setCST()   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 COFINS
10
{
11
    private $CST;
12
    public $vBC;
13
    public $pCOFINS;
14
    public $vCOFINS;
15
    public $pRedBC;
16
    public $vAliqProd;
17
    public $qBCProd;
18
    public $Desconto;
19
    public $REIDE;
20
    public $SUFRAMA;
21
    public $Zerar;
22
23
    /**
24
     * @param $COFINS
25
     * @return mixed
26
     * @throws Exception
27
     */
28
    public static function calcular(COFINS $COFINS)
29
    {
30
        /* Operação Tributável com Alíquota Básica */
31
        if ($COFINS->getCST() === '01') {
32
            return self::calcaCOFINS($COFINS);
33
        } elseif ($COFINS->getCST() === '02') {
34
            throw new Exception('Not implemented');
35
//            return self::calcaCOFINS($COFINS);
36
        } elseif ($COFINS->getCST() === '03') {
37
            throw new Exception('Not implemented');
38
//            return self::calcAliqCST03($COFINS);
39
        } elseif ($COFINS->getCST() === '04') {
40
            throw new Exception('Not implemented');
41
//            return self::calcIsento($COFINS);
42
        } elseif ($COFINS->getCST() === '05') {
43
            throw new Exception('Not implemented');
44
//            return self::calcIsento($COFINS);
45
        } elseif ($COFINS->getCST() === '06') {
46
            throw new Exception('Not implemented');
47
//            return self::calcIsento($COFINS);
48
        } elseif ($COFINS->getCST() === '07') {
49
            throw new Exception('Not implemented');
50
//            return self::calcIsentoDesconto($COFINS);
51
        } elseif ($COFINS->getCST() === '08') {
52
            throw new Exception('Not implemented');
53
//            return self::calcIsento($COFINS);
54
        } elseif ($COFINS->getCST() === '09') {
55
            throw new Exception('Not implemented');
56
//            return self::calcIsento($COFINS);
57
        } elseif ($COFINS->getCST() === '49') {
58
            throw new Exception('Not implemented');
59
//            return self::calcIsento($COFINS);
60
        } elseif ($COFINS->getCST() === '50') {
61
            throw new Exception('Not implemented');
62
//            return self::calcaCOFINS($COFINS);
63
        } elseif ($COFINS->getCST() === '51') {
64
            throw new Exception('Not implemented');
65
//            return self::calcaCOFINS($COFINS);
66
        } elseif ($COFINS->getCST() === '52') {
67
            throw new Exception('Not implemented');
68
//            return self::calcaCOFINS($COFINS);
69
        } elseif ($COFINS->getCST() === '53') {
70
            throw new Exception('Not implemented');
71
//            return self::calcaCOFINS($COFINS);
72
        } elseif ($COFINS->getCST() === '54') {
73
            throw new Exception('Not implemented');
74
//            return self::calcaCOFINS($COFINS);
75
        } elseif ($COFINS->getCST() === '55') {
76
            throw new Exception('Not implemented');
77
//            return self::calcaCOFINS($COFINS);
78
        } elseif ($COFINS->getCST() === '56') {
79
            throw new Exception('Not implemented');
80
//            return self::calcaCOFINS($COFINS);
81
        } elseif ($COFINS->getCST() === '60') {
82
            throw new Exception('Not implemented');
83
//            return self::calcaCOFINS($COFINS);
84
        } elseif ($COFINS->getCST() === '61') {
85
            throw new Exception('Not implemented');
86
//            return self::calcaCOFINS($COFINS);
87
        } elseif ($COFINS->getCST() === '62') {
88
            throw new Exception('Not implemented');
89
//            return self::calcaCOFINS($COFINS);
90
        } elseif ($COFINS->getCST() === '63') {
91
            throw new Exception('Not implemented');
92
//            return self::calcaCOFINS($COFINS);
93
        } elseif ($COFINS->getCST() === '64') {
94
            throw new Exception('Not implemented');
95
//            return self::calcaCOFINS($COFINS);
96
        } elseif ($COFINS->getCST() === '65') {
97
            throw new Exception('Not implemented');
98
//            return self::calcaCOFINS($COFINS);
99
        } elseif ($COFINS->getCST() === '66') {
100
            throw new Exception('Not implemented');
101
//            return self::calcaCOFINS($COFINS);
102
        } elseif ($COFINS->getCST() === '67') {
103
            throw new Exception('Not implemented');
104
//            return self::calcaCOFINS($COFINS);
105
        } elseif ($COFINS->getCST() === '70') {
106
            throw new Exception('Not implemented');
107
//            return self::calcIsento($COFINS);
108
        } elseif ($COFINS->getCST() === '71') {
109
            throw new Exception('Not implemented');
110
//            return self::calcaCOFINS($COFINS);
111
        } elseif ($COFINS->getCST() === '72') {
112
            throw new Exception('Not implemented');
113
//            return self::calcaCOFINS($COFINS);
114
        } elseif ($COFINS->getCST() === '73') {
115
            throw new Exception('Not implemented');
116
//            return self::calcaCOFINS($COFINS);
117
        } elseif ($COFINS->getCST() === '74') {
118
            throw new Exception('Not implemented');
119
//            return self::calcaCOFINS($COFINS);
120
        } elseif ($COFINS->getCST() === '75') {
121
            throw new Exception('Not implemented');
122
//            return self::calcaCOFINS($COFINS);
123
        } elseif ($COFINS->getCST() === '98') {
124
            throw new Exception('Not implemented');
125
//            return self::calcaCOFINS($COFINS);
126
        } elseif ($COFINS->getCST() === '99') {
127
            throw new Exception('Not implemented');
128
//            return self::calcIsento($COFINS);
129
        }
130
        throw new Exception('Erro ao calcular COFINS' . print_r($COFINS, true));
131
    }
132
133
//    private static function calcIsento($COFINS)
134
//    {
135
//        $COFINS->pCOFINS = 3;
136
//        if ($COFINS->REIDE === 1 || $COFINS->SUFRAMA === 1) {
137
//            $COFINS->Desconto = $COFINS->vBC * ($COFINS->pCOFINS / 100);
138
//        } else {
139
//            $COFINS->Desconto = 0;
140
//        }
141
//        $COFINS->vCOFINS = '0';
142
//        $COFINS->vBC = '0';
143
//        $COFINS->pCOFINS = '0';
144
//
145
//        return $COFINS;
146
//    }
147
148
    private static function calcaCOFINS($COFINS)
149
    {
150
        $COFINS->pCOFINS = 3;
151
        $COFINS->pRedBC = 0;
152
        $COFINS->vCOFINS = (($COFINS->vBC - ($COFINS->vBC * ($COFINS->pRedBC / 100))) * ($COFINS->pCOFINS / 100));
153
        if ($COFINS->REIDE === 1 || $COFINS->SUFRAMA === 1) {
154
            $COFINS->Desconto = $COFINS->vBC * ($COFINS->pCOFINS / 100);
155
        } else {
156
            $COFINS->Desconto = 0;
157
        }
158
        return $COFINS;
159
    }
160
161
//    private static function calcIsentoDesconto($COFINS)
162
//    {
163
//        $COFINS->pCOFINS = 3;
164
//        if ($COFINS->REIDE === 1 || $COFINS->SUFRAMA === 1) {
165
//            $COFINS->Desconto = $COFINS->vBC * ($COFINS->pCOFINS / 100);
166
//        } else {
167
//            $COFINS->Desconto = 0;
168
//        }
169
//
170
//        $COFINS->pCOFINS = '0';
171
//        $COFINS->vBC = '0';
172
//        $COFINS->pCOFINS = '0';
173
//        $COFINS->vCOFINS = '0';
174
//
175
//        return $COFINS;
176
//    }
177
//
178
//    private static function calcAliqCST03($COFINS)
179
//    {
180
//        $COFINS->vBC = 0;
181
//        $COFINS->pCOFINS = 0;
182
//        $COFINS->vCOFINS = round((($COFINS->vAliqProd) * ($COFINS->qBCProd)), 2);
183
//        $COFINS->Desconto = 0;
184
//
185
//        return $COFINS;
186
//    }
187
188
    /**
189
     * @return string
190
     */
191
    public function getCST(): string
192
    {
193
        return $this->CST;
194
    }
195
196
    /**
197
     * @param string $CST
198
     */
199
    public function setCST(string $CST): void
200
    {
201
        $this->CST = $CST;
202
    }
203
}
204