diff --git a/src/Controller/APIController.php b/src/Controller/APIController.php index 651c4ab9..5ef19fba 100644 --- a/src/Controller/APIController.php +++ b/src/Controller/APIController.php @@ -3035,26 +3035,11 @@ class APIController extends Controller implements LoggedController '16_17' => '4:00 PM', ]; - // check each JO's date_schedule, decrement rider_slots if date schedule falls in that slot - // index - equivalent time - // 0 - 8-9 - // 1 - 9-10 - // 2 - 10-11 - // 3 - 11-12 - // 4 - 12 -13 - // 5 - 13-14 - // 6 - 14-15 - // 7 - 15-16 - // 8 - 16-17 // get the dates for the next three days $first_date = $start_date->format('Y-m-d'); - - // 2nd day $second_date = $start_date->add(new DateInterval('P1D')); $sec_date = $second_date->format('Y-m-d'); - - // third day $third_date = $end_date->format('Y-m-d'); // define days @@ -3077,6 +3062,7 @@ class APIController extends Controller implements LoggedController // array of # of riders that can handle JOs in a timeslot $hub_rider_slots = []; + // check each JO's date_schedule, decrement rider_slots if date schedule falls in that slot foreach ($jos_advance_order as $jo) { // get date key @@ -3089,80 +3075,10 @@ class APIController extends Controller implements LoggedController $hub_rider_slots[$date_string][$slot_id]--; } + error_log(print_r($hub_rider_slots, true)); + $hub_slots = $this->generateHubSlots($hub_rider_slots, $slots); - /* - // populate the array with the hub's rider slots per day - for ($i = 0; $i <= self::RIDER_SLOT_ARRAY_LENGTH; $i++) - { - $hub_rider_slots[$first_date][$i] = $hub->getRiderSlots(); - } - for ($i = 0; $i <= self::RIDER_SLOT_ARRAY_LENGTH; $i++) - { - $hub_rider_slots[$sec_date][$i] = $hub->getRiderSlots(); - } - for ($i = 0; $i <= self::RIDER_SLOT_ARRAY_LENGTH; $i++) - { - $hub_rider_slots[$third_date][$i] = $hub->getRiderSlots(); - } - */ - - /* - // no advance orders - if (empty($jos_advance_orders)) - { - // set hub slots for the next three days - $slot_status = true; - - $hub_slots[$first_date] = $this->setAllHubSlots($slot_status); - $hub_slots[$sec_date] = $this->setAllHubSlots($slot_status); - $hub_slots[$third_date] = $this->setAllHubSlots($slot_status); - } - else - { - foreach ($jos_advance_orders as $advance_jo) - { - // get date schedules of JO - $jo_date_schedule = $advance_jo->getDateSchedule(); - - $date_schedule = $jo_date_schedule->format('Y-m-d'); - $time_schedule = $jo_date_schedule->format('H:i'); - - $hour_schedule = $jo_date_schedule->format('H'); - $minute_schedule = $jo_date_schedule->format('i'); - - // check which of the three dates does date schedule fall - // and if date is already in hub slots - if (($first_date == $date_schedule) && - (!isset($hub_slots[$first_date]))) - $hub_slots[$first_date] = []; - - if (($sec_date == $date_schedule) && - (!isset($hub_slots[$sec_date]))) - $hub_slots[$sec_date] = []; - - if (($third_date == $date_schedule) && - (!isset($hub_slots[$third_date]))) - $hub_slots[$third_date] = []; - - // decrement number of hub rider slots then - // set hub slots - if ($date_schedule == $first_date) - $this->decrementRiderSlots($hub_rider_slots, $first_date, $hour_schedule, $minute_schedule); - - if ($date_schedule == $sec_date) - $this->decrementRiderSlots($hub_rider_slots, $sec_date, $hour_schedule, $minute_schedule); - - if ($date_schedule == $third_date) - $this->decrementRiderSlots($hub_rider_slots, $third_date, $hour_schedule, $minute_schedule); - - $hub_slots[$first_date] = $this->setHubSlots($hub_rider_slots, $first_date); - $hub_slots[$sec_date] = $this->setHubSlots($hub_rider_slots, $sec_date); - $hub_slots[$third_date] = $this->setHubSlots($hub_rider_slots, $third_date); - } - } - */ - return $hub_slots; } @@ -3193,296 +3109,6 @@ class APIController extends Controller implements LoggedController return $data; } - protected function setAllHubSlots($status) - { - $data = []; - - // set all slots to true - $data = [ - [ - 'id' => '08_09', - 'label' => '8:00 AM', - 'available' => $status, - ], - [ - 'id' => '09_10', - 'label' => '9:00 AM', - 'available' => $status, - ], - [ - 'id' => '10_11', - 'label' => '10:00 AM', - 'available' => $status, - ], - [ - 'id' =>'11_12', - 'label' => '11:00 AM', - 'available' => $status, - ], - [ - 'id' => '12_13', - 'label' => '12:00 PM', - 'available' => $status, - ], - [ - 'id' => '13_14', - 'label' => '1:00 PM', - 'available' => $status, - ], - [ - 'id' => '14_15', - 'label' => '2:00 PM', - 'available' => $status, - ], - [ - 'id' => '15_16', - 'label' => '3:00 PM', - 'available' => $status, - ], - [ - 'id' => '16_17', - 'label' => '4:00 PM', - 'available' => $status, - ], - ]; - - return $data; - } - - protected function setHubSlots($hub_rider_slots, $schedule_date) - { - $data = []; - // check values of hub_rider_slot to mark if available or not - for ($i = 0; $i <= self::RIDER_SLOT_ARRAY_LENGTH; $i++) - { - if ($hub_rider_slots[$schedule_date][$i] > 0) - { - // set the time label - switch($i) { - case '0': - $data[] = [ - 'id' => '08_09', - 'label' => '8:00 AM', - 'available' => true, - ]; - break; - case '1': - $data[] = [ - 'id' => '09_10', - 'label' => '9:00 AM', - 'available' => true, - ]; - break; - case '2': - $data[] = [ - 'id' => '10_11', - 'label' => '10:00 AM', - 'available' => true, - ]; - break; - case '3': - $data[] = [ - 'id' => '11_12', - 'label' => '11:00 AM', - 'available' => true, - ]; - break; - case '4': - $data[] = [ - 'id' => '12_13', - 'label' => '12:00 PM', - 'available' => true, - ]; - break; - case '5': - $data[] = [ - 'id' => '13_14', - 'label' => '1:00 PM', - 'available' => true, - ]; - break; - case '6': - $data[] = [ - 'id' => '14_15', - 'label' => '2:00 PM', - 'available' => true, - ]; - break; - case '7': - $data[] = [ - 'id' => '15_16', - 'label' => '3:00 PM', - 'available' => true, - ]; - break; - case '8': - $data[] = [ - 'id' => '16_17', - 'label' => '4:00 PM', - 'available' => true, - ]; - break; - default: - error_log('Invalid rider slot index.'); - } - } - else - { - // set the time label - switch($i) { - case '0': - $data[] = [ - 'id' => '08_09', - 'label' => '8:00 AM', - 'available' => false, - ]; - break; - case '1': - $data[] = [ - 'id' => '09_10', - 'label' => '9:00 AM', - 'available' => false, - ]; - break; - case '2': - $data[] = [ - 'id' => '10_11', - 'label' => '10:00 AM', - 'available' => false, - ]; - break; - case '3': - $data[] = [ - 'id' => '11_12', - 'label' => '11:00 AM', - 'available' => false, - ]; - break; - case '4': - $data[] = [ - 'id' => '12_13', - 'label' => '12:00 PM', - 'available' => false, - ]; - break; - case '5': - $data[] = [ - 'id' => '13_14', - 'label' => '1:00 PM', - 'available' => false, - ]; - break; - case '6': - $data[] = [ - 'id' => '14_15', - 'label' => '2:00 PM', - 'available' => false, - ]; - break; - case '7': - $data[] = [ - 'id' => '15_16', - 'label' => '3:00 PM', - 'available' => false, - ]; - break; - case '8': - $data[] = [ - 'id' => '16_17', - 'label' => '4:00 PM', - 'available' => false, - ]; - break; - default: - error_log('Invalid rider slot index.'); - } - } - } - - return $data; - - } - - protected function decrementRiderSlots(&$hub_rider_slots, $date_schedule, $hour_schedule, $minute_schedule) - { - if ($minute_schedule != '00') - { - switch($hour_schedule) { - case '8': - $hub_rider_slots[$date_schedule][0]--; - $hub_rider_slots[$date_schedule][1]--; - break; - case '9': - $hub_rider_slots[$date_schedule][1]--; - $hub_rider_slots[$date_schedule][2]--; - break; - case '10': - $hub_rider_slots[$date_schedule][2]--; - $hub_rider_slots[$date_schedule][3]--; - break; - case '11': - $hub_rider_slots[$date_schedule][3]--; - $hub_rider_slots[$date_schedule][4]--; - break; - case '12': - $hub_rider_slots[$date_schedule][4]--; - $hub_rider_slots[$date_schedule][5]--; - break; - case '13': - $hub_rider_slots[$date_schedule][5]--; - $hub_rider_slots[$date_schedule][6]--; - break; - case '14': - $hub_rider_slots[$date_schedule][6]--; - $hub_rider_slots[$date_schedule][7]--; - break; - case '15': - $hub_rider_slots[$date_schedule][7]--; - $hub_rider_slots[$date_schedule][8]--; - break; - case '16': - error_log('No slots for the day'); - break; - default: - error_log('Does not fit in any time slot. ' . $time_schedule); - } - } - else - { - switch ($hour_schedule) { - case '8': - $hub_rider_slots[$date_schedule][0]--; - break; - case '9': - $hub_rider_slots[$date_schedule][1]--; - break; - case '10': - $hub_rider_slots[$date_schedule][2]--; - break; - case '11': - $hub_rider_slots[$date_schedule][3]--; - break; - case '12': - $hub_rider_slots[$date_schedule][4]--; - break; - case '13': - $hub_rider_slots[$date_schedule][5]--; - break; - case '14': - $hub_rider_slots[$date_schedule][6]--; - break; - case '15': - $hub_rider_slots[$date_schedule][7]--; - break; - case '16': - $hub_rider_slots[$date_schedule][8]--; - break; - default: - error_log('Does not fit in any time slot.' . $time_schedule); - } - } - } - protected function getTimeFromSlot($slot_id) { $time_selected = '';