From 408545d1845e702b1f56ce7fd6ea856ac1e699d5 Mon Sep 17 00:00:00 2001 From: Omair Saleh Date: Wed, 16 Aug 2023 16:02:38 +0800 Subject: [PATCH] regenerate invoices for 2023 --- .../Helpers/InvoiceDocumentsHelper.php | 29 +++++++++++++++++ .../CreateInvoiceDocumentProcessor.php | 2 +- composer.json | 3 +- .../views/pages/pdfs/purchase_order.blade.php | 32 +++---------------- 4 files changed, 36 insertions(+), 30 deletions(-) create mode 100644 app/Classes/Helpers/InvoiceDocumentsHelper.php diff --git a/app/Classes/Helpers/InvoiceDocumentsHelper.php b/app/Classes/Helpers/InvoiceDocumentsHelper.php new file mode 100644 index 00000000..8b7ba8c4 --- /dev/null +++ b/app/Classes/Helpers/InvoiceDocumentsHelper.php @@ -0,0 +1,29 @@ +transactionDetails as $transaction_detail) { + $unitPrice = bcdiv((string)$transaction_detail->price, (string)$currencyRate, 5); + $itemTotal = bcmul($unitPrice, (string)$transaction_detail->quantity, 5); + $subtotal = bcadd($subtotal, $itemTotal, 5); + } + return $subtotal; + } + + public static function getVoucherDiscount($voucher_redemption) { + return $voucher_redemption ? bcmul((string)$voucher_redemption->value, "-1", 2) : "0"; + } + + public static function roundUp($number, $decimals) { + $factor = pow(10, $decimals); + if ($number > 0) { + return ceil($number * $factor) / $factor; + } else { + return floor($number * $factor) / $factor; + } + } +} diff --git a/app/Classes/Modules/Transactions/Processors/CreateInvoiceDocumentProcessor.php b/app/Classes/Modules/Transactions/Processors/CreateInvoiceDocumentProcessor.php index 6215a1e1..2bbf5b88 100644 --- a/app/Classes/Modules/Transactions/Processors/CreateInvoiceDocumentProcessor.php +++ b/app/Classes/Modules/Transactions/Processors/CreateInvoiceDocumentProcessor.php @@ -1,7 +1,7 @@ @php - $subtotal = calculatePoSubtotal($po_order_transaction, $transaction->currency_rate); - $voucherDiscount = getPoVoucherDiscount($voucher_redemption); + $subtotal = InvoiceDocumentsHelper::calculateSubtotal($po_order_transaction, $transaction->currency_rate); + $voucherDiscount = InvoiceDocumentsHelper::getVoucherDiscount($voucher_redemption); $displayedSubtotal = 0; @endphp @@ -118,7 +118,7 @@ @php - $voucherDiscount = getPoVoucherDiscount($voucher_redemption); + $voucherDiscount = InvoiceDocumentsHelper::getVoucherDiscount($voucher_redemption); $subtotalWithDiscount = bcsub($subtotal, $voucherDiscount, 5); // Use bcsub to subtract @endphp @@ -156,7 +156,7 @@ Adjustment - {{ roundUpPo($discrepancy,2) }} + {{ InvoiceDocumentsHelper::roundUp($discrepancy,2) }} @@ -175,28 +175,4 @@ - @php - function calculatePoSubtotal($po_order_transaction, $currencyRate) { - $subtotal = "0"; - foreach ($po_order_transaction->transactionDetails as $transaction_detail) { - $unitPrice = bcdiv((string)$transaction_detail->price, (string)$currencyRate, 5); - $itemTotal = bcmul($unitPrice, (string)$transaction_detail->quantity, 5); - $subtotal = bcadd($subtotal, $itemTotal, 5); - } - return $subtotal; - } - - function getPoVoucherDiscount($voucher_redemption) { - return $voucher_redemption ? bcmul((string)$voucher_redemption->value, "-1", 2) : "0"; - } - function roundUpPo($number, $decimals) { - $factor = pow(10, $decimals); - if ($number > 0) { - return ceil($number * $factor) / $factor; - } else { - return floor($number * $factor) / $factor; - } - } - - @endphp @endsection