@@ -32,8 +32,8 @@ |
||
32 | 32 | protected $description = 'Optimise meetings'; |
33 | 33 | |
34 | 34 | /** |
35 | - * @var Schedule laravel schedule object needed to perform command in background |
|
36 | - */ |
|
35 | + * @var Schedule laravel schedule object needed to perform command in background |
|
36 | + */ |
|
37 | 37 | private $schedule; |
38 | 38 | |
39 | 39 | /** |
@@ -62,7 +62,7 @@ discard block |
||
62 | 62 | |
63 | 63 | //TODO try...catch with destruct |
64 | 64 | $companyId = $this->argument('companyId'); |
65 | - if(is_numeric($companyId)) |
|
65 | + if (is_numeric($companyId)) |
|
66 | 66 | $this->makeForeground(Company::findOrFail($companyId)); |
67 | 67 | else |
68 | 68 | $this->syncAll(); |
@@ -71,15 +71,15 @@ discard block |
||
71 | 71 | private function syncAll() |
72 | 72 | { |
73 | 73 | $calendars = Caldav::all(); |
74 | - if($this->option('background')) { |
|
74 | + if ($this->option('background')) { |
|
75 | 75 | \Log::debug(self::BACKGROUND_MOD_MEX); |
76 | 76 | $this->info(self::BACKGROUND_MOD_MEX); |
77 | 77 | foreach ($calendars as $calendar) |
78 | 78 | $this->makeBackground($calendar); |
79 | 79 | \Log::debug(self::BACKGROUND_COMPLETED_MEX); |
80 | 80 | $this->info(self::BACKGROUND_COMPLETED_MEX); |
81 | - }else |
|
82 | - foreach($calendars as $calendar) |
|
81 | + } else |
|
82 | + foreach ($calendars as $calendar) |
|
83 | 83 | $this->makeForeground($calendar); |
84 | 84 | } |
85 | 85 | |
@@ -90,7 +90,7 @@ discard block |
||
90 | 90 | private function makeBackground(Company $company) |
91 | 91 | { |
92 | 92 | $event = $this->schedule->command('optimise:meetings '.$company->id)->withoutOverlapping(); |
93 | - if($event->isDue($this->laravel)) |
|
93 | + if ($event->isDue($this->laravel)) |
|
94 | 94 | $event->run($this->laravel); |
95 | 95 | } |
96 | 96 | |
@@ -100,8 +100,8 @@ discard block |
||
100 | 100 | */ |
101 | 101 | private function makeForeground(Company $company) |
102 | 102 | { |
103 | - $this->info('Optimisation company '. $company->id.' started'); |
|
103 | + $this->info('Optimisation company '.$company->id.' started'); |
|
104 | 104 | (new Optimise($company))->optimise()->save(); |
105 | - $this->info('Optimisation '. $company->id.' completed'); |
|
105 | + $this->info('Optimisation '.$company->id.' completed'); |
|
106 | 106 | } |
107 | 107 | } |
@@ -62,10 +62,11 @@ discard block |
||
62 | 62 | |
63 | 63 | //TODO try...catch with destruct |
64 | 64 | $companyId = $this->argument('companyId'); |
65 | - if(is_numeric($companyId)) |
|
66 | - $this->makeForeground(Company::findOrFail($companyId)); |
|
67 | - else |
|
68 | - $this->syncAll(); |
|
65 | + if(is_numeric($companyId)) { |
|
66 | + $this->makeForeground(Company::findOrFail($companyId)); |
|
67 | + } else { |
|
68 | + $this->syncAll(); |
|
69 | + } |
|
69 | 70 | } |
70 | 71 | |
71 | 72 | private function syncAll() |
@@ -74,13 +75,15 @@ discard block |
||
74 | 75 | if($this->option('background')) { |
75 | 76 | \Log::debug(self::BACKGROUND_MOD_MEX); |
76 | 77 | $this->info(self::BACKGROUND_MOD_MEX); |
77 | - foreach ($calendars as $calendar) |
|
78 | - $this->makeBackground($calendar); |
|
78 | + foreach ($calendars as $calendar) { |
|
79 | + $this->makeBackground($calendar); |
|
80 | + } |
|
79 | 81 | \Log::debug(self::BACKGROUND_COMPLETED_MEX); |
80 | 82 | $this->info(self::BACKGROUND_COMPLETED_MEX); |
81 | - }else |
|
82 | - foreach($calendars as $calendar) |
|
83 | + } else { |
|
84 | + foreach($calendars as $calendar) |
|
83 | 85 | $this->makeForeground($calendar); |
86 | + } |
|
84 | 87 | } |
85 | 88 | |
86 | 89 | /** |
@@ -90,8 +93,9 @@ discard block |
||
90 | 93 | private function makeBackground(Company $company) |
91 | 94 | { |
92 | 95 | $event = $this->schedule->command('optimise:meetings '.$company->id)->withoutOverlapping(); |
93 | - if($event->isDue($this->laravel)) |
|
94 | - $event->run($this->laravel); |
|
96 | + if($event->isDue($this->laravel)) { |
|
97 | + $event->run($this->laravel); |
|
98 | + } |
|
95 | 99 | } |
96 | 100 | |
97 | 101 | /** |
@@ -113,7 +113,7 @@ discard block |
||
113 | 113 | */ |
114 | 114 | static private function checkGlpsol() |
115 | 115 | { |
116 | - if(!(`which glpsol`)) |
|
116 | + if (!(`which glpsol`)) |
|
117 | 117 | throw new OptimiseException('glpsol is not installed'); |
118 | 118 | } |
119 | 119 | |
@@ -123,7 +123,7 @@ discard block |
||
123 | 123 | * @return bool |
124 | 124 | */ |
125 | 125 | private static function delTree($dir) { |
126 | - $files = array_diff(scandir($dir), array('.','..')); |
|
126 | + $files = array_diff(scandir($dir), array('.', '..')); |
|
127 | 127 | foreach ($files as $file) { |
128 | 128 | (is_dir("$dir/$file")) ? delTree("$dir/$file") : unlink("$dir/$file"); |
129 | 129 | } |
@@ -138,11 +138,11 @@ discard block |
||
138 | 138 | { |
139 | 139 | $this->path = tempnam(sys_get_temp_dir(), 'OPT'); //TODO check the return in case of errors this return false on failure |
140 | 140 | unlink($this->path); //remove file to create a dir |
141 | - if(file_exists($this->path)) |
|
141 | + if (file_exists($this->path)) |
|
142 | 142 | throw new OptimiseException('problem during creation of tmp dir (the directory already exists)'); |
143 | - if(!@mkdir($this->path)) |
|
144 | - throw new OptimiseException('problem during creation of tmp dir (mkdir problem)');; |
|
145 | - if(! is_dir($this->path)) |
|
143 | + if (!@mkdir($this->path)) |
|
144 | + throw new OptimiseException('problem during creation of tmp dir (mkdir problem)'); ; |
|
145 | + if (!is_dir($this->path)) |
|
146 | 146 | throw new OptimiseException('problem during creation of tmp dir (it is not possible to create directory)'); |
147 | 147 | } |
148 | 148 | |
@@ -223,7 +223,7 @@ discard block |
||
223 | 223 | */ |
224 | 224 | public function setTimeSlots($timeSlots) |
225 | 225 | { |
226 | - if(!is_int($timeSlots) || $timeSlots <=0) |
|
226 | + if (!is_int($timeSlots) || $timeSlots <= 0) |
|
227 | 227 | throw new OptimiseException('$timeSlots is not integer or it is not >0'); |
228 | 228 | |
229 | 229 | $this->timeSlots = $timeSlots; |
@@ -245,7 +245,7 @@ discard block |
||
245 | 245 | */ |
246 | 246 | public function setMaxTimeSlots($maxTimeSlots) |
247 | 247 | { |
248 | - if(!is_int($maxTimeSlots) || $maxTimeSlots <=0) |
|
248 | + if (!is_int($maxTimeSlots) || $maxTimeSlots <= 0) |
|
249 | 249 | throw new OptimiseException('$maxTimeSlots is not integer or it is not >0'); |
250 | 250 | |
251 | 251 | $this->maxTimeSlots = $maxTimeSlots; |
@@ -268,13 +268,13 @@ discard block |
||
268 | 268 | public function setMeetingsAvailability($meetingsAvailability) |
269 | 269 | { |
270 | 270 | $meetings = array_keys($meetingsAvailability); |
271 | - if(array_diff($meetings, $this->meetings)) |
|
271 | + if (array_diff($meetings, $this->meetings)) |
|
272 | 272 | throw new OptimiseException('meetings different from meetings set'); |
273 | - foreach($meetingsAvailability as $key=>$meetingsAvailabilityS) { |
|
273 | + foreach ($meetingsAvailability as $key=>$meetingsAvailabilityS) { |
|
274 | 274 | $timeSlots = array_keys($meetingsAvailabilityS); |
275 | - if(count($timeSlots) != $this->timeSlots) |
|
275 | + if (count($timeSlots) != $this->timeSlots) |
|
276 | 276 | throw new OptimiseException('timeSlots different from timeSlots set'); |
277 | - $meetingsAvailability[$key] = self::arrayPad($meetingsAvailabilityS, $this->timeSlots + $this->maxTimeSlots, 0); |
|
277 | + $meetingsAvailability[ $key ] = self::arrayPad($meetingsAvailabilityS, $this->timeSlots + $this->maxTimeSlots, 0); |
|
278 | 278 | } |
279 | 279 | |
280 | 280 | $this->meetingsAvailability = $meetingsAvailability; |
@@ -297,13 +297,13 @@ discard block |
||
297 | 297 | public function setMeetingsDuration($meetingsDuration) |
298 | 298 | { |
299 | 299 | $meetings = array_keys($meetingsDuration); |
300 | - if(array_diff($meetings, $this->meetings)) { |
|
300 | + if (array_diff($meetings, $this->meetings)) { |
|
301 | 301 | print ""; |
302 | 302 | throw new OptimiseException('meetings different from meetings set'); |
303 | 303 | } |
304 | - foreach($meetingsDuration as $duration) { |
|
304 | + foreach ($meetingsDuration as $duration) { |
|
305 | 305 | $duration = (int) $duration; //TODO fix this (fix for optimise) |
306 | - if(!is_int($duration) || $duration <=0) |
|
306 | + if (!is_int($duration) || $duration <= 0) |
|
307 | 307 | throw new OptimiseException('duration is not integer or it is not >0'); |
308 | 308 | } |
309 | 309 | |
@@ -327,14 +327,14 @@ discard block |
||
327 | 327 | public function setUsersAvailability($usersAvailability) |
328 | 328 | { |
329 | 329 | $users = array_keys($usersAvailability); |
330 | - if(array_diff($users, $this->users)) |
|
330 | + if (array_diff($users, $this->users)) |
|
331 | 331 | throw new OptimiseException('users different from users set'); |
332 | - foreach($usersAvailability as $key=>$usersAvailabilityS) { |
|
332 | + foreach ($usersAvailability as $key=>$usersAvailabilityS) { |
|
333 | 333 | $timeSlots = array_keys($usersAvailabilityS); |
334 | - if(count($timeSlots) != $this->timeSlots) |
|
334 | + if (count($timeSlots) != $this->timeSlots) |
|
335 | 335 | throw new OptimiseException('timeSlots different from timeSlots set'); |
336 | 336 | |
337 | - $usersAvailability[$key] = self::arrayPad($usersAvailabilityS, $this->timeSlots + $this->maxTimeSlots, 0); |
|
337 | + $usersAvailability[ $key ] = self::arrayPad($usersAvailabilityS, $this->timeSlots + $this->maxTimeSlots, 0); |
|
338 | 338 | } |
339 | 339 | |
340 | 340 | $this->usersAvailability = $usersAvailability; |
@@ -357,11 +357,11 @@ discard block |
||
357 | 357 | public function setUsersMeetings($usersMeetings) |
358 | 358 | { |
359 | 359 | $users = array_keys($usersMeetings); |
360 | - if(array_diff($users, $this->users)) |
|
360 | + if (array_diff($users, $this->users)) |
|
361 | 361 | throw new OptimiseException('users different from users set'); |
362 | - foreach($usersMeetings as $usersMeetingsS) { |
|
362 | + foreach ($usersMeetings as $usersMeetingsS) { |
|
363 | 363 | $meetings = array_keys($usersMeetingsS); |
364 | - if(array_diff($meetings, $this->meetings)) |
|
364 | + if (array_diff($meetings, $this->meetings)) |
|
365 | 365 | throw new OptimiseException('meetings different from meetings set'); |
366 | 366 | } |
367 | 367 | |
@@ -424,13 +424,13 @@ discard block |
||
424 | 424 | */ |
425 | 425 | static private function writeCSVArrayNoKey($file, $data) |
426 | 426 | { |
427 | - $f = function ($fp, $data){ |
|
427 | + $f = function($fp, $data) { |
|
428 | 428 | foreach ($data as $field) { |
429 | - fputcsv($fp, [$field]); |
|
429 | + fputcsv($fp, [ $field ]); |
|
430 | 430 | } |
431 | 431 | }; |
432 | 432 | |
433 | - self::writeCSV($file, $data, ['i'], $f); |
|
433 | + self::writeCSV($file, $data, [ 'i' ], $f); |
|
434 | 434 | } |
435 | 435 | |
436 | 436 | /** |
@@ -441,13 +441,13 @@ discard block |
||
441 | 441 | */ |
442 | 442 | static private function writeCSVArray($file, $data, $name) |
443 | 443 | { |
444 | - $f = function ($fp, $data){ |
|
444 | + $f = function($fp, $data) { |
|
445 | 445 | foreach ($data as $key=>$field) { |
446 | - fputcsv($fp, [$key, $field]); |
|
446 | + fputcsv($fp, [ $key, $field ]); |
|
447 | 447 | } |
448 | 448 | }; |
449 | 449 | |
450 | - self::writeCSV($file, $data, ['i', $name], $f); |
|
450 | + self::writeCSV($file, $data, [ 'i', $name ], $f); |
|
451 | 451 | } |
452 | 452 | |
453 | 453 | /** |
@@ -458,14 +458,14 @@ discard block |
||
458 | 458 | */ |
459 | 459 | static private function writeCSVMatrix($file, $data, $name) |
460 | 460 | { |
461 | - $f = function ($fp, $data){ |
|
461 | + $f = function($fp, $data) { |
|
462 | 462 | foreach ($data as $key=>$field) { |
463 | 463 | foreach ($field as $key2=>$field2) |
464 | - fputcsv($fp, [$key, $key2, $field2]); |
|
464 | + fputcsv($fp, [ $key, $key2, $field2 ]); |
|
465 | 465 | } |
466 | 466 | }; |
467 | 467 | |
468 | - self::writeCSV($file, $data, ['i', 'j', $name], $f); |
|
468 | + self::writeCSV($file, $data, [ 'i', 'j', $name ], $f); |
|
469 | 469 | } |
470 | 470 | |
471 | 471 | /** |
@@ -478,7 +478,7 @@ discard block |
||
478 | 478 | static private function writeCSV($file, $data, $heading, \Closure $writer) |
479 | 479 | { |
480 | 480 | $fp = @fopen($file, 'w'); |
481 | - if(!$fp) |
|
481 | + if (!$fp) |
|
482 | 482 | throw new OptimiseException('problem during creation of a file'); |
483 | 483 | |
484 | 484 | fputcsv($fp, $heading); |
@@ -498,8 +498,8 @@ discard block |
||
498 | 498 | { |
499 | 499 | $this->writeData(); |
500 | 500 | $this->writeModelFile(); |
501 | - $event = $this->schedule->exec('glpsol --math '.$this->getModelPath())->sendOutputTo($this->getOutputPath())->after(function () { }); //this just to execute in foreground |
|
502 | - if($event->isDue($this->laravel)) |
|
501 | + $event = $this->schedule->exec('glpsol --math '.$this->getModelPath())->sendOutputTo($this->getOutputPath())->after(function() { }); //this just to execute in foreground |
|
502 | + if ($event->isDue($this->laravel)) |
|
503 | 503 | $event->run($this->laravel); |
504 | 504 | //TODO catch glpsol errors |
505 | 505 | return $this; |
@@ -513,9 +513,9 @@ discard block |
||
513 | 513 | $strReplaceS = array('{USERS_PATH}', '{MEETINGS_PATH}', '{USER_AVAILABILITY_PATH}', '{MEETINGS_AVAILABILITY_PATH}', '{USER_MEETINGS_PATH}', '{MEETINGS_DURATION_PATH}', '{TIME_SLOTS}', '{MAX_TIME_SLOTS}', '{X_OUT_PATH}', '{Y_OUT_PATH}'); |
514 | 514 | $strReplaceR = array($this->getUsersPath(), $this->getMeetingsPath(), $this->getUsersAvailabilityPath(), $this->getMeetingsAvailabilityPath(), $this->getUsersMeetingsPath(), $this->getMeetingsDurationPath(), $this->timeSlots, $this->maxTimeSlots, $this->getXPath(), $this->getYPath()); |
515 | 515 | $f = @fopen($this->getModelPath(), "w"); |
516 | - if(!$f) |
|
516 | + if (!$f) |
|
517 | 517 | throw new OptimiseException('problem during creation of a file'); |
518 | - fwrite($f, str_replace($strReplaceS, $strReplaceR, file_get_contents(__DIR__ . "/model.stub"))); |
|
518 | + fwrite($f, str_replace($strReplaceS, $strReplaceR, file_get_contents(__DIR__."/model.stub"))); |
|
519 | 519 | fclose($f); |
520 | 520 | } |
521 | 521 | |
@@ -543,7 +543,7 @@ discard block |
||
543 | 543 | */ |
544 | 544 | public function getOutput() |
545 | 545 | { |
546 | - if(!($data = file_get_contents($this->getOutputPath()))) |
|
546 | + if (!($data = file_get_contents($this->getOutputPath()))) |
|
547 | 547 | throw new OptimiseException('problems during reading the file'); |
548 | 548 | return $data; |
549 | 549 | } |
@@ -555,22 +555,22 @@ discard block |
||
555 | 555 | */ |
556 | 556 | static private function readCSVFile($file) |
557 | 557 | { |
558 | - if(!file_exists($file) || !filesize($file)) |
|
558 | + if (!file_exists($file) || !filesize($file)) |
|
559 | 559 | throw new OptimiseException('no results file'); |
560 | 560 | |
561 | - $handle = @fopen($file,"r"); |
|
562 | - if(!$handle) |
|
561 | + $handle = @fopen($file, "r"); |
|
562 | + if (!$handle) |
|
563 | 563 | throw new OptimiseException('problems during reading the file'); |
564 | 564 | |
565 | - $ret = []; |
|
565 | + $ret = [ ]; |
|
566 | 566 | fgetcsv($handle); //skip head |
567 | 567 | while (($data = fgetcsv($handle)) !== FALSE) { |
568 | - if(count($data) != 3) { |
|
568 | + if (count($data) != 3) { |
|
569 | 569 | fclose($handle); |
570 | 570 | throw new OptimiseException('problems during parsing the file'); |
571 | 571 | } |
572 | 572 | |
573 | - $ret[$data[0]][$data[1]] = $data[2]; |
|
573 | + $ret[ $data[ 0 ] ][ $data[ 1 ] ] = $data[ 2 ]; |
|
574 | 574 | } |
575 | 575 | |
576 | 576 | fclose($handle); |
@@ -677,8 +677,8 @@ discard block |
||
677 | 677 | */ |
678 | 678 | private function checkData() |
679 | 679 | { |
680 | - $this->checkArrayProprieties(['users', 'meetings', 'meetingsAvailability', 'meetingsDuration', 'usersAvailability', 'usersMeetings']); |
|
681 | - $this->checkIntProprieties(['timeSlots', 'maxTimeSlots']); |
|
680 | + $this->checkArrayProprieties([ 'users', 'meetings', 'meetingsAvailability', 'meetingsDuration', 'usersAvailability', 'usersMeetings' ]); |
|
681 | + $this->checkIntProprieties([ 'timeSlots', 'maxTimeSlots' ]); |
|
682 | 682 | } |
683 | 683 | |
684 | 684 | /** |
@@ -687,8 +687,8 @@ discard block |
||
687 | 687 | */ |
688 | 688 | private function checkArrayProprieties($proprieties) |
689 | 689 | { |
690 | - foreach($proprieties as $propriety) |
|
691 | - if(count($this->$propriety)==0) |
|
690 | + foreach ($proprieties as $propriety) |
|
691 | + if (count($this->$propriety) == 0) |
|
692 | 692 | throw new OptimiseException($propriety.' is not set correctly'); |
693 | 693 | } |
694 | 694 | |
@@ -698,8 +698,8 @@ discard block |
||
698 | 698 | */ |
699 | 699 | private function checkIntProprieties($proprieties) |
700 | 700 | { |
701 | - foreach($proprieties as $propriety) |
|
702 | - if(!is_int($this->$propriety) || $this->$propriety <= 0) |
|
701 | + foreach ($proprieties as $propriety) |
|
702 | + if (!is_int($this->$propriety) || $this->$propriety <= 0) |
|
703 | 703 | throw new OptimiseException($propriety.' is not set correctly'); |
704 | 704 | } |
705 | 705 | |
@@ -712,8 +712,8 @@ discard block |
||
712 | 712 | static private function arrayPad(array $array, $len, $pad) |
713 | 713 | { |
714 | 714 | $len = $len - count($array); |
715 | - for($i = 0; $i<$len; $i++) |
|
716 | - $array[] = $pad; |
|
715 | + for ($i = 0; $i < $len; $i++) |
|
716 | + $array[ ] = $pad; |
|
717 | 717 | return $array; |
718 | 718 | } |
719 | 719 | } |
720 | 720 | \ No newline at end of file |
@@ -104,8 +104,9 @@ discard block |
||
104 | 104 | */ |
105 | 105 | function __destruct() |
106 | 106 | { |
107 | - if ($this->path && is_dir($this->path) && !self::delTree($this->path)) |
|
108 | - throw new OptimiseException('problems during removing of path directory'); |
|
107 | + if ($this->path && is_dir($this->path) && !self::delTree($this->path)) { |
|
108 | + throw new OptimiseException('problems during removing of path directory'); |
|
109 | + } |
|
109 | 110 | } |
110 | 111 | |
111 | 112 | /** |
@@ -113,8 +114,9 @@ discard block |
||
113 | 114 | */ |
114 | 115 | static private function checkGlpsol() |
115 | 116 | { |
116 | - if(!(`which glpsol`)) |
|
117 | - throw new OptimiseException('glpsol is not installed'); |
|
117 | + if(!(`which glpsol`)) { |
|
118 | + throw new OptimiseException('glpsol is not installed'); |
|
119 | + } |
|
118 | 120 | } |
119 | 121 | |
120 | 122 | /** |
@@ -138,12 +140,16 @@ discard block |
||
138 | 140 | { |
139 | 141 | $this->path = tempnam(sys_get_temp_dir(), 'OPT'); //TODO check the return in case of errors this return false on failure |
140 | 142 | unlink($this->path); //remove file to create a dir |
141 | - if(file_exists($this->path)) |
|
142 | - throw new OptimiseException('problem during creation of tmp dir (the directory already exists)'); |
|
143 | - if(!@mkdir($this->path)) |
|
144 | - throw new OptimiseException('problem during creation of tmp dir (mkdir problem)');; |
|
145 | - if(! is_dir($this->path)) |
|
146 | - throw new OptimiseException('problem during creation of tmp dir (it is not possible to create directory)'); |
|
143 | + if(file_exists($this->path)) { |
|
144 | + throw new OptimiseException('problem during creation of tmp dir (the directory already exists)'); |
|
145 | + } |
|
146 | + if(!@mkdir($this->path)) { |
|
147 | + throw new OptimiseException('problem during creation of tmp dir (mkdir problem)'); |
|
148 | + } |
|
149 | + ; |
|
150 | + if(! is_dir($this->path)) { |
|
151 | + throw new OptimiseException('problem during creation of tmp dir (it is not possible to create directory)'); |
|
152 | + } |
|
147 | 153 | } |
148 | 154 | |
149 | 155 | /** |
@@ -223,8 +229,9 @@ discard block |
||
223 | 229 | */ |
224 | 230 | public function setTimeSlots($timeSlots) |
225 | 231 | { |
226 | - if(!is_int($timeSlots) || $timeSlots <=0) |
|
227 | - throw new OptimiseException('$timeSlots is not integer or it is not >0'); |
|
232 | + if(!is_int($timeSlots) || $timeSlots <=0) { |
|
233 | + throw new OptimiseException('$timeSlots is not integer or it is not >0'); |
|
234 | + } |
|
228 | 235 | |
229 | 236 | $this->timeSlots = $timeSlots; |
230 | 237 | return $this; |
@@ -245,8 +252,9 @@ discard block |
||
245 | 252 | */ |
246 | 253 | public function setMaxTimeSlots($maxTimeSlots) |
247 | 254 | { |
248 | - if(!is_int($maxTimeSlots) || $maxTimeSlots <=0) |
|
249 | - throw new OptimiseException('$maxTimeSlots is not integer or it is not >0'); |
|
255 | + if(!is_int($maxTimeSlots) || $maxTimeSlots <=0) { |
|
256 | + throw new OptimiseException('$maxTimeSlots is not integer or it is not >0'); |
|
257 | + } |
|
250 | 258 | |
251 | 259 | $this->maxTimeSlots = $maxTimeSlots; |
252 | 260 | return $this; |
@@ -268,12 +276,14 @@ discard block |
||
268 | 276 | public function setMeetingsAvailability($meetingsAvailability) |
269 | 277 | { |
270 | 278 | $meetings = array_keys($meetingsAvailability); |
271 | - if(array_diff($meetings, $this->meetings)) |
|
272 | - throw new OptimiseException('meetings different from meetings set'); |
|
279 | + if(array_diff($meetings, $this->meetings)) { |
|
280 | + throw new OptimiseException('meetings different from meetings set'); |
|
281 | + } |
|
273 | 282 | foreach($meetingsAvailability as $key=>$meetingsAvailabilityS) { |
274 | 283 | $timeSlots = array_keys($meetingsAvailabilityS); |
275 | - if(count($timeSlots) != $this->timeSlots) |
|
276 | - throw new OptimiseException('timeSlots different from timeSlots set'); |
|
284 | + if(count($timeSlots) != $this->timeSlots) { |
|
285 | + throw new OptimiseException('timeSlots different from timeSlots set'); |
|
286 | + } |
|
277 | 287 | $meetingsAvailability[$key] = self::arrayPad($meetingsAvailabilityS, $this->timeSlots + $this->maxTimeSlots, 0); |
278 | 288 | } |
279 | 289 | |
@@ -303,8 +313,9 @@ discard block |
||
303 | 313 | } |
304 | 314 | foreach($meetingsDuration as $duration) { |
305 | 315 | $duration = (int) $duration; //TODO fix this (fix for optimise) |
306 | - if(!is_int($duration) || $duration <=0) |
|
307 | - throw new OptimiseException('duration is not integer or it is not >0'); |
|
316 | + if(!is_int($duration) || $duration <=0) { |
|
317 | + throw new OptimiseException('duration is not integer or it is not >0'); |
|
318 | + } |
|
308 | 319 | } |
309 | 320 | |
310 | 321 | $this->meetingsDuration = $meetingsDuration; |
@@ -327,12 +338,14 @@ discard block |
||
327 | 338 | public function setUsersAvailability($usersAvailability) |
328 | 339 | { |
329 | 340 | $users = array_keys($usersAvailability); |
330 | - if(array_diff($users, $this->users)) |
|
331 | - throw new OptimiseException('users different from users set'); |
|
341 | + if(array_diff($users, $this->users)) { |
|
342 | + throw new OptimiseException('users different from users set'); |
|
343 | + } |
|
332 | 344 | foreach($usersAvailability as $key=>$usersAvailabilityS) { |
333 | 345 | $timeSlots = array_keys($usersAvailabilityS); |
334 | - if(count($timeSlots) != $this->timeSlots) |
|
335 | - throw new OptimiseException('timeSlots different from timeSlots set'); |
|
346 | + if(count($timeSlots) != $this->timeSlots) { |
|
347 | + throw new OptimiseException('timeSlots different from timeSlots set'); |
|
348 | + } |
|
336 | 349 | |
337 | 350 | $usersAvailability[$key] = self::arrayPad($usersAvailabilityS, $this->timeSlots + $this->maxTimeSlots, 0); |
338 | 351 | } |
@@ -357,12 +370,14 @@ discard block |
||
357 | 370 | public function setUsersMeetings($usersMeetings) |
358 | 371 | { |
359 | 372 | $users = array_keys($usersMeetings); |
360 | - if(array_diff($users, $this->users)) |
|
361 | - throw new OptimiseException('users different from users set'); |
|
373 | + if(array_diff($users, $this->users)) { |
|
374 | + throw new OptimiseException('users different from users set'); |
|
375 | + } |
|
362 | 376 | foreach($usersMeetings as $usersMeetingsS) { |
363 | 377 | $meetings = array_keys($usersMeetingsS); |
364 | - if(array_diff($meetings, $this->meetings)) |
|
365 | - throw new OptimiseException('meetings different from meetings set'); |
|
378 | + if(array_diff($meetings, $this->meetings)) { |
|
379 | + throw new OptimiseException('meetings different from meetings set'); |
|
380 | + } |
|
366 | 381 | } |
367 | 382 | |
368 | 383 | $this->usersMeetings = $usersMeetings; |
@@ -460,8 +475,9 @@ discard block |
||
460 | 475 | { |
461 | 476 | $f = function ($fp, $data){ |
462 | 477 | foreach ($data as $key=>$field) { |
463 | - foreach ($field as $key2=>$field2) |
|
464 | - fputcsv($fp, [$key, $key2, $field2]); |
|
478 | + foreach ($field as $key2=>$field2) { |
|
479 | + fputcsv($fp, [$key, $key2, $field2]); |
|
480 | + } |
|
465 | 481 | } |
466 | 482 | }; |
467 | 483 | |
@@ -478,8 +494,9 @@ discard block |
||
478 | 494 | static private function writeCSV($file, $data, $heading, \Closure $writer) |
479 | 495 | { |
480 | 496 | $fp = @fopen($file, 'w'); |
481 | - if(!$fp) |
|
482 | - throw new OptimiseException('problem during creation of a file'); |
|
497 | + if(!$fp) { |
|
498 | + throw new OptimiseException('problem during creation of a file'); |
|
499 | + } |
|
483 | 500 | |
484 | 501 | fputcsv($fp, $heading); |
485 | 502 | |
@@ -499,8 +516,9 @@ discard block |
||
499 | 516 | $this->writeData(); |
500 | 517 | $this->writeModelFile(); |
501 | 518 | $event = $this->schedule->exec('glpsol --math '.$this->getModelPath())->sendOutputTo($this->getOutputPath())->after(function () { }); //this just to execute in foreground |
502 | - if($event->isDue($this->laravel)) |
|
503 | - $event->run($this->laravel); |
|
519 | + if($event->isDue($this->laravel)) { |
|
520 | + $event->run($this->laravel); |
|
521 | + } |
|
504 | 522 | //TODO catch glpsol errors |
505 | 523 | return $this; |
506 | 524 | } |
@@ -513,8 +531,9 @@ discard block |
||
513 | 531 | $strReplaceS = array('{USERS_PATH}', '{MEETINGS_PATH}', '{USER_AVAILABILITY_PATH}', '{MEETINGS_AVAILABILITY_PATH}', '{USER_MEETINGS_PATH}', '{MEETINGS_DURATION_PATH}', '{TIME_SLOTS}', '{MAX_TIME_SLOTS}', '{X_OUT_PATH}', '{Y_OUT_PATH}'); |
514 | 532 | $strReplaceR = array($this->getUsersPath(), $this->getMeetingsPath(), $this->getUsersAvailabilityPath(), $this->getMeetingsAvailabilityPath(), $this->getUsersMeetingsPath(), $this->getMeetingsDurationPath(), $this->timeSlots, $this->maxTimeSlots, $this->getXPath(), $this->getYPath()); |
515 | 533 | $f = @fopen($this->getModelPath(), "w"); |
516 | - if(!$f) |
|
517 | - throw new OptimiseException('problem during creation of a file'); |
|
534 | + if(!$f) { |
|
535 | + throw new OptimiseException('problem during creation of a file'); |
|
536 | + } |
|
518 | 537 | fwrite($f, str_replace($strReplaceS, $strReplaceR, file_get_contents(__DIR__ . "/model.stub"))); |
519 | 538 | fclose($f); |
520 | 539 | } |
@@ -543,8 +562,9 @@ discard block |
||
543 | 562 | */ |
544 | 563 | public function getOutput() |
545 | 564 | { |
546 | - if(!($data = file_get_contents($this->getOutputPath()))) |
|
547 | - throw new OptimiseException('problems during reading the file'); |
|
565 | + if(!($data = file_get_contents($this->getOutputPath()))) { |
|
566 | + throw new OptimiseException('problems during reading the file'); |
|
567 | + } |
|
548 | 568 | return $data; |
549 | 569 | } |
550 | 570 | |
@@ -555,12 +575,14 @@ discard block |
||
555 | 575 | */ |
556 | 576 | static private function readCSVFile($file) |
557 | 577 | { |
558 | - if(!file_exists($file) || !filesize($file)) |
|
559 | - throw new OptimiseException('no results file'); |
|
578 | + if(!file_exists($file) || !filesize($file)) { |
|
579 | + throw new OptimiseException('no results file'); |
|
580 | + } |
|
560 | 581 | |
561 | 582 | $handle = @fopen($file,"r"); |
562 | - if(!$handle) |
|
563 | - throw new OptimiseException('problems during reading the file'); |
|
583 | + if(!$handle) { |
|
584 | + throw new OptimiseException('problems during reading the file'); |
|
585 | + } |
|
564 | 586 | |
565 | 587 | $ret = []; |
566 | 588 | fgetcsv($handle); //skip head |
@@ -687,9 +709,10 @@ discard block |
||
687 | 709 | */ |
688 | 710 | private function checkArrayProprieties($proprieties) |
689 | 711 | { |
690 | - foreach($proprieties as $propriety) |
|
691 | - if(count($this->$propriety)==0) |
|
712 | + foreach($proprieties as $propriety) { |
|
713 | + if(count($this->$propriety)==0) |
|
692 | 714 | throw new OptimiseException($propriety.' is not set correctly'); |
715 | + } |
|
693 | 716 | } |
694 | 717 | |
695 | 718 | /** |
@@ -698,9 +721,10 @@ discard block |
||
698 | 721 | */ |
699 | 722 | private function checkIntProprieties($proprieties) |
700 | 723 | { |
701 | - foreach($proprieties as $propriety) |
|
702 | - if(!is_int($this->$propriety) || $this->$propriety <= 0) |
|
724 | + foreach($proprieties as $propriety) { |
|
725 | + if(!is_int($this->$propriety) || $this->$propriety <= 0) |
|
703 | 726 | throw new OptimiseException($propriety.' is not set correctly'); |
727 | + } |
|
704 | 728 | } |
705 | 729 | |
706 | 730 | /** |
@@ -712,8 +736,9 @@ discard block |
||
712 | 736 | static private function arrayPad(array $array, $len, $pad) |
713 | 737 | { |
714 | 738 | $len = $len - count($array); |
715 | - for($i = 0; $i<$len; $i++) |
|
716 | - $array[] = $pad; |
|
739 | + for($i = 0; $i<$len; $i++) { |
|
740 | + $array[] = $pad; |
|
741 | + } |
|
717 | 742 | return $array; |
718 | 743 | } |
719 | 744 | } |
720 | 745 | \ No newline at end of file |
@@ -32,8 +32,8 @@ |
||
32 | 32 | protected $description = 'Optimise meetings'; |
33 | 33 | |
34 | 34 | /** |
35 | - * @var Schedule laravel schedule object needed to perform command in background |
|
36 | - */ |
|
35 | + * @var Schedule laravel schedule object needed to perform command in background |
|
36 | + */ |
|
37 | 37 | private $schedule; |
38 | 38 | |
39 | 39 | /** |
@@ -119,7 +119,7 @@ discard block |
||
119 | 119 | |
120 | 120 | /** |
121 | 121 | * remove a no empty dir |
122 | - * @param $dir |
|
122 | + * @param string $dir |
|
123 | 123 | * @return bool |
124 | 124 | */ |
125 | 125 | private static function delTree($dir) { |
@@ -173,7 +173,7 @@ discard block |
||
173 | 173 | } |
174 | 174 | |
175 | 175 | /** |
176 | - * @return \string[] |
|
176 | + * @return string[] |
|
177 | 177 | */ |
178 | 178 | public function getUsers() |
179 | 179 | { |
@@ -419,7 +419,7 @@ discard block |
||
419 | 419 | |
420 | 420 | /** |
421 | 421 | * @param string $file |
422 | - * @param array $data |
|
422 | + * @param string[] $data |
|
423 | 423 | * @throws OptimiseException |
424 | 424 | */ |
425 | 425 | static private function writeCSVArrayNoKey($file, $data) |
@@ -435,7 +435,7 @@ discard block |
||
435 | 435 | |
436 | 436 | /** |
437 | 437 | * @param string $file |
438 | - * @param array $data |
|
438 | + * @param string[] $data |
|
439 | 439 | * @param string $name |
440 | 440 | * @throws OptimiseException |
441 | 441 | */ |
@@ -452,7 +452,7 @@ discard block |
||
452 | 452 | |
453 | 453 | /** |
454 | 454 | * @param string $file |
455 | - * @param array $data |
|
455 | + * @param string[] $data |
|
456 | 456 | * @param string $name |
457 | 457 | * @throws OptimiseException |
458 | 458 | */ |
@@ -471,7 +471,7 @@ discard block |
||
471 | 471 | /** |
472 | 472 | * @param string $file |
473 | 473 | * @param array $data |
474 | - * @param array $heading |
|
474 | + * @param string[] $heading |
|
475 | 475 | * @param \Closure $writer |
476 | 476 | * @throws OptimiseException |
477 | 477 | */ |
@@ -682,7 +682,7 @@ discard block |
||
682 | 682 | } |
683 | 683 | |
684 | 684 | /** |
685 | - * @param $proprieties |
|
685 | + * @param string[] $proprieties |
|
686 | 686 | * @throws OptimiseException |
687 | 687 | */ |
688 | 688 | private function checkArrayProprieties($proprieties) |
@@ -693,7 +693,7 @@ discard block |
||
693 | 693 | } |
694 | 694 | |
695 | 695 | /** |
696 | - * @param $proprieties |
|
696 | + * @param string[] $proprieties |
|
697 | 697 | * @throws OptimiseException |
698 | 698 | */ |
699 | 699 | private function checkIntProprieties($proprieties) |
@@ -707,6 +707,8 @@ discard block |
||
707 | 707 | * implementation of arraypad that doesn't change original keys<br/> |
708 | 708 | * <strong>CAUTION: Only positive $len</strong> |
709 | 709 | * @param array $array |
710 | + * @param integer $len |
|
711 | + * @param integer $pad |
|
710 | 712 | * @return array |
711 | 713 | */ |
712 | 714 | static private function arrayPad(array $array, $len, $pad) |
@@ -1,21 +1,21 @@ |
||
1 | 1 | <?php |
2 | 2 | /** |
3 | - * Created by PhpStorm. |
|
4 | - * User: Claudio Cardinale <[email protected]> |
|
5 | - * Date: 07/12/15 |
|
6 | - * Time: 21.24 |
|
7 | - * This program is free software; you can redistribute it and/or |
|
8 | - * modify it under the terms of the GNU General Public License |
|
9 | - * as published by the Free Software Foundation; either version 2 |
|
10 | - * of the License, or (at your option) any later version. |
|
11 | - * This program is distributed in the hope that it will be useful, |
|
12 | - * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
13 | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
14 | - * GNU General Public License for more details. |
|
15 | - * You should have received a copy of the GNU General Public License |
|
16 | - * along with this program; if not, write to the Free Software |
|
17 | - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
|
18 | - */ |
|
3 | + * Created by PhpStorm. |
|
4 | + * User: Claudio Cardinale <[email protected]> |
|
5 | + * Date: 07/12/15 |
|
6 | + * Time: 21.24 |
|
7 | + * This program is free software; you can redistribute it and/or |
|
8 | + * modify it under the terms of the GNU General Public License |
|
9 | + * as published by the Free Software Foundation; either version 2 |
|
10 | + * of the License, or (at your option) any later version. |
|
11 | + * This program is distributed in the hope that it will be useful, |
|
12 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
13 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
14 | + * GNU General Public License for more details. |
|
15 | + * You should have received a copy of the GNU General Public License |
|
16 | + * along with this program; if not, write to the Free Software |
|
17 | + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
|
18 | + */ |
|
19 | 19 | |
20 | 20 | namespace plunner\Console\Commands\Optimise; |
21 | 21 |
@@ -39,6 +39,6 @@ |
||
39 | 39 | */ |
40 | 40 | public function broadcastOn() |
41 | 41 | { |
42 | - return []; |
|
42 | + return [ ]; |
|
43 | 43 | } |
44 | 44 | } |
@@ -39,6 +39,6 @@ |
||
39 | 39 | */ |
40 | 40 | public function broadcastOn() |
41 | 41 | { |
42 | - return []; |
|
42 | + return [ ]; |
|
43 | 43 | } |
44 | 44 | } |
@@ -48,14 +48,14 @@ discard block |
||
48 | 48 | * |
49 | 49 | * @var array |
50 | 50 | */ |
51 | - protected $fillable = ['name', 'email', 'password']; |
|
51 | + protected $fillable = [ 'name', 'email', 'password' ]; |
|
52 | 52 | |
53 | 53 | /** |
54 | 54 | * The attributes excluded from the model's JSON form. |
55 | 55 | * |
56 | 56 | * @var array |
57 | 57 | */ |
58 | - protected $hidden = ['password', 'remember_token']; |
|
58 | + protected $hidden = [ 'password', 'remember_token' ]; |
|
59 | 59 | |
60 | 60 | /** |
61 | 61 | * @return \Illuminate\Database\Eloquent\Relations\HasMany |
@@ -120,8 +120,8 @@ discard block |
||
120 | 120 | ->where('calendars.enabled', '=', '1') |
121 | 121 | ->where('timeslots.time_start', '>=', $from) |
122 | 122 | ->where('timeslots.time_end', '<=', $to) |
123 | - ->where('employees.company_id','=', $this->id) |
|
124 | - ->select('employees.id','timeslots.time_start','timeslots.time_end') |
|
123 | + ->where('employees.company_id', '=', $this->id) |
|
124 | + ->select('employees.id', 'timeslots.time_start', 'timeslots.time_end') |
|
125 | 125 | ->get(); |
126 | 126 | } |
127 | 127 | |
@@ -137,9 +137,9 @@ discard block |
||
137 | 137 | ->join('meeting_timeslots', 'meetings.id', '=', 'meeting_timeslots.meeting_id') |
138 | 138 | ->where('meeting_timeslots.time_start', '>=', $from) |
139 | 139 | ->where('meeting_timeslots.time_end', '<=', $to) |
140 | - ->where('groups.company_id','=', $this->id) |
|
141 | - ->where('meetings.start_time','=', NULL) |
|
142 | - ->select('meetings.id', 'meetings.duration','meeting_timeslots.time_start','meeting_timeslots.time_end') |
|
140 | + ->where('groups.company_id', '=', $this->id) |
|
141 | + ->where('meetings.start_time', '=', NULL) |
|
142 | + ->select('meetings.id', 'meetings.duration', 'meeting_timeslots.time_start', 'meeting_timeslots.time_end') |
|
143 | 143 | ->get(); |
144 | 144 | } |
145 | 145 | |
@@ -151,8 +151,8 @@ discard block |
||
151 | 151 | ->join('employees', 'employee_group.employee_id', '=', 'employees.id') |
152 | 152 | ->whereIn('employees.id', $users) |
153 | 153 | ->whereIn('meetings.id', $meetings) |
154 | - ->where('groups.company_id','=', $this->id) //this is not needed |
|
155 | - ->where('employees.company_id','=', $this->id) //this is not needed |
|
154 | + ->where('groups.company_id', '=', $this->id) //this is not needed |
|
155 | + ->where('employees.company_id', '=', $this->id) //this is not needed |
|
156 | 156 | ->select('employees.id as employee_id', 'meetings.id as meeting_id') |
157 | 157 | ->get(); |
158 | 158 | } |