diff --git a/config/routes/job_order.yaml b/config/routes/job_order.yaml
index 473c8353..b9e44c16 100644
--- a/config/routes/job_order.yaml
+++ b/config/routes/job_order.yaml
@@ -18,6 +18,11 @@ jo_in_submit:
controller: App\Controller\JobOrderController::incomingSubmit
methods: [POST]
+jo_proc_form:
+ path: /job-order/processing/{id}
+ controller: App\Controller\JobOrderController::processingForm
+ methods: [GET]
+
jo_proc_submit:
path: /job-order/processing
controller: App\Controller\JobOrderController::processingSubmit
diff --git a/src/Controller/JobOrderController.php b/src/Controller/JobOrderController.php
index 0fea75ae..17d438f7 100644
--- a/src/Controller/JobOrderController.php
+++ b/src/Controller/JobOrderController.php
@@ -134,7 +134,7 @@ class JobOrderController extends BaseController
return $this->render('job-order/list.html.twig', $params);
}
- public function processingRows()
+ public function processingRows(Request $req)
{
$this->denyAccessUnlessGranted('jo_proc.list', null, 'No access.');
@@ -148,10 +148,10 @@ class JobOrderController extends BaseController
// count total records
$tquery = $qb->select('COUNT(q)')
- ->join('q.customer_vehicle', 'cv')
+ ->join('q.cus_vehicle', 'cv')
->join('q.customer', 'c');
- $this->setQueryFilters($datatable, $tquery);
+ $this->setQueryFilters($datatable, $tquery, $qb);
$total = $tquery->getQuery()
->getSingleScalarResult();
@@ -175,16 +175,16 @@ class JobOrderController extends BaseController
// build query
$query = $qb->select('q')
->addSelect('cv.plate_number as plate_number')
- ->addSelect('c.first_name as cust_first_name')
+ ->addSelect('c.first_name as customer_name')
->addSelect('c.last_name as cust_last_name');
- $this->setQueryFilters($datatable, $query);
+ $this->setQueryFilters($datatable, $query, $qb);
// check if sorting is present, otherwise use default
if (isset($datatable['sort']['field']) && !empty($datatable['sort']['field'])) {
$prefix = '';
- if (!in_array($datatable['sort']['field'], ['plate_number', 'cust_first_name', 'cust_last_name']))
+ if (!in_array($datatable['sort']['field'], ['plate_number', 'customer_name']))
$prefix = 'q.';
$order = $datatable['sort']['sort'] ?? 'asc';
@@ -199,27 +199,27 @@ class JobOrderController extends BaseController
->getQuery()
->getResult();
- // get service type name
- $service_type = false;
- $service_types = ServiceType::getCollection();
- foreach ($service_types as $key => $service) {
- if ($key == $orow->getServiceType()) {
- $service_type = $service;
- break;
- }
- }
-
// process rows
$rows = [];
foreach ($obj_rows as $orow) {
+ // get service type name
+ $service_type = false;
+ $service_types = ServiceType::getCollection();
+ foreach ($service_types as $key => $service) {
+ if ($key == $orow[0]->getServiceType()) {
+ $service_type = $service;
+ break;
+ }
+ }
+
// add row data
$row['id'] = $orow[0]->getID();
- $row['date_schedule_date'] = $orow[0]->getDeliveryDate()->format("d M Y");
- $row['date_schedule_time'] = $orow[0]->getDeliveryDate()->format("h:i A");
+ $row['date_schedule'] = $orow[0]->getDateSchedule()->format("d M Y");
+ $row['date_schedule_time'] = $orow[0]->getDateSchedule()->format("h:i A");
$row['service_type'] = $service_type;
$row['plate_number'] = $orow['plate_number'];
- $row['customer_name'] = $orow['cust_first_name'] . " " . $orow['cust_last_name'];
- $row['mobile_numbers'] = $orow[0]->getCustomer()->getMobileNumberList();
+ $row['customer_name'] = $orow['customer_name'] . " " . $orow['cust_last_name'];
+ $row['mobile_numbers'] = implode("
", $orow[0]->getCustomer()->getMobileNumberList());
$row['source'] = ucfirst($orow[0]->getSource());
// add crud urls
@@ -235,17 +235,27 @@ class JobOrderController extends BaseController
]);
}
+ // TODO: re-enable search, figure out how to group the orWhere filters into one, so can execute that plus the pending filter
+
// check if datatable filter is present and append to query
- protected function setQueryFilters($datatable, &$query) {
+ protected function setQueryFilters($datatable, &$query, $qb) {
+ $query->where('q.status = :status')
+ ->setParameter('status', 'pending');
+
// get only pending rows
- $query->where('q.status', 'pending');
+ /*
+ $query->where($qb->expr()->orX(
+ $qb->expr()where('q.status', 'pending');
+ ));
+
// apply filters
if (isset($datatable['query']['data-rows-search']) && !empty($datatable['query']['data-rows-search'])) {
$query->where('q.delivery_address LIKE :filter')
- ->orWhere($qb->expr()->concat('c.first_name', $qb->expr()->literal(' '), 'c.last_name') . 'LIKE :filter')
+ ->orWhere($qb->expr()->concat('c.first_name', $qb->expr()->literal(' '), 'c.last_name') . ' LIKE :filter')
->orWhere('cv.plate_number LIKE :filter')
->setParameter('filter', '%' . $datatable['query']['data-rows-search'] . '%');
}
+ */
}
}
diff --git a/templates/job-order/list.html.twig b/templates/job-order/list.html.twig
new file mode 100644
index 00000000..ae9209ab
--- /dev/null
+++ b/templates/job-order/list.html.twig
@@ -0,0 +1,123 @@
+{% extends 'base.html.twig' %}
+
+{% block body %}
+
+