Add completeJobOrder and setActiveJobOrder API calls. #421
This commit is contained in:
parent
79b19a61f6
commit
0e69eb4943
4 changed files with 135 additions and 2 deletions
|
|
@ -100,4 +100,12 @@ cmb_rapi_jo_start:
|
||||||
controller: App\Controller\CMBRAPIController::startJobOrder
|
controller: App\Controller\CMBRAPIController::startJobOrder
|
||||||
methods: [POST]
|
methods: [POST]
|
||||||
|
|
||||||
|
cmb_rapi_jo_complete:
|
||||||
|
path: /cmbrapi/jobordercomplete
|
||||||
|
controller: App\Controller\CMBRAPIController::completeJobOrder
|
||||||
|
methods: [POST]
|
||||||
|
|
||||||
|
cmb_rapi_jo_set_active:
|
||||||
|
path: /cmbrapi/joborderactive
|
||||||
|
controller: App\Controller\CMBRAPIController::setActiveJobOrder
|
||||||
|
methods: [POST]
|
||||||
|
|
|
||||||
|
|
@ -459,5 +459,49 @@ class CMBRAPIController extends Controller
|
||||||
return $res->getReturnResponse();
|
return $res->getReturnResponse();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function completeJobOrder(Request $req, RiderAPIHandlerInterface $rapi_handler)
|
||||||
|
{
|
||||||
|
$res = new APIResult();
|
||||||
|
|
||||||
|
$data = $rapi_handler->completeJobOrder($req);
|
||||||
|
|
||||||
|
if (isset($data['error']))
|
||||||
|
{
|
||||||
|
$message = $data['error'];
|
||||||
|
|
||||||
|
$res->setError(true)
|
||||||
|
->setErrorMessage($message);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$res->setData($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
// response
|
||||||
|
return $res->getReturnResponse();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setActiveJobOrder(Request $req, RiderAPIHandlerInterface $rapi_handler)
|
||||||
|
{
|
||||||
|
$res = new APIResult();
|
||||||
|
|
||||||
|
$data = $rapi_handler->setActiveJobOrder($req);
|
||||||
|
|
||||||
|
if (isset($data['error']))
|
||||||
|
{
|
||||||
|
$message = $data['error'];
|
||||||
|
|
||||||
|
$res->setError(true)
|
||||||
|
->setErrorMessage($message);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$res->setData($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
// response
|
||||||
|
return $res->getReturnResponse();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,8 @@ class CMBJOEventType extends NameValue
|
||||||
const RIDER_ACCEPT = 'accept';
|
const RIDER_ACCEPT = 'accept';
|
||||||
const RIDER_IN_TRANSIT = 'rider_in_transit';
|
const RIDER_IN_TRANSIT = 'rider_in_transit';
|
||||||
const RIDER_ARRIVE = 'arrive';
|
const RIDER_ARRIVE = 'arrive';
|
||||||
const RIDER_START = 'rider_start';
|
const RIDER_START = 'rider_start';
|
||||||
|
const RIDER_COMPLETE = 'rider_complete';
|
||||||
const RIDER_EDIT = 'rider_edit';
|
const RIDER_EDIT = 'rider_edit';
|
||||||
|
|
||||||
const COLLECTION = [
|
const COLLECTION = [
|
||||||
|
|
@ -28,7 +29,8 @@ class CMBJOEventType extends NameValue
|
||||||
'accept' => 'Rider Accept',
|
'accept' => 'Rider Accept',
|
||||||
'rider_in_transit' => 'Rider in Transit',
|
'rider_in_transit' => 'Rider in Transit',
|
||||||
'arrive' => 'Rider Arrive',
|
'arrive' => 'Rider Arrive',
|
||||||
'start' => 'Rider Start',
|
'rider_start' => 'Rider Start',
|
||||||
|
'rider_complete' => 'Rider Complete',
|
||||||
'rider_edit' => 'Rider Edit',
|
'rider_edit' => 'Rider Edit',
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1276,6 +1276,85 @@ class CMBRiderAPIHandler implements RiderAPIHandlerInterface
|
||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function completeJobOrder(Request $req)
|
||||||
|
{
|
||||||
|
$required_params = ['jo_id'];
|
||||||
|
$data = $this->checkJO($req, $required_params, $jo);
|
||||||
|
if (isset($data['error']))
|
||||||
|
return $data;
|
||||||
|
|
||||||
|
// add event log
|
||||||
|
$rider = $this->session->getRider();
|
||||||
|
$event = new JOEvent();
|
||||||
|
$event->setDateHappen(new DateTime())
|
||||||
|
->setTypeID(CMBJOEventType::RIDER_COMPLETE)
|
||||||
|
->setJobOrder($jo)
|
||||||
|
->setRider($rider);
|
||||||
|
$this->em->persist($event);
|
||||||
|
|
||||||
|
$this->em->flush();
|
||||||
|
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setActiveJobOrder(Request $req)
|
||||||
|
{
|
||||||
|
$required_params = [
|
||||||
|
'jo_id'
|
||||||
|
];
|
||||||
|
$data = $this->checkParamsAndKey($req, $required_params);
|
||||||
|
if (isset($data['error']))
|
||||||
|
return $data;
|
||||||
|
|
||||||
|
// are we logged in?
|
||||||
|
if (!$this->session->hasRider())
|
||||||
|
{
|
||||||
|
$data = [
|
||||||
|
'error' => 'No logged in rider.'
|
||||||
|
];
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
|
||||||
|
$rider = $this->session->getRider();
|
||||||
|
|
||||||
|
// get jo
|
||||||
|
$jo_id = $req->request->get('jo_id');
|
||||||
|
|
||||||
|
$jo = $this->em->getRepository(JobOrder::class)->find($jo_id);
|
||||||
|
if ($jo == null)
|
||||||
|
{
|
||||||
|
$data = [
|
||||||
|
'job_order' => null
|
||||||
|
];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if ($jo->getRider() == null)
|
||||||
|
{
|
||||||
|
$data = [
|
||||||
|
'error' => 'Job order selected has no rider assigned.'
|
||||||
|
];
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
|
||||||
|
// check if rider is assigned to JO
|
||||||
|
if ($rider->getID() != $jo->getRider()->getID())
|
||||||
|
{
|
||||||
|
$data = [
|
||||||
|
'error' => 'Job order selected is not assigned to rider.'
|
||||||
|
];
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
|
||||||
|
$rider->setActiveJobOrder($jo);
|
||||||
|
|
||||||
|
$this->em->persist($rider);
|
||||||
|
$this->em->flush();
|
||||||
|
}
|
||||||
|
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
|
||||||
protected function checkMissingParameters(Request $req, $params = [])
|
protected function checkMissingParameters(Request $req, $params = [])
|
||||||
{
|
{
|
||||||
$missing = [];
|
$missing = [];
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue