E-Invoice - Hide 'Change Billing Address' button when user already opt in for e-invoice

This commit is contained in:
Dillon Ngo
2025-07-04 00:11:24 +08:00
parent 3d7d571370
commit c2d51fc502
2 changed files with 13 additions and 4 deletions
@@ -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));
}
}
}
@@ -73,7 +73,7 @@
</span>
</div>
</div>
<div class="col-auto">
<div class="col-auto" v-if="company.company_module.e_invoice === 0 || this.$store.getters.isAdmin">
<div class="btn-lg btn-primary b-a b-white pointer fs-14 position-relative bg-transparent requestModal" data-type="billingAddressComponent" style="z-index: 2;">Change Billing Address</div>
</div>
<modal-component class="animate__animated animate__fast animate__fadeIn" v-if="company.company_module.tin" styleType="fill-in" type="eInvoiceInfo">