Fix dispatch, so cancelled job orders cannot be assigned to a hub #175

This commit is contained in:
Kendrick Chan 2019-01-28 02:44:05 +08:00
parent a0d611264d
commit 4b24454549
2 changed files with 29 additions and 6 deletions

View file

@ -956,24 +956,38 @@ class JobOrderController extends BaseController
if (empty($obj))
throw $this->createNotFoundException('The item does not exist');
// check if cancelled already
if (!$obj->canDispatch())
{
throw $this->createNotFoundException('Could not dispatch. Job Order is not pending.');
// TODO: have this handled better, so UI shows the error
// $error_array['dispatch'] = 'Could not dispatch. Job Order is not pending.';
}
// check if lat and lng are provided
if (empty($req->request->get('coord_lng')) || empty($req->request->get('coord_lat'))) {
if (empty($req->request->get('coord_lng')) || empty($req->request->get('coord_lat')))
{
$error_array['coordinates'] = 'No map coordinates provided. Please click on a location on the map.';
}
// check if hub is set
if (empty($req->request->get('hub'))) {
if (empty($req->request->get('hub')))
{
$error_array['hub'] = 'No hub selected.';
} else {
}
else
{
// get hub
$hub = $em->getRepository(Hub::class)->find($req->request->get('hub'));
if (empty($hub)) {
if (empty($hub))
{
$error_array['hub'] = 'Invalid hub specified.';
}
}
if (empty($error_array)) {
if (empty($error_array))
{
// coordinates
$point = new Point($req->request->get('coord_lng'), $req->request->get('coord_lat'));
@ -1001,7 +1015,8 @@ class JobOrderController extends BaseController
}
// check if any errors were found
if (!empty($error_array)) {
if (!empty($error_array))
{
// return validation failure response
return $this->json([
'success' => false,

View file

@ -726,4 +726,12 @@ class JobOrder
return $this->flag_coolant;
}
public function canDispatch()
{
if ($this->status == JOStatus::PENDING)
return true;
return false;
}
}