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/HarimOfficeController.php b/app/Http/Controllers/V3/Dashboard/Harim/HarimOfficeController.php index eaf9012f..30bdc2ff 100644 --- a/app/Http/Controllers/V3/Dashboard/Harim/HarimOfficeController.php +++ b/app/Http/Controllers/V3/Dashboard/Harim/HarimOfficeController.php @@ -6,9 +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\HarimOffice\FileRejectedRequest; +use App\Http\Requests\V3\Dashboard\Harim\HarimOffice\FileAcceptedRequest; +use App\Http\Requests\V3\Dashboard\Harim\HarimOffice\RejectRequest; use App\Http\Requests\V3\Dashboard\Harim\HarimOffice\ShowRequest; -use App\Http\Requests\V3\Dashboard\Harim\HarimOffice\YesRequest; -use App\Http\Requests\V3\Dashboard\Harim\HarimOffice\NoRequest; +use App\Http\Requests\V3\Dashboard\Harim\HarimOffice\NeedRoadAccessRequest; +use App\Http\Requests\V3\Dashboard\Harim\HarimOffice\WithoutRoadAccessRequest; use App\Http\Traits\ApiResponse; use App\Models\Harim; use Illuminate\Http\JsonResponse; @@ -21,19 +24,50 @@ class HarimOfficeController extends Controller public function index(Request $request): JsonResponse { - $user = auth()->user(); $query = Harim::query() - ->where('state_id','=',HarimStates::Baresi_Imeni_Rah_Tavasot_Daftar_Harim->value) - ->where('edareh_shahri_id', '=', $user->edarate_shahri_id); + ->whereIn('state_id', [ + HarimStates::BARESI_TAVASOT_DAFTAR_HARIM->value, + HarimStates::BARESI_FILE_APLODE_SHODE_TAVASOTE_DAFTAR_HARIM->value, + ]) + ->where('edareh_shahri_id', '=', auth()->user()->edarate_shahri_id); + $data = DataTableFacade::run( $query, $request, allowedFilters: ['*'], allowedSortings: ['*'], ); + return response()->json($data); } - public function yes(YesRequest $request, Harim $harim ): JsonResponse + + + public function rejectRequest(RejectRequest $request, Harim $harim): JsonResponse + { + DB::transaction(function () use ($request, $harim) { + $action = HarimAction::NO->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::BARESI_TAVASOT_MOAVEN->value; + + $harim->update([ + 'state_id' => $state, + 'state_name' => HarimStates::name($state), + 'is_possible' => false, + ]); + }); + return $this->successResponse(); + } + + + public function needRoadAccess(NeedRoadAccessRequest $request, Harim $harim): JsonResponse { DB::transaction(function () use ($request,$harim) { $action = HarimAction::YES->value; @@ -46,17 +80,67 @@ class HarimOfficeController extends Controller '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), - 'final_description' => 'yes' + 'is_possible' => true, + 'need_road_access' => true, ]); }); return $this->successResponse(); } - public function no(NoRequest $request, Harim $harim ): JsonResponse + + + public function withoutRoadAccess(WithoutRoadAccessRequest $request, Harim $harim): JsonResponse + { + DB::transaction(function () use ($request,$harim) { + $action = HarimAction::YES->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::BARESI_TAVASOT_MOAVEN->value; + + $harim ->update([ + 'state_id' => $state, + 'state_name' => HarimStates::name($state), + 'is_possible' => true, + 'need_road_access' => false, + ]); + }); + return $this->successResponse(); + } + public function fileAccepted(FileAcceptedRequest $request, Harim $harim): JsonResponse + { + DB::transaction(function () use ($request,$harim) { + $action = HarimAction::YES->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::BARESI_FILE_APLODE_SHODE_TAVASOTE_MOAVEN->value; + + $harim ->update([ + 'state_id' => $state, + 'state_name' => HarimStates::name($state), + 'is_file_good' => true, + ]); + }); + return $this->successResponse(); + } + public function fileRejected(FileRejectedRequest $request, Harim $harim): JsonResponse { DB::transaction(function () use ($request,$harim) { $action = HarimAction::NO->value; @@ -69,12 +153,12 @@ class HarimOfficeController extends Controller 'action_name' => HarimAction::name($action), ]); - $state = HarimStates::Baresi_Imeni_Rah_Tavasot_Moaven->value; + $state = HarimStates::BARESI_FILE_APLODE_SHODE_TAVASOTE_MOAVEN->value; $harim ->update([ 'state_id' => $state, 'state_name' => HarimStates::name($state), - 'final_description' => 'no' + 'is_file_good' => false, ]); }); return $this->successResponse(); 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/Controllers/V3/Dashboard/Harim/TechnicalDeputyController.php b/app/Http/Controllers/V3/Dashboard/Harim/TechnicalDeputyController.php index a920d9fc..c45d9564 100644 --- a/app/Http/Controllers/V3/Dashboard/Harim/TechnicalDeputyController.php +++ b/app/Http/Controllers/V3/Dashboard/Harim/TechnicalDeputyController.php @@ -7,12 +7,14 @@ use App\Enums\HarimStates; use App\Facades\DataTable\DataTableFacade; use App\Http\Controllers\Controller; use App\Http\Requests\V3\Dashboard\Harim\Deputy\ConfirmRequest; +use App\Http\Requests\V3\Dashboard\Harim\Deputy\ConfirmRoadAccessRequest; +use App\Http\Requests\V3\Dashboard\Harim\Deputy\ReferRequest; +use App\Http\Requests\V3\Dashboard\Harim\Deputy\ReferRoadAccessRequest; use App\Http\Requests\V3\Dashboard\Harim\Deputy\ShowRequest; use App\Http\Traits\ApiResponse; use App\Models\Harim; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; -use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\DB; class TechnicalDeputyController extends Controller @@ -20,11 +22,12 @@ class TechnicalDeputyController extends Controller use ApiResponse; public function index(Request $request): JsonResponse { - $user = auth()->user(); $query = Harim::query() - ->where('state_id', '=', HarimStates::Baresi_Imeni_Rah_Tavasot_Moaven->value) - ->where('edare_shahri_id', '=', $user->edarate_shahri_id) - ->with('histories:expert_description'); + ->whereIn('state_id', [ + HarimStates::BARESI_FILE_APLODE_SHODE_TAVASOTE_MOAVEN->value, + HarimStates::BARESI_TAVASOT_MOAVEN->value, + ]) + ->where('edare_shahri_id', '=', auth()->user()->edarate_shahri_id); $data = DataTableFacade::run( $query, @@ -32,9 +35,10 @@ class TechnicalDeputyController extends Controller allowedFilters: ['*'], allowedSortings: ['*'], ); + return response()->json($data); } - public function conform(ConfirmRequest $request, Harim $harim): JsonResponse + public function confirmRequest(ConfirmRequest $request, Harim $harim): JsonResponse { DB::transaction(function () use ($request,$harim) { $action = HarimAction::CONFIRM->value; @@ -47,20 +51,21 @@ class TechnicalDeputyController extends Controller 'action_id' => $action, 'action_name' => HarimAction::name($action), ]); - $state = HarimStates::Baresi_Imeni_Rah_Tavasot_Modir_Kol->value; + + $state = HarimStates::BARESI_TAVASOT_MODIR_KOL->value; $harim ->update([ 'state_id' => $state, 'state_name' => HarimStates::name($state), - ]); + ]); }); return $this->successResponse(); } - public function reject(ConfirmRequest $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, @@ -70,7 +75,54 @@ class TechnicalDeputyController extends Controller 'action_id' => $action, '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, + 'state_name' => HarimStates::name($state), + ]); + }); + return $this->successResponse(); + } + public function confirmRoadAccess(ConfirmRoadAccessRequest $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::BARESI_FILE_APLODE_SHODE_TAVASOTE_MODIR_KOL->value; + + $harim->update([ + 'state_id' => $state, + 'state_name' => HarimStates::name($state), + ]); + }); + return $this->successResponse(); + } + + public function referRoadAccess(ReferRoadAccessRequest $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, + 'expert_description' => $request->expert_description, + 'action_id' => $action, + 'action_name' => HarimAction::name($action), + ]); + + $state = HarimStates::BARESI_FILE_APLODE_SHODE_TAVASOTE_DAFTAR_HARIM->value; + $harim->update([ 'state_id' => $state, 'state_name' => HarimStates::name($state), diff --git a/app/Http/Requests/V3/Dashboard/Harim/Deputy/ConfirmRequest.php b/app/Http/Requests/V3/Dashboard/Harim/Deputy/ConfirmRequest.php index 3ac727b1..f754eb14 100644 --- a/app/Http/Requests/V3/Dashboard/Harim/Deputy/ConfirmRequest.php +++ b/app/Http/Requests/V3/Dashboard/Harim/Deputy/ConfirmRequest.php @@ -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_Moaven->value; + $this->harim->state_id == HarimStates::BARESI_TAVASOT_MOAVEN->value; } /** diff --git a/app/Http/Requests/V3/Dashboard/Harim/Deputy/ConfirmRoadAccessRequest.php b/app/Http/Requests/V3/Dashboard/Harim/Deputy/ConfirmRoadAccessRequest.php new file mode 100644 index 00000000..525e72fd --- /dev/null +++ b/app/Http/Requests/V3/Dashboard/Harim/Deputy/ConfirmRoadAccessRequest.php @@ -0,0 +1,30 @@ +harim->edareh_shahri_id == auth()->user()->edarate_shahri_id && + $this->harim->state_id == HarimStates::BARESI_FILE_APLODE_SHODE_TAVASOTE_MOAVEN->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/Deputy/ReferRequest.php b/app/Http/Requests/V3/Dashboard/Harim/Deputy/ReferRequest.php new file mode 100644 index 00000000..335de432 --- /dev/null +++ b/app/Http/Requests/V3/Dashboard/Harim/Deputy/ReferRequest.php @@ -0,0 +1,30 @@ +harim->edareh_shahri_id == auth()->user()->edarate_shahri_id && + $this->harim->state_id == HarimStates::BARESI_TAVASOT_MOAVEN->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/Deputy/ReferRoadAccessRequest.php b/app/Http/Requests/V3/Dashboard/Harim/Deputy/ReferRoadAccessRequest.php new file mode 100644 index 00000000..3cd3e81c --- /dev/null +++ b/app/Http/Requests/V3/Dashboard/Harim/Deputy/ReferRoadAccessRequest.php @@ -0,0 +1,30 @@ +harim->edareh_shahri_id == auth()->user()->edarate_shahri_id && + $this->harim->state_id == HarimStates::BARESI_FILE_APLODE_SHODE_TAVASOTE_MOAVEN->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/Deputy/ShowRequest.php b/app/Http/Requests/V3/Dashboard/Harim/Deputy/ShowRequest.php index e9301952..0264699f 100644 --- a/app/Http/Requests/V3/Dashboard/Harim/Deputy/ShowRequest.php +++ b/app/Http/Requests/V3/Dashboard/Harim/Deputy/ShowRequest.php @@ -13,7 +13,10 @@ class ShowRequest 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_Moaven->value; + in_array($this->harim->state_id, [ + HarimStates::BARESI_TAVASOT_MOAVEN->value, + HarimStates::BARESI_FILE_APLODE_SHODE_TAVASOTE_MOAVEN->value, + ]); } /** 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/HarimOffice/FileAcceptedRequest.php b/app/Http/Requests/V3/Dashboard/Harim/HarimOffice/FileAcceptedRequest.php new file mode 100644 index 00000000..018d7de9 --- /dev/null +++ b/app/Http/Requests/V3/Dashboard/Harim/HarimOffice/FileAcceptedRequest.php @@ -0,0 +1,30 @@ +harim->edareh_shahri_id == auth()->user()->edarate_shahri_id && + $this->harim->state_id == HarimStates::BARESI_FILE_APLODE_SHODE_TAVASOTE_DAFTAR_HARIM->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/HarimOffice/FileRejectedRequest.php b/app/Http/Requests/V3/Dashboard/Harim/HarimOffice/FileRejectedRequest.php new file mode 100644 index 00000000..5a95a458 --- /dev/null +++ b/app/Http/Requests/V3/Dashboard/Harim/HarimOffice/FileRejectedRequest.php @@ -0,0 +1,30 @@ +harim->edareh_shahri_id == auth()->user()->edarate_shahri_id && + $this->harim->state_id == HarimStates::BARESI_FILE_APLODE_SHODE_TAVASOTE_DAFTAR_HARIM->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/HarimOffice/NoRequest.php b/app/Http/Requests/V3/Dashboard/Harim/HarimOffice/NeedRoadAccessRequest.php similarity index 83% rename from app/Http/Requests/V3/Dashboard/Harim/HarimOffice/NoRequest.php rename to app/Http/Requests/V3/Dashboard/Harim/HarimOffice/NeedRoadAccessRequest.php index ee6a53ce..6e83e4ad 100644 --- a/app/Http/Requests/V3/Dashboard/Harim/HarimOffice/NoRequest.php +++ b/app/Http/Requests/V3/Dashboard/Harim/HarimOffice/NeedRoadAccessRequest.php @@ -5,7 +5,7 @@ namespace App\Http\Requests\V3\Dashboard\Harim\HarimOffice; use App\Enums\HarimStates; use Illuminate\Foundation\Http\FormRequest; -class NoRequest extends FormRequest +class NeedRoadAccessRequest extends FormRequest { /** * Determine if the user is authorized to make this request. @@ -13,7 +13,7 @@ class NoRequest 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_Daftar_Harim->value; + $this->harim->state_id == HarimStates::BARESI_TAVASOT_DAFTAR_HARIM->value; } /** diff --git a/app/Http/Requests/V3/Dashboard/Harim/Deputy/RejectRequest.php b/app/Http/Requests/V3/Dashboard/Harim/HarimOffice/RejectRequest.php similarity index 81% rename from app/Http/Requests/V3/Dashboard/Harim/Deputy/RejectRequest.php rename to app/Http/Requests/V3/Dashboard/Harim/HarimOffice/RejectRequest.php index b9dcf259..b072d879 100644 --- a/app/Http/Requests/V3/Dashboard/Harim/Deputy/RejectRequest.php +++ b/app/Http/Requests/V3/Dashboard/Harim/HarimOffice/RejectRequest.php @@ -1,6 +1,6 @@ harim->edareh_shahri_id == auth()->user()->edarate_shahri_id && - $this->harim->state_id == HarimStates::Baresi_Imeni_Rah_Tavasot_Moaven->value; + $this->harim->state_id == HarimStates::BARESI_TAVASOT_DAFTAR_HARIM->value; } + /** * Get the validation rules that apply to the request. * diff --git a/app/Http/Requests/V3/Dashboard/Harim/HarimOffice/ShowRequest.php b/app/Http/Requests/V3/Dashboard/Harim/HarimOffice/ShowRequest.php index fe46f1a8..eefc0c40 100644 --- a/app/Http/Requests/V3/Dashboard/Harim/HarimOffice/ShowRequest.php +++ b/app/Http/Requests/V3/Dashboard/Harim/HarimOffice/ShowRequest.php @@ -13,9 +13,13 @@ class ShowRequest 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_Daftar_Harim->value; + in_array($this->harim->state_id, [ + HarimStates::BARESI_TAVASOT_DAFTAR_HARIM->value, + HarimStates::BARESI_FILE_APLODE_SHODE_TAVASOTE_DAFTAR_HARIM, + ]); } + /** * Get the validation rules that apply to the request. * diff --git a/app/Http/Requests/V3/Dashboard/Harim/HarimOffice/YesRequest.php b/app/Http/Requests/V3/Dashboard/Harim/HarimOffice/WithoutRoadAccessRequest.php similarity index 82% rename from app/Http/Requests/V3/Dashboard/Harim/HarimOffice/YesRequest.php rename to app/Http/Requests/V3/Dashboard/Harim/HarimOffice/WithoutRoadAccessRequest.php index 20b39e7e..44c64bfa 100644 --- a/app/Http/Requests/V3/Dashboard/Harim/HarimOffice/YesRequest.php +++ b/app/Http/Requests/V3/Dashboard/Harim/HarimOffice/WithoutRoadAccessRequest.php @@ -5,7 +5,7 @@ namespace App\Http\Requests\V3\Dashboard\Harim\HarimOffice; use App\Enums\HarimStates; use Illuminate\Foundation\Http\FormRequest; -class YesRequest extends FormRequest +class WithoutRoadAccessRequest extends FormRequest { /** * Determine if the user is authorized to make this request. @@ -13,7 +13,7 @@ class YesRequest 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_Daftar_Harim->value; + $this->harim->state_id == HarimStates::BARESI_TAVASOT_DAFTAR_HARIM->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/migrations/2025_07_30_153041_create_harims_table.php b/database/migrations/2025_07_30_153041_create_harims_table.php index 74ea3fa9..cddf389a 100644 --- a/database/migrations/2025_07_30_153041_create_harims_table.php +++ b/database/migrations/2025_07_30_153041_create_harims_table.php @@ -42,7 +42,6 @@ return new class extends Migration $table->boolean('need_road_access')->nullable(); $table->boolean('is_file_good')->nullable(); $table->boolean('is_possible')->nullable(); - $table->string('final_description')->nullable(); $table->timestamps(); }); } 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(),], diff --git a/routes/v3.php b/routes/v3.php index 00fd6a2e..f7ae4322 100644 --- a/routes/v3.php +++ b/routes/v3.php @@ -25,7 +25,6 @@ use App\Http\Controllers\V3\Dashboard\SafetyAndPrivacy\OperatorController; use App\Http\Controllers\V3\Dashboard\SafetyAndPrivacy\OperatorReport\AccessRoadActivityController; use App\Http\Controllers\V3\Dashboard\SafetyAndPrivacy\OperatorReport\ConstructionActivityController; use App\Http\Controllers\V3\Dashboard\SafetyAndPrivacy\OperatorReport\UtilityPassingActivityController; -use App\Http\Controllers\V3\Dashboard\SafetyAndPrivacy\OperatorReportController; use App\Http\Controllers\V3\Dashboard\SafetyAndPrivacy\SupervisorController; use App\Http\Controllers\V3\FMSVehicleManagementController; use App\Http\Controllers\V3\Harim\DivarkeshiController; @@ -525,8 +524,11 @@ Route::prefix('harim') ->controller(HarimOfficeController::class) ->group(function () { Route::get('/', 'index')->name('index'); - Route::post('/yes/{harim}', 'yes')->name('yes'); - Route::post('/no/{harim}', 'no')->name('no'); + Route::post('/reject_request/{harim}', 'rejectRequest')->name('rejectRequest'); + Route::post('/need_road_access/{harim}', 'needRoadAccess')->name('needRoadAccess'); + Route::post('/without_road_access/{harim}', 'withoutRoadAccess')->name('withoutRoadAccess'); + Route::post('/file_accepted/{harim}', 'fileAccepted')->name('fileAccepted'); + Route::post('/file_rejected/{harim}', 'fileRejected')->name('fileRejected'); Route::get('/{harim}', 'show')->name('show'); }); Route::prefix('technical_deputy') @@ -534,8 +536,10 @@ Route::prefix('harim') ->controller(TechnicalDeputyController::class) ->group(function () { Route::get('/', 'index')->name('index'); - Route::post('/conform/{harim}', 'conform')->name('conform'); - Route::post('/reject/{harim}', 'reject')->name('reject'); + Route::post('/confirm_request/{harim}', 'confirmRequest')->name('confirmRequest'); + Route::post('/refer_request/{harim}', 'referRequest')->name('referRequest'); + Route::post('/confirm_road_access/{harim}', 'confirmRoadAccess')->name('confirmRoadAccess'); + Route::post('/refer_road_access/{harim}', 'referRoadAccess')->name('referRoadAccess'); Route::get('/{harim}', 'show')->name('show'); }); Route::prefix('general_manager') @@ -543,8 +547,13 @@ Route::prefix('harim') ->controller(GeneralManagerController::class) ->group(function () { Route::get('/', 'index')->name('index'); - Route::post('/conform/{harim}', 'conform')->name('conform'); - Route::post('/reject/{harim}', 'reject')->name('reject'); + Route::post('/reject_request/{harim}', 'rejectRequest')->name('rejectRequest'); + Route::post('/refer_request/{harim}', 'referRequest')->name('referRequest'); + Route::post('/refer_file/{harim}', 'referFile')->name('referFile'); + Route::post('/confirm_road_access_need/{harim}', 'confirmRoadAccessNeed')->name('confirmRoadAccessNeed'); + Route::post('/confirm_no_road_access_need/{harim}', 'confirmNoRoadAccessNeed')->name('confirmNoRoadAccessNeed'); + Route::post('/confirm_road_access_edit_need/{harim}', 'confirmRoadAccessEditNeed')->name('confirmRoadAccessEditNeed'); + Route::post('/confirm_guarantee_letter_need/{harim}', 'confirmGuaranteeLetterNeed')->name('confirmGuaranteeLetterNeed'); Route::get('/{harim}', 'show')->name('show'); }); });