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)) if (empty($obj))
throw $this->createNotFoundException('The item does not exist'); 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 // 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.'; $error_array['coordinates'] = 'No map coordinates provided. Please click on a location on the map.';
} }
// check if hub is set // check if hub is set
if (empty($req->request->get('hub'))) { if (empty($req->request->get('hub')))
{
$error_array['hub'] = 'No hub selected.'; $error_array['hub'] = 'No hub selected.';
} else { }
else
{
// get hub // get hub
$hub = $em->getRepository(Hub::class)->find($req->request->get('hub')); $hub = $em->getRepository(Hub::class)->find($req->request->get('hub'));
if (empty($hub)) { if (empty($hub))
{
$error_array['hub'] = 'Invalid hub specified.'; $error_array['hub'] = 'Invalid hub specified.';
} }
} }
if (empty($error_array)) { if (empty($error_array))
{
// coordinates // coordinates
$point = new Point($req->request->get('coord_lng'), $req->request->get('coord_lat')); $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 // check if any errors were found
if (!empty($error_array)) { if (!empty($error_array))
{
// return validation failure response // return validation failure response
return $this->json([ return $this->json([
'success' => false, 'success' => false,

View file

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