Add generate invoice API call. #420
This commit is contained in:
parent
1842898c11
commit
2ea0111b1e
3 changed files with 152 additions and 0 deletions
|
|
@ -74,3 +74,13 @@ cmb_rapi_active_jo_get:
|
||||||
path: /cmbrapi/activejoborders
|
path: /cmbrapi/activejoborders
|
||||||
controller: App\Controller\CMBRAPIController::viewActiveJobOrders
|
controller: App\Controller\CMBRAPIController::viewActiveJobOrders
|
||||||
methods: [GET]
|
methods: [GET]
|
||||||
|
|
||||||
|
cmb_rapi_jo_in_transit:
|
||||||
|
path: /cmbrapi/joborderintransit
|
||||||
|
controller: App\Controller\CMBRAPIController::setJobOrderInTransit
|
||||||
|
methods: [POST]
|
||||||
|
|
||||||
|
cmb_rapi_invoice_generate:
|
||||||
|
path: /cmbrapi/generateinvoice
|
||||||
|
controller: App\Controller\CMBRAPIController::generateInvoice
|
||||||
|
methods: [GET]
|
||||||
|
|
|
||||||
|
|
@ -346,5 +346,52 @@ class CMBRAPIController extends Controller
|
||||||
return $res->getReturnResponse();
|
return $res->getReturnResponse();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function setJobOrderInTransit(Request $req, RiderAPIHandlerInterface $rapi_handler)
|
||||||
|
{
|
||||||
|
$res = new APIResult();
|
||||||
|
|
||||||
|
$data = $rapi_handler->setJobOrderInTransit($req);
|
||||||
|
|
||||||
|
if (isset($data['error']))
|
||||||
|
{
|
||||||
|
$message = $data['error'];
|
||||||
|
|
||||||
|
$res->setError(true)
|
||||||
|
->setErrorMessage($message);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$res->setData($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
// response
|
||||||
|
return $res->getReturnResponse();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function generateInvoice(Request $req, RiderAPIHandlerInterface $rapi_handler)
|
||||||
|
{
|
||||||
|
$res = new APIResult();
|
||||||
|
|
||||||
|
$data = $rapi_handler->generateInvoice($req);
|
||||||
|
|
||||||
|
if (isset($data['error']))
|
||||||
|
{
|
||||||
|
$message = $data['error'];
|
||||||
|
|
||||||
|
$res->setError(true)
|
||||||
|
->setErrorMessage($message);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$res->setData($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
// response
|
||||||
|
return $res->getReturnResponse();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -268,6 +268,7 @@ class CMBRiderAPIHandler implements RiderAPIHandlerInterface
|
||||||
// setup start date and end dates
|
// setup start date and end dates
|
||||||
// get current year
|
// get current year
|
||||||
$month = $req->query->get('month');
|
$month = $req->query->get('month');
|
||||||
|
$year = $req->query->get('year');
|
||||||
|
|
||||||
$current_date = new DateTime();
|
$current_date = new DateTime();
|
||||||
$current_year = $current_date->format('Y');
|
$current_year = $current_date->format('Y');
|
||||||
|
|
@ -678,6 +679,35 @@ class CMBRiderAPIHandler implements RiderAPIHandlerInterface
|
||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function setJobOrderInTransit(Request $req)
|
||||||
|
{
|
||||||
|
$required_params = ['jo_id'];
|
||||||
|
$data = $this->checkJO($req, $required_params, $jo);
|
||||||
|
if (isset($data['error']))
|
||||||
|
return $data;
|
||||||
|
|
||||||
|
// TODO: it's the same status as acceptJobOrder
|
||||||
|
// do we add a new JOStatus?
|
||||||
|
// set jo status to in transit
|
||||||
|
$jo->setStatus(JOStatus::IN_TRANSIT);
|
||||||
|
|
||||||
|
// TODO: send mqtt event (?)
|
||||||
|
|
||||||
|
// add event log
|
||||||
|
$rider = $this->session->getRider();
|
||||||
|
$event = new JOEvent();
|
||||||
|
$event->setDateHappen(new DateTime())
|
||||||
|
->setTypeID(JOEventType::RIDER_ACCEPT)
|
||||||
|
->setJobOrder($jo)
|
||||||
|
->setRider($rider);
|
||||||
|
$this->em->persist($event);
|
||||||
|
|
||||||
|
$this->em->flush();
|
||||||
|
|
||||||
|
return $data;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public function cancelJobOrder(Request $req)
|
public function cancelJobOrder(Request $req)
|
||||||
{
|
{
|
||||||
$required_params = ['jo_id'];
|
$required_params = ['jo_id'];
|
||||||
|
|
@ -1089,6 +1119,71 @@ class CMBRiderAPIHandler implements RiderAPIHandlerInterface
|
||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function generateInvoice(Request $req)
|
||||||
|
{
|
||||||
|
$required_params = ['jo_id'];
|
||||||
|
$data = $this->checkJO($req, $required_params, $jo);
|
||||||
|
if (isset($data['error']))
|
||||||
|
return $data;
|
||||||
|
|
||||||
|
$inv = $jo->getInvoice();
|
||||||
|
$promo = $inv->getPromo();
|
||||||
|
|
||||||
|
// invoice items
|
||||||
|
$inv_items = [];
|
||||||
|
foreach ($inv->getItems() as $item)
|
||||||
|
{
|
||||||
|
$item_batt = $item->getBattery();
|
||||||
|
if ($item_batt == null)
|
||||||
|
$batt_id = null;
|
||||||
|
else
|
||||||
|
$batt_id = $item_batt->getID();
|
||||||
|
|
||||||
|
$inv_items[] = [
|
||||||
|
'id' => $item->getID(),
|
||||||
|
'title' => $item->getTitle(),
|
||||||
|
'qty' => $item->getQuantity(),
|
||||||
|
'price' => $item->getPrice(),
|
||||||
|
'batt_id' => $batt_id,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
// promo
|
||||||
|
if ($promo != null)
|
||||||
|
{
|
||||||
|
$promo_data = [
|
||||||
|
'id' => $promo->getID(),
|
||||||
|
'name' => $promo->getName(),
|
||||||
|
'code' => $promo->getCode(),
|
||||||
|
'discount_rate' => $promo->getDiscountRate(),
|
||||||
|
'discount_apply' => $promo->getDiscountApply(),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$promo_data = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
$trade_in_type = $jo->getTradeInType();
|
||||||
|
if (empty($trade_in_type))
|
||||||
|
$trade_in_type = 'none';
|
||||||
|
|
||||||
|
$data = [
|
||||||
|
'invoice' => [
|
||||||
|
'id' => $inv->getID(),
|
||||||
|
'discount' => $inv->getDiscount(),
|
||||||
|
'trade_in' => $inv->getTradeIn(),
|
||||||
|
'total_price' => $inv->getTotalPrice(),
|
||||||
|
'vat' => $inv->getVat(),
|
||||||
|
'items' => $inv_items,
|
||||||
|
'trade_in_type' => $trade_in_type,
|
||||||
|
'promo' => $promo_data,
|
||||||
|
]
|
||||||
|
];
|
||||||
|
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
|
||||||
protected function checkMissingParameters(Request $req, $params = [])
|
protected function checkMissingParameters(Request $req, $params = [])
|
||||||
{
|
{
|
||||||
$missing = [];
|
$missing = [];
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue