From 918c06725ee9b85b41812f4d9ade7e7f23bd9998 Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Fri, 29 Oct 2021 05:51:12 +0000 Subject: [PATCH] Add call to get completed job orders. #632 --- config/routes/api.yaml | 4 +++ src/Controller/APIController.php | 43 ++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) diff --git a/config/routes/api.yaml b/config/routes/api.yaml index 5f38b6e4..32082547 100644 --- a/config/routes/api.yaml +++ b/config/routes/api.yaml @@ -211,3 +211,7 @@ api_cust_vehicle_remove: controller: App\Controller\APIController::removeVehicle methods: [POST] +api_completed_job_orders: + path: /api/job_orders/completed + controller: App\Controller\APIController::getCompletedJobOrders + methods: [GET] diff --git a/src/Controller/APIController.php b/src/Controller/APIController.php index 78659965..aab904ab 100644 --- a/src/Controller/APIController.php +++ b/src/Controller/APIController.php @@ -3776,6 +3776,49 @@ class APIController extends Controller implements LoggedController return $res->getReturnResponse(); } + public function getCompletedJobOrders(Request $req, EntityManagerInterface $em, RiderTracker $rt) + { + $required_params = []; + $res = $this->checkParamsAndKey($req, $em, $required_params); + if ($res->isError()) + return $res->getReturnResponse(); + + // get customer + $cust = $this->session->getCustomer(); + if ($cust == null) + { + $res->setError(true) + ->setErrorMessage('No customer information found'); + return $res->getReturnResponse(); + } + + $completed_jos = $this->getCompletedJOs($cust, $em); + + // initialize data + $jo_data = []; + foreach ($completed_jos as $jo) + { + $jo_data[] = $this->generateJobOrderData($req, $jo, $rt); + } + + $data = [ + 'completed_job_orders' => $jo_data, + ]; + + $res->setData($data); + + return $res->getReturnResponse(); + } + + protected function getCompletedJOs($cust, EntityManagerInterface $em) + { + $completed_jos = $em->getRepository(JobOrder::class)->findBy([ + 'customer' => $cust, + 'status' => [JOStatus::CANCELLED, JOStatus::FULFILLED], + ], ['date_schedule' => 'desc']); + + return $completed_jos; + } protected function updateWarranty($res, $em, $rt, $trans, $req, $serial, $inv_filename = null, $wcard_filename = null, $logger, $log_data, $user_id, $action, $source) {