mirror of
https://gitlab.com/CIEFWorldwideSdnBhd/exchange-2.0.git
synced 2026-08-25 15:34:02 +00:00
Merge branch 'dillon/90-e-invoice-e' into vapor/development
This commit is contained in:
@@ -8,9 +8,10 @@ use App\Classes\Modules\Banks\Services\FetchesBank;
|
||||
use App\Classes\Modules\Banks\Standards\Rules\CanDeleteBank;
|
||||
use App\Classes\Modules\Banks\Services\DeletesBank;
|
||||
use App\Classes\Modules\Banks\Services\CreatesBankLog;
|
||||
use App\Http\Resources\BankResource;
|
||||
use App\Classes\ValueObjects\Constants\RoleTypes;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class DeleteBankLogic extends AbstractControllerLogic
|
||||
{
|
||||
@@ -66,20 +67,30 @@ class DeleteBankLogic extends AbstractControllerLogic
|
||||
*/
|
||||
public function logic(Request $request) : JsonResponse
|
||||
{
|
||||
|
||||
$this->canDeleteBank->passes();
|
||||
|
||||
$bank = $this->fetchesBank->execute(['id' => $request->route('id')]);
|
||||
|
||||
$proceed = false;
|
||||
if($bank->default){
|
||||
throw new RequestValidationException('You can\'t delete bank account when it set to default');
|
||||
$isAuthorized = in_array(Auth::user()->type, RoleTypes::ADMIN_ROLES);
|
||||
if($isAuthorized) {
|
||||
$banks = $bank->company->banks()->where('default', 1)->get();
|
||||
if(count($banks) > 1) {
|
||||
//User should be able to delete themselves, but sometimes there are more than 1 bank set as default (different type, why??!), we need to allow admin to do the delete
|
||||
$proceed = true;
|
||||
}
|
||||
else{
|
||||
$proceed = false;
|
||||
}
|
||||
}
|
||||
|
||||
if(!$proceed){
|
||||
throw new RequestValidationException('You can\'t delete bank account when it set to default');
|
||||
}
|
||||
}
|
||||
|
||||
$bank = $this->deletesBank->execute($bank);
|
||||
|
||||
// $bankLog = $this->createsBankLog->execute($bank);
|
||||
|
||||
// $bankLog = $this->createsBankLog->execute($bank);
|
||||
return $this->response([]);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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,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,6 +54,17 @@
|
||||
<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-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>
|
||||
@@ -58,6 +73,12 @@
|
||||
<modal-component class="animate__animated animate__fast animate__fadeIn" styleType="fill-in" type="editBankModal">
|
||||
<edit-bank-form-component :data="item" :section="section" :company_id="company_id"></edit-bank-form-component>
|
||||
</modal-component>
|
||||
<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>
|
||||
|
||||
@@ -75,4 +96,4 @@
|
||||
},
|
||||
mixins: [componentHandler]
|
||||
}
|
||||
</script>
|
||||
</script>
|
||||
|
||||
Reference in New Issue
Block a user