@@ 9-113 (lines=105) @@ | ||
6 | use NFePHP\EFD\Common\ElementInterface; |
|
7 | use \stdClass; |
|
8 | ||
9 | class E250 extends Element implements ElementInterface |
|
10 | { |
|
11 | const REG = 'E250'; |
|
12 | const LEVEL = 4; |
|
13 | const PARENT = 'E210'; |
|
14 | ||
15 | protected $parameters = [ |
|
16 | 'COD_OR' => [ |
|
17 | 'type' => 'string', |
|
18 | 'regex' => '^.[001|002|006|999]+$', |
|
19 | 'required' => true, |
|
20 | 'info' => 'Código da obrigação a recolher, conforme a Tabela 5.4', |
|
21 | 'format' => '' |
|
22 | ], |
|
23 | 'VL_OR' => [ |
|
24 | 'type' => 'numeric', |
|
25 | 'regex' => '^\d+(\.\d*)?|\.\d+$', |
|
26 | 'required' => true, |
|
27 | 'info' => 'Valor da obrigação ICMS ST a recolher', |
|
28 | 'format' => '15v2' |
|
29 | ], |
|
30 | 'DT_VCTO' => [ |
|
31 | 'type' => 'integer', |
|
32 | 'regex' => '^(0[1-9]|[1-2][0-9]|31(?!(?:0[2469]|11))|30(?!02))(0[1-9]|1[0-2])([12]\d{3})$', |
|
33 | 'required' => true, |
|
34 | 'info' => 'Data de vencimento da obrigação', |
|
35 | 'format' => '' |
|
36 | ], |
|
37 | 'COD_REC' => [ |
|
38 | 'type' => 'string', |
|
39 | 'regex' => '^.*$', |
|
40 | 'required' => true, |
|
41 | 'info' => 'Código de receita referente à obrigação, próprio da unidade da ' |
|
42 | .'federação do contribuinte substituído.', |
|
43 | 'format' => '' |
|
44 | ], |
|
45 | 'NUM_PROC' => [ |
|
46 | 'type' => 'string', |
|
47 | 'regex' => '^.{1,15}$', |
|
48 | 'required' => false, |
|
49 | 'info' => 'Número do processo ou auto de infração ao qual a obrigação está vinculada, se houver', |
|
50 | 'format' => '' |
|
51 | ], |
|
52 | 'IND_PROC' => [ |
|
53 | 'type' => 'string', |
|
54 | 'regex' => '^[0|1|2|9]$', |
|
55 | 'required' => false, |
|
56 | 'info' => 'Indicador da origem do processo: ' |
|
57 | .'0- SEFAZ; ' |
|
58 | .'1- Justiça Federal; ' |
|
59 | .'2- Justiça Estadual; ' |
|
60 | .'9- Outros', |
|
61 | 'format' => '' |
|
62 | ], |
|
63 | 'PROC' => [ |
|
64 | 'type' => 'string', |
|
65 | 'regex' => '^.*$', |
|
66 | 'required' => false, |
|
67 | 'info' => 'Descrição resumida do processo que embasou o lançamento', |
|
68 | 'format' => '' |
|
69 | ], |
|
70 | 'TXT_COMPL' => [ |
|
71 | 'type' => 'string', |
|
72 | 'regex' => '^.*$', |
|
73 | 'required' => false, |
|
74 | 'info' => 'Descrição complementar das obrigações a recolher', |
|
75 | 'format' => '' |
|
76 | ], |
|
77 | 'MES_REF' => [ |
|
78 | 'type' => 'integer', |
|
79 | 'regex' => '^((?!(13^))|30(?!02))(0[1-9]|1[0-2])([12]\d{3})$', |
|
80 | 'required' => true, |
|
81 | 'info' => 'Informe o mês de referência no formato “mmaaaa”', |
|
82 | 'format' => '' |
|
83 | ] |
|
84 | ]; |
|
85 | ||
86 | /** |
|
87 | * Constructor |
|
88 | * @param \stdClass $std |
|
89 | */ |
|
90 | public function __construct(\stdClass $std) |
|
91 | { |
|
92 | parent::__construct(self::REG); |
|
93 | $this->std = $this->standarize($std); |
|
94 | $this->postValidation(); |
|
95 | } |
|
96 | ||
97 | public function postValidation() |
|
98 | { |
|
99 | /* |
|
100 | * Campo 06 (NUM_PROC) Validação: se este campo estiver preenchido, os campos IND_PROC e PROC deverão |
|
101 | * estar preenchidos. Se este campo não estiver preenchido, os campos IND_PROC e PROC não deverão estar |
|
102 | * preenchidos. |
|
103 | */ |
|
104 | if (!empty($this->std->num_proc) && (empty($this->std->ind_proc) || empty($this->std->proc))) { |
|
105 | throw new \InvalidArgumentException("[" . self::REG . "] Se o campo NUM_PROC estiver preenchido, " |
|
106 | ."os campos IND_PROC e PROC deverão estar preenchidos."); |
|
107 | } |
|
108 | if (empty($this->std->num_proc) && (!empty($this->std->ind_proc) || !empty($this->std->proc))) { |
|
109 | throw new \InvalidArgumentException("[" . self::REG . "] Se o campo NUM_PROC não estiver preenchido, " |
|
110 | ."os campos IND_PROC e PROC não deverão estar preenchidos."); |
|
111 | } |
|
112 | } |
|
113 | } |
|
114 |
@@ 9-113 (lines=105) @@ | ||
6 | use NFePHP\EFD\Common\ElementInterface; |
|
7 | use \stdClass; |
|
8 | ||
9 | class E316 extends Element implements ElementInterface |
|
10 | { |
|
11 | const REG = 'E316'; |
|
12 | const LEVEL = 4; |
|
13 | const PARENT = 'E310'; |
|
14 | ||
15 | protected $parameters = [ |
|
16 | 'COD_OR' => [ |
|
17 | 'type' => 'string', |
|
18 | 'regex' => '^00([3-6]|0)|090$', |
|
19 | 'required' => true, |
|
20 | 'info' => 'Código da obrigação recolhida ou a recolher, conforme a Tabela 5.4', |
|
21 | 'format' => '' |
|
22 | ], |
|
23 | 'VL_OR' => [ |
|
24 | 'type' => 'numeric', |
|
25 | 'regex' => '^\d+(\.\d*)?|\.\d+$', |
|
26 | 'required' => true, |
|
27 | 'info' => 'Valor da obrigação recolhida ou a recolher', |
|
28 | 'format' => '15v2' |
|
29 | ], |
|
30 | 'DT_VCTO' => [ |
|
31 | 'type' => 'integer', |
|
32 | 'regex' => '^(0[1-9]|[1-2][0-9]|31(?!(?:0[2469]|11))|30(?!02))(0[1-9]|1[0-2])([12]\d{3})$', |
|
33 | 'required' => true, |
|
34 | 'info' => 'Data de vencimento da obrigação', |
|
35 | 'format' => '' |
|
36 | ], |
|
37 | 'COD_REC' => [ |
|
38 | 'type' => 'string', |
|
39 | 'regex' => '^.*$', |
|
40 | 'required' => true, |
|
41 | 'info' => 'Código de receita referente à obrigação, próprio da unidade da ' |
|
42 | .'federação da origem/destino, conforme legislação estadual.', |
|
43 | 'format' => '' |
|
44 | ], |
|
45 | 'NUM_PROC' => [ |
|
46 | 'type' => 'string', |
|
47 | 'regex' => '^.{1,15}$', |
|
48 | 'required' => false, |
|
49 | 'info' => 'Número do processo ou auto de infração ao qual a obrigação está vinculada, se houver', |
|
50 | 'format' => '' |
|
51 | ], |
|
52 | 'IND_PROC' => [ |
|
53 | 'type' => 'string', |
|
54 | 'regex' => '^[0|1|2|9]$', |
|
55 | 'required' => false, |
|
56 | 'info' => 'Indicador da origem do processo: ' |
|
57 | .'0- SEFAZ; ' |
|
58 | .'1- Justiça Federal; ' |
|
59 | .'2- Justiça Estadual; ' |
|
60 | .'9- Outros', |
|
61 | 'format' => '' |
|
62 | ], |
|
63 | 'PROC' => [ |
|
64 | 'type' => 'string', |
|
65 | 'regex' => '^.*$', |
|
66 | 'required' => false, |
|
67 | 'info' => 'Descrição resumida do processo que embasou o lançamento', |
|
68 | 'format' => '' |
|
69 | ], |
|
70 | 'TXT_COMPL' => [ |
|
71 | 'type' => 'string', |
|
72 | 'regex' => '^.*$', |
|
73 | 'required' => false, |
|
74 | 'info' => 'Descrição complementar das obrigações recolhidas ou a recolher', |
|
75 | 'format' => '' |
|
76 | ], |
|
77 | 'MES_REF' => [ |
|
78 | 'type' => 'integer', |
|
79 | 'regex' => '^(\d{6})$', |
|
80 | 'required' => true, |
|
81 | 'info' => 'Informe o mês de referência no formato “mmaaaa”', |
|
82 | 'format' => '' |
|
83 | ] |
|
84 | ]; |
|
85 | ||
86 | /** |
|
87 | * Constructor |
|
88 | * @param \stdClass $std |
|
89 | */ |
|
90 | public function __construct(\stdClass $std) |
|
91 | { |
|
92 | parent::__construct(self::REG); |
|
93 | $this->std = $this->standarize($std); |
|
94 | $this->postValidation(); |
|
95 | } |
|
96 | ||
97 | public function postValidation() |
|
98 | { |
|
99 | /* |
|
100 | * Campo 06 (NUM_PROC) Validação: se este campo estiver preenchido, os campos IND_PROC e PROC deverão |
|
101 | * estar preenchidos. Se este campo não estiver preenchido, os campos IND_PROC e PROC não deverão estar |
|
102 | * preenchidos. |
|
103 | */ |
|
104 | if (!empty($this->std->num_proc) && (empty($this->std->ind_proc) || empty($this->std->proc))) { |
|
105 | throw new \InvalidArgumentException("[" . self::REG . "] Se o campo NUM_PROC estiver preenchido, " |
|
106 | ."os campos IND_PROC e PROC deverão estar preenchidos."); |
|
107 | } |
|
108 | if (empty($this->std->num_proc) && (!empty($this->std->ind_proc) || !empty($this->std->proc))) { |
|
109 | throw new \InvalidArgumentException("[" . self::REG . "] Se o campo NUM_PROC não estiver preenchido, " |
|
110 | ."os campos IND_PROC e PROC não deverão estar preenchidos."); |
|
111 | } |
|
112 | } |
|
113 | } |
|
114 |