1 | <?php |
||
9 | class DayAttendance |
||
10 | { |
||
11 | /** |
||
12 | * example: 2015-12-12|08:30 (10:00-10:30) (12:30-13:30) (16:00-16:30) 17:30 |
||
13 | */ |
||
14 | const DAY_ATTENDANCE_LINE_REGEX = |
||
15 | '/^\d{4}-\d{2}-\d{2}\|\d{2}:\d{2}( \(\d{2}:\d{2}-\d{2}:\d{2}\))* \d{2}:\d{2}(\|[^\|]*)?$/'; |
||
16 | |||
17 | /** |
||
18 | * @var \DateTime |
||
19 | */ |
||
20 | private $arrival; |
||
21 | |||
22 | /** |
||
23 | * @var \DateTime |
||
24 | */ |
||
25 | private $departure; |
||
26 | |||
27 | /** |
||
28 | * @var Pause[] |
||
29 | */ |
||
30 | private $pauseList = []; |
||
31 | |||
32 | /** |
||
33 | * @var string |
||
34 | */ |
||
35 | private $description = ""; |
||
36 | |||
37 | 27 | /** |
|
38 | * DayAttendance constructor. |
||
39 | 27 | * @param \DateTime $arrival |
|
40 | 3 | * @param \DateTime $departure |
|
41 | * @param Pause[] $pauseList |
||
42 | */ |
||
43 | 24 | public function __construct(\DateTime $arrival, \DateTime $departure, array $pauseList = []) |
|
62 | 39 | ||
63 | /** |
||
64 | * @return \DateTime |
||
65 | */ |
||
66 | public function getArrival() |
||
70 | 33 | ||
71 | /** |
||
72 | * @return \DateTime |
||
73 | */ |
||
74 | public function getDeparture() |
||
78 | 33 | ||
79 | /** |
||
80 | * @return Pause[] |
||
81 | */ |
||
82 | public function getPauseList() |
||
86 | 21 | ||
87 | 3 | /** |
|
88 | * @return string |
||
89 | */ |
||
90 | 18 | public function getDescription() |
|
94 | 18 | ||
95 | 3 | /** |
|
96 | * @param string $description |
||
97 | */ |
||
98 | public function setDescription($description) |
||
102 | |||
103 | /** |
||
104 | * @param Pause $pause |
||
105 | */ |
||
106 | 18 | private function addPause(Pause $pause) |
|
123 | |||
124 | /** |
||
125 | 9 | * @param Pause $pause |
|
126 | * @return bool |
||
127 | 9 | */ |
|
128 | private function isPauseOverlapping(Pause $pause) |
||
143 | |||
144 | 6 | /** |
|
145 | * @return \DateInterval |
||
146 | 6 | */ |
|
147 | 6 | public function getDuration() |
|
162 | 9 | ||
163 | /** |
||
164 | 9 | * @return int |
|
165 | 9 | */ |
|
166 | public function getTotalMinutes() |
||
171 | 9 | ||
172 | 9 | /** |
|
173 | 9 | * @param $dayAttendanceLine |
|
174 | 9 | * @return DayAttendance |
|
175 | 9 | */ |
|
176 | public static function parseDayAttendanceLine($dayAttendanceLine) |
||
211 | 6 | ||
212 | /** |
||
213 | 6 | * @param $dayAttendanceLine |
|
214 | 6 | * @return int |
|
215 | 6 | */ |
|
216 | public static function isValidDayAttendanceLine($dayAttendanceLine) |
||
220 | |||
221 | /** |
||
222 | * @return string |
||
223 | */ |
||
224 | public function exportLine() |
||
228 | |||
229 | /** |
||
230 | * @return string |
||
231 | */ |
||
232 | public function getDate() |
||
236 | |||
237 | /** |
||
238 | * @return string |
||
239 | */ |
||
240 | public function getTimeLine() |
||
256 | } |
||
257 |