Add rider and date filter to search. #319

This commit is contained in:
Korina Cordero 2020-02-04 08:43:39 +00:00
parent ca8d6fb57d
commit 3789871f9a
3 changed files with 182 additions and 100 deletions

View file

@ -196,6 +196,7 @@ class JobOrderController extends Controller
$template = $jo_handler->getTwigTemplate('jo_list_fulfillment'); $template = $jo_handler->getTwigTemplate('jo_list_fulfillment');
$params = $jo_handler->getOtherParameters();
$params['table_refresh_rate'] = $this->container->getParameter('job_order_refresh_interval'); $params['table_refresh_rate'] = $this->container->getParameter('job_order_refresh_interval');
return $this->render($template, $params); return $this->render($template, $params);
@ -210,6 +211,7 @@ class JobOrderController extends Controller
$template = $jo_handler->getTwigTemplate('jo_list_open'); $template = $jo_handler->getTwigTemplate('jo_list_open');
$params = $jo_handler->getOtherParameters();
$params['table_refresh_rate'] = $this->container->getParameter('job_order_refresh_interval'); $params['table_refresh_rate'] = $this->container->getParameter('job_order_refresh_interval');
$params['statuses'] = JOStatus::getCollection(); $params['statuses'] = JOStatus::getCollection();
@ -225,6 +227,7 @@ class JobOrderController extends Controller
$template = $jo_handler->getTwigTemplate('jo_list_all'); $template = $jo_handler->getTwigTemplate('jo_list_all');
$params = $jo_handler->getOtherParameters();
$params['table_refresh_rate'] = $this->container->getParameter('job_order_refresh_interval'); $params['table_refresh_rate'] = $this->container->getParameter('job_order_refresh_interval');
return $this->render($template, $params); return $this->render($template, $params);

View file

@ -2197,6 +2197,14 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface
return null; return null;
} }
public function getOtherParameters()
{
// get riders for dropdown
$params['riders'] = $this->em->getRepository(Rider::class)->findAll();
return $params;
}
protected function fillDropdownParameters(&$params) protected function fillDropdownParameters(&$params)
{ {
@ -2472,6 +2480,25 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface
->orWhere('c.first_name like :filter or c.last_name like :filter') ->orWhere('c.first_name like :filter or c.last_name like :filter')
->setParameter('filter', $datatable['query']['data-rows-search'] . '%'); ->setParameter('filter', $datatable['query']['data-rows-search'] . '%');
} }
if (isset($datatable['query']['rider']))
{
$query->innerJoin('q.rider', 'r')
->where('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->where('q.date_schedule >= :date_start')
->andWhere('q.date_schedule <= :date_end')
->setParameter('date_start', $date_start)
->setParameter('date_end', $date_end);
}
break; break;
default: default:
$query->where('q.status = :status') $query->where('q.status = :status')

View file

@ -30,6 +30,29 @@
</span> </span>
</div> </div>
</div> </div>
<div class="col-md-4">
<div class="m-input-icon m-input-icon--left">
<div class="input-group">
<label>Rider:</label>
<select class="form-control m-input" id="rider_list" name="rider_list">
{% 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 +70,10 @@
{% block scripts %} {% block scripts %}
<script> <script>
$(function() { $(function() {
$("#date-range").datepicker({
orientation: "bottom"
});
var options = { var options = {
data: { data: {
type: 'remote', type: 'remote',
@ -132,6 +159,31 @@
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 %}