Add landmark to response for latest jo. #632
This commit is contained in:
parent
1030b1934e
commit
ca21fcd5c9
1 changed files with 99 additions and 1 deletions
|
|
@ -3827,7 +3827,7 @@ class APIController extends Controller implements LoggedController
|
|||
if ($latest_jo != null)
|
||||
{
|
||||
// TODO: clean the response up to just return what is needed
|
||||
$jo_data = $this->generateJobOrderData($req, $latest_jo, $rt);
|
||||
$jo_data = $this->generateLatestJobOrderData($req, $latest_jo, $rt);
|
||||
}
|
||||
|
||||
$data = [
|
||||
|
|
@ -4486,4 +4486,102 @@ class APIController extends Controller implements LoggedController
|
|||
|
||||
return $time_selected;
|
||||
}
|
||||
|
||||
protected function generateLatestJobOrderData($req, $jo, $rt)
|
||||
{
|
||||
$status = $jo->getStatus();
|
||||
|
||||
$dest = $jo->getCoordinates();
|
||||
|
||||
$jo_data = [
|
||||
'id' => $jo->getID(),
|
||||
'date_create' => $jo->getDateCreate()->format('M d, Y'),
|
||||
'service_type' => $jo->getServiceType(),
|
||||
'destination' => [
|
||||
'long' => $dest->getLongitude(),
|
||||
'lat' => $dest->getLatitude(),
|
||||
],
|
||||
'delivery_address' => $jo->getDeliveryAddress(),
|
||||
'delivery_instructions' => $jo->getDeliveryInstructions(),
|
||||
'jo_status' => $status,
|
||||
'status' => $this->generateAPIRiderStatus($status),
|
||||
'landmark' => $jo->getLandmark(),
|
||||
];
|
||||
|
||||
// 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)
|
||||
{
|
||||
// default image url
|
||||
$url_prefix = $req->getSchemeAndHttpHost();
|
||||
$image_url = $url_prefix . '/assets/images/user.gif';
|
||||
if ($rider->getImageFile() != null)
|
||||
$image_url = $url_prefix . '/uploads/' . $rider->getImageFile();
|
||||
|
||||
$coord = $rt->getRiderLocation($rider->getID());
|
||||
|
||||
$jo_data['rider'] = [
|
||||
'id' => $rider->getID(),
|
||||
'name' => $rider->getFullName(),
|
||||
'plate_num' => $rider->getPlateNumber(),
|
||||
'contact_num' => $rider->getContactNumber(),
|
||||
'image_url' => $image_url,
|
||||
'location' => [
|
||||
'long' => $coord->getLongitude(),
|
||||
'lat' => $coord->getLatitude()
|
||||
]
|
||||
];
|
||||
}
|
||||
else
|
||||
{
|
||||
$jo_data['rider'] = null;
|
||||
}
|
||||
|
||||
// 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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue