From 90628f0b541a64e6d2a54c8759bc68971817f2fd Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Fri, 21 Jun 2024 05:24:58 -0400 Subject: [PATCH] Add trade in type to invoice item. #03 --- src/Entity/InvoiceItem.php | 18 ++++++++++++++++++ src/InvoiceRule/TradeIn.php | 1 + src/Service/InvoiceManager.php | 8 +++++++- templates/job-order/form.html.twig | 9 +++------ 4 files changed, 29 insertions(+), 7 deletions(-) diff --git a/src/Entity/InvoiceItem.php b/src/Entity/InvoiceItem.php index bd90c5e8..c5a92c0f 100644 --- a/src/Entity/InvoiceItem.php +++ b/src/Entity/InvoiceItem.php @@ -57,10 +57,17 @@ class InvoiceItem */ protected $battery_size; + // trade in type + /** + * @ORM\Column(type="string", length=20) + */ + protected $trade_in_type; + public function __construct() { $this->title = ''; $this->price = 0.0; + $this->trade_in_type = ''; } public function getID() @@ -133,4 +140,15 @@ class InvoiceItem { return $this->battery_size; } + + public function setTradeInType(string $trade_in_type) + { + $this->trade_in_type = $trade_in_type; + return $this; + } + + public function getTradeInType() + { + return $this->trade_in_type; + } } diff --git a/src/InvoiceRule/TradeIn.php b/src/InvoiceRule/TradeIn.php index f3926d8b..4ea7d028 100644 --- a/src/InvoiceRule/TradeIn.php +++ b/src/InvoiceRule/TradeIn.php @@ -54,6 +54,7 @@ class TradeIn implements InvoiceRuleInterface $items[] = [ 'battery_size' => $batt_size, + 'trade_in_type' => $trade_in_type, 'qty' => $qty, 'title' => $this->getTitle($batt_size, $trade_in_type), 'price' => $price, diff --git a/src/Service/InvoiceManager.php b/src/Service/InvoiceManager.php index 2a883593..da8770cc 100644 --- a/src/Service/InvoiceManager.php +++ b/src/Service/InvoiceManager.php @@ -216,6 +216,7 @@ class InvoiceManager implements InvoiceGeneratorInterface $battery = null; $battery_size = null; + $trade_in_type = ''; if (isset($item['battery'])) $battery = $item['battery']; @@ -225,12 +226,16 @@ class InvoiceManager implements InvoiceGeneratorInterface if (isset($item['battery_size'])) $battery_size = $item['battery_size']; + if (isset($item['trade_in_type'])) + $trade_in_type = $item['trade_in_type']; + $invoice_items[] = [ 'title' => $title, 'quantity' => $quantity, 'price' => $price, 'battery' => $battery, 'battery_size' => $battery_size, + 'trade_in_type' => $trade_in_type, ]; } } @@ -279,7 +284,8 @@ class InvoiceManager implements InvoiceGeneratorInterface $invoice_item->setInvoice($invoice) ->setTitle($item['title']) ->setQuantity($item['quantity']) - ->setPrice((float)$item['price']); + ->setPrice((float)$item['price']) + ->setTradeInType($item['trade_in_type']); if ($item['battery'] != null) $invoice_item->setBattery($item['battery']); diff --git a/templates/job-order/form.html.twig b/templates/job-order/form.html.twig index c0332bb4..e597f44d 100644 --- a/templates/job-order/form.html.twig +++ b/templates/job-order/form.html.twig @@ -1240,17 +1240,14 @@ $(function() { console.log('populateInvoiceItems start'); {% if invoice_items is defined %} {% for item in invoice_items %} + var qty = {{ item.getQuantity }}; {% if item.getBattery is not null %} var battery_id = {{ item.getBattery.getID }}; - var qty = {{ item.getQuantity }}; + var trade_in = ''; console.log(battery_id); {% else %} - // check if it's a trade in entry - var title = '{{ item.getTitle }}'; - if (title.includes('Trade-in')) { - console.log(title + ' a trade in'); - } + var battery_size = {{ item.getBatterySize.GetID }}; {% endif %} {% endfor %} {% endif %}