From f9c304422cc63088b058208c348c04becd030e7b Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Mon, 17 Feb 2020 14:43:21 +0000 Subject: [PATCH] Add fix when saving an invoice with no service charges. #341 --- src/Entity/JobOrder.php | 5 +++++ .../InvoiceGenerator/CMBInvoiceGenerator.php | 9 ++++++--- templates/job-order/cmb.form.onestep.html.twig | 15 ++++++++++++++- 3 files changed, 25 insertions(+), 4 deletions(-) diff --git a/src/Entity/JobOrder.php b/src/Entity/JobOrder.php index 08a1f15a..ed60c7ac 100644 --- a/src/Entity/JobOrder.php +++ b/src/Entity/JobOrder.php @@ -821,4 +821,9 @@ class JobOrder { return $this->meta[$id]; } + + public function getAllMeta() + { + return $this->meta; + } } diff --git a/src/Service/InvoiceGenerator/CMBInvoiceGenerator.php b/src/Service/InvoiceGenerator/CMBInvoiceGenerator.php index dcd6946d..180f7d1f 100644 --- a/src/Service/InvoiceGenerator/CMBInvoiceGenerator.php +++ b/src/Service/InvoiceGenerator/CMBInvoiceGenerator.php @@ -162,12 +162,15 @@ class CMBInvoiceGenerator implements InvoiceGeneratorInterface } // get the meta for service charges - $service_charges = $jo->getMeta('service_charges'); - if ($service_charges != null) + if (array_key_exists('service_charges', $jo->getAllMeta())) { $service_charges = $jo->getMeta('service_charges'); + if ($service_charges != null) + { + $service_charges = $jo->getMeta('service_charges'); - $this->invoiceServiceCharges($criteria, $service_charges); + $this->invoiceServiceCharges($criteria, $service_charges); + } } diff --git a/templates/job-order/cmb.form.onestep.html.twig b/templates/job-order/cmb.form.onestep.html.twig index 2f25a8cc..3b87f59e 100644 --- a/templates/job-order/cmb.form.onestep.html.twig +++ b/templates/job-order/cmb.form.onestep.html.twig @@ -1373,6 +1373,7 @@ $(function() { $("#btn-reset-invoice").click(function() { $("#invoice-discount").prop('selectedIndex', 0); invoiceItems = []; + sc_array = []; generateInvoice(); }); @@ -1688,6 +1689,19 @@ $(function() { console.log('removing service charge'); $(this).closest('.row').remove(); + + sc_array.length = 0; + + // get the service charges + $('.sc-select').each(function() { + var id = $(this).children('option:selected').val(); + sc_array.push({ + id: id, + }); + }); + + generateInvoice(); + return false; }); @@ -1704,7 +1718,6 @@ $(function() { sc_array.push({ id: id, }); - }); generateInvoice();