diff --git a/resources/views/pages/pdfs/deliver_order.blade.php b/resources/views/pages/pdfs/deliver_order.blade.php
index 715244c7..e957c0f0 100644
--- a/resources/views/pages/pdfs/deliver_order.blade.php
+++ b/resources/views/pages/pdfs/deliver_order.blade.php
@@ -84,17 +84,22 @@
@php
$subtotal = "0";
- $voucherDiscount = $voucher_redemption ? bcmul((string)$voucher_redemption->value, "-1", 2) : "0";
- $displayedSubtotal = 0;
+ $voucherDiscount = $voucher_redemption ? bcmul((string)$voucher_redemption->value, "-1", 5) : "0";
+ $displayedSubtotal = "0";
+ $exactTotal = "0";
@endphp
@foreach ($po_order_transaction->transactionDetails as $key => $transaction_detail)
@php
$exactUnitPrice = bcdiv($transaction_detail->price, $transaction->currency_rate, 5);
$itemTotal = bcmul($exactUnitPrice, $transaction_detail->quantity, 5);
- $displayedItemTotal = bcmul($exactUnitPrice, $transaction_detail->quantity, 2);
+
+ // Round half to even for displayed item total
+ $displayedItemTotal = round(bcmul($exactUnitPrice, $transaction_detail->quantity, 2), 2, PHP_ROUND_HALF_EVEN);
+
$displayedSubtotal = bcadd($displayedSubtotal, $displayedItemTotal, 2);
- $subtotal = bcadd($subtotal, $displayedItemTotal, 2);
+ $subtotal = bcadd($subtotal, $itemTotal, 5);
+ $exactTotal = bcadd($exactTotal, $displayedItemTotal, 5);
@endphp
| {{ $key + 1 }} |
@@ -112,7 +117,7 @@
@php
- $subtotalWithDiscount = bcsub($subtotal, $voucherDiscount, 5); // Use bcsub to subtract
+ $subtotalWithDiscount = bcsub($subtotal, $voucherDiscount, 5);
@endphp
|
@@ -141,10 +146,17 @@
@endif
@php
- $displayedTotal = bcadd(bcadd(bcadd($displayedSubtotal, $transaction->service_charge, 2), $transaction->tax, 2), $voucherDiscount, 2);
+ // Calculate the totals with 5 decimal places
$expectedTotal = bcadd(bcadd(bcadd($subtotal, $transaction->service_charge, 5), $transaction->tax, 5), $voucherDiscount, 5);
- $discrepancy = bcsub($displayedTotal, $expectedTotal, 5);
- $total = bcadd(bcadd(bcadd($subtotal, $transaction->service_charge, 5), $transaction->tax, 5), $voucherDiscount, 5); // Keep precision
+
+ // Calculate the displayed totals with 2 decimal places
+ $displayedTotal = bcadd(bcadd(bcadd($displayedSubtotal, $transaction->service_charge, 2), $transaction->tax, 2), $voucherDiscount, 2);
+
+ // Calculate the discrepancy
+ $discrepancy = bcsub($expectedTotal, $displayedTotal, 5);
+
+ // Calculate the final total
+ $total = bcadd($expectedTotal, $discrepancy, 5);
@endphp
|
diff --git a/resources/views/pages/pdfs/invoice.blade.php b/resources/views/pages/pdfs/invoice.blade.php
index db6c42c5..40706ce0 100644
--- a/resources/views/pages/pdfs/invoice.blade.php
+++ b/resources/views/pages/pdfs/invoice.blade.php
@@ -73,17 +73,22 @@
@php
$subtotal = "0";
- $voucherDiscount = $voucher_redemption ? bcmul((string)$voucher_redemption->value, "-1", 2) : "0";
- $displayedSubtotal = 0;
+ $voucherDiscount = $voucher_redemption ? bcmul((string)$voucher_redemption->value, "-1", 5) : "0";
+ $displayedSubtotal = "0";
+ $exactTotal = "0";
@endphp
@foreach ($po_order_transaction->transactionDetails as $key => $transaction_detail)
@php
- $exactUnitPrice = bcdiv($transaction_detail->price, $transaction->currency_rate, 7);
+ $exactUnitPrice = bcdiv($transaction_detail->price, $transaction->currency_rate, 5);
$itemTotal = bcmul($exactUnitPrice, $transaction_detail->quantity, 5);
- $displayedItemTotal = bcmul($exactUnitPrice, $transaction_detail->quantity, 2);
+
+ // Round half to even for displayed item total
+ $displayedItemTotal = round(bcmul($exactUnitPrice, $transaction_detail->quantity, 2), 2, PHP_ROUND_HALF_EVEN);
+
$displayedSubtotal = bcadd($displayedSubtotal, $displayedItemTotal, 2);
$subtotal = bcadd($subtotal, $itemTotal, 5);
+ $exactTotal = bcadd($exactTotal, $displayedItemTotal, 5);
@endphp
| {{ $key + 1 }} |
@@ -130,10 +135,17 @@
@endif
@php
- $displayedTotal = bcadd(bcadd(bcadd($subtotal, $transaction->service_charge, 5), $transaction->tax, 5), $voucherDiscount, 5);
+ // Calculate the totals with 5 decimal places
$expectedTotal = bcadd(bcadd(bcadd($subtotal, $transaction->service_charge, 5), $transaction->tax, 5), $voucherDiscount, 5);
- $discrepancy = bcsub($displayedTotal, $expectedTotal, 5);
- $total = bcadd(bcadd(bcadd($subtotal, $transaction->service_charge, 5), $transaction->tax, 5), $voucherDiscount, 5);
+
+ // Calculate the displayed totals with 2 decimal places
+ $displayedTotal = bcadd(bcadd(bcadd($displayedSubtotal, $transaction->service_charge, 2), $transaction->tax, 2), $voucherDiscount, 2);
+
+ // Calculate the discrepancy
+ $discrepancy = bcsub($expectedTotal, $displayedTotal, 5);
+
+ // Calculate the final total
+ $total = bcadd($expectedTotal, $discrepancy, 5);
@endphp
|
diff --git a/resources/views/pages/pdfs/purchase_order.blade.php b/resources/views/pages/pdfs/purchase_order.blade.php
index e0c9582f..3e79691a 100644
--- a/resources/views/pages/pdfs/purchase_order.blade.php
+++ b/resources/views/pages/pdfs/purchase_order.blade.php
@@ -91,15 +91,22 @@
@php
$subtotal = "0";
- $displayedSubtotal = 0;
+ $voucherDiscount = $voucher_redemption ? bcmul((string)$voucher_redemption->value, "-1", 5) : "0";
+ $displayedSubtotal = "0";
+ $exactTotal = "0";
@endphp
@foreach ($po_order_transaction->transactionDetails as $key => $transaction_detail)
@php
$exactUnitPrice = bcdiv($transaction_detail->price, $transaction->currency_rate, 5);
$itemTotal = bcmul($exactUnitPrice, $transaction_detail->quantity, 5);
- $displayedItemTotal = bcmul($exactUnitPrice, $transaction_detail->quantity, 2);
+
+ // Round half to even for displayed item total
+ $displayedItemTotal = round(bcmul($exactUnitPrice, $transaction_detail->quantity, 2), 2, PHP_ROUND_HALF_EVEN);
+
$displayedSubtotal = bcadd($displayedSubtotal, $displayedItemTotal, 2);
+ $subtotal = bcadd($subtotal, $itemTotal, 5);
+ $exactTotal = bcadd($exactTotal, $displayedItemTotal, 5);
@endphp
| {{ $key + 1 }} |
@@ -117,13 +124,7 @@
@php
- $voucherDiscount = $voucher_redemption ? bcmul((string)$voucher_redemption->value, "-1", 2) : "0";
- $subtotalWithDiscount = bcsub($subtotal, $voucherDiscount, 5); // Use bcsub to subtract
- $displayedTotal = bcadd(bcadd(bcadd($displayedSubtotal, $transaction->service_charge, 2), $transaction->tax, 2), $voucherDiscount, 2);
- $expectedTotal = bcadd(bcadd(bcadd($subtotal, $transaction->service_charge, 5), $transaction->tax, 5), $voucherDiscount, 5);
- $discrepancy = bcsub($displayedTotal, $expectedTotal, 5);
- $total = bcadd(bcadd(bcadd($subtotal, $transaction->service_charge, 5), $transaction->tax, 5), $voucherDiscount, 5); // Keep precision
- $subtotal = bcadd($subtotal, $displayedItemTotal, 2);
+ $subtotalWithDiscount = bcsub($subtotal, $voucherDiscount, 5);
@endphp
|
@@ -151,7 +152,19 @@
{{ number_format($transaction->tax, 2) }} |
@endif
+ @php
+ // Calculate the totals with 5 decimal places
+ $expectedTotal = bcadd(bcadd(bcadd($subtotal, $transaction->service_charge, 5), $transaction->tax, 5), $voucherDiscount, 5);
+ // Calculate the displayed totals with 2 decimal places
+ $displayedTotal = bcadd(bcadd(bcadd($displayedSubtotal, $transaction->service_charge, 2), $transaction->tax, 2), $voucherDiscount, 2);
+
+ // Calculate the discrepancy
+ $discrepancy = bcsub($expectedTotal, $displayedTotal, 5);
+
+ // Calculate the final total
+ $total = bcadd($expectedTotal, $discrepancy, 5);
+ @endphp
|
Adjustment |