From a50d59116069aa3af5bdd2cc80ee76063c05254a Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Thu, 7 Apr 2022 09:32:23 +0000 Subject: [PATCH] Redo warranty flow. #654 --- src/Command/FulfillOpenJobOrderCommand.php | 33 +++++++-- src/Service/WarrantyHandler.php | 86 ++++++++++++++-------- 2 files changed, 82 insertions(+), 37 deletions(-) diff --git a/src/Command/FulfillOpenJobOrderCommand.php b/src/Command/FulfillOpenJobOrderCommand.php index 3dd37b89..2fefc0d6 100644 --- a/src/Command/FulfillOpenJobOrderCommand.php +++ b/src/Command/FulfillOpenJobOrderCommand.php @@ -13,6 +13,7 @@ use App\Entity\JobOrder; use App\Entity\JOEvent; use App\Entity\User; use App\Entity\Warranty; +use App\Entity\SAPBattery; use App\Ramcar\JOStatus; use App\Ramcar\JOEventType; @@ -49,6 +50,23 @@ class FulfillOpenJobOrderCommand extends Command protected function execute(InputInterface $input, OutputInterface $output) { + /* + $sap_code = 'WSLMF9BR-RV100-L'; + + error_log($sap_code); + + $conn = $this->em->getConnection(); + $sql = 'SELECT sap.id FROM sap_battery sap WHERE sap.id = :id'; + $stmt = $conn->prepare($sql); + $stmt->execute(array('id' => $sap_code)); + + $query_results = $stmt->fetchColumn(); + + error_log($query_results); + + return 0; + */ + // get the input date $str_date_end = $input->getArgument('end_date'); @@ -59,25 +77,29 @@ class FulfillOpenJobOrderCommand extends Command // starting time to count is date schedule $date_end = new DateTime($str_date_end); - error_log($date_end->format('Y-m-d H:i:s')); + error_log('mogol ' . $date_end->format('Y-m-d H:i:s')); + /* $query = $this->em->createQuery('SELECT jo FROM App\Entity\JobOrder jo WHERE (jo.status = :pending_status OR jo.status = :rider_assign_status OR jo.status = :assigned_status OR jo.status = :in_progress_status OR jo.status = :in_transit_status) - AND jo.date_schedule <= :date_end'); + AND jo.date_schedule <= :date_end + AND jo.service_type = :stype'); - $jo_results = $query->setParameters([ + $query->setParameters([ 'pending_status' => JOStatus::PENDING, 'rider_assign_status' => JOStatus::RIDER_ASSIGN, 'assigned_status' => JOStatus::ASSIGNED, 'in_progress_status' => JOStatus::IN_PROGRESS, 'in_transit_status' => JOStatus::IN_TRANSIT, 'date_end' => $date_end, - ]) - ->getResult(); + 'stype' => ServiceType::BATTERY_REPLACEMENT_NEW, + ])->setMaxResults(1); + + $jo_results = $query->getResult(); error_log('Found job orders ' . count($jo_results)); @@ -111,6 +133,7 @@ class FulfillOpenJobOrderCommand extends Command } $this->em->flush(); + */ return 0; } diff --git a/src/Service/WarrantyHandler.php b/src/Service/WarrantyHandler.php index 24499b78..b59083a2 100644 --- a/src/Service/WarrantyHandler.php +++ b/src/Service/WarrantyHandler.php @@ -33,12 +33,12 @@ class WarrantyHandler $batt_list, DateTime $date_purchase, $warranty_class, $user_id, $source, $customer, $cust_vehicle) { - // new warranty - $warranty = new Warranty(); - + $bmodel_id = ''; + $bsize_id = ''; $bmodel_name = ''; $bsize_name =''; $sap_batt_id = ''; + $w_serial = null; foreach ($batt_list as $battery) { @@ -46,30 +46,35 @@ class WarrantyHandler $bty_model = $battery->getModel(); $bty_size = $battery->getSize(); - //$bty_model = $this->em->getRepository(BatteryModel::class)->find($model_id); - //$bty_size = $this->em->getRepository(BatterySize::class)->find($size_id); - if ($bty_model != null) { - $warranty->setBatteryModel($bty_model); + $bmodel_id = $bty_model->getID(); $bmodel_name = $bty_model->getName(); } if ($bty_size != null) { - $warranty->setBatterySize($bty_size); + $bsize_id = $bty_size->getID(); $bsize_name = $bty_size->getName(); - } + } $sap_code = $battery->getSAPCode(); if (!empty($sap_code)) { // find sap battery - $sap_battery = $this->em->getRepository(SAPBattery::class)->find($sap_code); - if ($sap_battery != null) + /* + $conn = $this->em->getConnection(); + $sql = 'SELECT sap.id FROM sap_battery sap WHERE sap.id = :id'; + $stmt = $conn->prepare($sql); + $stmt->execute(array('id' => $sap_code)); + + $query_results = $stmt->fetchAll(); + + foreach($query_results as $row) { - $warranty->setSAPBattery($sap_battery); - $sap_batt_id = $sap_battery->getID(); + $sap_batt_id = $row['id']; } + */ + $sap_batt_id = $sap_code; } } @@ -80,27 +85,44 @@ class WarrantyHandler { $period = $this->getWarrantyPeriod($batt_list, $warranty_class); $date_expire = $this->computeDateExpire($date_purchase, $period); - - $warranty->setDateExpire($date_expire); } // set and save values - if (trim($serial) == '') - $warranty->setSerial(null); - else - $warranty->setSerial($serial); - $warranty->setPlateNumber($plate_number) - ->setFirstName($first_name) - ->setLastName($last_name) - ->setMobileNumber($mobile_number) - ->setDatePurchase($date_purchase) - ->setWarrantyClass($warranty_class) - ->setCreateSource($source) - ->setCustomer($customer) - ->setVehicle($cust_vehicle); + if (trim($serial) != '') + $w_serial = $serial; - $this->em->persist($warranty); - $this->em->flush(); + // insert warranty + $q = $this->em->createQuery('INSERT App\Entity\Warranty w + SET w.serial = :serial, + w.plate_number = :plate_number, + w.first_name = :first_name, + w.last_name = :last_name, + w.mobile_number = :mobile_number, + w.date_purchase = :date_purchase, + w.warranty_class = :warranty_class, + w.create_source = :create_source, + w.customer_id = :customer_id, + w.vehicle_id = :vehicle_id, + w.bty_model_id = :bmodel_id, + w.bty_size_id = :bsize_id, + w.sap_bty_id = :sap_batt_id, + w.date_expire = :date_expire') + ->setParameters([ + 'serial' => $serial, + 'plate_number' => $plate_number, + 'first_name' => $first_name, + 'last_name' => $last_name, + 'mobile_number' => $mobile_number, + 'date_purchase' => $date_purchase, + 'warranty_class' => $warranty_class, + 'create_source' => $source, + 'customer_id' => $customer->getID(), + 'vehicle_id' => $cust_vehicle->getID(), + 'bmodel_id' => $bmodel_id, + 'bsize_id' => $bsize_id, + 'sap_batt_id' => $sap_batt_id, + 'date_expire' => $date_expire]); + $q->execute(); // log warranty creation $action = 'create'; @@ -121,10 +143,10 @@ class WarrantyHandler 'sap_battery' => $sap_batt_id, 'plate_number' => $plate_number, ]; - $this->logger->logWarrantyInfo($log_data, '', $user_id, $action, $source); + //$this->logger->logWarrantyInfo($log_data, '', $user_id, $action, $source); // update customer vehicle with warranty info - $this->updateCustomerVehicle($serial, $batt_list, $plate_number, $date_expire); + //$this->updateCustomerVehicle($serial, $batt_list, $plate_number, $date_expire); } public function updateCustomerVehicle($serial, $batteries, $plate_number, $date_expire)