diff --git a/config/routes/tapi.yaml b/config/routes/tapi.yaml index 34d45650..59ec7a80 100644 --- a/config/routes/tapi.yaml +++ b/config/routes/tapi.yaml @@ -21,6 +21,11 @@ tapi_jo_cancel: controller: App\Controller\TAPI\JobOrderController:cancelJobOrder methods: [POST] +tapi_jo_info: + path: /tapi/job_order/{id}/info + controller: App\Controller\TAPI\JobOrderController::getJobOrderInfo + methods: [GET] + # vehicle manufacturer and vehicle tapi_vehicle_mfg_list: path: /tapi/vehicle/mfgs diff --git a/src/Controller/TAPI/JobOrderController.php b/src/Controller/TAPI/JobOrderController.php index 5b625b5d..b5c9418c 100644 --- a/src/Controller/TAPI/JobOrderController.php +++ b/src/Controller/TAPI/JobOrderController.php @@ -53,6 +53,7 @@ use App\Entity\Hub; use App\Entity\Invoice; use App\Entity\Vehicle; use App\Entity\VehicleManufacturer; +use App\Entity\Warranty; use DateTime; use DateInterval; @@ -575,47 +576,29 @@ class JobOrderController extends APIController { $this->denyAccessUnlessGranted('tapi_jo.get.info', null, 'No access.'); - // check required parameters and api key - $res = $this->checkParamsAndKey($req, $em, []); - if ($res->isError()) - return $res->getReturnResponse(); - - // get customer - // TODO: modify to get customer - $cust = $this->session->getCustomer(); - if ($cust == null) - { - $res->setError(true) - ->setErrorMessage('No customer information found'); - return $res->getReturnResponse(); - } + // check required parameters + $required_params = []; + $msg = $this->checkRequiredParameters($req, $required_params); + if ($msg) + return new APIResponse(false, $msg); // get job order data $jo = $em->getRepository(JobOrder::class)->find($id); if ($jo == null) { - $res->setError(true) - ->setErrorMessage('No job order information found'); - return $res->getReturnResponse(); - } - - // check if job order belongs to customer / user - if ($cust->getID() != $jo->getCustomer()->getID()) - { - $res->setError(true) - ->setErrorMessage('No job order information found'); - return $res->getReturnResponse(); + $message = 'No job order information found'; + return new APIResponse(false, $message); } // put into job order data array - $jo_data = $this->generateJobOrderData($req, $jo, $rt); + $jo_data = $this->generateJobOrderData($req, $jo, $rt, $em); $data = [ 'job_order' => $jo_data ]; - $res->setData($data); - return $res->getReturnResponse(); + $message = 'Job order information found.'; + return new APIResponse(true, $message, $data); } public function getJOHistory(Request $req, EntityManagerInterface $em) @@ -930,7 +913,7 @@ class JobOrderController extends APIController return $res->getReturnResponse(); } - protected function generateJobOrderData($req, $jo, $rt) + protected function generateJobOrderData($req, $jo, $rt, $em) { $status = $jo->getStatus(); @@ -1864,6 +1847,22 @@ class JobOrderController extends APIController return $dummy_cv; } + protected function generateAPIRiderStatus($status) + { + switch ($status) + { + case JOStatus::PENDING: + return APIRiderStatus::OUTLET_ASSIGN; + case JOStatus::RIDER_ASSIGN: + return APIRiderStatus::RIDER_ASSIGN; + case JOStatus::ASSIGNED: + case JOStatus::IN_TRANSIT: + case JOStatus::IN_PROGRESS: + return APIRiderStatus::RIDER_PICK_UP; + } + return 'unknown'; + } + protected function cleanPhoneNumber($mobile) { // remove any non digit character from string