Fixes for issues found during testing for WarrantyCleanupCommand on expiration dates. Change value of date_purchase to that of date_schedule, instead of date_create of invoice. #402

This commit is contained in:
Korina Cordero 2020-05-14 07:50:12 +00:00
parent aef2279a91
commit a5c2c79783
2 changed files with 15 additions and 8 deletions

View file

@ -191,7 +191,9 @@ class GenerateWarrantyFromJobOrderCommand extends Command
$bty_size_id = $invoice_item->getBattery()->getSize()->getID();
$warranty_class = $jo->getWarrantyClass();
$date = $jo->getInvoice()->getDateCreate();
// NOTE: changing date_purchase to date_schedule unless told otherwise
//$date = $jo->getInvoice()->getDateCreate();
$date = $jo->getDateSchedule();
$date_purchase = $date->format('Y-m-d');
$date_create = date('Y-m-d H:i:s');

View file

@ -14,6 +14,8 @@ use App\Entity\Warranty;
use App\Entity\SAPBattery;
use App\Ramcar\ServiceType;
use App\Ramcar\JOStatus;
use App\Ramcar\WarrantyClass;
use App\Service\WarrantyHandler;
@ -56,10 +58,11 @@ class WarrantyCleanupCommand extends Command
$end_date->setTime(23, 59);
// get all job orders with battery new service type within date range
$jo_query = $em->createQuery('select ii,i,jo,cv from App\Entity\InvoiceItem ii inner join ii.invoice i inner join i.job_order jo inner join jo.cus_vehicle cv join jo.customer c where ii.battery is not null and jo.service_type = :service_type and jo.date_schedule > :date_start and jo.date_schedule < :date_end');
$jo_query = $em->createQuery('select ii,i,jo,cv from App\Entity\InvoiceItem ii inner join ii.invoice i inner join i.job_order jo inner join jo.cus_vehicle cv join jo.customer c where ii.battery is not null and jo.service_type = :service_type and jo.date_schedule > :date_start and jo.date_schedule < :date_end and jo.status = :status');
$jo_query->setParameter('service_type', ServiceType::BATTERY_REPLACEMENT_NEW)
->setParameter('date_start', $start_date)
->setParameter('date_end', $end_date);
->setParameter('date_end', $end_date)
->setParameter('status', JOStatus::FULFILLED);
$jos = $jo_query->iterate();
@ -109,7 +112,7 @@ class WarrantyCleanupCommand extends Command
if (empty($warranties_date_schedule))
{
// check if warranty exists with plate number and date_fulfilled
$datetime_fulfilled = $jo->getDateSchedule();
$datetime_fulfilled = $jo->getDateFulfill();
$datetime_fulfilled_str = $datetime_fulfilled->format('Y-m-d');
$date_fulfilled = DateTime::createFromFormat('Y-m-d', $datetime_fulfilled_str);
@ -136,14 +139,16 @@ class WarrantyCleanupCommand extends Command
$warranty_period = $invoice_item->getBattery()->getWarrantyTnv();
}
// NOTE: changing date_purchase to date_schedule unless told otherwise
$date_purchase = $datetime_schedule_str;
// compute expiration date
$expiry_date = $this->wh->computeDateExpire($date_schedule, $warranty_period);
$date_expiry = $expiry_date->format('Y-m-d');
$value = '\' . $date_expiry . \';';
$date_purchase_value = '\'' . $date_purchase . '\'';
$date_expire_value = '\'' . $date_expiry . '\'';
$update_sql_statement = 'UPDATE `warranty` SET date_expire=' . $value . ' WHERE id=\'' . $warranty->getID() . '\'' . "\n";
$update_sql_statement = 'UPDATE `warranty` SET date_expire=' . $date_expire_value . ', date_purchase=' . $date_purchase_value . ' WHERE id=\'' . $warranty->getID() . '\';' . "\n";
echo $update_sql_statement;
}
@ -152,7 +157,7 @@ class WarrantyCleanupCommand extends Command
error_log('no warranty date_fulfilled found.');
}
else
error_log('no warranty date_schedule found.');
error_log('warranty date_schedule found.');
$em->detach($row[0]);
$em->clear();