
Renamed CheckoutRequest action classes to include "Action" in their names for consistency and clarity. Enhanced error handling in controllers to standardize error responses with translations. Updated usage of the renamed action classes throughout the code to ensure proper integration.
48 lines
No EOL
1.3 KiB
PHP
48 lines
No EOL
1.3 KiB
PHP
<?php
|
|
|
|
namespace App\Actions\CheckoutRequests;
|
|
|
|
use App\Models\Actionlog;
|
|
use App\Models\Asset;
|
|
use App\Models\Company;
|
|
use App\Models\Setting;
|
|
use App\Models\User;
|
|
use App\Notifications\RequestAssetCancelation;
|
|
use Illuminate\Auth\Access\AuthorizationException;
|
|
|
|
class CancelCheckoutRequestAction
|
|
{
|
|
public static function run(Asset $asset, User $user)
|
|
{
|
|
if (!Company::isCurrentUserHasAccess($asset)) {
|
|
throw new AuthorizationException();
|
|
}
|
|
|
|
$asset->cancelRequest();
|
|
|
|
$asset->decrement('requests_counter', 1);
|
|
|
|
$data['item'] = $asset;
|
|
$data['target'] = $user;
|
|
$data['item_quantity'] = 1;
|
|
$settings = Setting::getSettings();
|
|
|
|
$logaction = new Actionlog();
|
|
$logaction->item_id = $data['asset_id'] = $asset->id;
|
|
$logaction->item_type = $data['item_type'] = Asset::class;
|
|
$logaction->created_at = $data['requested_date'] = date('Y-m-d H:i:s');
|
|
$logaction->target_id = $data['user_id'] = auth()->id();
|
|
$logaction->target_type = User::class;
|
|
$logaction->location_id = $user->location_id ?? null;
|
|
$logaction->logaction('request canceled');
|
|
|
|
try {
|
|
$settings->notify(new RequestAssetCancelation($data));
|
|
} catch (\Exception $e) {
|
|
\Log::warning($e);
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
} |