Add validation when submitting a one step job order. #270
This commit is contained in:
parent
b7b673fdaf
commit
ed2975e8d3
3 changed files with 87 additions and 11 deletions
|
|
@ -838,4 +838,30 @@ class JobOrderController extends Controller
|
|||
// response
|
||||
return $this->render($template, $params);
|
||||
}
|
||||
|
||||
public function oneStepSubmit(Request $req, JobOrderHandlerInterface $jo_handler)
|
||||
{
|
||||
$this->denyAccessUnlessGranted('jo_onestep.form', null, 'No access.');
|
||||
|
||||
// initialize error list
|
||||
$error_array = [];
|
||||
$id = -1;
|
||||
$error_array = $jo_handler->generateOneStepJobOrder($req, $id);
|
||||
|
||||
// check if any errors were found
|
||||
if (!empty($error_array)) {
|
||||
// return validation failure response
|
||||
return $this->json([
|
||||
'success' => false,
|
||||
'errors' => $error_array
|
||||
], 422);
|
||||
}
|
||||
|
||||
|
||||
// return successful response
|
||||
return $this->json([
|
||||
'success' => 'Changes have been saved!'
|
||||
]);
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1086,6 +1086,51 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
|
||||
}
|
||||
|
||||
public function generateOneStepJobOrder(Request $req, $id)
|
||||
{
|
||||
// initialize error list
|
||||
$error_array = [];
|
||||
|
||||
$em = $this->em;
|
||||
|
||||
$jo = $em->getRepository(JobOrder::class)->find($id);
|
||||
if (empty($jo))
|
||||
{
|
||||
// new job order
|
||||
$jo = new JobOrder();
|
||||
}
|
||||
|
||||
// check if lat and lng are provided
|
||||
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 customer vehicle is set
|
||||
if (empty($req->request->get('customer_vehicle'))) {
|
||||
$error_array['customer_vehicle'] = 'No vehicle selected.';
|
||||
} else {
|
||||
// get customer vehicle
|
||||
$cust_vehicle = $em->getRepository(CustomerVehicle::class)->find($req->request->get('customer_vehicle'));
|
||||
|
||||
if (empty($cust_vehicle)) {
|
||||
$error_array['customer_vehicle'] = 'Invalid vehicle specified.';
|
||||
}
|
||||
}
|
||||
|
||||
// check if hub AND rider is selected
|
||||
if ((empty($req->request->get('hub_id'))) &&
|
||||
(empty($req->request->get('rider_id')))) {
|
||||
$error_array['hub'] = 'No hub selected.';
|
||||
} else {
|
||||
if (empty($req->request->get('rider_id'))) {
|
||||
$error_array['rider'] = 'No rider selected.';
|
||||
}
|
||||
}
|
||||
|
||||
return $error_array;
|
||||
|
||||
}
|
||||
|
||||
|
||||
// initialize incoming job order form
|
||||
public function initializeIncomingForm()
|
||||
|
|
|
|||
|
|
@ -363,8 +363,9 @@
|
|||
</div>
|
||||
<div class="form-group m-form__group row">
|
||||
<div class="col-lg-12">
|
||||
<label>Click on a row to select a hub</label>
|
||||
<label name="hub" data-field="hub">Click on a row to select a hub</label>
|
||||
<div class="form-control-feedback hide" data-field="hub"></div>
|
||||
<input type="hidden" id="hub-field" name="hub_id" value="">
|
||||
<div class="table-frame" data-name="hub">
|
||||
<table id="hubs-table" class="table table-compact table-hover table-clickable m-table">
|
||||
<thead>
|
||||
|
|
@ -396,10 +397,11 @@
|
|||
</div>
|
||||
<div class="form-group m-form__group row">
|
||||
<div class="col-lg-12">
|
||||
<label>Click on a row to select a rider</label>
|
||||
<label name="rider" data-field="rider">Click on a row to select a rider</label>
|
||||
<div class="form-control-feedback hide" data-field="rider"></div>
|
||||
<input type="hidden" id="rider-field" name="rider_id" value="">
|
||||
<div class="table-frame" data-name="rider">
|
||||
<table id="riders-table" class="table table-compact table-hover table-clickable m-table">
|
||||
<table id="rider-table" class="table table-compact table-hover table-clickable m-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>First Name</th>
|
||||
|
|
@ -931,7 +933,7 @@ $(function() {
|
|||
});
|
||||
|
||||
$(function() {
|
||||
var selectedHub = "";
|
||||
var selected_hub = '';
|
||||
$('#hubs-table').on('click', 'tr', function() {
|
||||
var id = $(this).data('id');
|
||||
|
||||
|
|
@ -941,12 +943,14 @@ $(function() {
|
|||
$(this).addClass('m-table__row--primary');
|
||||
|
||||
// set hub
|
||||
selectedHub = id;
|
||||
selected_hub = id;
|
||||
$('#hub-field').val(selected_hub);
|
||||
|
||||
// get riders of hub
|
||||
// get hub riders ajax
|
||||
// get hub riders ajax
|
||||
// TODO: add latitude and longitude of delivery location to ajax request
|
||||
var rider_table = '';
|
||||
$.getJSON("{{ url('hub_riders') }}?id=" + selectedHub, function(data) {
|
||||
$.getJSON("{{ url('hub_riders') }}?id=" + selected_hub, function(data) {
|
||||
var riders = data['riders'];
|
||||
for (i in riders) {
|
||||
var rider = riders[i];
|
||||
|
|
@ -966,17 +970,18 @@ $(function() {
|
|||
});
|
||||
|
||||
$(function() {
|
||||
var selectedRider = "";
|
||||
$('#riders-table').on('click', 'tr', function() {
|
||||
var selected_rider = '';
|
||||
$('#rider-table').on('click', 'tr', function() {
|
||||
var id = $(this).data('id');
|
||||
|
||||
// highlight this row
|
||||
$('#riders-table').find('.m-table__row--primary').removeClass('m-table__row--primary');
|
||||
$('#rider-table').find('.m-table__row--primary').removeClass('m-table__row--primary');
|
||||
|
||||
$(this).addClass('m-table__row--primary');
|
||||
|
||||
// set rider
|
||||
selectedRider = id;
|
||||
selected_rider = id;
|
||||
$('#rider-field').val(selected_rider);
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue