Add index for plate number. #278

This commit is contained in:
Korina Cordero 2019-11-25 03:21:50 +00:00
parent 3babcd765f
commit 7e5ffdcf26
2 changed files with 54 additions and 51 deletions

View file

@ -589,6 +589,7 @@ class ReportController extends Controller
'plate_num' => '', 'plate_num' => '',
'warr_date_create' => '', 'warr_date_create' => '',
'warr_activation_status' => '', 'warr_activation_status' => '',
'warr_class' => '',
'has_mobile' => '', 'has_mobile' => '',
'date_mobile' => '', 'date_mobile' => '',
'mobile_number' => '', 'mobile_number' => '',
@ -606,67 +607,68 @@ class ReportController extends Controller
if (!empty($serial)) if (!empty($serial))
{ {
// get the warranty for serial // get the warranty for serial
$warr_qb = $this->getDoctrine() $warranties = $em->getRepository(Warranty::class)->findBy(['serial' => $serial]);
->getRepository(Warranty::class)
->createQueryBuilder('q');
$warranty_query = $warr_qb->select('q')
->where('q.serial = :serial')
->setParameter('serial', $serial);
$warranty = $warranty_query->getQuery()->getOneOrNullResult();
if ($warranty != null) if (!empty($warranties))
{ {
$isValid = InvalidPlateNumber::isInvalid($warranty->getPlateNumber()); foreach ($warranties as $warranty)
if ($isValid)
{ {
// get customer vehicles using plate number //error_log('found warranty for serial ' . $serial);
$customer_vehicles = $em->getRepository(CustomerVehicle::class)->findBy(['plate_number' => $warranty->getPlateNumber()]); $plate_number = $warranty->getPlateNumber();
$isValid = InvalidPlateNumber::isInvalid($plate_number);
// check if customer vehicle is empty if ($isValid)
if (count($customer_vehicles) != 0)
{ {
$has_mobile = false; // get customer vehicles using plate number
$mobile_date = ''; $customer_vehicles = $em->getRepository(CustomerVehicle::class)->findBy(['plate_number' => $plate_number]);
$mobile_number = '';
// check if customer vehicle is empty
// get the first customer vehicle, store as best_cv until we find one with a mobile session if (count($customer_vehicles) != 0)
$best_cv = current($customer_vehicles);
foreach($customer_vehicles as $cv)
{ {
// get mobile session of customer //error_log('found customer vehicle for plate number ' . $plate_number);
//error_log($cv->getCustomer()->getLastName() . ' ' . $cv->getCustomer()->getFirstName()); $has_mobile = false;
$mobile_session = $em->getRepository(MobileSession::class) $mobile_date = '';
->findOneBy(['customer' => $cv->getCustomer()->getID()], ['date_generated' => 'ASC']); $mobile_number = '';
if ($mobile_session != null)
// 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 // get mobile session of customer
$has_mobile = true; //error_log($cv->getCustomer()->getLastName() . ' ' . $cv->getCustomer()->getFirstName());
$mobile_date = $mobile_session->getDateGenerated()->format("d M Y"); $cust_id = $cv->getCustomer()->getID();
$mobile_number = $mobile_session->getPhoneNumber(); $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 // set best_cv to this customer vehicle with mobile session
$best_cv = $cv; $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();
} }
} }
} }

View file

@ -10,7 +10,8 @@ use DateTime;
/** /**
* @ORM\Entity * @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 class CustomerVehicle
{ {