|
1
|
|
|
<?php |
|
2
|
|
|
|
|
3
|
|
|
namespace NFePHP\EFD\Blocks\ICMSIPI; |
|
4
|
|
|
|
|
5
|
|
|
use NFePHP\EFD\Elements\ICMSIPI as Elements; |
|
6
|
|
|
use NFePHP\EFD\Common\Block; |
|
7
|
|
|
use NFePHP\EFD\Common\BlockInterface; |
|
8
|
|
|
|
|
9
|
|
|
/** |
|
10
|
|
|
* Classe constutora do bloco D |
|
11
|
|
|
* |
|
12
|
|
|
* Esta classe irá usar um recurso para invocar as classes de cada um dos elementos |
|
13
|
|
|
* constituintes listados |
|
14
|
|
|
* |
|
15
|
|
|
* @method Elements\D001 d001(\stdClass $std) Constructor element D001 |
|
16
|
|
|
* @method Elements\D100 d100(\stdClass $std) Constructor element D100 |
|
17
|
|
|
* @method Elements\D101 d101(\stdClass $std) Constructor element D101 |
|
18
|
|
|
* @method Elements\D110 d110(\stdClass $std) Constructor element D110 |
|
19
|
|
|
* @method Elements\D120 d120(\stdClass $std) Constructor element D120 |
|
20
|
|
|
* @method Elements\D130 d130(\stdClass $std) Constructor element D130 |
|
21
|
|
|
* @method Elements\D140 d140(\stdClass $std) Constructor element D140 |
|
22
|
|
|
* @method Elements\D150 d150(\stdClass $std) Constructor element D150 |
|
23
|
|
|
* @method Elements\D160 d160(\stdClass $std) Constructor element D160 |
|
24
|
|
|
* @method Elements\D161 d161(\stdClass $std) Constructor element D161 |
|
25
|
|
|
* @method Elements\D162 d162(\stdClass $std) Constructor element D162 |
|
26
|
|
|
* @method Elements\D170 d170(\stdClass $std) Constructor element D170 |
|
27
|
|
|
* @method Elements\D180 d180(\stdClass $std) Constructor element D180 |
|
28
|
|
|
* @method Elements\D190 d190(\stdClass $std) Constructor element D190 |
|
29
|
|
|
* @method Elements\D195 d195(\stdClass $std) Constructor element D195 |
|
30
|
|
|
* @method Elements\D197 d197(\stdClass $std) Constructor element D197 |
|
31
|
|
|
* @method Elements\D300 d300(\stdClass $std) Constructor element D300 |
|
32
|
|
|
* @method Elements\D301 d301(\stdClass $std) Constructor element D301 |
|
33
|
|
|
* @method Elements\D310 d310(\stdClass $std) Constructor element D310 |
|
34
|
|
|
* @method Elements\D350 d350(\stdClass $std) Constructor element D350 |
|
35
|
|
|
* @method Elements\D355 d355(\stdClass $std) Constructor element D355 |
|
36
|
|
|
* @method Elements\D360 d360(\stdClass $std) Constructor element D360 |
|
37
|
|
|
* @method Elements\D365 d365(\stdClass $std) Constructor element D365 |
|
38
|
|
|
* @method Elements\D370 d370(\stdClass $std) Constructor element D370 |
|
39
|
|
|
* @method Elements\D390 d390(\stdClass $std) Constructor element D390 |
|
40
|
|
|
* @method Elements\D400 d400(\stdClass $std) Constructor element D400 |
|
41
|
|
|
* @method Elements\D410 d410(\stdClass $std) Constructor element D410 |
|
42
|
|
|
* @method Elements\D411 d411(\stdClass $std) Constructor element D411 |
|
43
|
|
|
* @method Elements\D420 d420(\stdClass $std) Constructor element D420 |
|
44
|
|
|
* @method Elements\D500 d500(\stdClass $std) Constructor element D500 |
|
45
|
|
|
* @method Elements\D510 d510(\stdClass $std) Constructor element D510 |
|
46
|
|
|
* @method Elements\D530 d530(\stdClass $std) Constructor element D530 |
|
47
|
|
|
* @method Elements\D590 d590(\stdClass $std) Constructor element D590 |
|
48
|
|
|
* @method Elements\D600 d600(\stdClass $std) Constructor element D600 |
|
49
|
|
|
* @method Elements\D610 d610(\stdClass $std) Constructor element D610 |
|
50
|
|
|
* @method Elements\D690 d690(\stdClass $std) Constructor element D690 |
|
51
|
|
|
* @method Elements\D695 d695(\stdClass $std) Constructor element D695 |
|
52
|
|
|
* @method Elements\D696 d696(\stdClass $std) Constructor element D696 |
|
53
|
|
|
* @method Elements\D697 d697(\stdClass $std) Constructor element D697 |
|
54
|
|
|
*/ |
|
55
|
|
|
final class BlockD extends Block implements BlockInterface |
|
56
|
|
|
{ |
|
57
|
|
|
const TOTAL = 'D990'; |
|
58
|
|
|
|
|
59
|
|
|
public $elements = [ |
|
60
|
|
|
'd001' => ['class' => Elements\D001::class, 'level' => 1, 'type' => 'single'], |
|
61
|
|
|
'd100' => ['class' => Elements\D100::class, 'level' => 2, 'type' => 'multiple'], |
|
62
|
|
|
'd101' => ['class' => Elements\D101::class, 'level' => 3, 'type' => 'single'], |
|
63
|
|
|
'd110' => ['class' => Elements\D110::class, 'level' => 3, 'type' => 'multiple'], |
|
64
|
|
|
'd120' => ['class' => Elements\D120::class, 'level' => 4, 'type' => 'multiple'], |
|
65
|
|
|
'd130' => ['class' => Elements\D130::class, 'level' => 3, 'type' => 'multiple'], |
|
66
|
|
|
'd140' => ['class' => Elements\D140::class, 'level' => 3, 'type' => 'single'], |
|
67
|
|
|
'd150' => ['class' => Elements\D150::class, 'level' => 3, 'type' => 'single'], |
|
68
|
|
|
'd160' => ['class' => Elements\D160::class, 'level' => 3, 'type' => 'multiple'], |
|
69
|
|
|
'd161' => ['class' => Elements\D161::class, 'level' => 4, 'type' => 'single'], |
|
70
|
|
|
'd162' => ['class' => Elements\D162::class, 'level' => 4, 'type' => 'multiple'], |
|
71
|
|
|
'd170' => ['class' => Elements\D170::class, 'level' => 3, 'type' => 'single'], |
|
72
|
|
|
'd180' => ['class' => Elements\D180::class, 'level' => 3, 'type' => 'multiple'], |
|
73
|
|
|
'd190' => ['class' => Elements\D190::class, 'level' => 3, 'type' => 'multiple'], |
|
74
|
|
|
'd195' => ['class' => Elements\D195::class, 'level' => 3, 'type' => 'multiple'], |
|
75
|
|
|
'd197' => ['class' => Elements\D197::class, 'level' => 4, 'type' => 'multiple'], |
|
76
|
|
|
'd300' => ['class' => Elements\D300::class, 'level' => 2, 'type' => 'multiple'], |
|
77
|
|
|
'd301' => ['class' => Elements\D301::class, 'level' => 3, 'type' => 'multiple'], |
|
78
|
|
|
'd310' => ['class' => Elements\D310::class, 'level' => 3, 'type' => 'multiple'], |
|
79
|
|
|
'd350' => ['class' => Elements\D350::class, 'level' => 2, 'type' => 'multiple'], |
|
80
|
|
|
'd355' => ['class' => Elements\D355::class, 'level' => 3, 'type' => 'multiple'], |
|
81
|
|
|
'd360' => ['class' => Elements\D360::class, 'level' => 4, 'type' => 'single'], |
|
82
|
|
|
'd365' => ['class' => Elements\D365::class, 'level' => 4, 'type' => 'multiple'], |
|
83
|
|
|
'd370' => ['class' => Elements\D370::class, 'level' => 5, 'type' => 'multiple'], |
|
84
|
|
|
'd390' => ['class' => Elements\D390::class, 'level' => 4, 'type' => 'multiple'], |
|
85
|
|
|
'd400' => ['class' => Elements\D400::class, 'level' => 2, 'type' => 'multiple'], |
|
86
|
|
|
'd410' => ['class' => Elements\D410::class, 'level' => 3, 'type' => 'multiple'], |
|
87
|
|
|
'd411' => ['class' => Elements\D411::class, 'level' => 4, 'type' => 'multiple'], |
|
88
|
|
|
'd420' => ['class' => Elements\D420::class, 'level' => 3, 'type' => 'multiple'], |
|
89
|
|
|
'd500' => ['class' => Elements\D500::class, 'level' => 2, 'type' => 'multiple'], |
|
90
|
|
|
'd510' => ['class' => Elements\D510::class, 'level' => 3, 'type' => 'multiple'], |
|
91
|
|
|
'd530' => ['class' => Elements\D530::class, 'level' => 3, 'type' => 'multiple'], |
|
92
|
|
|
'd590' => ['class' => Elements\D590::class, 'level' => 3, 'type' => 'multiple'], |
|
93
|
|
|
'd600' => ['class' => Elements\D600::class, 'level' => 2, 'type' => 'multiple'], |
|
94
|
|
|
'd610' => ['class' => Elements\D610::class, 'level' => 3, 'type' => 'multiple'], |
|
95
|
|
|
'd690' => ['class' => Elements\D690::class, 'level' => 3, 'type' => 'multiple'], |
|
96
|
|
|
'd695' => ['class' => Elements\D695::class, 'level' => 2, 'type' => 'multiple'], |
|
97
|
|
|
'd696' => ['class' => Elements\D696::class, 'level' => 3, 'type' => 'multiple'], |
|
98
|
|
|
'd697' => ['class' => Elements\D697::class, 'level' => 4, 'type' => 'multiple'] |
|
99
|
|
|
]; |
|
100
|
|
|
|
|
101
|
|
|
public function __construct() |
|
102
|
|
|
{ |
|
103
|
|
|
parent::__construct(self::TOTAL); |
|
104
|
|
|
} |
|
105
|
|
|
} |
|
106
|
|
|
|