Fixed form for onestep when JO is loaded from View All. #347

This commit is contained in:
Korina Cordero 2020-02-19 06:29:31 +00:00
parent 1374a91dd4
commit 5ab6514a86
2 changed files with 122 additions and 72 deletions

View file

@ -1517,7 +1517,7 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface
{
$em = $this->em;
$params['mode'] = 'update-all';
$params['mode'] = 'view-all';
// get row data
$obj = $em->getRepository(JobOrder::class)->find($id);

View file

@ -389,14 +389,20 @@
<div class="m-form__section">
<div class="m-form__heading">
<h3 class="m-form__heading-title">
Nearest Hubs
{% if mode == 'view-all' %}
Assigned Hub
{% else %}
Nearest Hubs
{% endif %}
</h3>
</div>
<div class="form-group m-form__group row">
<div class="col-lg-12">
<label name="hub" data-field="hub">Click on a row to select a hub
<span style="color:red"> *</span>
</label>
{% if mode != 'view-all' %}
<label name="hub" data-field="hub">Click on a row to select a hub
<span style="color:red"> *</span>
</label>
{% endif %}
<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">
@ -430,14 +436,20 @@
<div class="m-form__section">
<div class="m-form__heading">
<h3 class="m-form__heading-title">
Rider Assignment
{% if mode == 'view-all' %}
Assigned Rider
{% else %}
Rider Assignment
{% endif %}
</h3>
</div>
<div class="form-group m-form__group row">
<div class="col-lg-12">
<label name="rider" data-field="rider">Click on a row to select a rider
<span style="color:red"> *</span>
</label>
{% if mode != 'view-all' %}
<label name="rider" data-field="rider">Click on a row to select a rider
<span style="color:red"> *</span>
</label>
{% endif %}
<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">
@ -452,7 +464,7 @@
</tr>
</thead>
<tbody id="riders">
{% if mode in ['onestep-edit'] %}
{% if mode in ['onestep-edit', 'view-all'] %}
{% set avail_riders = obj.getHub.getAvailableRiders|default([]) %}
<tr class="placeholder-row{{ obj.getHub and avail_riders|length > 0 ? ' hide' }}">
<td colspan="5">
@ -462,7 +474,11 @@
{% if obj.getHub %}
{% for rider in avail_riders %}
<tr data-id="{{ rider.getID }}"{{ obj.getRider and obj.getRider.getID == rider.getID ? ' class="m-table__row--primary"' }}">
{% if mode == 'view-all' %}
<tr data-id="{{ rider.getID }}"{{ obj.getRider and obj.getRider.getID == rider.getID ? ' ' }}">
{% else %}
<tr data-id="{{ rider.getID }}"{{ obj.getRider and obj.getRider.getID == rider.getID ? ' class="m-table__row--primary"' }}">
{% endif %}
<td>{{ rider.getFirstName }}</td>
<td>{{ rider.getLastName }}</td>
<td>{{ rider.getContactNumber }}</td>
@ -485,11 +501,13 @@
</h3>
</div>
<div class="row m-form__group">
<div class="col-lg-12">
<button class="btn btn-primary" id="btn-sc-add">Add Service Charge</button>
</div>
{% if mode != 'view-all' %}
<div class="col-lg-12">
<button class="btn btn-primary" id="btn-sc-add">Add Service Charge</button>
</div>
{% endif %}
</div>
<!-- TODO: loop through existing service charges for job order -->
<!-- loop through existing service charges for job order -->
{% for jo_sc_key, jo_sc in obj.getMeta('service_charges')|default([]) %}
<div class="form-group m-form__group row">
<div class="col-lg-6">
@ -634,9 +652,11 @@
<div class="m-form__actions m-form__actions--solid m-form__actions--right">
<div class="row">
<div class="col-lg-12">
<button type="submit" class="btn btn-success">Submit</button>
{% if ftags.set_map_coordinate and is_granted('joborder.cancel') and not obj.isCancelled %}
<a href="{{ url('jo_cancel', {'id': obj.getID}) }}" class="btn btn-danger btn-cancel-job-order">Cancel Job Order</a>
{% if mode != 'view-all' %}
<button type="submit" class="btn btn-success">Submit</button>
{% if ftags.set_map_coordinate and is_granted('joborder.cancel') and not obj.isCancelled %}
<a href="{{ url('jo_cancel', {'id': obj.getID}) }}" class="btn btn-danger btn-cancel-job-order">Cancel Job Order</a>
{% endif %}
{% endif %}
<a href="{{ return_url }}" class="btn btn-secondary">Back</a>
</div>
@ -781,6 +801,32 @@ $(function() {
});
{% endif %}
{% if mode in ['view-all'] %}
var hub_table = '';
$.getJSON("{{ url('hub_nearest') }}?lat=" + lat + "&long=" + lng, function(data) {
var hubs = data['hubs'];
var hub_marker;
for (i in hubs) {
var hub = hubs[i];
if(selected_hub == hub['id']) {
hub_table += '<tr data-id=' + hub['id'] + ' ' + '>';
hub_marker = L.marker([hub['lat'], hub['long']], { icon: icon_hub });
hubLayerGroup.addLayer(hub_marker);
hub_table += '<td>' + hub['name'] + '</td>';
hub_table += '<td>' + hub['branch'] + '</td>';
hub_table += '<td>' + hub['cnum'] + '</td>';
hub_table += '<td>' + hub['distance'] + '</td>';
hub_table += '<td></td>';
hub_table += '</tr>';
}
}
$('#nearest_hubs').html(hub_table);
});
{% endif %}
// add marker to layer group
markerLayerGroup.addLayer(marker);
@ -844,76 +890,80 @@ $(function() {
});
$(function() {
$('#hubs-table').on('click', 'tr', function() {
var id = $(this).data('id');
{% if mode != 'view-all' %}
$('#hubs-table').on('click', 'tr', function() {
var id = $(this).data('id');
riderLayerGroup.clearLayers();
riderLayerGroup.clearLayers();
if (id != selected_hub) {
if (id != selected_hub) {
// highlight this row
$('#hubs-table').find('.m-table__row--primary').removeClass('m-table__row--primary');
// highlight this row
$('#hubs-table').find('.m-table__row--primary').removeClass('m-table__row--primary');
$(this).addClass('m-table__row--primary');
$(this).addClass('m-table__row--primary');
// set hub
selected_hub = id;
$('#hub-field').val(selected_hub);
// set hub
selected_hub = id;
$('#hub-field').val(selected_hub);
// clear rider field
$('#rider-field').val('');
selected_rider = '';
// clear rider field
$('#rider-field').val('');
selected_rider = '';
// get riders of hub
// get hub riders ajax
// TODO: add latitude and longitude of delivery location to ajax request
var rider_table = '';
$.getJSON("{{ url('hub_riders') }}?id=" + selected_hub, function(data) {
var riders = data['riders'];
for (i in riders) {
var rider = riders[i];
var rider_lat = rider['location'][0];
var rider_lng = rider['location'][1];
var rider_marker = L.marker([rider_lat, rider_lng], { icon: icon_rider_available });
riderLayerGroup.addLayer(rider_marker);
// get riders of hub
// get hub riders ajax
// TODO: add latitude and longitude of delivery location to ajax request
var rider_table = '';
$.getJSON("{{ url('hub_riders') }}?id=" + selected_hub, function(data) {
var riders = data['riders'];
for (i in riders) {
var rider = riders[i];
var rider_lat = rider['location'][0];
var rider_lng = rider['location'][1];
var rider_marker = L.marker([rider_lat, rider_lng], { icon: icon_rider_available });
riderLayerGroup.addLayer(rider_marker);
rider_table += '<tr data-id=' + rider['id'] + '>';
rider_table += '<td>' + rider['first_name'] + '</td>';
rider_table += '<td>' + rider['last_name'] + '</td>';
rider_table += '<td>' + rider['contact_num'] + '</td>';
rider_table += '<td>' + rider['plate_num'] + '</td>';
rider_table += '<td></td>';
rider_table += '</tr>';
}
rider_table += '<tr data-id=' + rider['id'] + '>';
rider_table += '<td>' + rider['first_name'] + '</td>';
rider_table += '<td>' + rider['last_name'] + '</td>';
rider_table += '<td>' + rider['contact_num'] + '</td>';
rider_table += '<td>' + rider['plate_num'] + '</td>';
rider_table += '<td></td>';
rider_table += '</tr>';
}
$('#riders').html(rider_table);
});
} else {
// unhighlight this row
$(this).removeClass('m-table__row--primary');
// remove id value
selected_hub = '';
}
});
$('#riders').html(rider_table);
});
} else {
// unhighlight this row
$(this).removeClass('m-table__row--primary');
// remove id value
selected_hub = '';
}
});
{% endif %}
});
$(function() {
$('#rider-table').on('click', 'tr', function() {
var id = $(this).data('id');
{% if mode != 'view-all' %}
$('#rider-table').on('click', 'tr', function() {
var id = $(this).data('id');
// highlight this row
$('#rider-table').find('.m-table__row--primary').removeClass('m-table__row--primary');
// highlight this row
$('#rider-table').find('.m-table__row--primary').removeClass('m-table__row--primary');
$(this).addClass('m-table__row--primary');
$(this).addClass('m-table__row--primary');
// set rider
selected_rider = id;
$('#rider-field').val(selected_rider);
});
// set rider
selected_rider = id;
$('#rider-field').val(selected_rider);
});
{% endif %}
});
{% if mode in ['onestep-edit'] %}
{% if mode in ['onestep-edit', 'view-all'] %}
var lat = {{ obj.getCoordinates.getLatitude }};
var lng = {{ obj.getCoordinates.getLongitude }};
@ -1307,7 +1357,7 @@ $(function() {
var sc_array = [];
// populate invoiceItems if editing so that we don't lose the battery
{% if mode in ['open-edit', 'onestep-edit', 'walk-in-edit'] %}
{% if mode in ['view-all', 'open-edit', 'onestep-edit', 'walk-in-edit'] %}
{% if (obj.getInvoice and obj.getInvoice.getItems|length > 0) %}
{% for item in obj.getInvoice.getItems %}
{% if item.getBattery() %}