From e8670e4b60695292416bff10e5d3e7002814d85a Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Fri, 6 May 2022 10:17:27 +0000 Subject: [PATCH] Add index for serial. Add additional checks for serial in warranty. #660 --- src/Command/TestWarrantyUploadCommand.php | 31 ++++++++++++++++++----- src/Entity/Warranty.php | 5 +++- 2 files changed, 28 insertions(+), 8 deletions(-) diff --git a/src/Command/TestWarrantyUploadCommand.php b/src/Command/TestWarrantyUploadCommand.php index 99722b04..4b216472 100644 --- a/src/Command/TestWarrantyUploadCommand.php +++ b/src/Command/TestWarrantyUploadCommand.php @@ -157,8 +157,8 @@ class TestWarrantyUploadCommand extends Command $cv_results = $stmt->fetch(); - $cust_id = null; - $vehicle_id = null; + $cust_id = 'NULL'; + $vehicle_id = 'NULL'; if (!empty($cv_results)) { $cust_id = $cv_results['c_id']; @@ -238,7 +238,7 @@ class TestWarrantyUploadCommand extends Command } // validate date purchase // (1) date purchase should not be empty - // (2) date purchase should be of format: m/d/y + // (2) date purchase should be of format: d-M-y if (empty($date_purchase)) { $message = 'No date purchase.'; @@ -246,10 +246,10 @@ class TestWarrantyUploadCommand extends Command return $errors; } - $purchase_date = DateTime::createFromFormat('d-M-y', $date_purchase); + $purchase_date = DateTime::createFromFormat('m/d/y', $date_purchase); if ($purchase_date === false) { - $message = 'Invalid date format. Date format should be: dd-mon-yy (example: 27-Nov-21)'; + $message = 'Invalid date format. Date format should be: m/d/y (example: 06/13/16)'; $errors = $this->setOutputInfo($fields, 'NOT ADDED', $message); return $errors; } @@ -288,10 +288,11 @@ class TestWarrantyUploadCommand extends Command return $errors; } - // check if warranty exists using serial + plate number + // (1) check if warranty exists using serial + plate number + // (2) check if serial already exists even if for another plate number $conn = $this->em->getConnection(); - // find warranties + // find warranties using serial + plate number $sql = 'SELECT w.id FROM warranty w WHERE w.serial = :serial AND w.plate_number = :plate_number'; $stmt = $conn->prepare($sql); $stmt->execute([ @@ -308,6 +309,22 @@ class TestWarrantyUploadCommand extends Command return $errors; } + // find warranties using serial number alone + $w_sql = 'SELECT w.id FROM warranty w WHERE w.serial = :serial'; + $w_stmt = $conn->prepare($w_sql); + $w_stmt->execute([ + 'serial' => $serial, + ]); + + $w_results = $w_stmt->fetchAll(); + + if (!empty($w_results)) + { + $message = 'Warranty already exists for serial.'; + $errors = $this->setOutputInfo($fields, 'NOT ADDED', $message); + return $errors; + } + return $errors; } diff --git a/src/Entity/Warranty.php b/src/Entity/Warranty.php index 4782a0c4..9a35b421 100644 --- a/src/Entity/Warranty.php +++ b/src/Entity/Warranty.php @@ -15,7 +15,10 @@ use Exception; * uniqueConstraints={ * @ORM\UniqueConstraint(columns={"serial"}) * }, - * indexes={@ORM\Index(name="plate_number_idx", columns={"plate_number"})}) + * indexes={ + * @ORM\Index(name="plate_number_idx", columns={"plate_number"}), + @ORM\Index(name="serial_idx", columns={"serial"}) + * }) * ) */ class Warranty