From a5c2c79783462c4af1519d53c43b554d1f804172 Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Thu, 14 May 2020 07:50:12 +0000 Subject: [PATCH] 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 --- .../GenerateWarrantyFromJobOrderCommand.php | 4 +++- src/Command/WarrantyCleanupCommand.php | 19 ++++++++++++------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/src/Command/GenerateWarrantyFromJobOrderCommand.php b/src/Command/GenerateWarrantyFromJobOrderCommand.php index a5c64488..2daa866f 100644 --- a/src/Command/GenerateWarrantyFromJobOrderCommand.php +++ b/src/Command/GenerateWarrantyFromJobOrderCommand.php @@ -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'); diff --git a/src/Command/WarrantyCleanupCommand.php b/src/Command/WarrantyCleanupCommand.php index d727ec26..87ffa286 100644 --- a/src/Command/WarrantyCleanupCommand.php +++ b/src/Command/WarrantyCleanupCommand.php @@ -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();