Add output files for missing warranties, invalid plate numbers, and commercial private warranties. #407
This commit is contained in:
parent
4b11b7e200
commit
ed2e54f428
1 changed files with 82 additions and 4 deletions
|
|
@ -17,6 +17,8 @@ use App\Ramcar\ServiceType;
|
||||||
|
|
||||||
use App\Service\WarrantyHandler;
|
use App\Service\WarrantyHandler;
|
||||||
|
|
||||||
|
use DateTime;
|
||||||
|
|
||||||
class GetFlawedWarrantiesCommand extends Command
|
class GetFlawedWarrantiesCommand extends Command
|
||||||
{
|
{
|
||||||
protected $em;
|
protected $em;
|
||||||
|
|
@ -66,7 +68,7 @@ class GetFlawedWarrantiesCommand extends Command
|
||||||
$comm_private_warranties = $first_results_set['commercial_private'];
|
$comm_private_warranties = $first_results_set['commercial_private'];
|
||||||
|
|
||||||
// our warranty error categories: missing, commercial_private, invalid plate number, duplicate, start date of expiry computation wrong
|
// our warranty error categories: missing, commercial_private, invalid plate number, duplicate, start date of expiry computation wrong
|
||||||
$this->outputResults($missing_warranties, $invalid_plate_numbers, $comm_prvate_warranties);
|
$this->outputResults($s_date, $e_date, $missing_warranties, $invalid_plate_numbers, $comm_private_warranties);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
@ -130,7 +132,6 @@ class GetFlawedWarrantiesCommand extends Command
|
||||||
// check if plate number is "clean". If not, do not insert into warranty
|
// check if plate number is "clean". If not, do not insert into warranty
|
||||||
if (!(Warranty::cleanPlateNumber($cv->getPlateNumber())))
|
if (!(Warranty::cleanPlateNumber($cv->getPlateNumber())))
|
||||||
{
|
{
|
||||||
// log with the dupes
|
|
||||||
$invalids[] = [
|
$invalids[] = [
|
||||||
'jo_id' => $jo->getID(),
|
'jo_id' => $jo->getID(),
|
||||||
'plate_number' => $cv->getPlateNumber(),
|
'plate_number' => $cv->getPlateNumber(),
|
||||||
|
|
@ -144,7 +145,7 @@ class GetFlawedWarrantiesCommand extends Command
|
||||||
$cleaned_plate_number = Warranty::cleanPlateNumber($cv->getPlateNumber());
|
$cleaned_plate_number = Warranty::cleanPlateNumber($cv->getPlateNumber());
|
||||||
|
|
||||||
// use date_create of invoice as start date, as decided in group chat
|
// use date_create of invoice as start date, as decided in group chat
|
||||||
$expiry_date_date_create = $this->computeDateExpire($jo->getInvoice()->getDateCreate(), $warranty_period);
|
$expiry_date_date_create = $this->wh->computeDateExpire($jo->getInvoice()->getDateCreate(), $warranty_period);
|
||||||
$results = $em->getRepository(Warranty::class)->findBy(['plate_number' => $cleaned_plate_number,
|
$results = $em->getRepository(Warranty::class)->findBy(['plate_number' => $cleaned_plate_number,
|
||||||
'date_expire' => $expiry_date_date_create]);;
|
'date_expire' => $expiry_date_date_create]);;
|
||||||
|
|
||||||
|
|
@ -215,9 +216,86 @@ class GetFlawedWarrantiesCommand extends Command
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function outputResults($missing, $invalid, $commercial_private)
|
protected function outputResults($start_date, $end_date, $missing, $invalid, $commercial_private)
|
||||||
{
|
{
|
||||||
|
$date_range = $start_date . '-' . $end_date;
|
||||||
// output one file per array in csv format
|
// output one file per array in csv format
|
||||||
|
// missing warranties
|
||||||
|
// we output the JOs with no warranties
|
||||||
|
$missing_csv_filename = $date_range . '-' . 'missing_warranties.csv';
|
||||||
|
try
|
||||||
|
{
|
||||||
|
$missing_fh = fopen($missing_csv_filename, 'a');
|
||||||
|
}
|
||||||
|
catch (Exception $e)
|
||||||
|
{
|
||||||
|
throw new Exception('The file "' . $missing_csv_filename . '" could not be opened.');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((count($missing)) > 0)
|
||||||
|
{
|
||||||
|
fputcsv($missing_fh, [
|
||||||
|
'JO ID',
|
||||||
|
'Plate Number',
|
||||||
|
'Expiry Date',
|
||||||
|
]);
|
||||||
|
|
||||||
|
foreach($missing as $missing_row)
|
||||||
|
{
|
||||||
|
fputcsv($missing_fh, $missing_row);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// invalid plate numbers
|
||||||
|
$invalid_plates_csv_filename = $date_range . '-' . 'invalid_plate_jos.csv';
|
||||||
|
try
|
||||||
|
{
|
||||||
|
$invalid_plates_fh = fopen($invalid_plates_csv_filename, 'a');
|
||||||
|
}
|
||||||
|
catch (Exception $e)
|
||||||
|
{
|
||||||
|
throw new Exception('The file "' . $invalid_plates_csv_filename . '" could not be opened.');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((count($invalid)) > 0)
|
||||||
|
{
|
||||||
|
fputcsv($invalid_plates_fh, [
|
||||||
|
'JO ID',
|
||||||
|
'Plate Number',
|
||||||
|
'Expiry Date',
|
||||||
|
]);
|
||||||
|
|
||||||
|
foreach($invalid as $invalid_row)
|
||||||
|
{
|
||||||
|
fputcsv($invalid_plates_fh, $invalid_row);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// warranties whose expiration dates were set to the commercial period
|
||||||
|
// but warranty class is private
|
||||||
|
$comm_private_csv_filename = $date_range . '-' . 'comm_private_warranties.csv';
|
||||||
|
try
|
||||||
|
{
|
||||||
|
$comm_private_fh = fopen($comm_private_csv_filename, 'a');
|
||||||
|
}
|
||||||
|
catch (Exception $e)
|
||||||
|
{
|
||||||
|
throw new Exception('The file "' . $comm_private_csv_filename . '" could not be opened.');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((count($commercial_private)) > 0)
|
||||||
|
{
|
||||||
|
fputcsv($comm_private_fh, [
|
||||||
|
'Warranty ID',
|
||||||
|
'Plate Number',
|
||||||
|
'Expiry Date',
|
||||||
|
]);
|
||||||
|
|
||||||
|
foreach($commercial_private as $comm_private_row)
|
||||||
|
{
|
||||||
|
fputcsv($comm_private_fh, $comm_private_row);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function loadSAPBatteries()
|
protected function loadSAPBatteries()
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue