From 4ccdd29ae65841847d0b1cbe306f0c0355dbd446 Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Fri, 21 Jun 2024 03:39:44 -0400 Subject: [PATCH] Changed the input for trade in items to battery size. #03 --- src/InvoiceRule/BatterySales.php | 24 ++++----- src/InvoiceRule/TradeIn.php | 50 ++++++++----------- .../JobOrderHandler/ResqJobOrderHandler.php | 15 +++--- templates/invoice/trade_in.html.twig | 8 +-- templates/invoice/trade_in.js.twig | 4 +- 5 files changed, 47 insertions(+), 54 deletions(-) diff --git a/src/InvoiceRule/BatterySales.php b/src/InvoiceRule/BatterySales.php index 262d39eb..7938fe6e 100644 --- a/src/InvoiceRule/BatterySales.php +++ b/src/InvoiceRule/BatterySales.php @@ -103,21 +103,21 @@ class BatterySales implements InvoiceRuleInterface // check if this is a valid battery foreach ($invoice_items as $item) { - $battery = $this->em->getRepository(Battery::class)->find($item['battery']); - - if (empty($battery)) + if (isset($item['battery'])) { - $error = 'Invalid battery specified.'; - return $error; - } + $battery = $this->em->getRepository(Battery::class)->find($item['battery']); - // quantity - $qty = $item['quantity']; - if ($qty < 1) - continue; + if (empty($battery)) + { + $error = 'Invalid battery specified.'; + return $error; + } + + // quantity + $qty = $item['quantity']; + if ($qty < 1) + continue; - if (empty($item['trade_in'])) - { $trade_in = null; $criteria->addEntry($battery, $trade_in, $qty); } diff --git a/src/InvoiceRule/TradeIn.php b/src/InvoiceRule/TradeIn.php index b4872472..f3926d8b 100644 --- a/src/InvoiceRule/TradeIn.php +++ b/src/InvoiceRule/TradeIn.php @@ -9,7 +9,7 @@ use App\InvoiceRuleInterface; use App\Ramcar\TradeInType; use App\Ramcar\ServiceType; -use App\Entity\Battery; +use App\Entity\BatterySize; class TradeIn implements InvoiceRuleInterface { @@ -41,16 +41,7 @@ class TradeIn implements InvoiceRuleInterface if ($trade_in_type != null) { - // at this point, entry is a trade in - // need to check if battery (coming from CRM) is set - // or battery_size is set (coming from rider app) - //if (isset($entry['battery'])) - //{ - // $battery = $entry['battery']; - // $batt_size = $battery->getSize(); - //} - //else - $batt_size = $entry['battery_size']; + $batt_size = $entry['battery_size']; $ti_rate = $this->getTradeInRate($batt_size, $trade_in_type); @@ -80,8 +71,7 @@ class TradeIn implements InvoiceRuleInterface public function validateInvoiceItems($criteria, $invoice_items) { - // check service type. Only battery sales and battery warranty should have invoice items. Since this is the battery sales - // rule, we only check for battery sales. + // check service type. Only battery sales and battery warranty should have invoice items. $stype = $criteria->getServiceType(); if ($stype != ServiceType::BATTERY_REPLACEMENT_NEW) return null; @@ -92,25 +82,27 @@ class TradeIn implements InvoiceRuleInterface // check if this is a valid battery foreach ($invoice_items as $item) { - $battery = $this->em->getRepository(Battery::class)->find($item['battery']); - - if (empty($battery)) + if (isset($item['battery_size'])) { - $error = 'Invalid battery specified.'; - return $error; - } + $battery_size = $this->em->getRepository(BatterySize::class)->find($item['battery_size']); - // quantity - $qty = $item['quantity']; - if ($qty < 1) - continue; + if (empty($battery_size)) + { + $error = 'Invalid battery size specified.'; + return $error; + } - // if this is a trade in, add trade in - if (!empty($item['trade_in']) && TradeInType::validate($item['trade_in'])) - { - $trade_in = $item['trade_in']; - $battery_size = $battery->getSize(); - $criteria->addTradeInEntry($battery_size, $trade_in, $qty); + // quantity + $qty = $item['quantity']; + if ($qty < 1) + continue; + + // check if trade in is set and if trade in type if valid + if (!empty($item['trade_in']) && TradeInType::validate($item['trade_in'])) + { + $trade_in = $item['trade_in']; + $criteria->addTradeInEntry($battery_size, $trade_in, $qty); + } } } } diff --git a/src/Service/JobOrderHandler/ResqJobOrderHandler.php b/src/Service/JobOrderHandler/ResqJobOrderHandler.php index 55486d0c..7603d743 100644 --- a/src/Service/JobOrderHandler/ResqJobOrderHandler.php +++ b/src/Service/JobOrderHandler/ResqJobOrderHandler.php @@ -30,6 +30,7 @@ use App\Entity\EmergencyType; use App\Entity\OwnershipType; use App\Entity\CustomerLocation; use App\Entity\Battery; +use App\Entity\BatterySize; use App\Ramcar\ServiceType; use App\Ramcar\TradeInType; @@ -3560,15 +3561,15 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface $params['trade_in_bmfgs'] = $em->getRepository(BatteryManufacturer::class)->findAll(); $params['promos'] = $em->getRepository(Promo::class)->findAll(); - // list of batteries for trade-in - $ti_batteries = $em->getRepository(Battery::class)->findAll(); - $trade_in_batteries = []; - foreach ($ti_batteries as $ti_battery) + // list of battery sizes for trade-in + $ti_batt_sizes = $em->getRepository(BatterySize::class)->findAll(); + $trade_in_batt_sizes = []; + foreach ($ti_batt_sizes as $ti_batt_size) { - $battery_name = $ti_battery->getModel()->getName() . ' ' . $ti_battery->getSize()->getName(); - $trade_in_batteries[$ti_battery->getID()] = $battery_name; + $batt_size_name = $ti_batt_size->getName(); + $trade_in_batt_sizes[$ti_batt_size->getID()] = $batt_size_name; } - $params['trade_in_batteries'] = $trade_in_batteries; + $params['trade_in_batt_sizes'] = $trade_in_batt_sizes; // list of emergency types $e_types = $em->getRepository(EmergencyType::class)->findBy([], ['name' => 'ASC']); diff --git a/templates/invoice/trade_in.html.twig b/templates/invoice/trade_in.html.twig index e033143d..4ac94b06 100644 --- a/templates/invoice/trade_in.html.twig +++ b/templates/invoice/trade_in.html.twig @@ -8,11 +8,11 @@
- - - {% for id, battery_name in trade_in_batteries %} - + {% for id, batt_size_name in trade_in_batt_sizes %} + {% endfor %}
diff --git a/templates/invoice/trade_in.js.twig b/templates/invoice/trade_in.js.twig index a93fce56..8a109a79 100644 --- a/templates/invoice/trade_in.js.twig +++ b/templates/invoice/trade_in.js.twig @@ -1,13 +1,13 @@ // add trade in battery to invoice $('#btn-add-trade-in-to-invoice').click(function() { var bmfg = $("#invoice-trade-in-bmfg").val(); - var battery = $("#invoice-trade-in-battery").val(); + var battery_size = $("#invoice-trade-in-battery-size").val(); var tradeIn = $("#invoice-trade-in-type").val(); var qty = $("#invoice-trade-in-quantity").val(); // add to invoice array invoiceItems.push({ - battery: battery, + battery_size: battery_size, quantity: qty, trade_in: tradeIn, });