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
|
|
|
* Elemento 0600 do Bloco 0 |
11
|
|
|
* REGISTRO 0200: TABELA DE IDENTIFICAÇÃO DO ITEM (PRODUTO E SERVIÇOS) |
12
|
|
|
* Este registro tem por objetivo informar mercadorias, serviços, produtos ou |
13
|
|
|
* quaisquer outros itens concernentes às transações fiscais e aos movimentos de |
14
|
|
|
* estoques em processos produtivos, bem como os insumos. Quando ocorrer alteração |
15
|
|
|
* somente na descrição do item, sem que haja descaracterização deste, ou seja, |
16
|
|
|
* criação de um novo item, a alteração deve constar no registro 0205. |
17
|
|
|
* Somente devem ser apresentados itens referenciados nos demais blocos, exceto |
18
|
|
|
* se for apresentado o fator de conversão no registro 0220 (a partir de julho de 2012). |
19
|
|
|
* A identificação do item (produto ou serviço) deverá receber o código próprio |
20
|
|
|
* do informante do arquivo em qualquer documento, lançamento efetuado ou arquivo |
21
|
|
|
* informado (significa que o código de produto deve ser o mesmo na emissão dos |
22
|
|
|
* documentos fiscais, na entrada das mercadorias ou em qualquer outra informação |
23
|
|
|
* prestada ao fisco), observando-se ainda que: |
24
|
|
|
* a) O código utilizado não pode ser duplicado ou atribuído a itens (produto |
25
|
|
|
* ou serviço) diferentes. Os produtos e serviços que sofrerem alterações em |
26
|
|
|
* suas características básicas deverão ser identificados com códigos diferentes. |
27
|
|
|
* Em caso de alteração de codificação, deverão ser informados o código e a |
28
|
|
|
* descrição anteriores e as datas de validade inicial e final no registro 0205; |
29
|
|
|
* b) Não é permitida a reutilização de código que tenha sido atribuído para |
30
|
|
|
* qualquer produto anteriormente. |
31
|
|
|
* c) O código de item/produto a ser informado no Inventário deverá ser aquele |
32
|
|
|
* utilizado no mês inventariado. |
33
|
|
|
* d) A discriminação do item deve indicar precisamente o mesmo, sendo vedadas |
34
|
|
|
* discriminações diferentes para o mesmo item ou discriminações genéricas |
35
|
|
|
* (a exemplo de "diversas entradas", "diversas saídas", "mercadorias para revenda", etc), |
36
|
|
|
* ressalvadas as operações abaixo, desde que não destinada à posterior circulação |
37
|
|
|
* ou apropriação na produção: |
38
|
|
|
* 1- de aquisição de "materiais para uso/consumo" que não gerem direitos a créditos; |
39
|
|
|
* 2- que discriminem por gênero a aquisição de bens para o "ativo fixo" (e sua baixa); |
40
|
|
|
* 3- que contenham os registros consolidados relativos aos contribuintes com |
41
|
|
|
* atividades econômicas de fornecimento de energia elétrica, de fornecimento de |
42
|
|
|
* água canalizada, de fornecimento de gás canalizado, e de prestação de serviço de |
43
|
|
|
* comunicação e telecomunicação que poderão, a critério do Fisco, |
44
|
|
|
* utilizar registros consolidados por classe de consumo para representar suas |
45
|
|
|
* saídas ou prestações. |
46
|
|
|
* |
47
|
|
|
* NOTA: usada a letra Z no nome da Classe pois os nomes não podem ser exclusivamente |
48
|
|
|
* numeréricos e também para não confundir os com elementos do bloco B |
49
|
|
|
*/ |
50
|
|
View Code Duplication |
class Z0200 extends Element implements ElementInterface |
|
|
|
|
51
|
|
|
{ |
52
|
|
|
const REG = '0200'; |
53
|
|
|
const LEVEL = 2; |
54
|
|
|
const PARENT = ''; |
55
|
|
|
|
56
|
|
|
protected $parameters = [ |
57
|
|
|
'COD_ITEM' => [ |
58
|
|
|
'type' => 'string', |
59
|
|
|
'regex' => '^.{1,60}$', |
60
|
|
|
'required' => true, |
61
|
|
|
'info' => 'Código do item', |
62
|
|
|
'format' => '' |
63
|
|
|
], |
64
|
|
|
'DESCR_ITEM' => [ |
65
|
|
|
'type' => 'string', |
66
|
|
|
'regex' => '^.{3,255}$', |
67
|
|
|
'required' => true, |
68
|
|
|
'info' => 'Descrição do item', |
69
|
|
|
'format' => '' |
70
|
|
|
], |
71
|
|
|
'COD_BARRA' => [ |
72
|
|
|
'type' => 'string', |
73
|
|
|
'regex' => '^(SEM GTIN)|([0-9]{8,14}|\-)$', |
74
|
|
|
'required' => false, |
75
|
|
|
'info' => 'Representação alfanumérico do código de barra do produto, se houver', |
76
|
|
|
'format' => '' |
77
|
|
|
], |
78
|
|
|
'COD_ANT_ITEM' => [ |
79
|
|
|
'type' => 'string', |
80
|
|
|
'regex' => '^.{1,6}$', |
81
|
|
|
'required' => false, |
82
|
|
|
'info' => 'Código anterior do item com relação à última informação anterior', |
83
|
|
|
'format' => '' |
84
|
|
|
], |
85
|
|
|
'UNID_INV' => [ |
86
|
|
|
'type' => 'string', |
87
|
|
|
'regex' => '^.{1,6}$', |
88
|
|
|
'required' => true, |
89
|
|
|
'info' => 'Unidade de medida utilizada na quantificação de estoques.', |
90
|
|
|
'format' => '' |
91
|
|
|
], |
92
|
|
|
'TIPO_ITEM' => [ |
93
|
|
|
'type' => 'string', |
94
|
|
|
'regex' => '^[0-9]{2}$', |
95
|
|
|
'required' => true, |
96
|
|
|
'info' => 'Tipo do item – Atividades Industriais, Comerciais e Serviços:' |
97
|
|
|
. '00 – Mercadoria para Revenda;' |
98
|
|
|
. '01 – Matéria-prima;' |
99
|
|
|
. '02 – Embalagem;' |
100
|
|
|
. '03 – Produto em Processo;' |
101
|
|
|
. '04 – Produto Acabado;' |
102
|
|
|
. '05 – Subproduto;' |
103
|
|
|
. '06 – Produto Intermediário;' |
104
|
|
|
. '07 – Material de Uso e Consumo;' |
105
|
|
|
. '08 – Ativo Imobilizado;' |
106
|
|
|
. '09 – Serviços;' |
107
|
|
|
. '10 – Outros insumos;' |
108
|
|
|
. '99 – Outras', |
109
|
|
|
'format' => '' |
110
|
|
|
], |
111
|
|
|
'COD_NCM' => [ |
112
|
|
|
'type' => 'string', |
113
|
|
|
'regex' => '^([0-9]{8})|([0-9]{2})$', |
114
|
|
|
'required' => false, |
115
|
|
|
'info' => 'Código da Nomenclatura Comum do Mercosul', |
116
|
|
|
'format' => '' |
117
|
|
|
], |
118
|
|
|
'EX_IPI' => [ |
119
|
|
|
'type' => 'string', |
120
|
|
|
'regex' => '^[0-9]{1,3}$', |
121
|
|
|
'required' => false, |
122
|
|
|
'info' => 'Código EX, conforme a TIPI', |
123
|
|
|
'format' => '' |
124
|
|
|
], |
125
|
|
|
'COD_GEN' => [ |
126
|
|
|
'type' => 'string', |
127
|
|
|
'regex' => '^[0-9]{2}$', |
128
|
|
|
'required' => false, |
129
|
|
|
'info' => 'Código do gênero do item, conforme a Tabela 4.2.1', |
130
|
|
|
'format' => '' |
131
|
|
|
], |
132
|
|
|
'COD_LST' => [ |
133
|
|
|
'type' => 'string', |
134
|
|
|
'regex' => '^([0-9]{2}\.[0-9]{2})$', |
135
|
|
|
'required' => false, |
136
|
|
|
'info' => 'Código do serviço conforme lista do Anexo I da ' |
137
|
|
|
. 'Lei Complementar Federal nº 116/03.', |
138
|
|
|
'format' => '' |
139
|
|
|
], |
140
|
|
|
'ALIQ_ICMS' => [ |
141
|
|
|
'type' => 'numeric', |
142
|
|
|
'regex' => '^(\d*\.)?\d+$', |
143
|
|
|
'required' => false, |
144
|
|
|
'info' => 'Alíquota de ICMS aplicável ao item nas operações internas', |
145
|
|
|
'format' => '6v2' |
146
|
|
|
], |
147
|
|
|
'CEST' => [ |
148
|
|
|
'type' => 'string', |
149
|
|
|
'regex' => '^[0-9]{7}$', |
150
|
|
|
'required' => false, |
151
|
|
|
'info' => 'Código Especificador da Substituição Tributária', |
152
|
|
|
'format' => '' |
153
|
|
|
] |
154
|
|
|
]; |
155
|
|
|
|
156
|
|
|
/** |
157
|
|
|
* Constructor |
158
|
|
|
* @param stdClass $std |
159
|
|
|
*/ |
160
|
|
|
public function __construct(stdClass $std) |
161
|
|
|
{ |
162
|
|
|
parent::__construct(self::REG); |
163
|
|
|
$this->std = $this->standarize($std); |
164
|
|
|
} |
165
|
|
|
} |
166
|
|
|
|
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.
You can also find more detailed suggestions in the “Code” section of your repository.