regenerate invoices for 2023

This commit is contained in:
Omair Saleh
2023-08-16 16:02:38 +08:00
parent e88f0c8f0c
commit 408545d184
4 changed files with 36 additions and 30 deletions
@@ -0,0 +1,29 @@
<?php
namespace App\Classes\Helpers;
class InvoiceDocumentsHelper
{
public static function calculateSubtotal($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;
}
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;
}
}
}
@@ -1,7 +1,7 @@
<?php
namespace App\Classes\Modules\Transactions\Processors;
use App\Helpers\HelperClass;
use App\Classes\Modules\Documents\Services\CreatesDocument;
use App\Classes\Modules\Documents\Services\CreatesFiles;
use App\Classes\Modules\Documents\DataTransferObjects\DocumentObject;
+2 -1
View File
@@ -31,7 +31,8 @@
"staudenmeir/eloquent-has-many-deep": "^1.7",
"timehunter/laravel-google-recaptcha-v3": "~2.5",
"tymon/jwt-auth": "^1.0",
"webklex/laravel-pdfmerger": "^1.3"
"webklex/laravel-pdfmerger": "^1.3",
"ext-bcmath": "*"
},
"require-dev": {
"facade/ignition": "^2.3.6",
@@ -90,8 +90,8 @@
</thead>
<tbody>
@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 @@
</tbody>
<tfoot>
@php
$voucherDiscount = getPoVoucherDiscount($voucher_redemption);
$voucherDiscount = InvoiceDocumentsHelper::getVoucherDiscount($voucher_redemption);
$subtotalWithDiscount = bcsub($subtotal, $voucherDiscount, 5); // Use bcsub to subtract
@endphp
<tr class="subtotal">
@@ -156,7 +156,7 @@
<tr>
<td colspan="4"></td>
<td class="right middle">Adjustment</td>
<td class="right middle">{{ roundUpPo($discrepancy,2) }}</td>
<td class="right middle">{{ InvoiceDocumentsHelper::roundUp($discrepancy,2) }}</td>
</tr>
<tr>
<td colspan="4"></td>
@@ -175,28 +175,4 @@
</tr>
</table>
</htmlpagefooter>
@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