From 05073f3a0c593afb2efb8dc7877979e4dabb184f Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Wed, 7 Jun 2023 05:30:37 -0400 Subject: [PATCH] Add frontend elements for testing JO saving. #744 --- src/Controller/JobOrderController.php | 9 ++-- .../JobOrderHandler/ResqJobOrderHandler.php | 12 +++++ templates/invoice/trade_in.html.twig | 46 +++++++++++++++++++ templates/invoice/trade_in.js.twig | 17 +++++++ templates/job-order/form.html.twig | 10 ++-- 5 files changed, 86 insertions(+), 8 deletions(-) create mode 100644 templates/invoice/trade_in.html.twig create mode 100644 templates/invoice/trade_in.js.twig diff --git a/src/Controller/JobOrderController.php b/src/Controller/JobOrderController.php index c51a34c9..5c955f2b 100644 --- a/src/Controller/JobOrderController.php +++ b/src/Controller/JobOrderController.php @@ -16,7 +16,6 @@ use App\Entity\VehicleManufacturer; use App\Entity\Vehicle; use App\Entity\Hub; -use App\Service\InvoiceGeneratorInterface; use App\Service\JobOrderHandlerInterface; use App\Service\GISManagerInterface; use App\Service\MapTools; @@ -24,6 +23,7 @@ use App\Service\MQTTClient; use App\Service\APNSClient; use App\Service\InventoryManager; use App\Service\HubSelector; +use App\Service\InvoiceManager; use App\Service\RiderTracker; use App\Service\MotivConnector; @@ -713,7 +713,7 @@ class JobOrderController extends Controller } - public function generateInvoice(Request $req, InvoiceGeneratorInterface $ic) + public function generateInvoice(Request $req, InvoiceManager $ic) { // error_log('generating invoice...'); $error = false; @@ -724,8 +724,6 @@ class JobOrderController extends Controller $cvid = $req->request->get('cvid'); $service_charges = $req->request->get('service_charges', []); - // TODO: set if taxable here - $em = $this->getDoctrine()->getManager(); // get customer vehicle @@ -739,7 +737,8 @@ class JobOrderController extends Controller // instantiate invoice criteria $criteria = new InvoiceCriteria(); $criteria->setServiceType($stype) - ->setCustomerVehicle($cv); + ->setCustomerVehicle($cv) + ->setIsTaxable(); /* diff --git a/src/Service/JobOrderHandler/ResqJobOrderHandler.php b/src/Service/JobOrderHandler/ResqJobOrderHandler.php index 4c5040dc..de3a63f5 100644 --- a/src/Service/JobOrderHandler/ResqJobOrderHandler.php +++ b/src/Service/JobOrderHandler/ResqJobOrderHandler.php @@ -29,6 +29,7 @@ use App\Entity\CustomerTag; use App\Entity\EmergencyType; use App\Entity\OwnershipType; use App\Entity\CustomerLocation; +use App\Entity\Battery; use App\Ramcar\ServiceType; use App\Ramcar\TradeInType; @@ -3442,8 +3443,19 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface // db loaded $params['bmfgs'] = $em->getRepository(BatteryManufacturer::class)->findAll(); + $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) + { + $battery_name = $ti_battery->getModel()->getName() . ' ' . $ti_battery->getSize()->getName(); + $trade_in_batteries[$ti_battery->getID()] = $battery_name; + } + $params['trade_in_batteries'] = $trade_in_batteries; + // list of emergency types $e_types = $em->getRepository(EmergencyType::class)->findBy([], ['name' => 'ASC']); $emergency_types = []; diff --git a/templates/invoice/trade_in.html.twig b/templates/invoice/trade_in.html.twig new file mode 100644 index 00000000..e033143d --- /dev/null +++ b/templates/invoice/trade_in.html.twig @@ -0,0 +1,46 @@ +
+
+ + +
+
+ + +
+
+ + +
+
+ + + +
+
+ + +
+
+
+ +
+
diff --git a/templates/invoice/trade_in.js.twig b/templates/invoice/trade_in.js.twig new file mode 100644 index 00000000..a93fce56 --- /dev/null +++ b/templates/invoice/trade_in.js.twig @@ -0,0 +1,17 @@ +// 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 tradeIn = $("#invoice-trade-in-type").val(); + var qty = $("#invoice-trade-in-quantity").val(); + + // add to invoice array + invoiceItems.push({ + battery: battery, + quantity: qty, + trade_in: tradeIn, + }); + + // regenerate the invoice + generateInvoice(); +}); diff --git a/templates/job-order/form.html.twig b/templates/job-order/form.html.twig index 95c548b5..b2e17e34 100644 --- a/templates/job-order/form.html.twig +++ b/templates/job-order/form.html.twig @@ -715,6 +715,7 @@ +
@@ -748,6 +750,7 @@
+ {% include('invoice/trade_in.html.twig') %} {% endif %} @@ -1190,7 +1193,6 @@