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