Add rider and date query parameters for list of to be fulfilled and open job orders. #319

This commit is contained in:
Korina Cordero 2020-02-04 11:15:10 +00:00
parent 15bafe2363
commit b6700eed36
4 changed files with 352 additions and 205 deletions

View file

@ -2443,7 +2443,36 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface
switch ($tier) switch ($tier)
{ {
case 'fulfill': case 'fulfill':
$query->where('q.status IN (:statuses)') if (isset($datatable['query']['data-rows-search']))
{
$query->innerJoin('q.cus_vehicle', 'cv')
->innerJoin('q.customer', 'c')
->where('cv.plate_number like :filter')
->orWhere('c.phone_mobile like :filter')
->orWhere('c.first_name like :filter or c.last_name like :filter')
->setParameter('filter', $datatable['query']['data-rows-search'] . '%');
}
if (isset($datatable['query']['rider']))
{
$query->innerJoin('q.rider', 'r')
->andWhere('r.id = :rider_id')
->setParameter('rider_id', $datatable['query']['rider']);
}
if (isset($datatable['query']['schedule_date']))
{
$start = $datatable['query']['schedule_date'][0] . ' ' . '00:00:00';
$end = $datatable['query']['schedule_date'][1] . ' ' . '23:59:00';
$date_start = DateTime::createFromFormat('m/d/Y H:i:s', $start);
$date_end = DateTime::createFromFormat('m/d/Y H:i:s', $end);
$query->andWhere('q.date_schedule >= :date_start')
->andWhere('q.date_schedule <= :date_end')
->setParameter('date_start', $date_start)
->setParameter('date_end', $date_end);
}
$query->andWhere('q.status IN (:statuses)')
->andWhere('q.hub IN (:hubs)') ->andWhere('q.hub IN (:hubs)')
->setParameter('statuses', $status, Connection::PARAM_STR_ARRAY) ->setParameter('statuses', $status, Connection::PARAM_STR_ARRAY)
->setParameter('hubs', $hubs, Connection::PARAM_STR_ARRAY); ->setParameter('hubs', $hubs, Connection::PARAM_STR_ARRAY);
@ -2469,6 +2498,25 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface
$query->where('q.status IN (:statuses)') $query->where('q.status IN (:statuses)')
->setParameter('statuses', $status, Connection::PARAM_STR_ARRAY); ->setParameter('statuses', $status, Connection::PARAM_STR_ARRAY);
} }
if (isset($datatable['query']['rider']))
{
$query->innerJoin('q.rider', 'r')
->andWhere('r.id = :rider_id')
->setParameter('rider_id', $datatable['query']['rider']);
}
if (isset($datatable['query']['schedule_date']))
{
$start = $datatable['query']['schedule_date'][0] . ' ' . '00:00:00';
$end = $datatable['query']['schedule_date'][1] . ' ' . '23:59:00';
$date_start = DateTime::createFromFormat('m/d/Y H:i:s', $start);
$date_end = DateTime::createFromFormat('m/d/Y H:i:s', $end);
$query->andWhere('q.date_schedule >= :date_start')
->andWhere('q.date_schedule <= :date_end')
->setParameter('date_start', $date_start)
->setParameter('date_end', $date_end);
}
break; break;
case 'all': case 'all':
if (isset($datatable['query']['data-rows-search'])) if (isset($datatable['query']['data-rows-search']))

View file

@ -35,6 +35,7 @@
<div class="input-group"> <div class="input-group">
<label>Rider:</label> <label>Rider:</label>
<select class="form-control m-input" id="rider_list" name="rider_list"> <select class="form-control m-input" id="rider_list" name="rider_list">
<option value=""></option>
{% for rider in riders %} {% for rider in riders %}
<option value="{{ rider.getID }}">{{ rider.getFirstName ~ ' ' ~ rider.getLastName }} </option> <option value="{{ rider.getID }}">{{ rider.getFirstName ~ ' ' ~ rider.getLastName }} </option>
{% endfor %} {% endfor %}
@ -180,10 +181,7 @@
var date_array = [date_start, date_end]; var date_array = [date_start, date_end];
table.search(date_array, "schedule_date"); table.search(date_array, "schedule_date");
}); });
}); });
</script> </script>
{% endblock %} {% endblock %}

