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 %} + +
+
+
+

+ Job Orders (Processing) +

+
+
+
+ +
+ +
+
+
+
+
+
+
+
+
+
+ + + + +
+
+
+
+
+
+ +
+ +
+
+
+
+
+{% endblock %} + +{% block scripts %} + +{% endblock %} \ No newline at end of file