forked from byrokrat/id
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Id.php
349 lines (290 loc) · 6.82 KB
/
Id.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
<?php
namespace byrokrat\id;
/**
* The base id interface
*/
interface Id
{
/**
* Male sex identifier
*/
const SEX_MALE = 'M';
/**
* Female sex identifier
*/
const SEX_FEMALE = 'F';
/**
* Undefined or other sex identifier
*/
const SEX_UNDEFINED = 'O';
/**
* Undefined legal form identifier
*/
const LEGAL_FORM_UNDEFINED = '';
/**
* State, county, municipality or parish legal form identifier
*/
const LEGAL_FORM_STATE_PARISH = 'Stat, landsting, kommun eller församling';
/**
* Incorporated company legal form identifier
*/
const LEGAL_FORM_INCORPORATED = 'Aktiebolag';
/**
* Partnership legal form identifier
*/
const LEGAL_FORM_PARTNERSHIP = 'Enkelt bolag';
/**
* Economic association legal form identifier
*/
const LEGAL_FORM_ASSOCIATION = 'Ekonomisk förening';
/**
* Non-profit organization or foundation legal form identifier
*/
const LEGAL_FORM_NONPROFIT = 'Ideell förening eller stiftelse';
/**
* Trading company, limited partnership or partnership legal form identifier
*/
const LEGAL_FORM_TRADING = 'Handelsbolag, kommanditbolag eller enkelt bolag';
/**
* Undefined county identifier
*/
const COUNTY_UNDEFINED = '';
/**
* Stockholms county identifier
*/
const COUNTY_STOCKHOLM = 'Stockholms stad';
/**
* Uppsala county identifier
*/
const COUNTY_UPPSALA = 'Uppsala län';
/**
* Södermanlands county identifier
*/
const COUNTY_SODERMANLAND = 'Södermanlands län';
/**
* Östergötlands county identifier
*/
const COUNTY_OSTERGOTLAND = 'Östergötlands län';
/**
* Jönköpings county identifier
*/
const COUNTY_JONKOPING = 'Jönköpings län';
/**
* Kronobergs county identifier
*/
const COUNTY_KRONOBERG= 'Kronobergs län';
/**
* Kalmar county identifier
*/
const COUNTY_KALMAR = 'Kalmar län';
/**
* Gotlands county identifier
*/
const COUNTY_GOTLAND = 'Gotlands län';
/**
* Blekinge county identifier
*/
const COUNTY_BLEKINGE = 'Blekinge län';
/**
* Kristianstads county identifier
*/
const COUNTY_KRISTIANSTAD = 'Kristianstads län';
/**
* Malmöhus county identifier
*/
const COUNTY_MALMOHUS = 'Malmöhus län';
/**
* Hallands county identifier
*/
const COUNTY_HALLAND = 'Hallands län';
/**
* Göteborgs and Bohus county identifier
*/
const COUNTY_GOTEBORG_BOUHUS = 'Göteborgs och Bohus län';
/**
* Älvsborgs county identifier
*/
const COUNTY_ALVSBORG = 'Älvsborgs län';
/**
* Skaraborgs county identifier
*/
const COUNTY_SKARABORG = 'Skaraborgs län';
/**
* Värmlands county identifier
*/
const COUNTY_VARMLAND = 'Värmlands län';
/**
* Örebro county identifier
*/
const COUNTY_OREBRO = 'Örebro län';
/**
* Västmanlands county identifier
*/
const COUNTY_VASTMANLAND = 'Västmanlands län';
/**
* Kopparbergs county identifier
*/
const COUNTY_KOPPARBERG = 'Kopparbergs län';
/**
* Gävleborgs county identifier
*/
const COUNTY_GAVLEBORG = 'Gävleborgs län';
/**
* Västernorrlands county identifier
*/
const COUNTY_VASTERNORRLAND = 'Västernorrlands län';
/**
* Jämtlands county identifier
*/
const COUNTY_JAMTLAND = 'Jämtlands län';
/**
* Västerbottens county identifier
*/
const COUNTY_VASTERBOTTEN = 'Västerbottens län';
/**
* Norrbottens county identifier
*/
const COUNTY_NORRBOTTEN = 'Norrbottens län';
/**
* Get id as string
*
* @return string
*/
public function getId();
/**
* Get id as string
*
* @return string
*/
public function __tostring();
/**
* Format id according to format string
*
* @param string $format
* @return string
*/
public function format($format);
/**
* Get part of serial number before delimiter, 6 digits
*
* @return string
*/
public function getSerialPreDelimiter();
/**
* Get part of serial number after delimiter, 3 digits
*
* @return string
*/
public function getSerialPostDelimiter();
/**
* Get delimiter
*
* @return string
*/
public function getDelimiter();
/**
* Get check digit
*
* @return string
*/
public function getCheckDigit();
/**
* Get birth date
*
* @return \DateTime
*/
public function getDate();
/**
* Get current age
*
* @return int
*/
public function getAge();
/**
* Get century part of date, 2 digits
*
* @return string
*/
public function getCentury();
/**
* Get sex as denoted by id
*
* @return string One of the sex identifier constants
*/
public function getSex();
/**
* Check if id represents a male
*
* @return boolean
*/
public function isMale();
/**
* Check if id represents a female
*
* @return boolean
*/
public function isFemale();
/**
* Check if sex not applicable
*
* @return boolean
*/
public function isSexUndefined();
/**
* Get string describing legal form
*
* NOTE: this is just a hint and does not conclusively determine the legal
* status of the organization.
*
* @return string One of the legal form identifier constants
*/
public function getLegalForm();
/**
* Check if id legal form is undefined
*
* @return boolean
*/
public function isLegalFormUndefined();
/**
* Check if id represents a state, county, municipality or parish
*
* @return boolean
*/
public function isStateOrParish();
/**
* Check if id represents a incorporated company
*
* @return boolean
*/
public function isIncorporated();
/**
* Check if id represents a partnership
*
* @return boolean
*/
public function isPartnership();
/**
* Check if id represents a economic association
*
* @return boolean
*/
public function isAssociation();
/**
* Check if id represents a non-profit organization or foundation
*
* @return boolean
*/
public function isNonProfit();
/**
* Check if id represents a trading company, limited partnership or partnership
*
* @return boolean
*/
public function isTradingCompany();
/**
* Get string describing birth county
*
* @return string One of the birth county identifier constants
*/
public function getBirthCounty();
}