diff --git a/initial_sql/sql_update_job_order_search_fields.sql b/initial_sql/sql_update_job_order_search_fields.sql new file mode 100644 index 00000000..25eaffb6 --- /dev/null +++ b/initial_sql/sql_update_job_order_search_fields.sql @@ -0,0 +1 @@ +UPDATE job_order jo, customer c, customer_vehicle cv SET jo.first_name = c.first_name, jo.last_name = c.last_name, jo.phone_mobile = c.phone_mobile, jo.plate_number = cv.plate_number WHERE jo.customer_id = c.id AND jo.cvehicle_id = cv.id; diff --git a/src/Service/JobOrderHandler/ResqJobOrderHandler.php b/src/Service/JobOrderHandler/ResqJobOrderHandler.php index 6a44b954..9b1ce8e1 100644 --- a/src/Service/JobOrderHandler/ResqJobOrderHandler.php +++ b/src/Service/JobOrderHandler/ResqJobOrderHandler.php @@ -343,7 +343,11 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface ->setORName($req->request->get('or_name')) ->setPromoDetail($req->request->get('promo_detail')) ->setModeOfPayment($req->request->get('mode_of_payment')) - ->setLandmark($req->request->get('landmark')); + ->setLandmark($req->request->get('landmark')) + ->setFirstName($cust_vehicle->getCustomer()->getFirstName()) + ->setLastName($cust_vehicle->getCustomer()->getLastName()) + ->setPhoneMobile($cust_vehicle->getCustomer()->getPhoneMobile()) + ->setPlateNumber($cust_vehicle->getPlateNumber()); // check if user is null, meaning call to create came from API if ($user != null) @@ -2611,11 +2615,17 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface case 'fulfill': 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'] . '%'); */ + $query->where('q.plate_number like :filter') + ->orWhere('q.phone_mobile like :filter') + ->orWhere('q.first_name like :filter') + ->orWhere('q.last_name like :filter') ->setParameter('filter', $datatable['query']['data-rows-search'] . '%'); } if (isset($datatable['query']['rider'])) @@ -2652,12 +2662,21 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface case 'open': if (isset($datatable['query']['data-rows-search'])) { + /* $query->innerJoin('q.cus_vehicle', 'cv') ->innerJoin('q.customer', 'c') ->where('q.status IN (:statuses)') ->andWhere('cv.plate_number like :filter or c.first_name like :filter or c.last_name like :filter or c.phone_mobile like :filter') ->setParameter('statuses', $status, Connection::PARAM_STR_ARRAY) ->setParameter('filter', $datatable['query']['data-rows-search'] . '%'); + */ + $query->where('q.plate_number like :filter') + ->orWhere('q.phone_mobile like :filter') + ->orWhere('q.first_name like :filter') + ->orWhere('q.last_name like :filter') + ->orWhere('q.status IN (:statuses)') + ->setParameter('statuses', $status, Connection::PARAM_STR_ARRAY) + ->setParameter('filter', $datatable['query']['data-rows-search'] . '%'); } else { @@ -2687,12 +2706,19 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface case 'all': 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'] . '%'); + */ + $query->where('q.plate_number like :filter') + ->orWhere('q.phone_mobile like :filter') + ->orWhere('q.first_name like :filter') + ->orWhere('q.last_name like :filter') + ->setParameter('filter', $datatable['query']['data-rows-search'] . '%'); } if (isset($datatable['query']['rider'])) { @@ -2717,12 +2743,19 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface case 'hub_view_all': 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'] . '%'); + */ + $query->where('q.plate_number like :filter') + ->orWhere('q.phone_mobile like :filter') + ->orWhere('q.first_name like :filter') + ->orWhere('q.last_name like :filter') + ->setParameter('filter', $datatable['query']['data-rows-search'] . '%'); } if (isset($datatable['query']['hub'])) {