From c2d51fc5028c845ec40ff951d4b149a2d11cefa5 Mon Sep 17 00:00:00 2001 From: Dillon Ngo Date: Fri, 4 Jul 2025 00:11:24 +0800 Subject: [PATCH] E-Invoice - Hide 'Change Billing Address' button when user already opt in for e-invoice --- .../CreateBillingAddressLogic.php | 15 ++++++++++++--- .../sections/CustomerProfileSectionComponent.vue | 2 +- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/app/Classes/Modules/Addresses/ControllersLogic/CreateBillingAddressLogic.php b/app/Classes/Modules/Addresses/ControllersLogic/CreateBillingAddressLogic.php index 31eb7c8f..8eea6a9d 100644 --- a/app/Classes/Modules/Addresses/ControllersLogic/CreateBillingAddressLogic.php +++ b/app/Classes/Modules/Addresses/ControllersLogic/CreateBillingAddressLogic.php @@ -2,7 +2,7 @@ namespace App\Classes\Modules\Addresses\ControllersLogic; - +use App\Classes\Exceptions\AccessForbiddenException; use App\Classes\General\Abstracts\AbstractControllerLogic; use App\Classes\Modules\Addresses\Services\CreatesAddress; use App\Classes\Modules\Addresses\Standards\Rules\CanCreateAddress; @@ -11,6 +11,7 @@ use App\Classes\Modules\Addresses\Services\FetchesAddress; use App\Classes\Modules\Companies\Services\FetchesCompanyModule; use App\Classes\ValueObjects\Constants\AddressType; use App\Classes\ValueObjects\Constants\ApprovalStatus; +use App\Classes\ValueObjects\Constants\RoleTypes; use App\Http\Resources\AddressResource; use App\Models\Address; use App\Models\CompanyModule; @@ -67,7 +68,15 @@ class CreateBillingAddressLogic extends AbstractControllerLogic public function logic(Request $request) : JsonResponse { $companyModule = $this->fetchesCompanyModule->execute(['id' => $request->input('company_module_id')]); - + + //cief todo: 90 - move this into canCreateAddress + $roleToCheck = Auth()->user()->type; + if (!in_array($roleToCheck, RoleTypes::ADMIN_ROLES)) { + if($companyModule->company->e_invoice === 1){ + throw new AccessForbiddenException('Update of billing address not allowed.'); + } + } + $address = $this->fetchesAddress->execute(['id' => $request->input('billing_address_id')]); if ($address->type !== AddressType::BILLING || $address->id !== $companyModule->addresses->where('type', AddressType::BILLING)->first()->id) { @@ -83,4 +92,4 @@ class CreateBillingAddressLogic extends AbstractControllerLogic return $this->resourceResponse(new AddressResource($address)); } -} \ No newline at end of file +} diff --git a/resources/assets/vue/components/companies/sections/CustomerProfileSectionComponent.vue b/resources/assets/vue/components/companies/sections/CustomerProfileSectionComponent.vue index 978b7a8e..ecb4953d 100644 --- a/resources/assets/vue/components/companies/sections/CustomerProfileSectionComponent.vue +++ b/resources/assets/vue/components/companies/sections/CustomerProfileSectionComponent.vue @@ -73,7 +73,7 @@ -
+
Change Billing Address