C180::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 5

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 5
ccs 0
cts 5
cp 0
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 1
crap 2
1
<?php
2
3
namespace NFePHP\EFD\Elements\ICMSIPI;
4
5
use NFePHP\EFD\Common\Element;
6
use NFePHP\EFD\Common\ElementInterface;
7
use \stdClass;
8
9
/**
10
 * REGISTRO C180: INFORMAÇÕES COMPLEMENTARES DAS OPERAÇÕES DE ENTRADA DE MERCADORIAS SUJEITAS À SUBSTITUIÇÃO
11
 * TRIBUTÁRIA (CÓDIGO 01, 1B, 04 e 55).
12
 * @package NFePHP\EFD\Elements\ICMSIPI
13
 */
14
class C180 extends Element implements ElementInterface
15
{
16
    const REG = 'C180';
17
    const LEVEL = 4;
18
    const PARENT = 'C170';
19
    
20
    protected $parameters = [
21
        'COD_RESP_RET' => [
22
            'type'     => 'numeric',
23
            'regex'    => '',
24
            'required' => true,
25
            'info'     => 'Código que indica o responsável pela  retenção do ICMS-ST:'
26
            . '1-Remetente Direto 2-Remetente Indireto'
27
            . '3-Próprio declarante',
28
            'format'   => ''
29
        ],
30
        'QUANT_CONV' => [
31
            'type'     => 'numeric',
32
            'regex'    => '^\d+(\.\d*)?|\.\d+$',
33
            'required' => true,
34
            'info'     => 'Quantidade do item',
35
            'format'   => '15v6'
36
        ],
37
        'UNID' => [
38
            'type'     => 'string',
39
            'regex'    => '^[0-9]{0}$',
40
            'required' => true,
41
            'info'     => 'Unidade adotada para informar o campo QUANT_CONV.',
42
            'format'   => ''
43
        ],
44
        'VL_UNIT_ICMS_OP_CONV' => [
45
            'type'     => 'numeric',
46
            'regex'    => '^\d+(\.\d*)?|\.\d+$',
47
            'required' => true,
48
            'info'     => 'Valor unitário do ICMS operação própria que o informante teria direito ao crédito '
49
            .'caso a mercadoria estivesse sob o regime comum de tributação, considerando unidade utilizada para '
50
            .'informar o campo QUANT_CONV.',
51
            'format'   => '15v6'
52
        ],
53
        'VL_UNIT_BC_ICMS_ST_CONV' => [
54
            'type'     => 'numeric',
55
            'regex'    => '^\d+(\.\d*)?|\.\d+$',
56
            'required' => true,
57
            'info'     => 'Valor unitário da base de cálculo do imposto pago ou retido anteriormente por substituição,'
58
            .' considerando a unidade utilizada para informar o campo QUANT_CONV, aplicando-se redução, se houver.',
59
            'format'   => '15v6'
60
        ],
61
        'VL_UNIT_ICMS_ST_CONV' => [
62
            'type'     => 'numeric',
63
            'regex'    => '^\d+(\.\d*)?|\.\d+$',
64
            'required' => true,
65
            'info'     => 'Valor unitário do imposto pago ou retido anteriormente por substituição, inclusive FCP se'
66
            .' devido, considerando a unidade utilizada para informar o campo QUANT_CONV.',
67
            'format'   => '15v6'
68
        ],
69
        'VL_UNIT_FCP_ST_CONV' => [
70
            'type'     => 'numeric',
71
            'regex'    => '',
72
            'required' => true,
73
            'info'     => 'Valor unitário do FCP_ST agregado ao valor informado no campo VL_UNIT_ICMS_ST_CONV',
74
            'format'   => ''
75
        ],
76
        'COD_DA' => [
77
            'type'     => 'string',
78
            'regex'    => '^[0-9]{0}$',
79
            'required' => true,
80
            'info'     => 'Código do modelo do documento de arrecadação:'
81
            . '0 - Documento estadual de arrecadação'
82
            . '1 - GNRE',
83
            'format'   => ''
84
        ],
85
        'NUM_DA' => [
86
            'type'     => 'string',
87
            'regex'    => '^[0-9]{0}$',
88
            'required' => true,
89
            'info'     => 'Número do documento de arrecadação estadual, se houver',
90
            'format'   => ''
91
        ],
92
    ];
93
94
    /**
95
     * Constructor
96
     * @param \stdClass $std
97
     */
98
    public function __construct(\stdClass $std)
99
    {
100
        parent::__construct(self::REG);
101
        $this->std = $this->standarize($std);
102
    }
103
}
104