diff --git a/src/Service/JobOrderHandler/CMBJobOrderHandler.php b/src/Service/JobOrderHandler/CMBJobOrderHandler.php index eae38cc8..79c8311c 100644 --- a/src/Service/JobOrderHandler/CMBJobOrderHandler.php +++ b/src/Service/JobOrderHandler/CMBJobOrderHandler.php @@ -1113,11 +1113,11 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface // cancel job order public function cancelJobOrder(Request $req, int $id, MQTTClient $mclient) { - // get object data + // get jo data $em = $this->em; $obj = $em->getRepository(JobOrder::class)->find($id); - // make sure this object exists + // make sure this exists if (empty($obj)) throw new NotFoundHttpException('The item does not exist'); @@ -1127,7 +1127,11 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface // get assigned rider. If not null, clear rider's active JO $rider = $obj->getRider(); if ($rider != null) - $rider->setActiveJobOrder(); + { + $active_jo = $rider->getActiveJobOrder(); + if ($active_jo != null && $active_jo->getID() == $obj->getID()) + $rider->setActiveJobOrder(null); + } // the event $event = new JOEvent(); @@ -1154,7 +1158,7 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface 'event' => 'cancelled', 'reason' => $cancel_reason, 'jo_id' => $obj->getID(), - 'msg' => 'Job order has been cancelled.', + 'msg' => 'Job order #' . $obj->getID() . ' has been cancelled.', ]; /* $mclient->sendEvent($obj, $payload); diff --git a/src/Service/RiderAPIHandler/CMBRiderAPIHandler.php b/src/Service/RiderAPIHandler/CMBRiderAPIHandler.php index 661898cd..72c6f949 100644 --- a/src/Service/RiderAPIHandler/CMBRiderAPIHandler.php +++ b/src/Service/RiderAPIHandler/CMBRiderAPIHandler.php @@ -1077,7 +1077,12 @@ class CMBRiderAPIHandler implements RiderAPIHandlerInterface // add event log $rider = $this->session->getRider(); - $rider->setActiveJobOrder(null); + if ($rider != null) + { + $active_jo = $rider->getActiveJobOrder(); + if ($active_jo != null && $active_jo->getID() == $jo->getID()) + $rider->setActiveJobOrder(null); + } $event = new JOEvent(); $event->setDateHappen(new DateTime()) @@ -1160,7 +1165,7 @@ class CMBRiderAPIHandler implements RiderAPIHandlerInterface $this->em->persist($event); // set rider's active JO to null - $rider->setActiveJobOrder(null); + // $rider->setActiveJobOrder(null); $this->em->flush(); @@ -1682,7 +1687,13 @@ class CMBRiderAPIHandler implements RiderAPIHandlerInterface $rider = $this->session->getRider(); // clear rider's active JO - $rider->setActiveJobOrder(null); + if ($rider != null) + { + $active_jo = $rider->getActiveJobOrder(); + if ($active_jo != null && $active_jo->getID() == $jo->getID()) + $rider->setActiveJobOrder(null); + } + $event = new JOEvent(); $event->setDateHappen(new DateTime())