From 60988583324cecccd52661fa5a5ea587f10591ad Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Wed, 1 Jun 2022 06:04:04 +0000 Subject: [PATCH 1/3] Fix issue of rider assignment not working after hub reassignment. #675 --- src/Service/JobOrderHandler/ResqJobOrderHandler.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/Service/JobOrderHandler/ResqJobOrderHandler.php b/src/Service/JobOrderHandler/ResqJobOrderHandler.php index 5079f3af..ba71c6f9 100644 --- a/src/Service/JobOrderHandler/ResqJobOrderHandler.php +++ b/src/Service/JobOrderHandler/ResqJobOrderHandler.php @@ -1356,6 +1356,9 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface // get previously assigned hub, if any $old_hub = $obj->getHub(); + // get previously assigned rider, if any + $old_rider = $obj->getRider(); + if (empty($error_array)) { // rider mqtt event @@ -1367,6 +1370,15 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface ]; $mclient->sendRiderEvent($obj, $rider_payload); + // need to unset first rider's current job order + $old_rider = $obj->getRider(); + if ($old_rider != null) + { + $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')); From c3ecf51468764c9d6cd162022df0e663ce0ca389 Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Wed, 1 Jun 2022 07:44:02 +0000 Subject: [PATCH 2/3] Add checking for current job order. #675 --- .../JobOrderHandler/ResqJobOrderHandler.php | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/Service/JobOrderHandler/ResqJobOrderHandler.php b/src/Service/JobOrderHandler/ResqJobOrderHandler.php index 928b609d..95f7d141 100644 --- a/src/Service/JobOrderHandler/ResqJobOrderHandler.php +++ b/src/Service/JobOrderHandler/ResqJobOrderHandler.php @@ -1398,9 +1398,12 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface $old_rider = $obj->getRider(); if ($old_rider != null) { - $old_rider->setCurrentJobOrder(); - // set available flag for first rider - $old_rider->setAvailable(true); + if ($old_rider->getCurrentJobOrder() != null) + { + $old_rider->setCurrentJobOrder(); + // set available flag for first rider + $old_rider->setAvailable(true); + } } // coordinates @@ -1657,9 +1660,12 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface $old_rider = $obj->getRider(); if ($old_rider != null) { - $old_rider->setCurrentJobOrder(); - // set available flag for first rider - $old_rider->setAvailable(true); + if ($old_rider->getCurrentJobOrder() != null) + { + $old_rider->setCurrentJobOrder(); + // set available flag for first rider + $old_rider->setAvailable(true); + } } // coordinates From e2bdf91f1cb79db00b4e87c376f3985d359f7138 Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Wed, 1 Jun 2022 08:01:39 +0000 Subject: [PATCH 3/3] Add checking for current job order that current jo is the selected jo. #675 --- src/Service/JobOrderHandler/ResqJobOrderHandler.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Service/JobOrderHandler/ResqJobOrderHandler.php b/src/Service/JobOrderHandler/ResqJobOrderHandler.php index 95f7d141..a186aaa6 100644 --- a/src/Service/JobOrderHandler/ResqJobOrderHandler.php +++ b/src/Service/JobOrderHandler/ResqJobOrderHandler.php @@ -1398,7 +1398,8 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface $old_rider = $obj->getRider(); if ($old_rider != null) { - if ($old_rider->getCurrentJobOrder() != null) + if (($old_rider->getCurrentJobOrder() != null) && + ($old_rider->getCurrentJobOrder()->getID() == $obj->getID())) { $old_rider->setCurrentJobOrder(); // set available flag for first rider @@ -1660,7 +1661,8 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface $old_rider = $obj->getRider(); if ($old_rider != null) { - if ($old_rider->getCurrentJobOrder() != null) + if (($old_rider->getCurrentJobOrder() != null) && + ($old_rider->getCurrentJobOrder()->getID() == $obj->getID())) { $old_rider->setCurrentJobOrder(); // set available flag for first rider