From ec5d01be8561eec7789efb6b50ba8dd586065f32 Mon Sep 17 00:00:00 2001 From: amirghasempoor Date: Tue, 5 Aug 2025 11:01:33 +0330 Subject: [PATCH] add all manager api --- app/Enums/HarimAction.php | 4 +- app/Enums/HarimStates.php | 6 +- .../Harim/GeneralManagerController.php | 134 +++++++++++++++++- .../Harim/ProvinceOfficeController.php | 4 +- .../ConfirmGuaranteeLetterNeedRequest.php | 30 ++++ .../ConfirmNoRoadAccessNeedRequest.php | 30 ++++ .../ConfirmRoadAccessEditNeedRequest.php | 30 ++++ .../ConfirmRoadAccessNeedRequest.php | 30 ++++ .../Harim/GeneralManager/ReferFileRequest.php | 30 ++++ .../{ConfirmRequest.php => ReferRequest.php} | 4 +- .../Harim/GeneralManager/RejectRequest.php | 2 +- .../Harim/ProvinceOffice/FeedBackRequest.php | 2 +- database/seeders/HarimActionSeeder.php | 2 +- database/seeders/HarimStateSeeder.php | 6 +- 14 files changed, 292 insertions(+), 22 deletions(-) create mode 100644 app/Http/Requests/V3/Dashboard/Harim/GeneralManager/ConfirmGuaranteeLetterNeedRequest.php create mode 100644 app/Http/Requests/V3/Dashboard/Harim/GeneralManager/ConfirmNoRoadAccessNeedRequest.php create mode 100644 app/Http/Requests/V3/Dashboard/Harim/GeneralManager/ConfirmRoadAccessEditNeedRequest.php create mode 100644 app/Http/Requests/V3/Dashboard/Harim/GeneralManager/ConfirmRoadAccessNeedRequest.php create mode 100644 app/Http/Requests/V3/Dashboard/Harim/GeneralManager/ReferFileRequest.php rename app/Http/Requests/V3/Dashboard/Harim/GeneralManager/{ConfirmRequest.php => ReferRequest.php} (83%) diff --git a/app/Enums/HarimAction.php b/app/Enums/HarimAction.php index 3bf8f850..462d0e02 100644 --- a/app/Enums/HarimAction.php +++ b/app/Enums/HarimAction.php @@ -8,7 +8,7 @@ enum HarimAction: int case YES = 2; case NO = 3; case CONFIRM = 4; - case REJECT = 5; + case REFER = 5; public static function name(int $state): string { @@ -17,7 +17,7 @@ enum HarimAction: int 2 => "بله", 3 => "خیر", 4 => "تائید کردن", - 5 => "رد درخواست", + 5 => "ارجاع", ]; return $mapArray[$state]; diff --git a/app/Enums/HarimStates.php b/app/Enums/HarimStates.php index aaea9851..c97f94f6 100644 --- a/app/Enums/HarimStates.php +++ b/app/Enums/HarimStates.php @@ -24,9 +24,9 @@ enum HarimStates: int { $mapArray = [ 1 => "بررسی ادارات شهرستان", - 2 => "بررسی راه توسط ادارات حریم", - 3 => "بررسی راه توسط معاون ", - 4 => "بررسی راه توسط مدیر کل", + 2 => "بررسی توسط ادارات حریم", + 3 => "بررسی توسط معاون ", + 4 => "بررسی توسط مدیر کل", 5 => "بررسی فایل آپلود شده توسط اداره حریم", 6 => "بررسی فایل آپلود شده توسط معاون", 7 => "بررسی فایل آپلود شده توسط مدیر", diff --git a/app/Http/Controllers/V3/Dashboard/Harim/GeneralManagerController.php b/app/Http/Controllers/V3/Dashboard/Harim/GeneralManagerController.php index 6645c841..a25ed97f 100644 --- a/app/Http/Controllers/V3/Dashboard/Harim/GeneralManagerController.php +++ b/app/Http/Controllers/V3/Dashboard/Harim/GeneralManagerController.php @@ -6,7 +6,12 @@ use App\Enums\HarimAction; use App\Enums\HarimStates; use App\Facades\DataTable\DataTableFacade; use App\Http\Controllers\Controller; -use App\Http\Requests\V3\Dashboard\Harim\GeneralManager\ConfirmRequest; +use App\Http\Requests\V3\Dashboard\Harim\GeneralManager\ConfirmRoadAccessEditNeedRequest; +use App\Http\Requests\V3\Dashboard\Harim\GeneralManager\ConfirmRoadAccessNeedRequest; +use App\Http\Requests\V3\Dashboard\Harim\GeneralManager\ConfirmGuaranteeLetterNeedRequest; +use App\Http\Requests\V3\Dashboard\Harim\GeneralManager\ConfirmNoRoadAccessNeedRequest; +use App\Http\Requests\V3\Dashboard\Harim\GeneralManager\ReferFileRequest; +use App\Http\Requests\V3\Dashboard\Harim\GeneralManager\ReferRequest; use App\Http\Requests\V3\Dashboard\Harim\GeneralManager\RejectRequest; use App\Http\Requests\V3\Dashboard\Harim\GeneralManager\ShowRequest; use App\Http\Traits\ApiResponse; @@ -22,7 +27,7 @@ class GeneralManagerController extends Controller { $user = auth()->user(); $query = Harim::query() - ->where('state_id','=',HarimStates::Baresi_Imeni_Rah_Tavasot_Modir_Kol->value) + ->where('state_id', '=', HarimStates::BARESI_TAVASOT_MODIR_KOL->value) ->where('edareh_shahri_id', '=', $user->edarate_shahri_id); $data = DataTableFacade::run( @@ -33,7 +38,8 @@ class GeneralManagerController extends Controller ); return response()->json($data); } - public function conform(ConfirmRequest $request, Harim $harim): JsonResponse + + public function rejectRequest(RejectRequest $request, Harim $harim): JsonResponse { DB::transaction(function () use ($request, $harim) { $action = HarimAction::CONFIRM->value; @@ -46,7 +52,8 @@ class GeneralManagerController extends Controller 'action_name' => HarimAction::name($action), ]); - $state = HarimStates::ERSAL_BE_PANJAREVAHED->value; + $state = HarimStates::EMKAN_PAZIR_NEMEBASHAD->value; + $harim->update([ 'state_id' => $state, 'state_name' => HarimStates::name($state), @@ -55,10 +62,10 @@ class GeneralManagerController extends Controller return $this->successResponse(); } - public function reject(RejectRequest $request, Harim $harim): JsonResponse + public function referRequest(ReferRequest $request, Harim $harim): JsonResponse { DB::transaction(function () use ($request, $harim) { - $action = HarimAction::REJECT->value; + $action = HarimAction::REFER->value; $harim->histories()->create([ 'expert_id'=> auth()->user()->id, 'previous-state_id' => $harim->state_id, @@ -67,7 +74,120 @@ class GeneralManagerController extends Controller 'action_id' => $action, 'action_name' => HarimAction::name($action), ]); - $state = HarimStates::Baresi_Imeni_Rah_Tavasot_Moaven->value; + + $state = HarimStates::BARESI_TAVASOT_MOAVEN->value; + + $harim->update([ + 'state_id' => $state, + 'state_name' => HarimStates::name($state), + ]); + }); + return $this->successResponse(); + } + + public function referFile(ReferFileRequest $request, Harim $harim): JsonResponse + { + DB::transaction(function () use ($request, $harim) { + $action = HarimAction::REFER->value; + $harim->histories()->create([ + 'expert_id'=> auth()->user()->id, + 'previous-state_id' => $harim->state_id, + 'previous_state_name' => $harim->state_name, + 'export_description' => $request->export_description, + 'action_id' => $action, + 'action_name' => HarimAction::name($action), + ]); + + $state = HarimStates::BARESI_FILE_APLODE_SHODE_TAVASOTE_MOAVEN->value; + + $harim->update([ + 'state_id' => $state, + 'state_name' => HarimStates::name($state), + ]); + }); + return $this->successResponse(); + } + + public function confirmRoadAccessNeed(ConfirmRoadAccessNeedRequest $request, Harim $harim): JsonResponse + { + DB::transaction(function () use ($request, $harim) { + $action = HarimAction::CONFIRM->value; + $harim->histories()->create([ + 'expert_id' => auth()->user()->id, + 'previous_state_id' => $harim->state_id, + 'previous_state_name' => $harim->state_name, + 'expert_description' => $request->expert_description, + 'action_id' => $action, + 'action_name' => HarimAction::name($action), + ]); + + $state = HarimStates::ERSAL_BE_PANJAREH_VAHED_NIAZ_BE_RAH_DASTRASI->value; + $harim->update([ + 'state_id' => $state, + 'state_name' => HarimStates::name($state), + ]); + }); + return $this->successResponse(); + } + + public function confirmNoRoadAccessNeed(ConfirmNoRoadAccessNeedRequest $request, Harim $harim): JsonResponse + { + DB::transaction(function () use ($request, $harim) { + $action = HarimAction::CONFIRM->value; + $harim->histories()->create([ + 'expert_id' => auth()->user()->id, + 'previous_state_id' => $harim->state_id, + 'previous_state_name' => $harim->state_name, + 'expert_description' => $request->expert_description, + 'action_id' => $action, + 'action_name' => HarimAction::name($action), + ]); + + $state = HarimStates::ERSAL_BE_PANJAREH_VAHED_BEDONEH_NIAZ_BE_RAH_DASTRASI->value; + $harim->update([ + 'state_id' => $state, + 'state_name' => HarimStates::name($state), + ]); + }); + return $this->successResponse(); + } + + public function confirmRoadAccessEditNeed(ConfirmRoadAccessEditNeedRequest $request, Harim $harim): JsonResponse + { + DB::transaction(function () use ($request, $harim) { + $action = HarimAction::CONFIRM->value; + $harim->histories()->create([ + 'expert_id' => auth()->user()->id, + 'previous_state_id' => $harim->state_id, + 'previous_state_name' => $harim->state_name, + 'expert_description' => $request->expert_description, + 'action_id' => $action, + 'action_name' => HarimAction::name($action), + ]); + + $state = HarimStates::UPDATE_FILE_BARGOZARE_SHODE->value; + $harim->update([ + 'state_id' => $state, + 'state_name' => HarimStates::name($state), + ]); + }); + return $this->successResponse(); + } + + public function confirmGuaranteeLetterNeed(ConfirmGuaranteeLetterNeedRequest $request, Harim $harim): JsonResponse + { + DB::transaction(function () use ($request, $harim) { + $action = HarimAction::CONFIRM->value; + $harim->histories()->create([ + 'expert_id' => auth()->user()->id, + 'previous_state_id' => $harim->state_id, + 'previous_state_name' => $harim->state_name, + 'expert_description' => $request->expert_description, + 'action_id' => $action, + 'action_name' => HarimAction::name($action), + ]); + + $state = HarimStates::ERSAL_ZEMANAT_NAME_TAVASOTE_KARBAR->value; $harim->update([ 'state_id' => $state, 'state_name' => HarimStates::name($state), diff --git a/app/Http/Controllers/V3/Dashboard/Harim/ProvinceOfficeController.php b/app/Http/Controllers/V3/Dashboard/Harim/ProvinceOfficeController.php index 5537e15f..6a23b1aa 100644 --- a/app/Http/Controllers/V3/Dashboard/Harim/ProvinceOfficeController.php +++ b/app/Http/Controllers/V3/Dashboard/Harim/ProvinceOfficeController.php @@ -21,7 +21,7 @@ class ProvinceOfficeController extends Controller { $user = auth()->user(); $query = Harim::query() - ->where('state_id','=',HarimStates::Baresi_Edare_Shahrestan->value) + ->where('state_id', '=', HarimStates::BARESI_EDARE_SHAHRESTAN->value) ->where('edareh_shahri_id', '=', $user->edarate_shahri_id); $data = DataTableFacade::run( @@ -47,7 +47,7 @@ class ProvinceOfficeController extends Controller 'action_name' => HarimAction::name($action), ]); - $state = HarimStates::Baresi_Imeni_Rah_Tavasot_Daftar_Harim->value; + $state = HarimStates::BARESI_TAVASOT_DAFTAR_HARIM->value; $harim ->update([ 'state_id' => $state, diff --git a/app/Http/Requests/V3/Dashboard/Harim/GeneralManager/ConfirmGuaranteeLetterNeedRequest.php b/app/Http/Requests/V3/Dashboard/Harim/GeneralManager/ConfirmGuaranteeLetterNeedRequest.php new file mode 100644 index 00000000..6c943ebe --- /dev/null +++ b/app/Http/Requests/V3/Dashboard/Harim/GeneralManager/ConfirmGuaranteeLetterNeedRequest.php @@ -0,0 +1,30 @@ +harim->edareh_shahri_id == auth()->user()->edarate_shahri_id && + $this->harim->state_id == HarimStates::BARESI_TAVASOT_MODIR_KOL->value; + } + + /** + * Get the validation rules that apply to the request. + * + * @return array|string> + */ + public function rules(): array + { + return [ + 'expert_description' => 'required|string', + ]; + } +} diff --git a/app/Http/Requests/V3/Dashboard/Harim/GeneralManager/ConfirmNoRoadAccessNeedRequest.php b/app/Http/Requests/V3/Dashboard/Harim/GeneralManager/ConfirmNoRoadAccessNeedRequest.php new file mode 100644 index 00000000..94a60116 --- /dev/null +++ b/app/Http/Requests/V3/Dashboard/Harim/GeneralManager/ConfirmNoRoadAccessNeedRequest.php @@ -0,0 +1,30 @@ +harim->edareh_shahri_id == auth()->user()->edarate_shahri_id && + $this->harim->state_id == HarimStates::BARESI_TAVASOT_MODIR_KOL->value; + } + + /** + * Get the validation rules that apply to the request. + * + * @return array|string> + */ + public function rules(): array + { + return [ + 'expert_description' => 'required|string', + ]; + } +} diff --git a/app/Http/Requests/V3/Dashboard/Harim/GeneralManager/ConfirmRoadAccessEditNeedRequest.php b/app/Http/Requests/V3/Dashboard/Harim/GeneralManager/ConfirmRoadAccessEditNeedRequest.php new file mode 100644 index 00000000..5d4649f5 --- /dev/null +++ b/app/Http/Requests/V3/Dashboard/Harim/GeneralManager/ConfirmRoadAccessEditNeedRequest.php @@ -0,0 +1,30 @@ +harim->edareh_shahri_id == auth()->user()->edarate_shahri_id && + $this->harim->state_id == HarimStates::BARESI_FILE_APLODE_SHODE_TAVASOTE_MODIR_KOL->value; + } + + /** + * Get the validation rules that apply to the request. + * + * @return array|string> + */ + public function rules(): array + { + return [ + 'expert_description' => 'required|string', + ]; + } +} diff --git a/app/Http/Requests/V3/Dashboard/Harim/GeneralManager/ConfirmRoadAccessNeedRequest.php b/app/Http/Requests/V3/Dashboard/Harim/GeneralManager/ConfirmRoadAccessNeedRequest.php new file mode 100644 index 00000000..9176609a --- /dev/null +++ b/app/Http/Requests/V3/Dashboard/Harim/GeneralManager/ConfirmRoadAccessNeedRequest.php @@ -0,0 +1,30 @@ +harim->edareh_shahri_id == auth()->user()->edarate_shahri_id && + $this->harim->state_id == HarimStates::BARESI_TAVASOT_MODIR_KOL->value; + } + + /** + * Get the validation rules that apply to the request. + * + * @return array|string> + */ + public function rules(): array + { + return [ + 'expert_description' => 'required|string', + ]; + } +} diff --git a/app/Http/Requests/V3/Dashboard/Harim/GeneralManager/ReferFileRequest.php b/app/Http/Requests/V3/Dashboard/Harim/GeneralManager/ReferFileRequest.php new file mode 100644 index 00000000..ea8ab9ed --- /dev/null +++ b/app/Http/Requests/V3/Dashboard/Harim/GeneralManager/ReferFileRequest.php @@ -0,0 +1,30 @@ +harim->edareh_shahri_id == auth()->user()->edarate_shahri_id && + $this->harim->state_id == HarimStates::BARESI_FILE_APLODE_SHODE_TAVASOTE_MODIR_KOL->value; + } + + /** + * Get the validation rules that apply to the request. + * + * @return array|string> + */ + public function rules(): array + { + return [ + 'expert_description' => 'required|string', + ]; + } +} diff --git a/app/Http/Requests/V3/Dashboard/Harim/GeneralManager/ConfirmRequest.php b/app/Http/Requests/V3/Dashboard/Harim/GeneralManager/ReferRequest.php similarity index 83% rename from app/Http/Requests/V3/Dashboard/Harim/GeneralManager/ConfirmRequest.php rename to app/Http/Requests/V3/Dashboard/Harim/GeneralManager/ReferRequest.php index 145086b2..931578ee 100644 --- a/app/Http/Requests/V3/Dashboard/Harim/GeneralManager/ConfirmRequest.php +++ b/app/Http/Requests/V3/Dashboard/Harim/GeneralManager/ReferRequest.php @@ -5,7 +5,7 @@ namespace App\Http\Requests\V3\Dashboard\Harim\GeneralManager; use App\Enums\HarimStates; use Illuminate\Foundation\Http\FormRequest; -class ConfirmRequest extends FormRequest +class ReferRequest extends FormRequest { /** * Determine if the user is authorized to make this request. @@ -13,7 +13,7 @@ class ConfirmRequest extends FormRequest public function authorize(): bool { return $this->harim->edareh_shahri_id == auth()->user()->edarate_shahri_id && - $this->harim->state_id == HarimStates::Baresi_Imeni_Rah_Tavasot_Modir_Kol->value; + $this->harim->state_id == HarimStates::BARESI_TAVASOT_MODIR_KOL->value; } /** diff --git a/app/Http/Requests/V3/Dashboard/Harim/GeneralManager/RejectRequest.php b/app/Http/Requests/V3/Dashboard/Harim/GeneralManager/RejectRequest.php index b4281fea..1d90ab5d 100644 --- a/app/Http/Requests/V3/Dashboard/Harim/GeneralManager/RejectRequest.php +++ b/app/Http/Requests/V3/Dashboard/Harim/GeneralManager/RejectRequest.php @@ -13,7 +13,7 @@ class RejectRequest extends FormRequest public function authorize(): bool { return $this->harim->edareh_shahri_id == auth()->user()->edarate_shahri_id && - $this->harim->state_id == HarimStates::Baresi_Imeni_Rah_Tavasot_Modir_Kol->value; + $this->harim->state_id == HarimStates::BARESI_TAVASOT_MODIR_KOL->value; } /** diff --git a/app/Http/Requests/V3/Dashboard/Harim/ProvinceOffice/FeedBackRequest.php b/app/Http/Requests/V3/Dashboard/Harim/ProvinceOffice/FeedBackRequest.php index ce8b313d..3c0b229b 100644 --- a/app/Http/Requests/V3/Dashboard/Harim/ProvinceOffice/FeedBackRequest.php +++ b/app/Http/Requests/V3/Dashboard/Harim/ProvinceOffice/FeedBackRequest.php @@ -13,7 +13,7 @@ class FeedBackRequest extends FormRequest public function authorize(): bool { return $this->harim->edareh_shahri_id == auth()->user()->edarate_shahri_id && - $this->harim->state_id == HarimStates::Baresi_Edare_Shahrestan->value; + $this->harim->state_id == HarimStates::BARESI_EDARE_SHAHRESTAN->value; } /** diff --git a/database/seeders/HarimActionSeeder.php b/database/seeders/HarimActionSeeder.php index db6c95fb..0a84a66f 100644 --- a/database/seeders/HarimActionSeeder.php +++ b/database/seeders/HarimActionSeeder.php @@ -18,7 +18,7 @@ class HarimActionSeeder extends Seeder ['id' => 2, 'name' => 'yes', 'created_at' => now(), 'updated_at' => now(),], ['id' => 3, 'name' => 'no', 'created_at' => now(), 'updated_at' => now(),], ['id' => 4, 'name' => 'confirm', 'created_at' => now(), 'updated_at' => now(),], - ['id' => 5, 'name' => 'reject', 'created_at' => now(), 'updated_at' => now(),], + ['id' => 5, 'name' => 'refer', 'created_at' => now(), 'updated_at' => now(),], ]); } } diff --git a/database/seeders/HarimStateSeeder.php b/database/seeders/HarimStateSeeder.php index 20083f60..0024e975 100644 --- a/database/seeders/HarimStateSeeder.php +++ b/database/seeders/HarimStateSeeder.php @@ -15,9 +15,9 @@ class HarimStateSeeder extends Seeder { DB::table('harim_states')->insert([ ['id' => 1, 'name' => 'بررسی ادارات شهرستان', 'created_at' => now(), 'updated_at' => now(),], - ['id' => 2, 'name' => 'بررسی توسط ادارات حریم', 'created_at' => now(), 'updated_at' => now(),], - ['id' => 3, 'name' => 'بررسی توسط معاون', 'created_at' => now(), 'updated_at' => now(),], - ['id' => 4, 'name' => 'بررسی توسط مدیر کل', 'created_at' => now(), 'updated_at' => now(),], + ['id' => 2, 'name' => 'بررسی توسط ادارات حریم', 'created_at' => now(), 'updated_at' => now(),], + ['id' => 3, 'name' => 'بررسی توسط معاون', 'created_at' => now(), 'updated_at' => now(),], + ['id' => 4, 'name' => 'بررسی توسط مدیر کل', 'created_at' => now(), 'updated_at' => now(),], ['id' => 5, 'name' => 'بررسی فایل آپلود شده توسط اداره حریم', 'created_at' => now(), 'updated_at' => now(),], ['id' => 6, 'name' => 'بررسی فایل آپلود شده توسط معاون', 'created_at' => now(), 'updated_at' => now(),], ['id' => 7, 'name' => 'بررسی فایل آپلود شده توسط مدیر', 'created_at' => now(), 'updated_at' => now(),],