From ac7e26498b92948691e8ce85d009bf4f5aaa4e0f Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Mon, 9 Aug 2021 07:29:39 +0000 Subject: [PATCH 1/5] Set default value for HubCriteria's date_time field. Set date_time to JO's date schedule when loading dispatch form. Include checking of hub's opening and closing hours when emergency. #611 --- src/Ramcar/HubCriteria.php | 2 +- src/Service/HubSelector.php | 17 +++++++++++------ .../JobOrderHandler/ResqJobOrderHandler.php | 4 +++- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/src/Ramcar/HubCriteria.php b/src/Ramcar/HubCriteria.php index 61ffcbaa..5a663551 100644 --- a/src/Ramcar/HubCriteria.php +++ b/src/Ramcar/HubCriteria.php @@ -27,7 +27,7 @@ class HubCriteria $this->limit_results = 10; $this->limit_distance = 500; $this->jo_type = ''; - $this->date_time = null; + $this->date_time = new DateTime(); $this->flag_inventory_check = false; $this->items = []; $this->payment_method = ''; diff --git a/src/Service/HubSelector.php b/src/Service/HubSelector.php index ac84b82d..826a45d2 100644 --- a/src/Service/HubSelector.php +++ b/src/Service/HubSelector.php @@ -65,14 +65,14 @@ class HubSelector error_log('closest hubs ' . json_encode($filtered_hubs)); + // filter the first hub results for date and opening times + $hubs_date_time = $this->filterHubsByDateAndTime($filtered_hubs, $date_time, $jo_id, $customer_id); + $filtered_hubs = $hubs_date_time; + + error_log('date_time hubs ' . json_encode($filtered_hubs)); + if (!$flag_emergency) { - // filter the first hub results for date and opening times - $hubs_date_time = $this->filterHubsByDateAndTime($filtered_hubs, $date_time, $jo_id, $customer_id); - $filtered_hubs = $hubs_date_time; - - //error_log('date_time hubs ' . json_encode($filtered_hubs)); - // filter jo types $hubs_jo_type = $this->filterHubsByJoType($filtered_hubs, $jo_type, $jo_id, $customer_id); $filtered_hubs = $hubs_jo_type; @@ -167,6 +167,7 @@ class HubSelector 'db_distance' => $hub_data['db_distance'], 'distance' => $hub_data['distance'], 'duration' => $hub_data['duration'], + 'jo_count' => 0, ]; else $this->hub_filter_logger->logFilteredHub($hub, 'job_order_type', $jo_id, $customer_id); @@ -201,6 +202,7 @@ class HubSelector 'db_distance' => $hub_data['db_distance'], 'distance' => $hub_data['distance'], 'duration' => $hub_data['duration'], + 'jo_count' => 0, ]; } $flag_found_pmethod = true; @@ -248,6 +250,7 @@ class HubSelector 'db_distance' => $hub_data['db_distance'], 'distance' => $hub_data['distance'], 'duration' => $hub_data['duration'], + 'jo_count' => 0, ]; } else @@ -282,6 +285,7 @@ class HubSelector 'db_distance' => $hub_data['db_distance'], 'distance' => $hub_data['distance'], 'duration' => $hub_data['duration'], + 'jo_count' => 0, ]; else { @@ -309,6 +313,7 @@ class HubSelector 'db_distance' => $hub_data['db_distance'], 'distance' => $hub_data['distance'], 'duration' => $hub_data['duration'], + 'jo_count' => 0, ]; else { diff --git a/src/Service/JobOrderHandler/ResqJobOrderHandler.php b/src/Service/JobOrderHandler/ResqJobOrderHandler.php index eacf6195..82261c4d 100644 --- a/src/Service/JobOrderHandler/ResqJobOrderHandler.php +++ b/src/Service/JobOrderHandler/ResqJobOrderHandler.php @@ -2024,8 +2024,9 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface $long = $obj->getCoordinates()->getLongitude(); $lat = $obj->getCoordinates()->getLatitude(); - // set result limit and location + // set result limit and location and date_time $hub_criteria->setPoint($obj->getCoordinates()) + ->setDateTime($obj->getDateSchedule()) ->setLimitResults(50); // check if hub filter is enabled. If not, use default values @@ -2343,6 +2344,7 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface $lat = $obj->getCoordinates()->getLatitude(); $hub_criteria->setPoint($obj->getCoordinates()) + ->setDateTime($obj->getDateSchedule()) ->setLimitResults(50); if ($this->hub_geofence->isCovered($long, $lat)) From 0738149a5b9892ead011519e99f362f2821f6baf Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Mon, 9 Aug 2021 08:21:25 +0000 Subject: [PATCH 2/5] Set date_schedule for HubCriteria when creating a JO from mobile app. #611 --- src/Controller/APIController.php | 34 +++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/src/Controller/APIController.php b/src/Controller/APIController.php index c0f23ea8..d0941b3c 100644 --- a/src/Controller/APIController.php +++ b/src/Controller/APIController.php @@ -2653,6 +2653,20 @@ class APIController extends Controller implements LoggedController $schedule_date = $req->request->get('date_schedule'); $slot_id = $req->request->get('slot_id'); + + // process the jo date schedule so we can include it in HubCriteria + $date_schedule = null; + if ((strlen($schedule_date) > 0) && (strlen($slot_id) > 0)) + { + $time_schedule = $this->getTimeFromSlot($slot_id); + if (!empty($time_schedule)) + { + $s_date = $schedule_date . ' ' . $time_schedule; + $date_schedule = DateTime::createFromFormat('Y-m-d H:i', $s_date); + //error_log($date_schedule->format('Y-m-d H:i')); + } + } + $advance_order = $req->request->get('flag_advance_order'); // check for 'false' text if ($advance_order === false || $advance_order === 0 || $advance_order === '0' || $advance_order == 'false') @@ -2795,6 +2809,14 @@ class APIController extends Controller implements LoggedController $hub_criteria = new HubCriteria(); $hub_criteria->setPoint($jo->getCoordinates()); + // check if date_schedule is null aka not an advanced order + // no need to set to current date since current date and time is the default + if ($date_schedule != null) + { + // set to date schedule received + $hub_criteria->setDateTime($date_schedule); + } + // get distance limit for mobile from env // get value of hub_filter_enable from env $dotenv = new Dotenv(); @@ -2921,18 +2943,6 @@ class APIController extends Controller implements LoggedController } else { - $date_schedule = null; - if ((strlen($schedule_date) > 0) && (strlen($slot_id) > 0)) - { - $time_schedule = $this->getTimeFromSlot($slot_id); - if (!empty($time_schedule)) - { - $s_date = $schedule_date . ' ' . $time_schedule; - $date_schedule = DateTime::createFromFormat('Y-m-d H:i', $s_date); - //error_log($date_schedule->format('Y-m-d H:i')); - } - } - $jo->setHub($hub); $jo->setStatus(JOStatus::RIDER_ASSIGN); $jo->setStatusAutoAssign(AutoAssignStatus::HUB_ASSIGNED); From d645040f10333899f565695c2599864d245e8fdb Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Tue, 10 Aug 2021 04:20:56 +0000 Subject: [PATCH 3/5] Add logging for hub. #611 --- src/Controller/APIController.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Controller/APIController.php b/src/Controller/APIController.php index d0941b3c..2a6350e1 100644 --- a/src/Controller/APIController.php +++ b/src/Controller/APIController.php @@ -269,7 +269,7 @@ class APIController extends Controller implements LoggedController $otp_mode = $_ENV['OTP_MODE']; // check for hardcoded phone number for app store testing - if ($phone_number == '639991112233') + if ($phone_number == '639221111111') { $code = '123456'; $this->session->setConfirmCode($code) @@ -2813,7 +2813,8 @@ class APIController extends Controller implements LoggedController // no need to set to current date since current date and time is the default if ($date_schedule != null) { - // set to date schedule received + // set to date schedule received + error_log('date time set for hub criteria'); $hub_criteria->setDateTime($date_schedule); } From 5d98df83ed626950058338c06d34ae6c8e99acac Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Tue, 10 Aug 2021 05:31:49 +0000 Subject: [PATCH 4/5] Remove unnecessary code. #611 --- src/Controller/APIController.php | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/src/Controller/APIController.php b/src/Controller/APIController.php index 2a6350e1..a38e2c28 100644 --- a/src/Controller/APIController.php +++ b/src/Controller/APIController.php @@ -2654,7 +2654,7 @@ class APIController extends Controller implements LoggedController $schedule_date = $req->request->get('date_schedule'); $slot_id = $req->request->get('slot_id'); - // process the jo date schedule so we can include it in HubCriteria + // process the jo date schedule $date_schedule = null; if ((strlen($schedule_date) > 0) && (strlen($slot_id) > 0)) { @@ -2663,7 +2663,7 @@ class APIController extends Controller implements LoggedController { $s_date = $schedule_date . ' ' . $time_schedule; $date_schedule = DateTime::createFromFormat('Y-m-d H:i', $s_date); - //error_log($date_schedule->format('Y-m-d H:i')); + // error_log($date_schedule->format('Y-m-d H:i')); } } @@ -2809,15 +2809,6 @@ class APIController extends Controller implements LoggedController $hub_criteria = new HubCriteria(); $hub_criteria->setPoint($jo->getCoordinates()); - // check if date_schedule is null aka not an advanced order - // no need to set to current date since current date and time is the default - if ($date_schedule != null) - { - // set to date schedule received - error_log('date time set for hub criteria'); - $hub_criteria->setDateTime($date_schedule); - } - // get distance limit for mobile from env // get value of hub_filter_enable from env $dotenv = new Dotenv(); From 18852941a73f18c89e4bd903d69d4a5f71300410 Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Tue, 10 Aug 2021 05:59:00 +0000 Subject: [PATCH 5/5] Comment out log messages . #611 --- src/Controller/APIController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Controller/APIController.php b/src/Controller/APIController.php index a38e2c28..707e57b1 100644 --- a/src/Controller/APIController.php +++ b/src/Controller/APIController.php @@ -2912,7 +2912,7 @@ class APIController extends Controller implements LoggedController { // TODO: log hub as cannot be auto rider assigned somewhere // assign hub - error_log('Rider cannot be auto assigned ' . $nearest_hub['hub']->getID()); + // error_log('Rider cannot be auto assigned ' . $nearest_hub['hub']->getID()); $jo->setHub($nearest_hub['hub']); $jo->setStatus(JOStatus::RIDER_ASSIGN); $jo->setStatusAutoAssign(AutoAssignStatus::HUB_ASSIGNED);