H020   A
last analyzed

Complexity

Total Complexity 1

Size/Duplication

Total Lines 41
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
wmc 1
lcom 0
cbo 1
dl 0
loc 41
ccs 0
cts 5
cp 0
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 5 1
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 H020: INFORMAÇÃO COMPLEMENTAR DO INVENTÁRIO
11
 * Este registro deve ser preenchido para complementar as informações do
12
 * inventário, quando o campo MOT_INV do registro H005 for de “02” a “05”.
13
 * Não informar se o campo 03 (VL_INV) do registro H005 for igual a “0” (zero).
14
 * No caso de mudança da forma de tributação do ICMS da mercadoria
15
 * (MOT_INV=2 do H005), somente deverá ser gerado esse registro para os itens
16
 * que sofreram alteração da tributação do ICMS.
17
 */
18
class H020 extends Element implements ElementInterface
19
{
20
    const REG = 'H020';
21
    const LEVEL = 4;
22
    const PARENT = 'H010';
23
    
24
    protected $parameters = [
25
        'CST_ICMS' => [
26
            'type'     => 'string',
27
            'regex'    => '^[0-9]{3}$',
28
            'required' => true,
29
            'info'     => 'Código da Situação Tributária referente ao ICMS, '
30
            . 'conforme a Tabela indicada no item 4.3.1',
31
            'format'   => ''
32
        ],
33
        'BC_ICMS' => [
34
            'type'     => 'numeric',
35
            'regex'    => '^\d+(\.\d*)?|\.\d+$',
36
            'required' => true,
37
            'info'     => 'Informe a base de cálculo do ICMS',
38
            'format'   => '15v2'
39
        ],
40
        'VL_ICMS' => [
41
            'type'     => 'numeric',
42
            'regex'    => '^\d+(\.\d*)?|\.\d+$',
43
            'required' => true,
44
            'info'     => 'Informe o valor do ICMS a ser debitado ou creditado',
45
            'format'   => '15v2'
46
        ]
47
    ];
48
    
49
    /**
50
     * Constructor
51
     * @param \stdClass $std
52
     */
53
    public function __construct(\stdClass $std)
54
    {
55
        parent::__construct(self::REG);
56
        $this->std = $this->standarize($std);
57
    }
58
}
59