View file

@ -30,6 +30,30 @@
</span> </span>
</div> </div>
</div> </div>
<div class="col-md-4">
<div class="m-input-icon m-input-icon--left">
<div>
<label>Rider:</label>
<select class="form-control m-input" id="rider_list" name="rider_list">
<option value=""></option>
{% for rider in riders %}
<option value="{{ rider.getID }}">{{ rider.getFirstName ~ ' ' ~ rider.getLastName }} </option>
{% endfor %}
</select>
</div>
</div>
</div>
<div class="col-md-4">
<div class="m-input-icon m-input-icon--left">
<div class="input-daterange input-group" id="date-range">
<input role="presentation" type="text" class="form-control m-input" id="date_start" name="date_start" placeholder="Start date" />
<div class="input-group-append">
<span class="input-group-text"><i class="la la-ellipsis-h"></i></span>
</div>
<input role="presentation" type="text" class="form-control" id="date_end" name="date_end" placeholder="End date" />
</div>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>
@ -47,6 +71,10 @@
{% block scripts %} {% block scripts %}
<script> <script>
$(function() { $(function() {
$("#date-range").datepicker({
orientation: "bottom"
});
var options = { var options = {
data: { data: {
type: 'remote', type: 'remote',
@ -127,6 +155,30 @@
setInterval(function() { setInterval(function() {
table.reload(); table.reload();
}, {{ table_refresh_rate }}); }, {{ table_refresh_rate }});
$("#rider_list").on("change", function() {
console.log($(this).val());
table.search($(this).val(), "rider");
});
$("#date_start").on("change", function() {
var date_start = $(this).val();
var date_end = $("[name='date_end']").val();
var date_array = [date_start, date_end];
table.search(date_array, "schedule_date");
});
$("#date_end").on("change", function() {
console.log($(this).val());
var date_end = $(this).val();
var date_start = $("[name='date_start']").val();
var date_array = [date_start, date_end];
table.search(date_array, "schedule_date");
});
}); });
</script> </script>
{% endblock %} {% endblock %}

View file

@ -30,6 +30,30 @@
</span> </span>
</div> </div>
</div> </div>
<div class="col-md-4">
<div class="m-input-icon m-input-icon--left">
<div>
<label>Rider:</label>
<select class="form-control m-input" id="rider_list" name="rider_list">
<option value=""></option>
{% for rider in riders %}
<option value="{{ rider.getID }}">{{ rider.getFirstName ~ ' ' ~ rider.getLastName }} </option>
{% endfor %}
</select>
</div>
</div>
</div>
<div class="col-md-4">
<div class="m-input-icon m-input-icon--left">
<div class="input-daterange input-group" id="date-range">
<input role="presentation" type="text" class="form-control m-input" id="date_start" name="date_start" placeholder="Start date" />
<div class="input-group-append">
<span class="input-group-text"><i class="la la-ellipsis-h"></i></span>
</div>
<input role="presentation" type="text" class="form-control" id="date_end" name="date_end" placeholder="End date" />
</div>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>
@ -47,6 +71,9 @@
{% block scripts %} {% block scripts %}
<script> <script>
$(function() { $(function() {
$("#date-range").datepicker({
orientation: "bottom"
});
var options = { var options = {
data: { data: {
type: 'remote', type: 'remote',
@ -143,6 +170,28 @@
setInterval(function() { setInterval(function() {
table.reload(); table.reload();
}, {{ table_refresh_rate }}); }, {{ table_refresh_rate }});
$("#rider_list").on("change", function() {
table.search($(this).val(), "rider");
});
$("#date_start").on("change", function() {
var date_start = $(this).val();
var date_end = $("[name='date_end']").val();
var date_array = [date_start, date_end];
table.search(date_array, "schedule_date");
});
$("#date_end").on("change", function() {
console.log($(this).val());
var date_end = $(this).val();
var date_start = $("[name='date_start']").val();
var date_array = [date_start, date_end];
table.search(date_array, "schedule_date");
});
}); });
</script> </script>
{% endblock %} {% endblock %}