Add index for plate number in warranty. Finish warranty class report. #283

This commit is contained in:
Korina Cordero 2019-11-28 05:20:29 +00:00
parent 743bbf9c61
commit 28b93a83d0
2 changed files with 87 additions and 11 deletions

View file

@ -593,6 +593,7 @@ class ReportController extends Controller
'Warranty Expiry Date',
'Warranty Claim Date',
'Warranty Claimed From',
'Warranty Privacy Policy',
'Is Warranty Activated?',
]);
foreach ($data as $row)
@ -803,7 +804,7 @@ class ReportController extends Controller
foreach($customers as $crow)
{
$cust = $crow[0];
error_log('Processing customer ' . $cust->getID());
//error_log('Processing customer ' . $cust->getID());
// get list of customer vehicles
$c_vehicles = $cust->getVehicles();
@ -815,20 +816,18 @@ class ReportController extends Controller
// find warranty for plate number
$clean_cv_plate = $this->cleanPlateNumber($cv->getPlateNumber());
// $warranties = $em->getRepository(Warranty::class)->findBy(['plate_number' => $clean_cv_plate]);
// TODO: test this query to see if this is faster
$warr_query = $em->createQuery('select w from App\Entity\Warranty w where w.plate_number = :plate_num')
->setParameter('plate_num', $clean_cv_plate);
$warranties = $warr_query->iterate();
$warranties = $em->getRepository(Warranty::class)->findBy(['plate_number' => $clean_cv_plate]);
foreach ($warranties as $wrow)
foreach ($warranties as $warr)
{
$warr = $wrow[0];
error_log('Found warranty for plate number ' . $warr->getPlateNumber());
//error_log('Found warranty for plate number ' . $warr->getPlateNumber());
// form the result row
$results[] = $this->formWarrantyClassResult($cust, $cv, $warr);
}
}
}
$em->clear();
}
@ -840,4 +839,80 @@ class ReportController extends Controller
// remove spaces and make upper case
return strtoupper(str_replace(' ', '', $plate));
}
protected function formWarrantyClassResult($cust, $cv, $warr)
{
$batt_model = '';
$batt_size = '';
$sap_batt = '';
$policy = '';
$date_purchased = '';
$date_expire = '';
$date_claim = '';
$create_date = $warr->getDateCreate();
$date_create = $create_date->format('d/M/y');
if ($warr->getDatePurchase() != null)
{
$p_date = $warr->getDatePurchase();
$date_purchased = $p_date->format('d/M/y');
}
if ($warr->getDateClaim() != null)
{
$c_date = $warr->getDateClaim();
$date_claim = $c_date->format('d/M/y');
}
if ($warr->getDateExpire() != null)
{
$e_date = $warr->getDateExpire();
$date_expire = $e_date->format('d/M/y');
}
if ($warr->getBatteryModel() != null)
{
$batt_model = $warr->getBatteryModel()->getName();
}
if ($warr->getBatterySize() != null)
{
$batt_size = $warr->getBatterySize()->getName();
}
if ($warr->getSAPBattery() != null)
{
$sap_batt = $warr->getSAPBattery()->getBrand()->getName();
}
if ($warr->getPrivacyPolicy() != null)
{
$policy = $warr->getPrivacyPolicy()->getName();
}
$data = [
'c_last_name' => $cust->getLastName(),
'c_first_name' => $cust->getFirstName(),
'manufacturer' => $cv->getVehicle()->getManufacturer()->getName(),
'make' => $cv->getVehicle()->getMake(),
'model_year' => $cv->getModelYear(),
'color' => $cv->getColor(),
'serial' => $warr->getSerial(),
'class' => $warr->getWarrantyClass(),
'plate_number' => $warr->getPlateNumber(),
'w_last_name' => $warr->getLastName(),
'w_first_name' => $warr->getFirstName(),
'w_mobile_num' => $warr->getMobileNumber(),
'w_batt_model' => $batt_model,
'w_batt_size' => $batt_size,
'w_sap_batt' => $sap_batt,
'w_status' => $warr->getStatus(),
'w_date_create' => $date_create,
'w_date_purchase' => $date_purchased,
'w_date_expire' => $date_expire,
'w_date_claim' => $date_claim,
'w_claimed_from' => $warr->getClaimedFrom(),
'w_privacy_policy' => $policy,
'w_activated' => ($warr->isActivated() ? 'Active' : 'Inactive'),
];
return $data;
}
}

View file

@ -14,7 +14,8 @@ use Exception;
* name="warranty",
* uniqueConstraints={
* @ORM\UniqueConstraint(columns={"serial"})
* }
* },
* indexes={@ORM\Index(name="plate_number_idx", columns={"plate_number"})})
* )
*/
class Warranty