From 7ff058864a331f74f502903b1244e4f393a58739 Mon Sep 17 00:00:00 2001 From: Kendrick Chan Date: Wed, 25 Apr 2018 00:33:42 +0800 Subject: [PATCH] Add search by plate number on customer list #100 --- src/Controller/CustomerController.php | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/Controller/CustomerController.php b/src/Controller/CustomerController.php index 680d5e38..7d990c20 100644 --- a/src/Controller/CustomerController.php +++ b/src/Controller/CustomerController.php @@ -51,6 +51,10 @@ class CustomerController extends BaseController $this->denyAccessUnlessGranted('customer.list', null, 'No access.'); // build query + $tqb = $this->getDoctrine() + ->getRepository(Customer::class) + ->createQueryBuilder('q'); + $qb = $this->getDoctrine() ->getRepository(Customer::class) ->createQueryBuilder('q'); @@ -59,7 +63,7 @@ class CustomerController extends BaseController $datatable = $req->request->get('datatable'); // count total records - $tquery = $qb->select('COUNT(q)'); + $tquery = $tqb->select('COUNT(q)'); // add filters to count query $this->setQueryFilters($datatable, $tquery); @@ -676,10 +680,12 @@ class CustomerController extends BaseController // check if datatable filter is present and append to query protected function setQueryFilters($datatable, &$query) { if (isset($datatable['query']['data-rows-search']) && !empty($datatable['query']['data-rows-search'])) { - $query->where('q.first_name LIKE :filter') + $query->join('q.vehicles', 'cv') + ->where('q.first_name LIKE :filter') ->orWhere('q.last_name LIKE :filter') ->orWhere('q.customer_classification LIKE :filter') - ->setParameter('filter', '%' . $datatable['query']['data-rows-search'] . '%'); + ->orWhere('cv.plate_number LIKE :filter') + ->setParameter('filter', $datatable['query']['data-rows-search'] . '%'); } } }