Allow admin to delete a default bank and set a bank as default

This commit is contained in:
Dillon Ngo
2025-08-15 02:11:35 +08:00
parent db078502d9
commit 4dca92f628
4 changed files with 43 additions and 4 deletions
@@ -12,4 +12,29 @@ final class BankAccountType {
public const ALIPAY_RECIPIENT = 4;
/**
* Get all account type labels.
*
* @return array
*/
public static function labels(): array
{
return [
self::PERSONAL => 'PERSONAL',
self::EXTERNAL => 'EXTERNAL',
self::ALIPAY_1688 => 'ALIPAY_1688',
self::ALIPAY_RECIPIENT => 'ALIPAY_RECIPIENT',
];
}
/**
* Get label for a specific account type.
*
* @param int|string $type
* @return string
*/
public static function label($type): string
{
return self::labels()[(int) $type] ?? 'Unknown';
}
}
+2
View File
@@ -2,6 +2,7 @@
namespace App\Http\Resources;
use App\Classes\ValueObjects\Constants\BankAccountType;
use Illuminate\Http\Resources\Json\JsonResource;
class BankResource extends JsonResource
@@ -27,6 +28,7 @@ class BankResource extends JsonResource
'country_id' => $this->country_id,
'default' => $this->default,
'status' => $this->status,
'bank_account_type_label' => BankAccountType::label($this->type),
];
}
}
@@ -8,6 +8,7 @@
<div class="col">
<h3 class="all-caps">Are you Sure?</h3>
<div class="fs-11">Are you sure you want to delete this bank account?</div>
<div class="fs-11 text-danger" v-if="$store.getters.isAdmin">Note to Admin: Always make sure that Account Type 'EXTERNAL' has a default set before or after delete</div>
</div>
</div>
<div class="row">
@@ -30,4 +31,4 @@
mixins: [componentHandler, ModalFormHandler]
}
</script>
</script>
@@ -24,6 +24,10 @@
<div class="font-heading fs-10">{{item.holder_name}}</div>
<div class="font-heading fs-11 text-complete m-b-5">{{item.type === 3 ? item.account_no : item.account_no.replace(/[^\dA-Z]/g, '').replace(/(.{4})/g, '$1 ').trim() }}</div>
</div>
<div class="col">
<div class="font-heading fs-10">Account Type</div>
<div class="font-heading fs-11">{{item.bank_account_type_label}}</div>
</div>
<div class="col-auto b-l b-grey">
<div class="row h-100">
<div class="col">
@@ -37,7 +41,7 @@
</div>
</a>
</div>
<div class="col-auto m-l-10 d-flex align-items-center">
<!-- <div class="col-auto m-l-10 d-flex align-items-center">
<div class="row align-items-center">
<div class="col-auto text-right p-t-5 p-b-5" :class="[{'bg-warning-lighter': item.default}, {'bg-master-light': !item.default}]">
<div data-toggle="tooltip" class="row align-items-center justify-content-center" :class="{'link': !item.default}">
@@ -50,14 +54,18 @@
<small class="fs-12 all-caps bold" :class="[{'text-warning': item.default}, {'text-master': !item.default}]">Default Bank</small>
</div>
</div>
</div>
<div class="col-auto m-l-10 d-flex align-items-centert requestModal" data-type="deleteBankModal">
</div> -->
<div class="col-auto m-l-10 d-flex align-items-center requestModal" data-type="deleteBankModal">
<div data-toggle="tooltip" title="" data-placement="bottom" class="row link align-items-center justify-content-center" data-original-title="Edit">
<div class="btn btn-xs btn-outline-danger b-rad-none m-r-5 requestModalol">
<i class="fa fa-times"></i>
</div>
</div>
</div>
<div class="col-auto m-l-10 d-flex align-items-center">
<div class="btn btn-xs btn-outline-success b-rad-none pointer requestModal" data-type="defaultBankModal" v-if="item.company_business_type !== 1 && !item.default">Set As Default</div>
<div class="bg-master-lighter p-t-10 p-b-10 p-r-15 p-l-15 muted hint-text fs-10" v-if="item.company_business_type !== 1 && item.default">Set As Default</div>
</div>
</div>
</div>
</div>
@@ -68,6 +76,9 @@
<modal-component class="animate__animated animate__fast animate__fadeIn" styleType="fill-in" type="deleteBankModal">
<delete-bank-account-form-component :data="item" :section="section" class="text-center"></delete-bank-account-form-component>
</modal-component>
<modal-component class="animate__animated animate__fast animate__fadeIn" styleType="fill-in" type="defaultBankModal">
<set-bank-account-default-form-component :data="item" :section="section" class="text-center"></set-bank-account-default-form-component>
</modal-component>
</div>
</template>