diff --git a/app/Http/Controllers/V3/Dashboard/Mission/CartableController.php b/app/Http/Controllers/V3/Dashboard/Mission/CartableController.php deleted file mode 100644 index 1964af7c..00000000 --- a/app/Http/Controllers/V3/Dashboard/Mission/CartableController.php +++ /dev/null @@ -1,82 +0,0 @@ -json($cartableService->datatable($request)); - } - - public function store(StoreRequest $request): JsonResponse - { - - $mission = Mission::query()->create([ - 'user_id'=> auth()->user()->id(), - 'state_id' => $request->state_id, - 'state_name' => $request->state_name, - 'requested_machine_type' =>$request->requested_machine_type, - 'requested_machine_numbers' =>$request->requested_machine_numbers, - 'type' =>$request->type, - 'start_date' =>$request->start_date, - 'end_date' =>$request->end_date, - 'request_date' =>$request->request_date, - 'description' =>$request->description, - 'start_point' =>$request->start_point, - 'end_point' =>$request->end_point, - ]); - - $mission->rahdaran()->attach($request->rahdaran); - - return $this->successResponse(); - - } - - public function show(Mission $mission): JsonResponse - { - return $this->successResponse($mission); - } - - public function update(UpdateRequest $request,Mission $mission): JsonResponse - { - $mission->update([ - 'state_id' => $request->state_id, - 'state_name' => $request->state_name, - 'requested_machine_type' =>$request->requested_machine_type, - 'requested_machine_numbers' =>$request->requested_machine_numbers, - 'type' =>$request->type, - 'start_date' =>$request->start_date, - 'end_date' =>$request->end_date, - 'request_date' =>$request->request_date, - 'description' =>$request->description, - 'start_point' =>$request->start_point, - 'end_point' =>$request->end_point, - - ]); - - $mission->rahdaran()->sync($request->rahdaran); - - return $this->successResponse(); - - } - - public function destroy(Mission $mission): JsonResponse - { - $mission->rahdaran()->detach(); - $mission->delete(); - return $this->successResponse(); - - } -} diff --git a/app/Http/Controllers/V3/Dashboard/Mission/RequestPortalController.php b/app/Http/Controllers/V3/Dashboard/Mission/RequestPortalController.php new file mode 100644 index 00000000..9405561f --- /dev/null +++ b/app/Http/Controllers/V3/Dashboard/Mission/RequestPortalController.php @@ -0,0 +1,87 @@ +json($requestPortalService->datatable($request)); + } + + public function store(StoreRequest $request): JsonResponse + { + DB::transaction(function () use ($request) { + $state = MissionStates::REQUEST_CREATED->value; + $mission = Mission::query()->create([ + 'user_id'=> auth()->user()->id, + 'state_id' =>$state, + 'state_name' => MissionStates::name($state), + 'requested_machine_type' => $request->requested_machine_type, + 'requested_machine_numbers' => $request->requested_machine_numbers, + 'type' => $request->type, + 'start_date' => $request->start_date, + 'end_date' => $request->end_date, + 'request_date' => $request->request_date, + 'description' => $request->description, + 'start_point' => $request->start_point, + 'end_point' => $request->end_point, + ]); + + $mission->rahdaran()->attach($request->rahdaran); + }); + + return $this->successResponse(); + } + + public function show(Mission $mission): JsonResponse + { + return $this->successResponse($mission); + } + + public function update(UpdateRequest $request,Mission $mission): JsonResponse + { + DB::transaction(function () use ($mission, $request) { + $state = MissionStates::REQUEST_CREATED->value; + $mission->update([ + 'state_id' =>$state, + 'state_name' => MissionStates::name($state), + 'requested_machine_type' => $request->requested_machine_type, + 'requested_machine_numbers' => $request->requested_machine_numbers, + 'type' => $request->type, + 'start_date' => $request->start_date, + 'end_date' => $request->end_date, + 'request_date' => $request->request_date, + 'description' => $request->description, + 'start_point' => $request->start_point, + 'end_point' => $request->end_point, + ]); + + $mission->rahdaran()->sync($request->rahdaran); + }); + + return $this->successResponse(); + } + + public function destroy(Mission $mission): JsonResponse + { + DB::transaction(function () use ($mission) { + $mission->rahdaran()->detach(); + $mission->delete(); + }); + return $this->successResponse(); + } +} diff --git a/app/Services/Mission/CartableService.php b/app/Services/Mission/RequestPortalService.php similarity index 56% rename from app/Services/Mission/CartableService.php rename to app/Services/Mission/RequestPortalService.php index 36c72781..3c5ec2f0 100644 --- a/app/Services/Mission/CartableService.php +++ b/app/Services/Mission/RequestPortalService.php @@ -1,6 +1,6 @@ user(); - $allowedFilters = ['*']; - $allowedSortings = ['*']; - $query = Mission::query(); if ($user->hasPermissionTo('mission-manage-city')) { - $query->where('city_id', $user->edarate_shahri_id); + $query->where('edarate_shahri_id', '=', $user->edarate_shahri_id); } elseif ($user->hasPermissionTo('mission-manage-province')) { - $query->where('province_id', $user->province_id); - } - elseif ($user->hasPermissionTo('mission-manage-country')) { - + $query->where('province_id', '=', $user->province_id); } return DataTableFacade::run( $query, $request, - allowedFilters: $allowedFilters, - allowedSortings: $allowedSortings + allowedFilters: ['*'], + allowedSortings: ['*'] ); } diff --git a/routes/v3.php b/routes/v3.php index 5810034a..ac3f0b46 100644 --- a/routes/v3.php +++ b/routes/v3.php @@ -7,7 +7,7 @@ use App\Http\Controllers\V3\Dashboard\Azmayesh\AzmayeshController; use App\Http\Controllers\V3\Dashboard\Azmayesh\AzmayeshSampleController; use App\Http\Controllers\V3\Dashboard\Azmayesh\AzmayeshTypeController; use App\Http\Controllers\V3\Dashboard\ItemsManagementController; -use App\Http\Controllers\V3\Dashboard\Mission\CartableController; +use App\Http\Controllers\V3\Dashboard\Mission\RequestPortalController; use App\Http\Controllers\V3\Dashboard\ObservedItemController; use App\Http\Controllers\V3\Dashboard\AccidentReceiptController; use App\Http\Controllers\V3\Dashboard\OtpManagementController; @@ -427,7 +427,7 @@ Route::prefix('road_maintenance_station') }); Route::prefix('missions') ->name('missions.') - ->controller(CartableController::class) + ->controller(RequestPortalController::class) ->group(function () { Route::get('/', 'index')->name('index'); Route::post('/', 'store')->name('store');