Merge branch 'master-fix' of gitlab.com:jankstudio/resq into 591-migrate-apicontroller
This commit is contained in:
commit
46907d41ae
2 changed files with 118 additions and 0 deletions
|
|
@ -180,3 +180,8 @@ api_warr_serial_register:
|
|||
path: /api/warranty/{serial}
|
||||
controller: App\Controller\APIController::warrantyRegister
|
||||
methods: [POST]
|
||||
|
||||
api_jo_info:
|
||||
path: /api/job_order/{id}/info
|
||||
controller: App\Controller\APIController::getJobOrderInfo
|
||||
methods: [GET]
|
||||
|
|
|
|||
|
|
@ -1827,6 +1827,118 @@ class APIController extends Controller implements LoggedController
|
|||
return $res->getReturnResponse();
|
||||
}
|
||||
|
||||
// we can't use param converter for now because we want to output the proper 404
|
||||
public function getJobOrderInfo($id, Request $req, EntityManagerInterface $em)
|
||||
{
|
||||
// check required parameters and api key
|
||||
$res = $this->checkParamsAndKey($req, $em, []);
|
||||
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();
|
||||
}
|
||||
|
||||
// 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();
|
||||
}
|
||||
|
||||
// put into job order data array
|
||||
$jo_data = $this->generateJobOrderData($jo);
|
||||
|
||||
|
||||
$data = [
|
||||
'job_order' => $jo_data
|
||||
];
|
||||
$res->setData($data);
|
||||
|
||||
return $res->getReturnResponse();
|
||||
}
|
||||
|
||||
protected function generateJobOrderData($jo)
|
||||
{
|
||||
$status = $jo->getStatus();
|
||||
|
||||
$jo_data = [
|
||||
'id' => $jo->getID(),
|
||||
'date_create' => $jo->getDateCreate()->format('M d, Y'),
|
||||
'service_type' => $jo->getServiceType(),
|
||||
'status' => $status,
|
||||
];
|
||||
|
||||
// customer vehicle and warranty
|
||||
$cv = $jo->getCustomerVehicle();
|
||||
|
||||
// get latest warranty using plate number
|
||||
$warranty = $this->findWarranty($cv->getPlateNumber());
|
||||
|
||||
$jo_data['customer_vehicle'] = [
|
||||
'id' => $cv->getID(),
|
||||
'plate_number' => $cv->getPlateNumber(),
|
||||
'warranty' => $warranty,
|
||||
];
|
||||
|
||||
// rider
|
||||
$rider = $jo->getRider();
|
||||
if ($rider != null)
|
||||
{
|
||||
$jo_data['rider'] = $rider->getFullName();
|
||||
}
|
||||
|
||||
// invoice items
|
||||
$items = [];
|
||||
$jo_items = $jo->getInvoice()->getItems();
|
||||
foreach ($jo_items as $item)
|
||||
{
|
||||
$items[] = [
|
||||
'id' => $item->getID(),
|
||||
'title' => $item->getTitle(),
|
||||
'qty' => $item->getQuantity(),
|
||||
'price' => $item->getPrice(),
|
||||
];
|
||||
}
|
||||
|
||||
$jo_data['items'] = $items;
|
||||
|
||||
|
||||
// dates depending on status
|
||||
switch ($status)
|
||||
{
|
||||
case JOStatus::FULFILLED:
|
||||
if ($jo->getDateFulfill() == null)
|
||||
$jo_data['date_fulfilled'] = '';
|
||||
else
|
||||
$jo_data['date_fulfilled'] = $jo->getDateFulfill()->format('M d, Y');
|
||||
break;
|
||||
case JOStatus::CANCELLED:
|
||||
$date_cancel = $jo->getDateCancel();
|
||||
if ($date_cancel == null)
|
||||
$date_cancel = new DateTime();
|
||||
$jo_data['date_cancelled'] = $date_cancel->format('M d, Y');
|
||||
break;
|
||||
}
|
||||
|
||||
return $jo_data;
|
||||
}
|
||||
|
||||
public function getJOHistory(Request $req)
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
|
|
@ -1848,6 +1960,7 @@ class APIController extends Controller implements LoggedController
|
|||
$jos = $cust->getJobOrders();
|
||||
foreach ($jos as $jo)
|
||||
{
|
||||
// TODO: use generateJobOrderData method
|
||||
$status = $jo->getStatus();
|
||||
|
||||
$jo_data = [
|
||||
|
|
|
|||
Loading…
Reference in a new issue