@@ -50,14 +50,14 @@ discard block |
||
| 50 | 50 | * |
| 51 | 51 | * @var array |
| 52 | 52 | */ |
| 53 | - protected $fillable = ['name', 'email', 'password']; |
|
| 53 | + protected $fillable = [ 'name', 'email', 'password' ]; |
|
| 54 | 54 | |
| 55 | 55 | /** |
| 56 | 56 | * The attributes excluded from the model's JSON form. |
| 57 | 57 | * |
| 58 | 58 | * @var array |
| 59 | 59 | */ |
| 60 | - protected $hidden = ['password', 'remember_token', 'pivot']; |
|
| 60 | + protected $hidden = [ 'password', 'remember_token', 'pivot' ]; |
|
| 61 | 61 | |
| 62 | 62 | /** |
| 63 | 63 | * @return \Illuminate\Database\Eloquent\Relations\BelongsTo |
@@ -88,7 +88,7 @@ discard block |
||
| 88 | 88 | * to get all meetings where the user can go user groups with meetings |
| 89 | 89 | * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany |
| 90 | 90 | */ |
| 91 | - public function meetings(){ |
|
| 91 | + public function meetings() { |
|
| 92 | 92 | //TODO durign the inserting chek if the meeting is of a group of the user |
| 93 | 93 | return $this->belongsToMany(Meeting::class); |
| 94 | 94 | } |
@@ -104,16 +104,16 @@ discard block |
||
| 104 | 104 | public function getEmailForPasswordReset() |
| 105 | 105 | { |
| 106 | 106 | list(, $caller) = debug_backtrace(false); |
| 107 | - if(isset($caller['class'])) |
|
| 108 | - $caller = explode('\\', $caller['class']); |
|
| 107 | + if (isset($caller[ 'class' ])) |
|
| 108 | + $caller = explode('\\', $caller[ 'class' ]); |
|
| 109 | 109 | else |
| 110 | 110 | $caller = ''; |
| 111 | 111 | |
| 112 | 112 | //check if this function is called by email sender |
| 113 | - if ((count($caller) && $caller[count($caller) - 1] == 'PasswordBroker') || (defined('HHVM_VERSION') && $caller == '')) |
|
| 113 | + if ((count($caller) && $caller[ count($caller) - 1 ] == 'PasswordBroker') || (defined('HHVM_VERSION') && $caller == '')) |
|
| 114 | 114 | return $this->email; |
| 115 | 115 | //return unique identify for token repository |
| 116 | - return $this->email . $this->company->id; |
|
| 116 | + return $this->email.$this->company->id; |
|
| 117 | 117 | } |
| 118 | 118 | |
| 119 | 119 | /** |
@@ -123,7 +123,7 @@ discard block |
||
| 123 | 123 | public function belongsToGroup(Group $group) |
| 124 | 124 | { |
| 125 | 125 | $group = $this->groups()->where('id', $group->id)->first(); |
| 126 | - if(is_object($group) && $group->exists) |
|
| 126 | + if (is_object($group) && $group->exists) |
|
| 127 | 127 | return true; |
| 128 | 128 | return false; |
| 129 | 129 | } |
@@ -46,14 +46,14 @@ |
||
| 46 | 46 | * |
| 47 | 47 | * @var array |
| 48 | 48 | */ |
| 49 | - protected $fillable = ['title', 'description', 'duration']; |
|
| 49 | + protected $fillable = [ 'title', 'description', 'duration' ]; |
|
| 50 | 50 | |
| 51 | 51 | /** |
| 52 | 52 | * The attributes excluded from the model's JSON form. |
| 53 | 53 | * |
| 54 | 54 | * @var array |
| 55 | 55 | */ |
| 56 | - protected $hidden = ['pivot']; |
|
| 56 | + protected $hidden = [ 'pivot' ]; |
|
| 57 | 57 | |
| 58 | 58 | |
| 59 | 59 | /** |
@@ -39,6 +39,6 @@ |
||
| 39 | 39 | */ |
| 40 | 40 | public function broadcastOn() |
| 41 | 41 | { |
| 42 | - return []; |
|
| 42 | + return [ ]; |
|
| 43 | 43 | } |
| 44 | 44 | } |
@@ -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 | } |
@@ -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 | } |
@@ -24,7 +24,7 @@ discard block |
||
| 24 | 24 | //TODo max timeslots can be an environment var |
| 25 | 25 | const TIME_SLOT_DURATION = 900; //seconds -> 15 minutes |
| 26 | 26 | const DEFAULT_MAX_TIME_SLOTS = 20; //max duration of a meeting in term of timeslots //20 |
| 27 | - const DEFAULT_TIME_SLOTS = 672; //total amount of timeslots that must be optimised -> one week 4*24*7 = 672 |
|
| 27 | + const DEFAULT_TIME_SLOTS = 672; //total amount of timeslots that must be optimised -> one week 4*24*7 = 672 |
|
| 28 | 28 | |
| 29 | 29 | private $max_time_slots = self::DEFAULT_MAX_TIME_SLOTS; |
| 30 | 30 | private $time_slots = self::DEFAULT_TIME_SLOTS; |
@@ -85,7 +85,7 @@ discard block |
||
| 85 | 85 | { |
| 86 | 86 | $this->startTime = clone $startTime; |
| 87 | 87 | $this->endTime = clone $this->startTime; |
| 88 | - $this->endTime->add(new \DateInterval('PT'.(($this->max_time_slots+$this->time_slots)*self::TIME_SLOT_DURATION).'S')); |
|
| 88 | + $this->endTime->add(new \DateInterval('PT'.(($this->max_time_slots + $this->time_slots) * self::TIME_SLOT_DURATION).'S')); |
|
| 89 | 89 | } |
| 90 | 90 | |
| 91 | 91 | /** |
@@ -156,7 +156,7 @@ discard block |
||
| 156 | 156 | $solver = $this->setData($solver); |
| 157 | 157 | $solver = $solver->solve(); |
| 158 | 158 | $this->solver = $solver; |
| 159 | - }catch(\Exception $e) |
|
| 159 | + } catch (\Exception $e) |
|
| 160 | 160 | { |
| 161 | 161 | \Event::fire(new ErrorEvent($this->company, $e->getMessage())); |
| 162 | 162 | throw new OptimiseException('Optimising error', 0, $e); |
@@ -170,7 +170,7 @@ discard block |
||
| 170 | 170 | */ |
| 171 | 171 | public function save() |
| 172 | 172 | { |
| 173 | - if(!($this->solver instanceof Solver)) { |
|
| 173 | + if (!($this->solver instanceof Solver)) { |
|
| 174 | 174 | \Event::fire(new ErrorEvent($this->company, 'solver is not an instace of Solver')); |
| 175 | 175 | throw new OptimiseException('solver is not an instance of Solver'); |
| 176 | 176 | return; |
@@ -180,7 +180,7 @@ discard block |
||
| 180 | 180 | try { |
| 181 | 181 | $this->saveMeetings($this->solver); |
| 182 | 182 | $this->saveEmployeesMeetings($this->solver); |
| 183 | - }catch(\Exception $e) |
|
| 183 | + } catch (\Exception $e) |
|
| 184 | 184 | { |
| 185 | 185 | \Event::fire(new ErrorEvent($this->company, $e->getMessage())); |
| 186 | 186 | throw new OptimiseException('Optimising error', 0, $e); |
@@ -197,8 +197,8 @@ discard block |
||
| 197 | 197 | private function saveMeetings(Solver $solver) |
| 198 | 198 | { |
| 199 | 199 | $meetings = $solver->getYResults(); |
| 200 | - foreach($meetings as $id=>$meeting){ |
|
| 201 | - $meetingO = \plunner\Meeting::findOrFail($id);//TODO catch error |
|
| 200 | + foreach ($meetings as $id=>$meeting) { |
|
| 201 | + $meetingO = \plunner\Meeting::findOrFail($id); //TODO catch error |
|
| 202 | 202 | $meetingO->start_time = $this->toDateTime(array_search('1', $meeting)); |
| 203 | 203 | $meetingO->save(); |
| 204 | 204 | } |
@@ -210,11 +210,11 @@ discard block |
||
| 210 | 210 | private function saveEmployeesMeetings(Solver $solver) |
| 211 | 211 | { |
| 212 | 212 | $employeesMeetings = $solver->getXResults(); |
| 213 | - foreach($employeesMeetings as $eId =>$employeeMeetings) |
|
| 213 | + foreach ($employeesMeetings as $eId =>$employeeMeetings) |
|
| 214 | 214 | { |
| 215 | 215 | $employee = \plunner\Employee::findOrFail($eId); |
| 216 | 216 | $employeeMeetings = collect($employeeMeetings); |
| 217 | - $employeeMeetings = $employeeMeetings->filter(function ($item) { |
|
| 217 | + $employeeMeetings = $employeeMeetings->filter(function($item) { |
|
| 218 | 218 | return $item == 1; |
| 219 | 219 | }); |
| 220 | 220 | $employee->meetings()->attach($employeeMeetings->keys()->toArray()); |
@@ -272,7 +272,7 @@ discard block |
||
| 272 | 272 | return $this->durationConverter($this->timeSlotsConverter($item)); |
| 273 | 273 | }); |
| 274 | 274 | return $solver->setMeetings($timeslots->keys()->toArray()) |
| 275 | - ->setMeetingsDuration($meetings->pluck('duration','id')->toArray()) |
|
| 275 | + ->setMeetingsDuration($meetings->pluck('duration', 'id')->toArray()) |
|
| 276 | 276 | ->setMeetingsAvailability(self::getAvailabilityArray($timeslots, $this->time_slots)); |
| 277 | 277 | } |
| 278 | 278 | |
@@ -318,15 +318,15 @@ discard block |
||
| 318 | 318 | */ |
| 319 | 319 | static private function getUsersMeetingsArray($users, $meetings, \Illuminate\Support\Collection $usersMeetings) |
| 320 | 320 | { |
| 321 | - $ret = []; |
|
| 322 | - foreach($users as $user) |
|
| 321 | + $ret = [ ]; |
|
| 322 | + foreach ($users as $user) |
|
| 323 | 323 | { |
| 324 | 324 | $usersMeetingsTmp = $usersMeetings->get($user); |
| 325 | - foreach($meetings as $meeting){ |
|
| 326 | - if($usersMeetingsTmp->contains('meeting_id', $meeting)){ |
|
| 327 | - $ret[$user][$meeting] = 1; |
|
| 328 | - }else{ |
|
| 329 | - $ret[$user][$meeting] = 0; |
|
| 325 | + foreach ($meetings as $meeting) { |
|
| 326 | + if ($usersMeetingsTmp->contains('meeting_id', $meeting)) { |
|
| 327 | + $ret[ $user ][ $meeting ] = 1; |
|
| 328 | + } else { |
|
| 329 | + $ret[ $user ][ $meeting ] = 0; |
|
| 330 | 330 | } |
| 331 | 331 | } |
| 332 | 332 | } |
@@ -340,7 +340,7 @@ discard block |
||
| 340 | 340 | */ |
| 341 | 341 | private function durationConverter($item) |
| 342 | 342 | { |
| 343 | - return $item->each(function($item2){ |
|
| 343 | + return $item->each(function($item2) { |
|
| 344 | 344 | $item2->duration = $this->convertDuration((int) $item2->duration); |
| 345 | 345 | return $item2; |
| 346 | 346 | //TODO try catch |
@@ -353,7 +353,7 @@ discard block |
||
| 353 | 353 | */ |
| 354 | 354 | private function timeSlotsConverter($item) |
| 355 | 355 | { |
| 356 | - return $item->each(function($item2){ |
|
| 356 | + return $item->each(function($item2) { |
|
| 357 | 357 | $item2->time_start = $this->toTimeSlot($item2->time_start); |
| 358 | 358 | $item2->time_end = $this->toTimeSlot($item2->time_end); |
| 359 | 359 | return $item2; |
@@ -366,13 +366,13 @@ discard block |
||
| 366 | 366 | * @param bool|true $free if true the array is filled with 1 for timeslots values else with 0 for timeslots values |
| 367 | 367 | * @return array |
| 368 | 368 | */ |
| 369 | - static private function getAvailabilityArray(\Illuminate\Support\Collection $timeSlots, $timeslotsN, $free=true) |
|
| 369 | + static private function getAvailabilityArray(\Illuminate\Support\Collection $timeSlots, $timeslotsN, $free = true) |
|
| 370 | 370 | { |
| 371 | - $ret = []; |
|
| 372 | - foreach($timeSlots as $id=>$timeSlots2) |
|
| 371 | + $ret = [ ]; |
|
| 372 | + foreach ($timeSlots as $id=>$timeSlots2) |
|
| 373 | 373 | { |
| 374 | - $ret = self::fillTimeSlots($ret, $id, $timeSlots2, $free?'1':'0'); |
|
| 375 | - $ret = self::fillRow($ret, $id, $timeslotsN, $free?'0':'1'); |
|
| 374 | + $ret = self::fillTimeSlots($ret, $id, $timeSlots2, $free ? '1' : '0'); |
|
| 375 | + $ret = self::fillRow($ret, $id, $timeslotsN, $free ? '0' : '1'); |
|
| 376 | 376 | } |
| 377 | 377 | |
| 378 | 378 | return $ret; |
@@ -387,10 +387,10 @@ discard block |
||
| 387 | 387 | */ |
| 388 | 388 | static private function fillTimeSlots(array $array, $id, \Illuminate\Support\Collection $timeSlots, $fill = '0') |
| 389 | 389 | { |
| 390 | - foreach($timeSlots as $timeSlot) { |
|
| 391 | - if(!isset($array[$id])) |
|
| 392 | - $array[$id] = []; |
|
| 393 | - $array[$id] = self::arrayPadInterval($array[$id], $timeSlot->time_start, $timeSlot->time_end, $fill); |
|
| 390 | + foreach ($timeSlots as $timeSlot) { |
|
| 391 | + if (!isset($array[ $id ])) |
|
| 392 | + $array[ $id ] = [ ]; |
|
| 393 | + $array[ $id ] = self::arrayPadInterval($array[ $id ], $timeSlot->time_start, $timeSlot->time_end, $fill); |
|
| 394 | 394 | } |
| 395 | 395 | return $array; |
| 396 | 396 | } |
@@ -403,9 +403,9 @@ discard block |
||
| 403 | 403 | */ |
| 404 | 404 | static private function fillRow(array $array, $id, $until, $fill = '0') |
| 405 | 405 | { |
| 406 | - for($i = 1; $i <= $until; $i++){ |
|
| 407 | - if(!isset($array[$id][$i])) |
|
| 408 | - $array[$id][$i] = $fill; |
|
| 406 | + for ($i = 1; $i <= $until; $i++) { |
|
| 407 | + if (!isset($array[ $id ][ $i ])) |
|
| 408 | + $array[ $id ][ $i ] = $fill; |
|
| 409 | 409 | } |
| 410 | 410 | |
| 411 | 411 | return $array; |
@@ -420,8 +420,8 @@ discard block |
||
| 420 | 420 | */ |
| 421 | 421 | static private function arrayPadInterval(array $array, $from, $to, $pad = '0') |
| 422 | 422 | { |
| 423 | - for($i = $from; $i<$to; $i++) |
|
| 424 | - $array[$i] = $pad; |
|
| 423 | + for ($i = $from; $i < $to; $i++) |
|
| 424 | + $array[ $i ] = $pad; |
|
| 425 | 425 | return $array; |
| 426 | 426 | } |
| 427 | 427 | |
@@ -435,14 +435,14 @@ discard block |
||
| 435 | 435 | { |
| 436 | 436 | $dateTime = new \DateTime($time); |
| 437 | 437 | $diff = $dateTime->diff($this->startTime); |
| 438 | - $diff = explode(':',$diff->format('%R:%d:%h:%i:%s')); |
|
| 439 | - $diff = $diff[1]*86400 + $diff[2]*3600 + $diff[3]*60 + $diff[4]; |
|
| 438 | + $diff = explode(':', $diff->format('%R:%d:%h:%i:%s')); |
|
| 439 | + $diff = $diff[ 1 ] * 86400 + $diff[ 2 ] * 3600 + $diff[ 3 ] * 60 + $diff[ 4 ]; |
|
| 440 | 440 | //if($diff[0] != '-' && $diff != 0) |
| 441 | 441 | // throw new OptimiseException('timeslot time <= startTime'); |
| 442 | 442 | //TODO fix check |
| 443 | 443 | //TODO check if diff makes sense |
| 444 | 444 | //TODO check upper limit |
| 445 | - return (int)(round($diff/self::TIME_SLOT_DURATION)+1); //TODO can round cause overlaps? |
|
| 445 | + return (int) (round($diff / self::TIME_SLOT_DURATION) + 1); //TODO can round cause overlaps? |
|
| 446 | 446 | } |
| 447 | 447 | |
| 448 | 448 | /** |
@@ -452,7 +452,7 @@ discard block |
||
| 452 | 452 | private function toDateTime($timeslot) |
| 453 | 453 | { |
| 454 | 454 | $ret = clone $this->startTime; |
| 455 | - return $ret->add(new \DateInterval('PT'.(($timeslot-1)*self::TIME_SLOT_DURATION).'S')); |
|
| 455 | + return $ret->add(new \DateInterval('PT'.(($timeslot - 1) * self::TIME_SLOT_DURATION).'S')); |
|
| 456 | 456 | } |
| 457 | 457 | |
| 458 | 458 | /** |
@@ -461,6 +461,6 @@ discard block |
||
| 461 | 461 | */ |
| 462 | 462 | static private function convertDuration($duration) |
| 463 | 463 | { |
| 464 | - return (int)ceil($duration/self::TIME_SLOT_DURATION); |
|
| 464 | + return (int) ceil($duration / self::TIME_SLOT_DURATION); |
|
| 465 | 465 | } |
| 466 | 466 | } |
| 467 | 467 | \ No newline at end of file |
@@ -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 | } |
@@ -112,7 +112,7 @@ discard block |
||
| 112 | 112 | */ |
| 113 | 113 | static private function checkGlpsol() |
| 114 | 114 | { |
| 115 | - if(!(`which glpsol`)) |
|
| 115 | + if (!(`which glpsol`)) |
|
| 116 | 116 | throw new OptimiseException('glpsol is not installed'); |
| 117 | 117 | } |
| 118 | 118 | |
@@ -193,7 +193,7 @@ discard block |
||
| 193 | 193 | */ |
| 194 | 194 | public function setTimeSlots($timeSlots) |
| 195 | 195 | { |
| 196 | - if(!is_int($timeSlots) || $timeSlots <=0) |
|
| 196 | + if (!is_int($timeSlots) || $timeSlots <= 0) |
|
| 197 | 197 | throw new OptimiseException('$timeSlots is not integer or it is not >0'); |
| 198 | 198 | |
| 199 | 199 | $this->timeSlots = $timeSlots; |
@@ -215,7 +215,7 @@ discard block |
||
| 215 | 215 | */ |
| 216 | 216 | public function setMaxTimeSlots($maxTimeSlots) |
| 217 | 217 | { |
| 218 | - if(!is_int($maxTimeSlots) || $maxTimeSlots <=0) |
|
| 218 | + if (!is_int($maxTimeSlots) || $maxTimeSlots <= 0) |
|
| 219 | 219 | throw new OptimiseException('$maxTimeSlots is not integer or it is not >0'); |
| 220 | 220 | |
| 221 | 221 | $this->maxTimeSlots = $maxTimeSlots; |
@@ -238,13 +238,13 @@ discard block |
||
| 238 | 238 | public function setMeetingsAvailability($meetingsAvailability) |
| 239 | 239 | { |
| 240 | 240 | $meetings = array_keys($meetingsAvailability); |
| 241 | - if(array_diff($meetings, $this->meetings)) |
|
| 241 | + if (array_diff($meetings, $this->meetings)) |
|
| 242 | 242 | throw new OptimiseException('meetings different from meetings set'); |
| 243 | - foreach($meetingsAvailability as $key=>$meetingsAvailabilityS) { |
|
| 243 | + foreach ($meetingsAvailability as $key=>$meetingsAvailabilityS) { |
|
| 244 | 244 | $timeSlots = array_keys($meetingsAvailabilityS); |
| 245 | - if(count($timeSlots) != $this->timeSlots) |
|
| 245 | + if (count($timeSlots) != $this->timeSlots) |
|
| 246 | 246 | throw new OptimiseException('timeSlots different from timeSlots set'); |
| 247 | - $meetingsAvailability[$key] = self::arrayPad($meetingsAvailabilityS, $this->timeSlots + $this->maxTimeSlots, 0); |
|
| 247 | + $meetingsAvailability[ $key ] = self::arrayPad($meetingsAvailabilityS, $this->timeSlots + $this->maxTimeSlots, 0); |
|
| 248 | 248 | } |
| 249 | 249 | |
| 250 | 250 | $this->meetingsAvailability = $meetingsAvailability; |
@@ -267,13 +267,13 @@ discard block |
||
| 267 | 267 | public function setMeetingsDuration($meetingsDuration) |
| 268 | 268 | { |
| 269 | 269 | $meetings = array_keys($meetingsDuration); |
| 270 | - if(array_diff($meetings, $this->meetings)) { |
|
| 270 | + if (array_diff($meetings, $this->meetings)) { |
|
| 271 | 271 | print ""; |
| 272 | 272 | throw new OptimiseException('meetings different from meetings set'); |
| 273 | 273 | } |
| 274 | - foreach($meetingsDuration as $duration) { |
|
| 274 | + foreach ($meetingsDuration as $duration) { |
|
| 275 | 275 | $duration = (int) $duration; //TODO fix this (fix for optimise) |
| 276 | - if(!is_int($duration) || $duration <=0) |
|
| 276 | + if (!is_int($duration) || $duration <= 0) |
|
| 277 | 277 | throw new OptimiseException('duration is not integer or it is not >0'); |
| 278 | 278 | } |
| 279 | 279 | |
@@ -297,14 +297,14 @@ discard block |
||
| 297 | 297 | public function setUsersAvailability($usersAvailability) |
| 298 | 298 | { |
| 299 | 299 | $users = array_keys($usersAvailability); |
| 300 | - if(array_diff($users, $this->users)) |
|
| 300 | + if (array_diff($users, $this->users)) |
|
| 301 | 301 | throw new OptimiseException('users different from users set'); |
| 302 | - foreach($usersAvailability as $key=>$usersAvailabilityS) { |
|
| 302 | + foreach ($usersAvailability as $key=>$usersAvailabilityS) { |
|
| 303 | 303 | $timeSlots = array_keys($usersAvailabilityS); |
| 304 | - if(count($timeSlots) != $this->timeSlots) |
|
| 304 | + if (count($timeSlots) != $this->timeSlots) |
|
| 305 | 305 | throw new OptimiseException('timeSlots different from timeSlots set'); |
| 306 | 306 | |
| 307 | - $usersAvailability[$key] = self::arrayPad($usersAvailabilityS, $this->timeSlots + $this->maxTimeSlots, 0); |
|
| 307 | + $usersAvailability[ $key ] = self::arrayPad($usersAvailabilityS, $this->timeSlots + $this->maxTimeSlots, 0); |
|
| 308 | 308 | } |
| 309 | 309 | |
| 310 | 310 | $this->usersAvailability = $usersAvailability; |
@@ -327,11 +327,11 @@ discard block |
||
| 327 | 327 | public function setUsersMeetings($usersMeetings) |
| 328 | 328 | { |
| 329 | 329 | $users = array_keys($usersMeetings); |
| 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($usersMeetings as $usersMeetingsS) { |
|
| 332 | + foreach ($usersMeetings as $usersMeetingsS) { |
|
| 333 | 333 | $meetings = array_keys($usersMeetingsS); |
| 334 | - if(array_diff($meetings, $this->meetings)) |
|
| 334 | + if (array_diff($meetings, $this->meetings)) |
|
| 335 | 335 | throw new OptimiseException('meetings different from meetings set'); |
| 336 | 336 | } |
| 337 | 337 | |
@@ -394,13 +394,13 @@ discard block |
||
| 394 | 394 | */ |
| 395 | 395 | static private function writeCSVArrayNoKey($file, $data) |
| 396 | 396 | { |
| 397 | - $f = function ($fp, $data){ |
|
| 397 | + $f = function($fp, $data) { |
|
| 398 | 398 | foreach ($data as $field) { |
| 399 | - fputcsv($fp, [$field]); |
|
| 399 | + fputcsv($fp, [ $field ]); |
|
| 400 | 400 | } |
| 401 | 401 | }; |
| 402 | 402 | |
| 403 | - self::writeCSV($file, $data, ['i'], $f); |
|
| 403 | + self::writeCSV($file, $data, [ 'i' ], $f); |
|
| 404 | 404 | } |
| 405 | 405 | |
| 406 | 406 | /** |
@@ -411,13 +411,13 @@ discard block |
||
| 411 | 411 | */ |
| 412 | 412 | static private function writeCSVArray($file, $data, $name) |
| 413 | 413 | { |
| 414 | - $f = function ($fp, $data){ |
|
| 414 | + $f = function($fp, $data) { |
|
| 415 | 415 | foreach ($data as $key=>$field) { |
| 416 | - fputcsv($fp, [$key, $field]); |
|
| 416 | + fputcsv($fp, [ $key, $field ]); |
|
| 417 | 417 | } |
| 418 | 418 | }; |
| 419 | 419 | |
| 420 | - self::writeCSV($file, $data, ['i', $name], $f); |
|
| 420 | + self::writeCSV($file, $data, [ 'i', $name ], $f); |
|
| 421 | 421 | } |
| 422 | 422 | |
| 423 | 423 | /** |
@@ -428,14 +428,14 @@ discard block |
||
| 428 | 428 | */ |
| 429 | 429 | static private function writeCSVMatrix($file, $data, $name) |
| 430 | 430 | { |
| 431 | - $f = function ($fp, $data){ |
|
| 431 | + $f = function($fp, $data) { |
|
| 432 | 432 | foreach ($data as $key=>$field) { |
| 433 | 433 | foreach ($field as $key2=>$field2) |
| 434 | - fputcsv($fp, [$key, $key2, $field2]); |
|
| 434 | + fputcsv($fp, [ $key, $key2, $field2 ]); |
|
| 435 | 435 | } |
| 436 | 436 | }; |
| 437 | 437 | |
| 438 | - self::writeCSV($file, $data, ['i', 'j', $name], $f); |
|
| 438 | + self::writeCSV($file, $data, [ 'i', 'j', $name ], $f); |
|
| 439 | 439 | } |
| 440 | 440 | |
| 441 | 441 | /** |
@@ -448,7 +448,7 @@ discard block |
||
| 448 | 448 | static private function writeCSV($file, $data, $heading, \Closure $writer) |
| 449 | 449 | { |
| 450 | 450 | $fp = @fopen($file, 'w'); |
| 451 | - if(!$fp) |
|
| 451 | + if (!$fp) |
|
| 452 | 452 | throw new OptimiseException('problem during creation of a file'); |
| 453 | 453 | |
| 454 | 454 | fputcsv($fp, $heading); |
@@ -468,8 +468,8 @@ discard block |
||
| 468 | 468 | { |
| 469 | 469 | $this->writeData(); |
| 470 | 470 | $this->writeModelFile(); |
| 471 | - $event = $this->schedule->exec('glpsol --math '.$this->path->getModelPath())->sendOutputTo($this->path->getOutputPath())->after(function () { }); //this just to execute in foreground |
|
| 472 | - if($event->isDue($this->laravel)) |
|
| 471 | + $event = $this->schedule->exec('glpsol --math '.$this->path->getModelPath())->sendOutputTo($this->path->getOutputPath())->after(function() { }); //this just to execute in foreground |
|
| 472 | + if ($event->isDue($this->laravel)) |
|
| 473 | 473 | $event->run($this->laravel); |
| 474 | 474 | //TODO catch glpsol errors |
| 475 | 475 | return $this; |
@@ -483,9 +483,9 @@ discard block |
||
| 483 | 483 | $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}'); |
| 484 | 484 | $strReplaceR = array($this->path->getUsersPath(), $this->path->getMeetingsPath(), $this->path->getUsersAvailabilityPath(), $this->path->getMeetingsAvailabilityPath(), $this->path->getUsersMeetingsPath(), $this->path->getMeetingsDurationPath(), $this->timeSlots, $this->maxTimeSlots, $this->path->getXPath(), $this->path->getYPath()); |
| 485 | 485 | $f = @fopen($this->path->getModelPath(), "w"); |
| 486 | - if(!$f) |
|
| 486 | + if (!$f) |
|
| 487 | 487 | throw new OptimiseException('problem during creation of a file'); |
| 488 | - fwrite($f, str_replace($strReplaceS, $strReplaceR, file_get_contents(__DIR__ . "/model.stub"))); |
|
| 488 | + fwrite($f, str_replace($strReplaceS, $strReplaceR, file_get_contents(__DIR__."/model.stub"))); |
|
| 489 | 489 | fclose($f); |
| 490 | 490 | } |
| 491 | 491 | |
@@ -513,7 +513,7 @@ discard block |
||
| 513 | 513 | */ |
| 514 | 514 | public function getOutput() |
| 515 | 515 | { |
| 516 | - if(!($data = file_get_contents($this->path->getOutputPath()))) |
|
| 516 | + if (!($data = file_get_contents($this->path->getOutputPath()))) |
|
| 517 | 517 | throw new OptimiseException('problems during reading the file'); |
| 518 | 518 | return $data; |
| 519 | 519 | } |
@@ -525,22 +525,22 @@ discard block |
||
| 525 | 525 | */ |
| 526 | 526 | static private function readCSVFile($file) |
| 527 | 527 | { |
| 528 | - if(!file_exists($file) || !filesize($file)) |
|
| 528 | + if (!file_exists($file) || !filesize($file)) |
|
| 529 | 529 | throw new OptimiseException('no results file'); |
| 530 | 530 | |
| 531 | - $handle = @fopen($file,"r"); |
|
| 532 | - if(!$handle) |
|
| 531 | + $handle = @fopen($file, "r"); |
|
| 532 | + if (!$handle) |
|
| 533 | 533 | throw new OptimiseException('problems during reading the file'); |
| 534 | 534 | |
| 535 | - $ret = []; |
|
| 535 | + $ret = [ ]; |
|
| 536 | 536 | fgetcsv($handle); //skip head |
| 537 | 537 | while (($data = fgetcsv($handle)) !== FALSE) { |
| 538 | - if(count($data) != 3) { |
|
| 538 | + if (count($data) != 3) { |
|
| 539 | 539 | fclose($handle); |
| 540 | 540 | throw new OptimiseException('problems during parsing the file'); |
| 541 | 541 | } |
| 542 | 542 | |
| 543 | - $ret[$data[0]][$data[1]] = $data[2]; |
|
| 543 | + $ret[ $data[ 0 ] ][ $data[ 1 ] ] = $data[ 2 ]; |
|
| 544 | 544 | } |
| 545 | 545 | |
| 546 | 546 | fclose($handle); |
@@ -567,8 +567,8 @@ discard block |
||
| 567 | 567 | */ |
| 568 | 568 | private function checkData() |
| 569 | 569 | { |
| 570 | - $this->checkArrayProprieties(['users', 'meetings', 'meetingsAvailability', 'meetingsDuration', 'usersAvailability', 'usersMeetings']); |
|
| 571 | - $this->checkIntProprieties(['timeSlots', 'maxTimeSlots']); |
|
| 570 | + $this->checkArrayProprieties([ 'users', 'meetings', 'meetingsAvailability', 'meetingsDuration', 'usersAvailability', 'usersMeetings' ]); |
|
| 571 | + $this->checkIntProprieties([ 'timeSlots', 'maxTimeSlots' ]); |
|
| 572 | 572 | } |
| 573 | 573 | |
| 574 | 574 | /** |
@@ -577,8 +577,8 @@ discard block |
||
| 577 | 577 | */ |
| 578 | 578 | private function checkArrayProprieties($proprieties) |
| 579 | 579 | { |
| 580 | - foreach($proprieties as $propriety) |
|
| 581 | - if(count($this->$propriety)==0) |
|
| 580 | + foreach ($proprieties as $propriety) |
|
| 581 | + if (count($this->$propriety) == 0) |
|
| 582 | 582 | throw new OptimiseException($propriety.' is not set correctly'); |
| 583 | 583 | } |
| 584 | 584 | |
@@ -588,8 +588,8 @@ discard block |
||
| 588 | 588 | */ |
| 589 | 589 | private function checkIntProprieties($proprieties) |
| 590 | 590 | { |
| 591 | - foreach($proprieties as $propriety) |
|
| 592 | - if(!is_int($this->$propriety) || $this->$propriety <= 0) |
|
| 591 | + foreach ($proprieties as $propriety) |
|
| 592 | + if (!is_int($this->$propriety) || $this->$propriety <= 0) |
|
| 593 | 593 | throw new OptimiseException($propriety.' is not set correctly'); |
| 594 | 594 | } |
| 595 | 595 | |
@@ -602,8 +602,8 @@ discard block |
||
| 602 | 602 | static private function arrayPad(array $array, $len, $pad) |
| 603 | 603 | { |
| 604 | 604 | $len = $len - count($array); |
| 605 | - for($i = 0; $i<$len; $i++) |
|
| 606 | - $array[] = $pad; |
|
| 605 | + for ($i = 0; $i < $len; $i++) |
|
| 606 | + $array[ ] = $pad; |
|
| 607 | 607 | return $array; |
| 608 | 608 | } |
| 609 | 609 | } |
| 610 | 610 | \ No newline at end of file |