mirror of
https://gitlab.com/CIEFWorldwideSdnBhd/exchange-2.0.git
synced 2026-08-19 12:33:56 +00:00
Merge branch 'supplier-bill-group-dashboard' of gitlab.com:CIEFWorldwideSdnBhd/exchange-2.0 into development
This commit is contained in:
@@ -139,7 +139,7 @@ class CreateSupplierBillGroupLogic extends AbstractControllerLogic
|
||||
$billGroup->issuer = $supplier->id;
|
||||
$billGroup->receiver = 1;
|
||||
$billGroup->reference = $this->generatesTransactionBillNumber->execute('BSPO-');
|
||||
$billGroup->amount = $amount;
|
||||
$billGroup->amount = $amount + $service_charges;
|
||||
$billGroup->original_amount = $original_amount;
|
||||
$billGroup->currency_id = 1;
|
||||
$billGroup->original_currency_id = $payments[0]['original_currency']['id'];
|
||||
|
||||
+7
-6
@@ -28,7 +28,8 @@ class CreateSupplierTransactionLogic extends AbstractControllerLogic
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
protected function notification():array {
|
||||
protected function notification(): array
|
||||
{
|
||||
return [
|
||||
'title' => 'Create Supplier Transactions',
|
||||
'message' => 'You have successfully created currency supplier transactions'
|
||||
@@ -73,7 +74,7 @@ class CreateSupplierTransactionLogic extends AbstractControllerLogic
|
||||
$this->fetchesTransaction = $fetchesTransaction;
|
||||
}
|
||||
|
||||
public function logic(Request $request) : JsonResponse
|
||||
public function logic(Request $request): JsonResponse
|
||||
{
|
||||
|
||||
$supplier = $this->fetchesCompany->execute(['id' => $request->route('id')]);
|
||||
@@ -83,7 +84,7 @@ class CreateSupplierTransactionLogic extends AbstractControllerLogic
|
||||
$payments = $request->input('payments');
|
||||
|
||||
// todo-refund: activate this for partial refund
|
||||
foreach($payments as $payment){
|
||||
foreach ($payments as $payment) {
|
||||
$payment = $this->fetchesTransaction->execute(['id' => $payment['id']]);
|
||||
|
||||
$pendingRefundRequest = $payment->transactions()->refunds()->where('status', ApprovalStatus::PENDING_VERIFICATION)->first();
|
||||
@@ -101,7 +102,7 @@ class CreateSupplierTransactionLogic extends AbstractControllerLogic
|
||||
|
||||
$this->createSupplierTransactionProcessor->execute($supplier, $rate, $payments);
|
||||
|
||||
if(!count($this->createSupplierTransactionProcessor->getBills())) return $this->response([]);
|
||||
if (!count($this->createSupplierTransactionProcessor->getBills())) return $this->response([]);
|
||||
|
||||
$group = new Group();
|
||||
$group->save();
|
||||
@@ -131,7 +132,7 @@ class CreateSupplierTransactionLogic extends AbstractControllerLogic
|
||||
|
||||
$transferFee = (float)$this->createSupplierTransactionProcessor->getTransferTransactions()->sum('service_charge');
|
||||
$original_amount += $transferFee;
|
||||
$amount += $transferFee / $currency_rate;
|
||||
$amount = $amount + ($transferFee / $currency_rate) + $service_charge;
|
||||
|
||||
$group->issuer = $issuer;
|
||||
$group->receiver = $receiver;
|
||||
@@ -150,7 +151,7 @@ class CreateSupplierTransactionLogic extends AbstractControllerLogic
|
||||
|
||||
$object = new DocumentObject(
|
||||
DocumentType::CURRENCY_VENDOR_ORDER,
|
||||
[chunk_split('data:application/pdf;base64,'.base64_encode($pdf->output()))],
|
||||
[chunk_split('data:application/pdf;base64,' . base64_encode($pdf->output()))],
|
||||
'',
|
||||
ApprovalStatus::COMPLETED,
|
||||
'currency_vendor_order'
|
||||
|
||||
@@ -224,7 +224,7 @@ class UpdateGroupLogic extends AbstractControllerLogic
|
||||
|
||||
$group->issuer = $supplier->id;
|
||||
$group->original_amount = $group->transactions()->sum('original_amount') + ((float)$transferFeeTransactions->sum('service_charge') + (float)$group_transfer_fee_original_amount);
|
||||
$group->amount = $group->transactions()->sum('amount') + (((float)$transferFeeTransactions->sum('service_charge') + (float)$group_transfer_fee_original_amount) / $rate);
|
||||
$group->amount = $group->transactions()->sum('amount') + (((float)$transferFeeTransactions->sum('service_charge') + (float)$group_transfer_fee_original_amount) / $rate) + $group->transactions()->sum('service_charge');
|
||||
$group->currency_rate = $rate;
|
||||
$group->tax = $group->transactions()->sum('tax');
|
||||
$group->service_charge = $group->transactions()->sum('service_charge');
|
||||
|
||||
@@ -12,7 +12,7 @@ class CalculatesBillGroupPaymentAmount
|
||||
$bill_refund_amount = round(floatval($billGroup->billRefunds->sum('amount')), 7);
|
||||
$floating_amount = round(floatval($billGroup->transactions()->whereIn('status', [ApprovalStatus::PENDING_SUBMISSION, ApprovalStatus::PENDING_VERIFICATION])->sum('amount')), 7);
|
||||
$paid_amount = round(floatval($billGroup->transactions()->where('status', ApprovalStatus::APPROVED)->sum('amount')), 7);
|
||||
$outstanding_amount = $billGroup->amount - $bill_refund_amount - $paid_amount - $floating_amount + $billGroup->service_charge;
|
||||
$outstanding_amount = $billGroup->amount - $bill_refund_amount - $paid_amount - $floating_amount;
|
||||
$outstanding_amount = round($outstanding_amount, 7);
|
||||
|
||||
return [
|
||||
|
||||
@@ -53,7 +53,7 @@ class UpdateBillGroupAndGroupToIncludeTransferFee extends Command
|
||||
{
|
||||
|
||||
// update group to include transfer fee
|
||||
$groups = Group::all();
|
||||
$groups = Group::where('created_at', '>=', '2024-06-01')->get();
|
||||
|
||||
foreach ($groups as $group) {
|
||||
$group_transfer_fee = 0;
|
||||
@@ -70,7 +70,7 @@ class UpdateBillGroupAndGroupToIncludeTransferFee extends Command
|
||||
$correctOriginalAmount = $correctOriginalAmount + $originalTransferFees + $group_transfer_fee;
|
||||
$correctAmount = $group->transactions()->sum('amount');
|
||||
$transferFees = $originalTransferFees / $group->currency_rate;
|
||||
$correctAmount = $correctAmount + $transferFees + ($group_transfer_fee / $group->currency_rate);
|
||||
$correctAmount = $correctAmount + $transferFees + ($group_transfer_fee / $group->currency_rate) + $group->service_charge;
|
||||
|
||||
if ($group->original_amount != $correctOriginalAmount || $group->amount != $correctAmount) {
|
||||
$group->original_amount = $correctOriginalAmount;
|
||||
@@ -112,15 +112,16 @@ class UpdateBillGroupAndGroupToIncludeTransferFee extends Command
|
||||
continue;
|
||||
}
|
||||
|
||||
$totalOriginal = $billGroup->groups()->sum('original_amount');
|
||||
$total = $billGroup->groups()->sum('amount');
|
||||
$totalOriginal = round($billGroup->groups()->sum('original_amount'), 2);
|
||||
$total = round($billGroup->groups()->sum('amount') + $billGroup->service_charge, 2);
|
||||
|
||||
// update bill group payment transaction amount if there is only 1 payment transaction
|
||||
$payment_transactions = $billGroup->transactions()->whereIn('status', [ApprovalStatus::PENDING_SUBMISSION, ApprovalStatus::PENDING_VERIFICATION, ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED])->get();
|
||||
|
||||
if ($payment_transactions->count() === 1) {
|
||||
$payment_transaction = $payment_transactions->first();
|
||||
if ($payment_transaction->amount === $billGroup->amount) {
|
||||
|
||||
if ($payment_transaction->amount - ($billGroup->amount + $billGroup->service_charge) < 0.01) {
|
||||
$payment_transaction->original_amount = $total;
|
||||
$payment_transaction->amount = $total;
|
||||
$payment_transaction->save();
|
||||
|
||||
+30
-24
@@ -19,7 +19,7 @@
|
||||
<div class="font-heading all-caps fs-12"></div>
|
||||
</div>
|
||||
<div class="col-auto text-right" v-if="selectedBillGroup.id">
|
||||
<div class="font-heading fs-12">{{selectedBillGroup.currency.short_code}} {{formatAmount(selectedBillGroup.amount)}}</div>
|
||||
<div class="font-heading fs-12">{{selectedBillGroup.currency.short_code}} {{formatAmount(selectedBillGroup.amount - selectedBillGroup.service_charge)}}</div>
|
||||
</div>
|
||||
<div class="col-auto text-right" v-else>
|
||||
<div class="font-heading fs-12">MYR 0.00</div>
|
||||
@@ -49,38 +49,40 @@
|
||||
</div>
|
||||
<div class="row align-items-end m-b-10 text-success">
|
||||
<div class="col">
|
||||
<div class="font-heading all-caps fs-12">Paid Total:</div>
|
||||
<div class="font-heading all-caps fs-12" :class="{'bold': section === 'paidBillGroupList'}">Paid Total:</div>
|
||||
</div>
|
||||
<div class="col-auto text-right" v-if="selectedBillGroup.id">
|
||||
<div class="font-heading fs-12">{{selectedBillGroup.currency.short_code}} {{ formatAmount(selectedBillGroup.paid_amount) }}</div>
|
||||
<div class="font-heading fs-12" :class="{'bold': section === 'paidBillGroupList'}">{{selectedBillGroup.currency.short_code}} {{ formatAmount(selectedBillGroup.paid_amount) }}</div>
|
||||
</div>
|
||||
<div class="col-auto text-right" v-else>
|
||||
<div class="font-heading fs-12">MYR 0.00</div>
|
||||
<div class="font-heading fs-12" :class="{'bold': section === 'paidBillGroupList'}">MYR 0.00</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row align-items-end m-b-10">
|
||||
<div class="col">
|
||||
<div class="font-heading all-caps fs-12">Floating Amount:</div>
|
||||
<div v-if="section !== 'paidBillGroupList'">
|
||||
<div class="row align-items-end m-b-10">
|
||||
<div class="col">
|
||||
<div class="font-heading all-caps fs-12">Floating Amount:</div>
|
||||
</div>
|
||||
<div class="col-auto text-right" v-if="selectedBillGroup.id">
|
||||
<div class="font-heading fs-12">{{selectedBillGroup.currency.short_code}} {{ formatAmount(selectedBillGroup.floating_amount) }}</div>
|
||||
</div>
|
||||
<div class="col-auto text-right" v-else>
|
||||
<div class="font-heading fs-12">MYR 0.00</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-auto text-right" v-if="selectedBillGroup.id">
|
||||
<div class="font-heading fs-12">{{selectedBillGroup.currency.short_code}} {{ formatAmount(selectedBillGroup.floating_amount) }}</div>
|
||||
</div>
|
||||
<div class="col-auto text-right" v-else>
|
||||
<div class="font-heading fs-12">MYR 0.00</div>
|
||||
<div class="row align-items-end bold text-danger">
|
||||
<div class="col">
|
||||
<div class="font-heading all-caps fs-12">OutStanding Total:</div>
|
||||
</div>
|
||||
<div class="col-auto text-right" v-if="selectedBillGroup.id">
|
||||
<div class="font-heading fs-12">{{selectedBillGroup.currency.short_code}} {{ formatAmount(selectedBillGroup.outstanding_amount) }}</div>
|
||||
</div>
|
||||
<div class="col-auto text-right" v-else>
|
||||
<div class="font-heading fs-12">MYR 0.00</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row align-items-end bold text-danger">
|
||||
<div class="col">
|
||||
<div class="font-heading all-caps fs-12">OutStanding Total:</div>
|
||||
</div>
|
||||
<div class="col-auto text-right" v-if="selectedBillGroup.id">
|
||||
<div class="font-heading fs-12">{{selectedBillGroup.currency.short_code}} {{ formatAmount(selectedBillGroup.outstanding_amount) }}</div>
|
||||
</div>
|
||||
<div class="col-auto text-right" v-else>
|
||||
<div class="font-heading fs-12">MYR 0.00</div>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="selectedBillGroup.status === 0 && (selectedBillGroup.outstanding_amount > 0 || (selectedBillGroup.bill_refund_amount === (selectedBillGroup.amount + selectedBillGroup.service_charge) && !selectedBillGroup.payment_history.some((item)=> [0, 1, 2, 3].includes(item.status))))">
|
||||
<div v-if="section === 'paymentInProgressBillGroupList' && selectedBillGroup.status === 0 && (selectedBillGroup.outstanding_amount > 0 || (selectedBillGroup.bill_refund_amount === (selectedBillGroup.amount + selectedBillGroup.service_charge) && !selectedBillGroup.payment_history.some((item)=> [0, 1, 2, 3].includes(item.status))))">
|
||||
<div class="row p-r-15 m-t-20 m-b-10">
|
||||
<div class="col p-r-0">
|
||||
<validation-wrapper-component :validator="$v.parameters.payAmount">
|
||||
@@ -129,6 +131,10 @@
|
||||
type: Function,
|
||||
required: true
|
||||
},
|
||||
section:{
|
||||
type: String,
|
||||
required: true
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
selectedBillGroup(){
|
||||
|
||||
@@ -66,8 +66,8 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-md" v-if="section === 'paymentInProgressBillGroupList'">
|
||||
<bill-group-payment-summary-component :selectedBillGroup="selectedBillGroup" :refreshList="updateList" section="paymentInProgressBillGroupList"></bill-group-payment-summary-component>
|
||||
<div class="col-12 col-md">
|
||||
<bill-group-payment-summary-component :selectedBillGroup="selectedBillGroup" :refreshList="updateList" :section="section"></bill-group-payment-summary-component>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user