diff --git a/src/Controller/ReportController.php b/src/Controller/ReportController.php index 8558de79..60db4d9d 100644 --- a/src/Controller/ReportController.php +++ b/src/Controller/ReportController.php @@ -589,6 +589,7 @@ class ReportController extends Controller 'plate_num' => '', 'warr_date_create' => '', 'warr_activation_status' => '', + 'warr_class' => '', 'has_mobile' => '', 'date_mobile' => '', 'mobile_number' => '', @@ -606,67 +607,68 @@ class ReportController extends Controller if (!empty($serial)) { // get the warranty for serial - $warr_qb = $this->getDoctrine() - ->getRepository(Warranty::class) - ->createQueryBuilder('q'); - $warranty_query = $warr_qb->select('q') - ->where('q.serial = :serial') - ->setParameter('serial', $serial); - $warranty = $warranty_query->getQuery()->getOneOrNullResult(); + $warranties = $em->getRepository(Warranty::class)->findBy(['serial' => $serial]); - if ($warranty != null) + if (!empty($warranties)) { - $isValid = InvalidPlateNumber::isInvalid($warranty->getPlateNumber()); - if ($isValid) + foreach ($warranties as $warranty) { - // get customer vehicles using plate number - $customer_vehicles = $em->getRepository(CustomerVehicle::class)->findBy(['plate_number' => $warranty->getPlateNumber()]); - - // check if customer vehicle is empty - if (count($customer_vehicles) != 0) + //error_log('found warranty for serial ' . $serial); + $plate_number = $warranty->getPlateNumber(); + $isValid = InvalidPlateNumber::isInvalid($plate_number); + if ($isValid) { - $has_mobile = false; - $mobile_date = ''; - $mobile_number = ''; - - // get the first customer vehicle, store as best_cv until we find one with a mobile session - $best_cv = current($customer_vehicles); - - foreach($customer_vehicles as $cv) + // get customer vehicles using plate number + $customer_vehicles = $em->getRepository(CustomerVehicle::class)->findBy(['plate_number' => $plate_number]); + + // check if customer vehicle is empty + if (count($customer_vehicles) != 0) { - // get mobile session of customer - //error_log($cv->getCustomer()->getLastName() . ' ' . $cv->getCustomer()->getFirstName()); - $mobile_session = $em->getRepository(MobileSession::class) - ->findOneBy(['customer' => $cv->getCustomer()->getID()], ['date_generated' => 'ASC']); - if ($mobile_session != null) + //error_log('found customer vehicle for plate number ' . $plate_number); + $has_mobile = false; + $mobile_date = ''; + $mobile_number = ''; + + // get the first customer vehicle, store as best_cv until we find one with a mobile session + $best_cv = current($customer_vehicles); + + foreach($customer_vehicles as $cv) { - // get mobile data - $has_mobile = true; - $mobile_date = $mobile_session->getDateGenerated()->format("d M Y"); - $mobile_number = $mobile_session->getPhoneNumber(); + // get mobile session of customer + //error_log($cv->getCustomer()->getLastName() . ' ' . $cv->getCustomer()->getFirstName()); + $cust_id = $cv->getCustomer()->getID(); + $mobile_session = $em->getRepository(MobileSession::class) + ->findOneBy(['customer' => $cust_id], ['date_generated' => 'ASC']); + if ($mobile_session != null) + { + // get mobile data + //error_log('found mobile session for customer id ' . $cv->getCustomer()->getID()); + $has_mobile = true; + $mobile_date = $mobile_session->getDateGenerated()->format("d M Y"); + $mobile_number = $mobile_session->getPhoneNumber(); - // set best_cv to this customer vehicle with mobile session - $best_cv = $cv; + // set best_cv to this customer vehicle with mobile session + $best_cv = $cv; + } } + // set the customer data in results + $results[$key]['cust_id'] = $best_cv->getCustomer()->getID(); + $results[$key]['cust_lastname'] = $best_cv->getCustomer()->getLastName(); + $results[$key]['cust_firstname'] = $best_cv->getCustomer()->getFirstName(); + $results[$key]['cust_mobile_number'] = $best_cv->getCustomer()->getPhoneMobile(); + $results[$key]['plate_num'] = $best_cv->getPlateNumber(); + $results[$key]['has_mobile'] = ($has_mobile ? 'Yes' : 'No'); + $results[$key]['date_mobile'] = $mobile_date; + $results[$key]['mobile_number'] = $mobile_number; } - - // set the customer data in results - $results[$key]['cust_id'] = $best_cv->getCustomer()->getID(); - $results[$key]['cust_lastname'] = $best_cv->getCustomer()->getLastName(); - $results[$key]['cust_firstname'] = $best_cv->getCustomer()->getFirstName(); - $results[$key]['cust_mobile_number'] = $best_cv->getCustomer()->getPhoneMobile(); - $results[$key]['plate_num'] = $best_cv->getPlateNumber(); - $results[$key]['has_mobile'] = ($has_mobile ? 'Yes' : 'No'); - $results[$key]['date_mobile'] = $mobile_date; - $results[$key]['mobile_number'] = $mobile_number; } + // set the warranty data in results + $results[$key]['warr_lastname'] = $warranty->getLastName(); + $results[$key]['warr_firstname'] = $warranty->getFirstName(); + $results[$key]['warr_date_create'] = $warranty->getDateCreate()->format("d M Y"); + $results[$key]['warr_activation_status'] = ($warranty->isActivated() ? 'Active' : 'Inactive'); + $results[$key]['warr_class'] = $warranty->getWarrantyClass(); } - // set the warranty data in results - $results[$key]['warr_lastname'] = $warranty->getLastName(); - $results[$key]['warr_firstname'] = $warranty->getFirstName(); - $results[$key]['warr_date_create'] = $warranty->getDateCreate()->format("d M Y"); - $results[$key]['warr_activation_status'] = ($warranty->isActivated() ? 'Active' : 'Inactive'); - $results[$key]['warr_class'] = $warranty->getWarrantyClass(); } } } diff --git a/src/Entity/CustomerVehicle.php b/src/Entity/CustomerVehicle.php index 5f1f1031..3e4c70a4 100644 --- a/src/Entity/CustomerVehicle.php +++ b/src/Entity/CustomerVehicle.php @@ -10,7 +10,8 @@ use DateTime; /** * @ORM\Entity - * @ORM\Table(name="customer_vehicle", indexes={@ORM\Index(columns={"plate_number"}, flags={"fulltext"})}) + * @ORM\Table(name="customer_vehicle", indexes={@ORM\Index(columns={"plate_number"}, flags={"fulltext"}), + @ORM\Index(name="plate_number_idx", columns={"plate_number"})}) */ class CustomerVehicle {