From 940329de2827ff85348ffdd5b41f4ea813e25d26 Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Mon, 23 Aug 2021 08:51:12 +0000 Subject: [PATCH] Set rider's current job order and availability status when reassigning job order. #617 --- src/Controller/APIController.php | 8 +++++++- .../JobOrderHandler/ResqJobOrderHandler.php | 16 ++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/Controller/APIController.php b/src/Controller/APIController.php index 6c080a6d..caea00c3 100644 --- a/src/Controller/APIController.php +++ b/src/Controller/APIController.php @@ -1062,6 +1062,7 @@ class APIController extends Controller implements LoggedController // find nearest hubs $nearest_hubs = $hub_select->find($hub_criteria); + $assigned_rider = null; if (!empty($nearest_hubs)) { // go through the hub list, find the nearest hub @@ -1072,7 +1073,6 @@ class APIController extends Controller implements LoggedController $available_riders = $nearest_hub['hub']->getAvailableRiders(); if (count($available_riders) >= 1) { - $assigned_rider = null; if (count($available_riders) == 1) { $assigned_rider = $available_riders[0]; @@ -1098,6 +1098,9 @@ class APIController extends Controller implements LoggedController $assigned_rider->setAvailable(false); + // set rider's current job order + $assigned_rider->setCurrentJobOrder($jo); + // update redis hub_jo_count for hub $hub_dist->incrementJoCountForHub($nearest_hub['hub']); @@ -2952,6 +2955,9 @@ class APIController extends Controller implements LoggedController $assigned_rider->setAvailable(false); + // set rider's current job order + $assigned_rider->setCurrentJobOrder($jo); + // update redis hub_jo_count for hub $hub_dist->incrementJoCountForHub($nearest_hub['hub']); diff --git a/src/Service/JobOrderHandler/ResqJobOrderHandler.php b/src/Service/JobOrderHandler/ResqJobOrderHandler.php index 3909a23d..4a98b490 100644 --- a/src/Service/JobOrderHandler/ResqJobOrderHandler.php +++ b/src/Service/JobOrderHandler/ResqJobOrderHandler.php @@ -955,6 +955,9 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface // set rider unavailable // $rider->setAvailable(false); + // set rider's current job order + $rider->setCurrentJobOrder($obj); + // the event $event = new JOEvent(); $event->setDateHappen(new DateTime()) @@ -1470,6 +1473,13 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface ]; $mclient->sendRiderEvent($obj, $rider_payload); + // need to unset first rider's current job order + $old_rider = $obj->getRider(); + $old_rider->setCurrentJobOrder(); + + // set available flag for first rider + $old_rider->setAvailable(true); + // coordinates $point = new Point($req->request->get('coord_lng'), $req->request->get('coord_lat')); @@ -1512,6 +1522,12 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface // check if any errors were found if (empty($error_array)) { + // set new rider's current job order + $rider->setCurrentJobOrder($obj); + + // set new rider's availability to false + $rider->setAvailable(false); + // add event $event = new JOEvent(); $event->setDateHappen(new DateTime())