Файловый менеджер - Редактировать - /home/clickysoft/public_html/assets.clickysoft.net/app/Repositories/AssetsRepository.php
Назад
<?php namespace App\Repositories; use App\Models\Asset; use App\Models\AssetTag; use DB; use Exception; use Illuminate\Http\Request; use Symfony\Component\HttpFoundation\Response; class AssetsRepository implements AssetsRepositoryInterface { public function getAllAssets(Request $request) { $assets = Asset::with([ 'company:id,name', 'branch:id,name', 'supplier:id,contact_name', 'asset_status:id,name', 'category:id,name', 'currency:id,symbol' ]); if ($request->filled('assignable')) { $assets = $assets->where('assignable', 1); } if ($request->filled('maintainable')) { $assets = $assets->where('maintainable', 1); } if ($request->filled('company_id')) { $assets = $assets->where('company_id', $request->company_id); } if ($request->filled('category_id')) { $assets = $assets->where('category_id', $request->category_id); } if ($request->filled('supplier_id')) { $assets = $assets->where('supplier_id', $request->supplier_id); } if ($request->filled('asset_status_id')) { $assets = $assets->where('asset_status_id', $request->asset_status_id); } if ($request->filled('manufacturer_id')) { $assets = $assets->where('manufacturer_id', $request->manufacturer_id); } if ($request->filled('search')) { $assets = $assets->where("asset_name", "like", "%" . $request->get("search", "") . "%"); $assets = $assets->orWhereHas('company', function ($q) use ($request) { $q->where('name', 'like', '%' . $request->search . '%')->orWhere('contact_number', 'like', '%' . $request->search . '%'); })->orWhereHas('branch', function ($q) use ($request) { $q->where('name', 'like', '%' . $request->search . '%')->orWhere('email', 'like', '%' . $request->search . '%')->orWhere('contact_number', 'like', '%' . $request->search . '%'); })->orWhereHas('supplier', function ($q) use ($request) { $q->where('contact_name', 'like', '%' . $request->search . '%')->orWhere('contact_email', 'like', '%' . $request->search . '%'); })->orWhereHas('category', function ($q) use ($request) { $q->where('name', 'like', '%' . $request->search . '%'); })->orWhereHas('currency', function ($q) use ($request) { $q->where('name', 'like', '%' . $request->search . '%')->orWhere('code', 'like', '%' . $request->search . '%')->orWhere('symbol', 'like', '%' . $request->search . '%'); }); } return $assets->orderBy("id", "desc")->paginate(50); } public function getAssetDropdown(Request $request) { $assets = Asset::select("id", "asset_name"); if ($request->get("maintainable") === "true") { $assets->whereMaintainable(1); } return $assets->get(); } public function storeAsset(Request $request) { $asset = Asset::create($request->all()); if ($request->hasFile('asset_image')) { $asset->addMediaFromRequest('asset_image')->toMediaCollection('asset_image', 'asset'); } if ($request->hasFile('asset_document')) { $asset->addMediaFromRequest('asset_document') ->toMediaCollection('asset_document', 'document'); } return $asset; } public function getAsset($asset) { return $asset->load([ 'asset_status:id,name', 'category:id,name', 'supplier:id,contact_name,contact_email,contact_number', 'company:id,name', 'branch:id,name', 'currency:id,symbol' ]); } public function updateAsset(Asset $asset, Request $request) { $asset->update($request->all()); if ($request->file('asset_image', false)) { if ($asset->asset_image) { $asset->asset_image->delete(); } $asset->addMediaFromRequest('asset_image')->toMediaCollection('asset_image', 'asset'); } if ($request->hasFile('asset_document')) { if ($asset->asset_document) { $asset->asset_document->delete(); } $asset->addMediaFromRequest('asset_document') ->toMediaCollection('asset_document', 'document'); } return $asset; } public function deleteAsset(Asset $asset) { if ($asset->asset_image) { $asset->asset_image->delete(); } $asset->delete(); } public function assignAssetToUser($tagId, $assetId, $userId) { $assetTag = AssetTag::find($tagId); if (is_null($assetTag->assigned_to_id)) { AssetTag::whereId($tagId) ->whereAssetId($assetId) ->update([ 'assigned_to_id' => $userId, ]); return ['message' => 'Asset assigned successfully']; } if ($assetTag->assigned_to_id === (int) $userId) { return ['message' => 'Asset already assigned to this user', 'status' => 400]; } return ['message' => 'Asset already assigned to someone else', 'status' => 400]; } public function massDestroyAssets($ids) { try { DB::beginTransaction(); $assets = Asset::whereIn("id", $ids)->get(); foreach ($assets as $asset) { if ($asset->asset_image) { $asset->asset_image->delete(); } $asset->delete(); } DB::commit(); return response(null, Response::HTTP_NO_CONTENT); } catch (Exception $error) { DB::rollBack(); return response(["message" => "Could not delete users"], Response::HTTP_INTERNAL_SERVER_ERROR); } } }
| ver. 1.4 |
Github
|
.
| PHP 8.1.29 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка