From af6765f662db72bf17d408287c346cd20e492d00 Mon Sep 17 00:00:00 2001 From: Kendrick Chan Date: Mon, 9 Apr 2018 02:00:37 +0800 Subject: [PATCH] Add post replacement and recharge in invoice creator #80 --- src/Service/InvoiceCreator.php | 37 +++++++++++++++++++++++++++++++--- 1 file changed, 34 insertions(+), 3 deletions(-) diff --git a/src/Service/InvoiceCreator.php b/src/Service/InvoiceCreator.php index df33c0e2..fee5a02f 100644 --- a/src/Service/InvoiceCreator.php +++ b/src/Service/InvoiceCreator.php @@ -56,7 +56,7 @@ class InvoiceCreator protected function processEntries(&$total, InvoiceCriteria $criteria, Invoice $invoice) { - error_log('processing entries...'); + // error_log('processing entries...'); $entries = $criteria->getEntries(); $con_batts = []; @@ -203,9 +203,35 @@ class InvoiceCreator $total['total_price'] = 150.00; } + public function processRecharge(&$total, $invoice) + { + // add recharge fee + $item = new InvoiceItem(); + $item->setInvoice($invoice) + ->setTitle('Recharge fee') + ->setQuantity(1) + ->setPrice(300.00); + $invoice->addItem($item); + + $total['sell_price'] = 300.00; + $total['vat_ex_price'] = 300.00; + $total['total_price'] = 300.00; + } + + public function processReplacement(&$total, $invoice) + { + // add recharge fee + $item = new InvoiceItem(); + $item->setInvoice($invoice) + ->setTitle('Battery replacement') + ->setQuantity(1) + ->setPrice(0.00); + $invoice->addItem($item); + } + public function processWarranty(&$total, InvoiceCriteria $criteria, $invoice) { - error_log('processing warranty'); + // error_log('processing warranty'); $entries = $criteria->getEntries(); foreach ($entries as $entry) { @@ -233,7 +259,7 @@ class InvoiceCreator ]; $stype = $criteria->getServiceType(); - error_log($stype); + // error_log($stype); switch ($stype) { case ServiceType::JUMPSTART_TROUBLESHOOT: @@ -252,6 +278,11 @@ class InvoiceCreator case ServiceType::BATTERY_REPLACEMENT_WARRANTY: $this->processWarranty($total, $criteria, $invoice); break; + case ServiceType::POST_RECHARGED: + $this->processRecharge($total, $invoice); + break; + case ServiceType::POST_REPLACEMENT: + $this->processReplacement($total, $invoice); } // TODO: check if any promo is applied