diff --git a/app/Http/Controllers/V3/Dashboard/RoadMaintenanceStationController.php b/app/Http/Controllers/V3/Dashboard/RoadMaintenanceStationController.php new file mode 100644 index 00000000..220ab30f --- /dev/null +++ b/app/Http/Controllers/V3/Dashboard/RoadMaintenanceStationController.php @@ -0,0 +1,138 @@ +user(); + auth()->user()->addActivityComplete(1019); + + $allowedFilters = ['*']; + $allowedSortings = ['*']; + + $province = $request->province ?? null; + $status = $request->status ?? null; + $type = $request->type ?? null; + + $query = RahdariPoint::with('files'); + if ($user->can('show-tollhouse')) { + $query + ->when($province, function ($query, $province) { + return $query->where('province_id', $province); + }) + ->when($status, function ($query, $status) { + return $query->where('status', $status); + }) + ->when($type, function ($query, $type) { + return $query->where('type', $type); + }); + + } elseif ($user->can('show-tollhouse-province')) { + $query + ->where('province_id', $user->province_id) + ->when($status, function ($query, $status) { + return $query->where('status', $status); + }) + ->when($type, function ($query, $type) { + return $query->where('type', $type); + }); + + } else { + return response()->json(['message' => 'Forbidden'], 403); + } + $data = DataTableFacade::run( + $query, + $request, + allowedFilters: $allowedFilters, + allowedSortings: $allowedSortings + ); + + + $processedData = []; + + foreach ($data['data'] as $key => $item) { + $processedData[$key] = $item; + + + if ($user->can('edit-tollhouse')) { + $processedData[$key]['canEdit'] = 1; + } elseif ($user->can('edit-tollhouse-province')) { + $processedData[$key]['canEdit'] = $item['province_id'] == $user->province_id ? 1 : 0; + } else { + $processedData[$key]['canEdit'] = 0; + } + + + if ($user->can('delete-tollhouse')) { + $processedData[$key]['canDelete'] = 1; + } elseif ($user->can('delete-tollhouse-province')) { + $processedData[$key]['canDelete'] = $item['province_id'] == $user->province_id ? 1 : 0; + } else { + $processedData[$key]['canDelete'] = 0; + } + } + + $data['data'] = $processedData; + + return response()->json($data); + } + /** + * Show the form for creating a new resource. + */ + public function create() + { + // + } + + /** + * Store a newly created resource in storage. + */ + public function store(Request $request) + { + // + } + + /** + * Display the specified resource. + */ + public function show(string $id) + { + // + } + + /** + * Show the form for editing the specified resource. + */ + public function edit(string $id) + { + // + } + + /** + * Update the specified resource in storage. + */ + public function update(Request $request, string $id) + { + // + } + + /** + * Remove the specified resource from storage. + */ + public function destroy(string $id) + { + // + } +} diff --git a/routes/v3.php b/routes/v3.php index bef397bb..42e8c110 100644 --- a/routes/v3.php +++ b/routes/v3.php @@ -10,6 +10,7 @@ use App\Http\Controllers\V3\Dashboard\ItemsManagementController; use App\Http\Controllers\V3\Dashboard\ObservedItemController; use App\Http\Controllers\V3\Dashboard\AccidentReceiptController; use App\Http\Controllers\V3\Dashboard\OtpManagementController; +use App\Http\Controllers\V3\Dashboard\RoadMaintenanceStationController; use App\Http\Controllers\V3\Dashboard\Reports\AccidentReceiptReportController; use App\Http\Controllers\V3\Dashboard\Reports\RoadItemsReportController; use App\Http\Controllers\V3\Dashboard\Reports\RoadPatrolReportController; @@ -385,3 +386,11 @@ Route::prefix('permissions') }); Route::get('/notifications', NotificationController::class)->name('notifications'); + +Route::prefix('Road-Maintenance-Station') + ->name('Road-Maintenance-Station.') + ->controller( RoadMaintenanceStationController::class) + ->group(function () { + Route::get('/', 'index')->name('index'); + }); +