Merge branch '347-cmb-fix-jo-form-display-when-loading-jo-from-view-all' into '270-final-cmb-fixes'
Resolve "CMB - fix JO form display when loading JO from View All" See merge request jankstudio/resq!393
This commit is contained in:
commit
ffa25d6c79
3 changed files with 159 additions and 92 deletions
|
|
@ -1392,7 +1392,7 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface
|
|||
$this->fillFormTags($params);
|
||||
|
||||
// get template to display
|
||||
$params['template'] = $this->getTwigTemplate('jo_onestep');
|
||||
$params['template'] = $this->getTwigTemplate('jo_onestep_form');
|
||||
|
||||
// return params
|
||||
return $params;
|
||||
|
|
@ -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);
|
||||
|
|
@ -1529,8 +1529,12 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface
|
|||
$this->fillDropdownParameters($params);
|
||||
$this->fillFormTags($params);
|
||||
|
||||
// get template to display
|
||||
$params['template'] = $this->getTwigTemplate('jo_all_form');
|
||||
// get template to display
|
||||
// check transaction origin if walkin
|
||||
if ($obj->getSource() == TransactionOrigin::WALK_IN)
|
||||
$params['template'] = $this->getTwigTemplate('jo_walkin_form');
|
||||
else
|
||||
$params['template'] = $this->getTwigTemplate('jo_onestep_form');
|
||||
|
||||
$params['obj'] = $obj;
|
||||
$params['status_cancelled'] = JOStatus::CANCELLED;
|
||||
|
|
@ -2381,7 +2385,7 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface
|
|||
$this->fillFormTags($params);
|
||||
|
||||
// get template to display
|
||||
$params['template'] = $this->getTwigTemplate('jo_walkin');
|
||||
$params['template'] = $this->getTwigTemplate('jo_walkin_form');
|
||||
|
||||
// return params
|
||||
return $params;
|
||||
|
|
@ -2667,7 +2671,7 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface
|
|||
$this->fillFormTags($params);
|
||||
|
||||
// get template to display
|
||||
$params['template'] = $this->getTwigTemplate('jo_walkin_edit');
|
||||
$params['template'] = $this->getTwigTemplate('jo_walkin_edit_form');
|
||||
|
||||
// return params
|
||||
return $params;
|
||||
|
|
@ -2789,10 +2793,10 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface
|
|||
$this->template_hash['jo_list_fulfillment'] = 'job-order/list.fulfillment.html.twig';
|
||||
$this->template_hash['jo_list_open'] = 'job-order/list.open.html.twig';
|
||||
$this->template_hash['jo_list_all'] = 'job-order/list.all.html.twig';
|
||||
$this->template_hash['jo_onestep'] = 'job-order/cmb.form.onestep.html.twig';
|
||||
$this->template_hash['jo_onestep_form'] = 'job-order/cmb.form.onestep.html.twig';
|
||||
$this->template_hash['jo_onestep_edit_form'] = 'job-order/cmb.form.onestep.html.twig';
|
||||
$this->template_hash['jo_walkin'] = 'job-order/cmb.form.walkin.html.twig';
|
||||
$this->template_hash['jo_walkin_edit'] = 'job-order/cmb.form.walkin.html.twig';
|
||||
$this->template_hash['jo_walkin_form'] = 'job-order/cmb.form.walkin.html.twig';
|
||||
$this->template_hash['jo_walkin_edit_form'] = 'job-order/cmb.form.walkin.html.twig';
|
||||
}
|
||||
|
||||
protected function checkTier($tier)
|
||||
|
|
|
|||
|
|
@ -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() %}
|
||||
|
|
|
|||
|
|
@ -341,9 +341,11 @@
|
|||
</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">
|
||||
|
|
@ -358,14 +360,23 @@
|
|||
</tr>
|
||||
</thead>
|
||||
<tbody id="nearest_hubs">
|
||||
{% for hub in hubs %}
|
||||
<tr data-id="{{ hub.getID }}"{{ obj.getHub and obj.getHub.getID == hub.getID ? ' class="m-table__row--primary"' }}>
|
||||
<td>{{ hub.getName }}</td>
|
||||
<td>{{ hub.getBranch }}</td>
|
||||
<td>{{ hub.getContactNumbers }}</td>
|
||||
{% if mode == 'view-all' %}
|
||||
<tr data-id="{{ obj.getHub.getID }}"{{ obj.getHub.getID }}>
|
||||
<td>{{ obj.getHub.getName }}</td>
|
||||
<td>{{ obj.getHub.getBranch }}</td>
|
||||
<td>{{ obj.getHub.getContactNumbers }}</td>
|
||||
<td></span></td>
|
||||
<td></td>
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
{% for hub in hubs %}
|
||||
<tr data-id="{{ hub.getID }}"{{ obj.getHub and obj.getHub.getID == hub.getID ? ' class="m-table__row--primary"' }}>
|
||||
<td>{{ hub.getName }}</td>
|
||||
<td>{{ hub.getBranch }}</td>
|
||||
<td>{{ hub.getContactNumbers }}</td>
|
||||
<td></span></td>
|
||||
<td></td>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
|
@ -495,9 +506,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>
|
||||
|
|
|
|||
Loading…
Reference in a new issue