1 | <?php |
||
11 | class Validator extends AbstractCalculator |
||
12 | { |
||
13 | private $regexs = array( |
||
14 | 0 => '/^[a-z]{6}[0-9]{2}[a-z][0-9]{2}[a-z][0-9]{3}[a-z]$/i', //RSSMRA85T10A562S |
||
15 | 1 => '/^[a-z]{6}[0-9]{2}[a-z][0-9]{2}[a-z][0-9]{2}[a-z]{2}$/i', //RSSMRA85T10A56NH |
||
16 | 2 => '/^[a-z]{6}[0-9]{2}[a-z][0-9]{2}[a-z][0-9][a-z][0-9][a-z]$/i', //RSSMRA85T10A5S2E |
||
17 | 3 => '/^[a-z]{6}[0-9]{2}[a-z][0-9]{2}[a-z][0-9][a-z]{3}$/i', //RSSMRA85T10A5SNT |
||
18 | 4 => '/^[a-z]{6}[0-9]{2}[a-z][0-9]{2}[a-z]{2}[0-9]{2}[a-z]$/i', //RSSMRA85T10AR62N |
||
19 | 5 => '/^[a-z]{6}[0-9]{2}[a-z][0-9]{2}[a-z]{2}[0-9][a-z]{2}$/i', //RSSMRA85T10AR6NC |
||
20 | 6 => '/^[a-z]{6}[0-9]{2}[a-z][0-9]{2}[a-z]{3}[0-9][a-z]$/i', //RSSMRA85T10ARS2Z |
||
21 | 7 => '/^[a-z]{6}[0-9]{2}[a-z][0-9]{2}[a-z]{5}$/i', //RSSMRA85T10ARSNO |
||
22 | 8 => '/^[a-z]{6}[0-9]{2}[a-z][0-9][a-z]{2}[0-9]{3}[a-z]$/i', //RSSMRA85T1LA562V |
||
23 | 9 => '/^[a-z]{6}[0-9]{2}[a-z][0-9][a-z]{2}[0-9]{2}[a-z]{2}$/i', //RSSMRA85T1LA56NK |
||
24 | 10 => '/^[a-z]{6}[0-9]{2}[a-z][0-9][a-z]{2}[0-9][a-z][0-9][a-z]$/i', //RSSMRA85T1LA5S2H |
||
25 | 11 => '/^[a-z]{6}[0-9]{2}[a-z][0-9][a-z]{2}[0-9][a-z]{3}$/i', //RSSMRA85T1LA5SNW |
||
26 | 12 => '/^[a-z]{6}[0-9]{2}[a-z][0-9][a-z]{3}[0-9]{2}[a-z]$/i', //RSSMRA85T1LAR62Q |
||
27 | 13 => '/^[a-z]{6}[0-9]{2}[a-z][0-9][a-z]{3}[0-9][a-z]{2}$/i', //RSSMRA85T1LAR6NF |
||
28 | 14 => '/^[a-z]{6}[0-9]{2}[a-z][0-9][a-z]{4}[0-9][a-z]$/i', //RSSMRA85T1LARS2C |
||
29 | 15 => '/^[a-z]{6}[0-9]{2}[a-z][0-9][a-z]{6}$/i', //RSSMRA85T1LARSNR |
||
30 | 16 => '/^[a-z]{6}[0-9]{2}[a-z]{2}[0-9][a-z][0-9]{3}[a-z]$/i', //RSSMRA85TM0A562D |
||
31 | 17 => '/^[a-z]{6}[0-9]{2}[a-z]{2}[0-9][a-z][0-9]{2}[a-z]{2}$/i', //RSSMRA85TM0A56NS |
||
32 | 18 => '/^[a-z]{6}[0-9]{2}[a-z]{2}[0-9][a-z][0-9][a-z][0-9][a-z]$/i', //RSSMRA85TM0A5S2P |
||
33 | 19 => '/^[a-z]{6}[0-9]{2}[a-z]{2}[0-9][a-z][0-9][a-z]{3}$/i', //RSSMRA85TM0A5SNE |
||
34 | 20 => '/^[a-z]{6}[0-9]{2}[a-z]{2}[0-9][a-z]{2}[0-9]{2}[a-z]$/i', //RSSMRA85TM0AR62Y |
||
35 | 21 => '/^[a-z]{6}[0-9]{2}[a-z]{2}[0-9][a-z]{2}[0-9][a-z]{2}$/i', //RSSMRA85TM0AR6NN |
||
36 | 22 => '/^[a-z]{6}[0-9]{2}[a-z]{2}[0-9][a-z]{3}[0-9][a-z]$/i', //RSSMRA85TM0ARS2K |
||
37 | 23 => '/^[a-z]{6}[0-9]{2}[a-z]{2}[0-9][a-z]{5}$/i', //RSSMRA85TM0ARSNZ |
||
38 | 24 => '/^[a-z]{6}[0-9]{2}[a-z]{4}[0-9]{3}[a-z]$/i', //RSSMRA85TMLA562G |
||
39 | 25 => '/^[a-z]{6}[0-9]{2}[a-z]{4}[0-9]{2}[a-z]{2}$/i', //RSSMRA85TMLA56NV |
||
40 | 26 => '/^[a-z]{6}[0-9]{2}[a-z]{4}[0-9][a-z][0-9][a-z]$/i', //RSSMRA85TMLA5S2S |
||
41 | 27 => '/^[a-z]{6}[0-9]{2}[a-z]{4}[0-9][a-z]{3}$/i', //RSSMRA85TMLA5SNH |
||
42 | 28 => '/^[a-z]{6}[0-9]{2}[a-z]{5}[0-9]{2}[a-z]$/i', //RSSMRA85TMLAR62B |
||
43 | 29 => '/^[a-z]{6}[0-9]{2}[a-z]{5}[0-9][a-z]{2}$/i', //RSSMRA85TMLAR6NQ |
||
44 | 30 => '/^[a-z]{6}[0-9]{2}[a-z]{6}[0-9][a-z]$/i', //RSSMRA85TMLARS2N |
||
45 | 31 => '/^[a-z]{6}[0-9]{2}[a-z]{8}$/i', //RSSMRA85TMLARSNC |
||
46 | 32 => '/^[a-z]{6}[0-9][a-z]{2}[0-9]{2}[a-z][0-9]{3}[a-z]$/i', //RSSMRA8RT10A562E |
||
47 | 33 => '/^[a-z]{6}[0-9][a-z]{2}[0-9]{2}[a-z][0-9]{2}[a-z]{2}$/i', //RSSMRA8RT10A56NT |
||
48 | 34 => '/^[a-z]{6}[0-9][a-z]{2}[0-9]{2}[a-z][0-9][a-z][0-9][a-z]$/i', //RSSMRA8RT10A5S2Q |
||
49 | 35 => '/^[a-z]{6}[0-9][a-z]{2}[0-9]{2}[a-z][0-9][a-z]{3}$/i', //RSSMRA8RT10A5SNF |
||
50 | 36 => '/^[a-z]{6}[0-9][a-z]{2}[0-9]{2}[a-z]{2}[0-9]{2}[a-z]$/i', //RSSMRA8RT10AR62Z |
||
51 | 37 => '/^[a-z]{6}[0-9][a-z]{2}[0-9]{2}[a-z]{2}[0-9][a-z]{2}$/i', //RSSMRA8RT10AR6NO |
||
52 | 38 => '/^[a-z]{6}[0-9][a-z]{2}[0-9]{2}[a-z]{3}[0-9][a-z]$/i', //RSSMRA8RT10ARS2L |
||
53 | 39 => '/^[a-z]{6}[0-9][a-z]{2}[0-9]{2}[a-z]{5}$/i', //RSSMRA8RT10ARSNA |
||
54 | 40 => '/^[a-z]{6}[0-9][a-z]{2}[0-9][a-z]{2}[0-9]{3}[a-z]$/i', //RSSMRA8RT1LA562H |
||
55 | 41 => '/^[a-z]{6}[0-9][a-z]{2}[0-9][a-z]{2}[0-9]{2}[a-z]{2}$/i', //RSSMRA8RT1LA56NW |
||
56 | 42 => '/^[a-z]{6}[0-9][a-z]{2}[0-9][a-z]{2}[0-9][a-z][0-9][a-z]$/i', //RSSMRA8RT1LA5S2T |
||
57 | 43 => '/^[a-z]{6}[0-9][a-z]{2}[0-9][a-z]{2}[0-9][a-z]{3}$/i', //RSSMRA8RT1LA5SNI |
||
58 | 44 => '/^[a-z]{6}[0-9][a-z]{2}[0-9][a-z]{3}[0-9]{2}[a-z]$/i', //RSSMRA8RT1LAR62C |
||
59 | 45 => '/^[a-z]{6}[0-9][a-z]{2}[0-9][a-z]{3}[0-9][a-z]{2}$/i', //RSSMRA8RT1LAR6NR |
||
60 | 46 => '/^[a-z]{6}[0-9][a-z]{2}[0-9][a-z]{4}[0-9][a-z]$/i', //RSSMRA8RT1LARS2O |
||
61 | 47 => '/^[a-z]{6}[0-9][a-z]{2}[0-9][a-z]{6}$/i', //RSSMRA8RT1LARSND |
||
62 | 48 => '/^[a-z]{6}[0-9][a-z]{3}[0-9][a-z][0-9]{3}[a-z]$/i', //RSSMRA8RTM0A562P |
||
63 | 49 => '/^[a-z]{6}[0-9][a-z]{3}[0-9][a-z][0-9]{2}[a-z]{2}$/i', //RSSMRA8RTM0A56NE |
||
64 | 50 => '/^[a-z]{6}[0-9][a-z]{3}[0-9][a-z][0-9][a-z][0-9][a-z]$/i', //RSSMRA8RTM0A5S2B |
||
65 | 51 => '/^[a-z]{6}[0-9][a-z]{3}[0-9][a-z][0-9][a-z]{3}$/i', //RSSMRA8RTM0A5SNQ |
||
66 | 52 => '/^[a-z]{6}[0-9][a-z]{3}[0-9][a-z]{2}[0-9]{2}[a-z]$/i', //RSSMRA8RTM0AR62K |
||
67 | 53 => '/^[a-z]{6}[0-9][a-z]{3}[0-9][a-z]{2}[0-9][a-z]{2}$/i', //RSSMRA8RTM0AR6NZ |
||
68 | 54 => '/^[a-z]{6}[0-9][a-z]{3}[0-9][a-z]{3}[0-9][a-z]$/i', //RSSMRA8RTM0ARS2W |
||
69 | 55 => '/^[a-z]{6}[0-9][a-z]{3}[0-9][a-z]{5}$/i', //RSSMRA8RTM0ARSNL |
||
70 | 56 => '/^[a-z]{6}[0-9][a-z]{5}[0-9]{3}[a-z]$/i', //RSSMRA8RTMLA562S |
||
71 | 57 => '/^[a-z]{6}[0-9][a-z]{5}[0-9]{2}[a-z]{2}$/i', //RSSMRA8RTMLA56NH |
||
72 | 58 => '/^[a-z]{6}[0-9][a-z]{5}[0-9][a-z][0-9][a-z]$/i', //RSSMRA8RTMLA5S2E |
||
73 | 59 => '/^[a-z]{6}[0-9][a-z]{5}[0-9][a-z]{3}$/i', //RSSMRA8RTMLA5SNT |
||
74 | 60 => '/^[a-z]{6}[0-9][a-z]{6}[0-9]{2}[a-z]$/i', //RSSMRA8RTMLAR62N |
||
75 | 61 => '/^[a-z]{6}[0-9][a-z]{6}[0-9][a-z]{2}$/i', //RSSMRA8RTMLAR6NC |
||
76 | 62 => '/^[a-z]{6}[0-9][a-z]{7}[0-9][a-z]$/i', //RSSMRA8RTMLARS2Z |
||
77 | 63 => '/^[a-z]{6}[0-9][a-z]{9}$/i', //RSSMRA8RTMLARSNO |
||
78 | 64 => '/^[a-z]{7}[0-9][a-z][0-9]{2}[a-z][0-9]{3}[a-z]$/i', //RSSMRAU5T10A562P |
||
79 | 65 => '/^[a-z]{7}[0-9][a-z][0-9]{2}[a-z][0-9]{2}[a-z]{2}$/i', //RSSMRAU5T10A56NE |
||
80 | 66 => '/^[a-z]{7}[0-9][a-z][0-9]{2}[a-z][0-9][a-z][0-9][a-z]$/i', //RSSMRAU5T10A5S2B |
||
81 | 67 => '/^[a-z]{7}[0-9][a-z][0-9]{2}[a-z][0-9][a-z]{3}$/i', //RSSMRAU5T10A5SNQ |
||
82 | 68 => '/^[a-z]{7}[0-9][a-z][0-9]{2}[a-z]{2}[0-9]{2}[a-z]$/i', //RSSMRAU5T10AR62K |
||
83 | 69 => '/^[a-z]{7}[0-9][a-z][0-9]{2}[a-z]{2}[0-9][a-z]{2}$/i', //RSSMRAU5T10AR6NZ |
||
84 | 70 => '/^[a-z]{7}[0-9][a-z][0-9]{2}[a-z]{3}[0-9][a-z]$/i', //RSSMRAU5T10ARS2W |
||
85 | 71 => '/^[a-z]{7}[0-9][a-z][0-9]{2}[a-z]{5}$/i', //RSSMRAU5T10ARSNL |
||
86 | 72 => '/^[a-z]{7}[0-9][a-z][0-9][a-z]{2}[0-9]{3}[a-z]$/i', //RSSMRAU5T1LA562S |
||
87 | 73 => '/^[a-z]{7}[0-9][a-z][0-9][a-z]{2}[0-9]{2}[a-z]{2}$/i', //RSSMRAU5T1LA56NH |
||
88 | 74 => '/^[a-z]{7}[0-9][a-z][0-9][a-z]{2}[0-9][a-z][0-9][a-z]$/i', //RSSMRAU5T1LA5S2E |
||
89 | 75 => '/^[a-z]{7}[0-9][a-z][0-9][a-z]{2}[0-9][a-z]{3}$/i', //RSSMRAU5T1LA5SNT |
||
90 | 76 => '/^[a-z]{7}[0-9][a-z][0-9][a-z]{3}[0-9]{2}[a-z]$/i', //RSSMRAU5T1LAR62N |
||
91 | 77 => '/^[a-z]{7}[0-9][a-z][0-9][a-z]{3}[0-9][a-z]{2}$/i', //RSSMRAU5T1LAR6NC |
||
92 | 78 => '/^[a-z]{7}[0-9][a-z][0-9][a-z]{4}[0-9][a-z]$/i', //RSSMRAU5T1LARS2Z |
||
93 | 79 => '/^[a-z]{7}[0-9][a-z][0-9][a-z]{6}$/i', //RSSMRAU5T1LARSNO |
||
94 | 80 => '/^[a-z]{7}[0-9][a-z]{2}[0-9][a-z][0-9]{3}[a-z]$/i', //RSSMRAU5TM0A562A |
||
95 | 81 => '/^[a-z]{7}[0-9][a-z]{2}[0-9][a-z][0-9]{2}[a-z]{2}$/i', //RSSMRAU5TM0A56NP |
||
96 | 82 => '/^[a-z]{7}[0-9][a-z]{2}[0-9][a-z][0-9][a-z][0-9][a-z]$/i', //RSSMRAU5TM0A5S2M |
||
97 | 83 => '/^[a-z]{7}[0-9][a-z]{2}[0-9][a-z][0-9][a-z]{3}$/i', //RSSMRAU5TM0A5SNB |
||
98 | 84 => '/^[a-z]{7}[0-9][a-z]{2}[0-9][a-z]{2}[0-9]{2}[a-z]$/i', //RSSMRAU5TM0AR62V |
||
99 | 85 => '/^[a-z]{7}[0-9][a-z]{2}[0-9][a-z]{2}[0-9][a-z]{2}$/i', //RSSMRAU5TM0AR6NK |
||
100 | 86 => '/^[a-z]{7}[0-9][a-z]{2}[0-9][a-z]{3}[0-9][a-z]$/i', //RSSMRAU5TM0ARS2H |
||
101 | 87 => '/^[a-z]{7}[0-9][a-z]{2}[0-9][a-z]{5}$/i', //RSSMRAU5TM0ARSNW |
||
102 | 88 => '/^[a-z]{7}[0-9][a-z]{4}[0-9]{3}[a-z]$/i', //RSSMRAU5TMLA562D |
||
103 | 89 => '/^[a-z]{7}[0-9][a-z]{4}[0-9]{2}[a-z]{2}$/i', //RSSMRAU5TMLA56NS |
||
104 | 90 => '/^[a-z]{7}[0-9][a-z]{4}[0-9][a-z][0-9][a-z]$/i', //RSSMRAU5TMLA5S2P |
||
105 | 91 => '/^[a-z]{7}[0-9][a-z]{4}[0-9][a-z]{3}$/i', //RSSMRAU5TMLA5SNE |
||
106 | 92 => '/^[a-z]{7}[0-9][a-z]{5}[0-9]{2}[a-z]$/i', //RSSMRAU5TMLAR62Y |
||
107 | 93 => '/^[a-z]{7}[0-9][a-z]{5}[0-9][a-z]{2}$/i', //RSSMRAU5TMLAR6NN |
||
108 | 94 => '/^[a-z]{7}[0-9][a-z]{6}[0-9][a-z]$/i', //RSSMRAU5TMLARS2K |
||
109 | 95 => '/^[a-z]{7}[0-9][a-z]{8}$/i', //RSSMRAU5TMLARSNZ |
||
110 | 96 => '/^[a-z]{9}[0-9]{2}[a-z][0-9]{3}[a-z]$/i', //RSSMRAURT10A562B |
||
111 | 97 => '/^[a-z]{9}[0-9]{2}[a-z][0-9]{2}[a-z]{2}$/i', //RSSMRAURT10A56NQ |
||
112 | 98 => '/^[a-z]{9}[0-9]{2}[a-z][0-9][a-z][0-9][a-z]$/i', //RSSMRAURT10A5S2N |
||
113 | 99 => '/^[a-z]{9}[0-9]{2}[a-z][0-9][a-z]{3}$/i', //RSSMRAURT10A5SNC |
||
114 | 100 => '/^[a-z]{9}[0-9]{2}[a-z]{2}[0-9]{2}[a-z]$/i', //RSSMRAURT10AR62W |
||
115 | 101 => '/^[a-z]{9}[0-9]{2}[a-z]{2}[0-9][a-z]{2}$/i', //RSSMRAURT10AR6NL |
||
116 | 102 => '/^[a-z]{9}[0-9]{2}[a-z]{3}[0-9][a-z]$/i', //RSSMRAURT10ARS2I |
||
117 | 103 => '/^[a-z]{9}[0-9]{2}[a-z]{5}$/i', //RSSMRAURT10ARSNX |
||
118 | 104 => '/^[a-z]{9}[0-9][a-z]{2}[0-9]{3}[a-z]$/i', //RSSMRAURT1LA562E |
||
119 | 105 => '/^[a-z]{9}[0-9][a-z]{2}[0-9]{2}[a-z]{2}$/i', //RSSMRAURT1LA56NT |
||
120 | 106 => '/^[a-z]{9}[0-9][a-z]{2}[0-9][a-z][0-9][a-z]$/i', //RSSMRAURT1LA5S2Q |
||
121 | 107 => '/^[a-z]{9}[0-9][a-z]{2}[0-9][a-z]{3}$/i', //RSSMRAURT1LA5SNF |
||
122 | 108 => '/^[a-z]{9}[0-9][a-z]{3}[0-9]{2}[a-z]$/i', //RSSMRAURT1LAR62Z |
||
123 | 109 => '/^[a-z]{9}[0-9][a-z]{3}[0-9][a-z]{2}$/i', //RSSMRAURT1LAR6NO |
||
124 | 110 => '/^[a-z]{9}[0-9][a-z]{4}[0-9][a-z]$/i', //RSSMRAURT1LARS2L |
||
125 | 111 => '/^[a-z]{9}[0-9][a-z]{6}$/i', //RSSMRAURT1LARSNA |
||
126 | 112 => '/^[a-z]{10}[0-9][a-z][0-9]{3}[a-z]$/i', //RSSMRAURTM0A562M |
||
127 | 113 => '/^[a-z]{10}[0-9][a-z][0-9]{2}[a-z]{2}$/i', //RSSMRAURTM0A56NB |
||
128 | 114 => '/^[a-z]{10}[0-9][a-z][0-9][a-z][0-9][a-z]$/i', //RSSMRAURTM0A5S2Y |
||
129 | 115 => '/^[a-z]{10}[0-9][a-z][0-9][a-z]{3}$/i', //RSSMRAURTM0A5SNN |
||
130 | 116 => '/^[a-z]{10}[0-9][a-z]{2}[0-9]{2}[a-z]$/i', //RSSMRAURTM0AR62H |
||
131 | 117 => '/^[a-z]{10}[0-9][a-z]{2}[0-9][a-z]{2}$/i', //RSSMRAURTM0AR6NW |
||
132 | 118 => '/^[a-z]{10}[0-9][a-z]{3}[0-9][a-z]$/i', //RSSMRAURTM0ARS2T |
||
133 | 119 => '/^[a-z]{10}[0-9][a-z]{5}$/i', //RSSMRAURTM0ARSNI |
||
134 | 120 => '/^[a-z]{12}[0-9]{3}[a-z]$/i', //RSSMRAURTMLA562P |
||
135 | 121 => '/^[a-z]{12}[0-9]{2}[a-z]{2}$/i', //RSSMRAURTMLA56NE |
||
136 | 122 => '/^[a-z]{12}[0-9][a-z][0-9][a-z]$/i', //RSSMRAURTMLA5S2B |
||
137 | 123 => '/^[a-z]{12}[0-9][a-z]{3}$/i', //RSSMRAURTMLA5SNQ |
||
138 | 124 => '/^[a-z]{13}[0-9]{2}[a-z]$/i', //RSSMRAURTMLAR62K |
||
139 | 125 => '/^[a-z]{13}[0-9][a-z]{2}$/i', //RSSMRAURTMLAR6NZ |
||
140 | 126 => '/^[a-z]{14}[0-9][a-z]$/i', //RSSMRAURTMLARS2W |
||
141 | 127 => '/^[a-z]{16}$/i', //RSSMRAURTMLARSNL |
||
142 | ); |
||
143 | |||
144 | private $codiceFiscale; |
||
145 | private $omocodiaAllowed = true; |
||
146 | private $century = null; |
||
147 | |||
148 | private $foundOmocodiaLevel = null; |
||
149 | private $codiceFiscaleWithoutOmocodia = null; |
||
150 | private $birthDate = null; |
||
151 | private $gender = null; |
||
152 | |||
153 | private $error = null; |
||
154 | private $isValid = false; |
||
155 | |||
156 | /** |
||
157 | * Create a Validator instance. |
||
158 | * |
||
159 | * @param string $codiceFiscale the codice fiscale to validate |
||
160 | * @param array $properties An array with additional properties. |
||
161 | */ |
||
162 | 154 | public function __construct($codiceFiscale, $properties = array()) |
|
190 | |||
191 | /** |
||
192 | * Validates length |
||
193 | * |
||
194 | * @throws \Exception |
||
195 | */ |
||
196 | 154 | private function validateLength() |
|
208 | |||
209 | /** |
||
210 | * Validates format |
||
211 | * |
||
212 | * @throws \Exception |
||
213 | */ |
||
214 | 152 | private function validateFormat() |
|
240 | |||
241 | /** |
||
242 | * Validates check digit |
||
243 | * |
||
244 | * @throws \Exception |
||
245 | */ |
||
246 | 151 | private function validateCheckDigit() |
|
253 | |||
254 | /** |
||
255 | * Validates omocodia and replace with matching chars |
||
256 | * |
||
257 | * @throws \Exception |
||
258 | */ |
||
259 | 150 | private function validateAndReplaceOmocodia() |
|
271 | |||
272 | /** |
||
273 | * Replace a section of the omocodia. |
||
274 | * |
||
275 | * @param $divider The divider. |
||
276 | * @param $startingIndex The starting index. |
||
277 | * @param $endingIndex The ending index. |
||
278 | * @param $characterIndex The index to use to make the substitutions on the $codiceFiscaleWithoutOmocodia. |
||
279 | */ |
||
280 | 150 | private function replaceOmocodiaSection($divider, $startingIndex, $endingIndex, $characterIndex) |
|
291 | |||
292 | /** |
||
293 | * Validates birthdate and gender |
||
294 | * |
||
295 | * @throws \Exception |
||
296 | */ |
||
297 | 149 | private function validateBirthDateAndGender() |
|
331 | |||
332 | /** |
||
333 | * |
||
334 | * @param string $year |
||
335 | * @return string |
||
336 | */ |
||
337 | 147 | private function calculateCentury($year) |
|
350 | |||
351 | /** |
||
352 | * Return the validation error |
||
353 | * |
||
354 | * @return string |
||
355 | */ |
||
356 | 11 | public function getError() |
|
360 | |||
361 | /** |
||
362 | * Return true if the provided codice fiscale is valid, false otherwise |
||
363 | * |
||
364 | * @return boolean |
||
365 | */ |
||
366 | 154 | public function isFormallyValid() |
|
370 | |||
371 | /** |
||
372 | * Return true if the provided codice fiscale is an omocodia, false otherwise |
||
373 | * |
||
374 | * @return boolean |
||
375 | */ |
||
376 | 1 | public function isOmocodia() |
|
380 | |||
381 | /** |
||
382 | * Return the provided codice fiscale, cleaned up by omocodia |
||
383 | * |
||
384 | * @return string |
||
385 | */ |
||
386 | 143 | protected function getCodiceFiscaleWithoutOmocodia() |
|
390 | |||
391 | /** |
||
392 | * Return the birth date |
||
393 | * |
||
394 | * @return \DateTime |
||
395 | */ |
||
396 | 143 | protected function getBirthDate() |
|
400 | |||
401 | /** |
||
402 | * Return the gender |
||
403 | * |
||
404 | * @return string |
||
405 | */ |
||
406 | 143 | protected function getGender() |
|
410 | } |
||
411 |