diff --git a/src/Controller/APIController.php b/src/Controller/APIController.php index 67ee1db7..43c2bab5 100644 --- a/src/Controller/APIController.php +++ b/src/Controller/APIController.php @@ -1303,9 +1303,13 @@ class APIController extends Controller // TODO: check job order status, if it's cancellable $cancel_reason = $req->request->get('reason'); + + $jo->cancel($cancel_reason); + /* $jo->setStatus(JOStatus::CANCELLED) ->setDateCancel(new DateTime()) ->setCancelReason($cancel_reason); + */ $em->flush(); diff --git a/src/Controller/JobOrderController.php b/src/Controller/JobOrderController.php index 35ea2eab..8787432e 100644 --- a/src/Controller/JobOrderController.php +++ b/src/Controller/JobOrderController.php @@ -2133,6 +2133,7 @@ class JobOrderController extends BaseController if (empty($obj)) throw $this->createNotFoundException('The item does not exist'); + /* // cancel job order $obj->setStatus(JOStatus::CANCELLED) ->setDateCancel(new DateTime()) @@ -2142,6 +2143,9 @@ class JobOrderController extends BaseController $rider = $obj->getRider(); if ($rider != null) $rider->setAvailable(); + */ + + $obj->cancel($cancel_request); // the event $event = new JOEvent(); diff --git a/src/Controller/RAPIController.php b/src/Controller/RAPIController.php index ce1caf0b..229d5895 100644 --- a/src/Controller/RAPIController.php +++ b/src/Controller/RAPIController.php @@ -481,8 +481,7 @@ class RAPIController extends Controller if ($res->isError()) return $res->getReturnResponse(); - // TODO: refactor this into a jo handler class, so we don't have to repeat for control center - + /* // set jo status to cancelled // TODO: set reason $jo->setStatus(JOStatus::CANCELLED) @@ -490,6 +489,9 @@ class RAPIController extends Controller // make rider available $this->session->getRider()->setAvailable(true); + */ + + $jo->cancel("rider cancelled"); $em->flush(); diff --git a/src/Entity/JobOrder.php b/src/Entity/JobOrder.php index 1be9175b..02d8bdf6 100644 --- a/src/Entity/JobOrder.php +++ b/src/Entity/JobOrder.php @@ -653,4 +653,17 @@ class JobOrder { return $this->trade_in_type; } + + public function cancel($reason) + { + // set status to cancelled + $this->setStatus(JOStatus::CANCELLED) + ->setDateCancel(new DateTime()) + ->setCancelReason($reason); + + // set rider available + $rider = $obj->getRider(); + if ($rider != null) + $rider->setAvailable(); + } }