Merge branch 'dillon/110-period-lock-a' into vapor/development

This commit is contained in:
Dillon Ngo
2025-11-19 07:16:57 +08:00
39 changed files with 765 additions and 36 deletions
@@ -0,0 +1,19 @@
<?php
namespace App\Http\Controllers\Settings;
use App\Classes\Modules\Settings\ControllersLogic\CreateLockLogic;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class CreateLockController
{
/**
* @param Request $request
* @param CreateLockLogic $logic
* @return JsonResponse
*/
public function create(Request $request, CreateLockLogic $logic): JsonResponse {
return $logic->execute($request);
}
}
@@ -0,0 +1,20 @@
<?php
namespace App\Http\Controllers\Settings;
use App\Classes\Modules\Settings\ControllersLogic\FetchLockLogic;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class FetchLockController
{
/**
* @param Request $request
* @param FetchLockLogic $logic
* @return JsonResponse
*/
public function fetch(Request $request, FetchLockLogic $logic): JsonResponse {
return $logic->execute($request);
}
}
@@ -0,0 +1,20 @@
<?php
namespace App\Http\Controllers\Settings;
use App\Classes\Modules\Settings\ControllersLogic\ListLocksLogic;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class ListLocksController
{
/**
* @param Request $request
* @param ListLocksLogic $logic
* @return JsonResponse
*/
public function list(Request $request, ListLocksLogic $logic): JsonResponse {
return $logic->execute($request);
}
}
@@ -0,0 +1,20 @@
<?php
namespace App\Http\Controllers\Settings;
use App\Classes\Modules\Settings\ControllersLogic\UpdateLockLogic;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class UpdateLockController
{
/**
* @param Request $request
* @param UpdateLockLogic $logic
* @return JsonResponse
*/
public function update(Request $request, UpdateLockLogic $logic): JsonResponse {
return $logic->execute($request);
}
}
+8
View File
@@ -4,6 +4,8 @@ namespace App\Http\Resources;
use App\Classes\Modules\Transactions\Services\CalculatesBillGroupPaymentAmount;
use App\Classes\ValueObjects\Constants\ApprovalStatus;
use App\Classes\ValueObjects\Constants\KVPKey;
use App\Models\KeyValuePair;
use Carbon\Carbon;
use Illuminate\Http\Resources\Json\JsonResource;
@@ -23,6 +25,11 @@ class BillGroupResource extends JsonResource
$paid_amount = $billGroupPayment['paid_amount'];
$outstanding_amount = $billGroupPayment['outstanding_amount'];
$ui_supplier_paid_currency_tab_is_locked = ($this->status === 2 || $this->status === 3)
? KeyValuePair::whereNull('owner_type')->whereNull('owner_id')
->whereIn('key', [KVPKey::UI_SUPPLIER_PAID_CURRENCY_ORDER_TAB_IS_LOCKED])->where('value', 1)->first()
: null;
return [
'id' => $this->id,
'reference' => $this->reference,
@@ -78,6 +85,7 @@ class BillGroupResource extends JsonResource
'updated_at' => Carbon::parse($transaction->updated_at)->format('d-m-Y h:i:s A'),
];
}),
'ui_supplier_paid_currency_tab_is_locked' => $ui_supplier_paid_currency_tab_is_locked ? 1 : 0,
];
}
}
+15 -1
View File
@@ -4,8 +4,10 @@ namespace App\Http\Resources;
use App\Classes\ValueObjects\Constants\ApprovalStatus;
use App\Classes\ValueObjects\Constants\DocumentType;
use App\Classes\ValueObjects\Constants\KVPKey;
use App\Classes\ValueObjects\Constants\TransactionType;
use App\Models\Booking;
use App\Models\KeyValuePair;
use App\Models\Transaction;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Collection;
@@ -32,6 +34,16 @@ class GroupResource extends JsonResource
if(!$this->issuerCompany){
dd($this->id);
}
$ui_payments_complete_currecy_orders_is_locked = ($this->status === 3)
? KeyValuePair::whereNull('owner_type')->whereNull('owner_id')
->whereIn('key', [KVPKey::UI_PAYMENTS_COMPLETE_CURRENCY_ORDERS_IS_LOCKED])->where('value', 1)->first()
: null;
$ui_payments_open_currecy_orders_is_locked = ($this->status === 0 || $this->status === 1 || $this->status === 2)
? KeyValuePair::whereNull('owner_type')->whereNull('owner_id')
->whereIn('key', [KVPKey::UI_PAYMENTS_OPEN_CURRENCY_ORDERS_IS_LOCKED])->where('value', 1)->first()
: null;
return [
'id' => $this->id,
'original_amount' => (float) $this->original_amount,
@@ -55,7 +67,9 @@ class GroupResource extends JsonResource
'documents' => [
'currency_order' => new DocumentResource($this->documents()->where('document_type', DocumentType::CURRENCY_VENDOR_ORDER)->first()),
'purchase_order' => new DocumentResource($this->documents()->where('document_type', DocumentType::BULK_PURCHASE_ORDER)->first())
]
],
'ui_payments_complete_currecy_orders_is_locked' => $ui_payments_complete_currecy_orders_is_locked ? 1 : 0,
'ui_payments_open_currecy_orders_is_locked' => $ui_payments_open_currecy_orders_is_locked ? 1 : 0,
];
}
}
+24
View File
@@ -0,0 +1,24 @@
<?php
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource;
class LockResource extends JsonResource
{
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
* @throws \Illuminate\Contracts\Container\BindingResolutionException
*/
public function toArray($request)
{
return [
'id' => $this->id,
'key' => $this->key,
'value' => $this->value,
];
}
}