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:
parent
aef2279a91
commit
a5c2c79783
2 changed files with 15 additions and 8 deletions
|
|
@ -191,7 +191,9 @@ class GenerateWarrantyFromJobOrderCommand extends Command
|
||||||
$bty_size_id = $invoice_item->getBattery()->getSize()->getID();
|
$bty_size_id = $invoice_item->getBattery()->getSize()->getID();
|
||||||
$warranty_class = $jo->getWarrantyClass();
|
$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_purchase = $date->format('Y-m-d');
|
||||||
|
|
||||||
$date_create = date('Y-m-d H:i:s');
|
$date_create = date('Y-m-d H:i:s');
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,8 @@ use App\Entity\Warranty;
|
||||||
use App\Entity\SAPBattery;
|
use App\Entity\SAPBattery;
|
||||||
|
|
||||||
use App\Ramcar\ServiceType;
|
use App\Ramcar\ServiceType;
|
||||||
|
use App\Ramcar\JOStatus;
|
||||||
|
use App\Ramcar\WarrantyClass;
|
||||||
|
|
||||||
use App\Service\WarrantyHandler;
|
use App\Service\WarrantyHandler;
|
||||||
|
|
||||||
|
|
@ -56,10 +58,11 @@ class WarrantyCleanupCommand extends Command
|
||||||
$end_date->setTime(23, 59);
|
$end_date->setTime(23, 59);
|
||||||
|
|
||||||
// get all job orders with battery new service type within date range
|
// 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)
|
$jo_query->setParameter('service_type', ServiceType::BATTERY_REPLACEMENT_NEW)
|
||||||
->setParameter('date_start', $start_date)
|
->setParameter('date_start', $start_date)
|
||||||
->setParameter('date_end', $end_date);
|
->setParameter('date_end', $end_date)
|
||||||
|
->setParameter('status', JOStatus::FULFILLED);
|
||||||
|
|
||||||
$jos = $jo_query->iterate();
|
$jos = $jo_query->iterate();
|
||||||
|
|
||||||
|
|
@ -109,7 +112,7 @@ class WarrantyCleanupCommand extends Command
|
||||||
if (empty($warranties_date_schedule))
|
if (empty($warranties_date_schedule))
|
||||||
{
|
{
|
||||||
// check if warranty exists with plate number and date_fulfilled
|
// 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');
|
$datetime_fulfilled_str = $datetime_fulfilled->format('Y-m-d');
|
||||||
$date_fulfilled = DateTime::createFromFormat('Y-m-d', $datetime_fulfilled_str);
|
$date_fulfilled = DateTime::createFromFormat('Y-m-d', $datetime_fulfilled_str);
|
||||||
|
|
||||||
|
|
@ -136,14 +139,16 @@ class WarrantyCleanupCommand extends Command
|
||||||
$warranty_period = $invoice_item->getBattery()->getWarrantyTnv();
|
$warranty_period = $invoice_item->getBattery()->getWarrantyTnv();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// NOTE: changing date_purchase to date_schedule unless told otherwise
|
||||||
|
$date_purchase = $datetime_schedule_str;
|
||||||
// compute expiration date
|
// compute expiration date
|
||||||
$expiry_date = $this->wh->computeDateExpire($date_schedule, $warranty_period);
|
$expiry_date = $this->wh->computeDateExpire($date_schedule, $warranty_period);
|
||||||
|
|
||||||
$date_expiry = $expiry_date->format('Y-m-d');
|
$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;
|
echo $update_sql_statement;
|
||||||
}
|
}
|
||||||
|
|
@ -152,7 +157,7 @@ class WarrantyCleanupCommand extends Command
|
||||||
error_log('no warranty date_fulfilled found.');
|
error_log('no warranty date_fulfilled found.');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
error_log('no warranty date_schedule found.');
|
error_log('warranty date_schedule found.');
|
||||||
|
|
||||||
$em->detach($row[0]);
|
$em->detach($row[0]);
|
||||||
$em->clear();
|
$em->clear();
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue