From a619efb123e6e83eb52b5971656cedaa7cd05fd3 Mon Sep 17 00:00:00 2001 From: faezehzafarbakhsh Date: Sat, 8 Nov 2025 16:34:32 +0330 Subject: [PATCH 1/3] appand new position for 3 position in harim and need dependency --- app/Enums/HarimStates.php | 28 +++--- .../{HarimTerafic.php => HarimTraffic.php} | 2 +- .../Harim/GeneralManagerController.php | 88 ++++++++++++++++++- .../Dashboard/Harim/HarimOfficeController.php | 57 +++++++++++- .../Harim/TechnicalDeputyController.php | 21 ++++- .../Harim/Deputy/ConfirmPaymentRequest.php | 31 +++++++ .../Harim/Deputy/ConfirmRoadAccessRequest.php | 2 +- .../Harim/Deputy/ReferPaymentRequest.php | 31 +++++++ .../Harim/Deputy/ReferRoadAccessRequest.php | 2 +- .../GeneralManager/ConfirmPaymentRequest.php | 31 +++++++ .../ConfirmRoadAccessEditNeedRequest.php | 2 +- .../Harim/GeneralManager/ReferFileRequest.php | 2 +- .../GeneralManager/ReferPaymentRequest.php | 31 +++++++ .../HarimOffice/ComputingPaymentRequest.php | 36 ++++++++ .../Harim/HarimOffice/FileAcceptedRequest.php | 2 +- .../Harim/HarimOffice/FileRejectedRequest.php | 2 +- ...fic_position_road_type_to_harims_table.php | 32 +++++++ 17 files changed, 373 insertions(+), 27 deletions(-) rename app/Enums/{HarimTerafic.php => HarimTraffic.php} (92%) create mode 100644 app/Http/Requests/V3/Dashboard/Harim/Deputy/ConfirmPaymentRequest.php create mode 100644 app/Http/Requests/V3/Dashboard/Harim/Deputy/ReferPaymentRequest.php create mode 100644 app/Http/Requests/V3/Dashboard/Harim/GeneralManager/ConfirmPaymentRequest.php create mode 100644 app/Http/Requests/V3/Dashboard/Harim/GeneralManager/ReferPaymentRequest.php create mode 100644 app/Http/Requests/V3/Dashboard/Harim/HarimOffice/ComputingPaymentRequest.php create mode 100644 database/migrations/2025_11_08_093438_add_trafic_position_road_type_to_harims_table.php diff --git a/app/Enums/HarimStates.php b/app/Enums/HarimStates.php index 8f73c4c0..46605887 100644 --- a/app/Enums/HarimStates.php +++ b/app/Enums/HarimStates.php @@ -8,18 +8,19 @@ enum HarimStates: int case BARESI_TAVASOT_DAFTAR_HARIM = 2; case BARESI_TAVASOT_MOAVEN = 3; case BARESI_TAVASOT_MODIR_KOL = 4; - case BARESI_FILE_APLODE_SHODE_TAVASOTE_DAFTAR_HARIM = 5; - case BARESI_FILE_APLODE_SHODE_TAVASOTE_MOAVEN = 6; - case BARESI_FILE_APLODE_SHODE_TAVASOTE_MODIR_KOL = 7; - case ERSAL_ZEMANAT_NAME_TAVASOTE_KARBAR =8; + case BARESI_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_DAFTAR_HARIM = 5; + case BARESI_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_MOAVEN = 6; + case BARESI_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_MODIR_KOL = 7; + case ARSE_VA_AYAN_NAHAI =8; case ERSAL_BE_PANJAREH_VAHED_NIAZ_BE_RAH_DASTRASI = 9; case EMKAN_PAZIR_NEMEBASHAD = 10; case ERSAL_BE_PANJAREH_VAHED_BEDONEH_NIAZ_BE_RAH_DASTRASI = 11; - case UPDATE_FILE_BARGOZARE_SHODE = 12; - case TAEDE_ARSE_VA_AYAN_ERSAL_SHODE_TAVASOT_DAFTAR_HARIM = 13; - case TAEDE_ARSE_VA_AYAN_ERSAL_SHODE_TAVASOT_TAVASOTE_MOAVEN = 14; - case TAEDE_ARSE_VA_AYAN_ERSAL_SHODE_TAVASOT_MODIR_KOL = 15; + case UPDATE_RAHE_DASTRASI_BARGOZARE_SHODE = 12; + case BARESI_ARSE_VA_AYAN_ERSAL_SHODE_TAVASOT_DAFTAR_HARIM = 13; + case BARESI_ARSE_VA_AYAN_ERSAL_SHODE_TAVASOT_MOAVEN = 14; + case BARESI_ARSE_VA_AYAN_ERSAL_SHODE_TAVASOT_MODIR_KOL = 15; case MOKHALEFAT_BA_DASTGAH = 16; + case ETMAM_FARAYAND = 17; public static function name(int $state): string { @@ -28,18 +29,19 @@ enum HarimStates: int 2 => "بررسی توسط ادارات حریم", 3 => "بررسی توسط معاون ", 4 => "بررسی توسط مدیر کل", - 5 => "بررسی فایل آپلود شده توسط اداره حریم", - 6 => "بررسی فایل آپلود شده توسط معاون", - 7 => "بررسی فایل آپلود شده توسط مدیر", + 5 => "بررسی راه دسترسی آپلود شده توسط اداره حریم", + 6 => "بررسی راه دسترسی آپلود شده توسط معاون", + 7 => "بررسی راه دسترسی آپلود شده توسط مدیر", 8 => "ارسال ضمانت نامه توسط کاربر", 9 => "ارسال به پنجره واحد (نیاز به راه دسترسی)", 10 => "امکان پذیر نمی باشد", 11 => "ارسال به پنجره واحد (بدون نیاز به راه دسترسی)", - 12 => "بازبینی فایل بارگذاری شده", + 12 => "بازبینی راه دسترسی بارگذاری شده", 13 => "تائید عرصه و اعیان ارسال شده توسط اداره حریم", 14 => "تائید عرصه و اعیان ارسال شده توسط معاون", 15 => "تائید عرصه و اعیان ارسال شده توسط مدیر", - 16 => "مخالفت با درخواست" + 16 => "مخالفت با درخواست", + 17 => "اتمام فرایند" ]; return $mapArray[$state]; diff --git a/app/Enums/HarimTerafic.php b/app/Enums/HarimTraffic.php similarity index 92% rename from app/Enums/HarimTerafic.php rename to app/Enums/HarimTraffic.php index f841223d..8f36c605 100644 --- a/app/Enums/HarimTerafic.php +++ b/app/Enums/HarimTraffic.php @@ -2,7 +2,7 @@ namespace App\Enums; -enum HarimTerafic : string +enum HarimTraffic : string { case SABOK = 'سبک'; case MOTEVASET = 'متوسط'; diff --git a/app/Http/Controllers/V3/Dashboard/Harim/GeneralManagerController.php b/app/Http/Controllers/V3/Dashboard/Harim/GeneralManagerController.php index de8b903c..9266b34f 100644 --- a/app/Http/Controllers/V3/Dashboard/Harim/GeneralManagerController.php +++ b/app/Http/Controllers/V3/Dashboard/Harim/GeneralManagerController.php @@ -13,9 +13,11 @@ use App\Facades\DataTable\DataTableFacade; use App\Http\Controllers\Controller; 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\ConfirmPaymentRequest; 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\ReferFileRequest; +use App\Http\Requests\V3\Dashboard\Harim\GeneralManager\ReferPaymentRequest; 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; @@ -24,6 +26,8 @@ use App\Models\Harim; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; +use Throwable; + class GeneralManagerController extends Controller { @@ -44,6 +48,9 @@ class GeneralManagerController extends Controller return response()->json($data); } + /** + * @throws Throwable + */ public function rejectRequest(RejectRequest $request, Harim $harim): JsonResponse { DB::transaction(function () use ($request, $harim) { @@ -71,6 +78,9 @@ class GeneralManagerController extends Controller return $this->successResponse(); } + /** + * @throws Throwable + */ public function referRequest(ReferRequest $request, Harim $harim): JsonResponse { DB::transaction(function () use ($request, $harim) { @@ -96,6 +106,9 @@ class GeneralManagerController extends Controller return $this->successResponse(); } + /** + * @throws Throwable + */ public function referFile(ReferFileRequest $request, Harim $harim): JsonResponse { DB::transaction(function () use ($request, $harim) { @@ -110,7 +123,7 @@ class GeneralManagerController extends Controller 'action_name' => HarimAction::name($action), ]); - $state = HarimStates::BARESI_FILE_APLODE_SHODE_TAVASOTE_MOAVEN->value; + $state = HarimStates::BARESI_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_MOAVEN->value; $harim->update([ 'state_id' => $state, @@ -121,6 +134,9 @@ class GeneralManagerController extends Controller return $this->successResponse(); } + /** + * @throws Throwable + */ public function confirmRoadAccessNeed(ConfirmRoadAccessNeedRequest $request, Harim $harim): JsonResponse { DB::transaction(function () use ($request, $harim) { @@ -148,6 +164,9 @@ class GeneralManagerController extends Controller return $this->successResponse(); } + /** + * @throws Throwable + */ public function confirmNoRoadAccessNeed(ConfirmNoRoadAccessNeedRequest $request, Harim $harim): JsonResponse { DB::transaction(function () use ($request, $harim) { @@ -176,6 +195,9 @@ class GeneralManagerController extends Controller return $this->successResponse(); } + /** + * @throws Throwable + */ public function confirmRoadAccessEditNeed(ConfirmRoadAccessEditNeedRequest $request, Harim $harim): JsonResponse { DB::transaction(function () use ($request, $harim) { @@ -190,7 +212,7 @@ class GeneralManagerController extends Controller 'action_name' => HarimAction::name($action), ]); - $state = HarimStates::UPDATE_FILE_BARGOZARE_SHODE->value; + $state = HarimStates::UPDATE_RAHE_DASTRASI_BARGOZARE_SHODE->value; $harim->update([ 'state_id' => $state, @@ -203,6 +225,9 @@ class GeneralManagerController extends Controller return $this->successResponse(); } + /** + * @throws \Throwable + */ public function confirmGuaranteeLetterNeed(ConfirmGuaranteeLetterNeedRequest $request, Harim $harim): JsonResponse { DB::transaction(function () use ($request, $harim) { @@ -217,7 +242,7 @@ class GeneralManagerController extends Controller 'action_name' => HarimAction::name($action), ]); - $state = HarimStates::ERSAL_ZEMANAT_NAME_TAVASOTE_KARBAR->value; + $state = HarimStates::ARSE_VA_AYAN_NAHAI->value; $harim->update([ 'state_id' => $state, @@ -234,4 +259,61 @@ class GeneralManagerController extends Controller { return $this->successResponse($harim->load('histories')); } + + /** + * @throws Throwable + */ + public function referPaymentRequest(ReferPaymentRequest $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_ARSE_VA_AYAN_ERSAL_SHODE_TAVASOT_MOAVEN->value; + + $harim->update([ + 'state_id' => $state, + 'state_name' => HarimStates::name($state), + ]); + }); + + return $this->successResponse(); + } + + /** + * @throws Throwable + */ + public function confirmPayment(ConfirmPaymentRequest $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::ETMAM_FARAYAND->value; + + $harim->update([ + 'state_id' => $state, + 'state_name' => HarimStates::name($state), + ]); + }); + + return $this->successResponse(); + } + } diff --git a/app/Http/Controllers/V3/Dashboard/Harim/HarimOfficeController.php b/app/Http/Controllers/V3/Dashboard/Harim/HarimOfficeController.php index 9eaa7460..8d112444 100644 --- a/app/Http/Controllers/V3/Dashboard/Harim/HarimOfficeController.php +++ b/app/Http/Controllers/V3/Dashboard/Harim/HarimOfficeController.php @@ -6,6 +6,7 @@ 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\ComputingPaymentRequest; use App\Http\Requests\V3\Dashboard\Harim\HarimOffice\FileAcceptedRequest; use App\Http\Requests\V3\Dashboard\Harim\HarimOffice\FileRejectedRequest; use App\Http\Requests\V3\Dashboard\Harim\HarimOffice\NeedRoadAccessRequest; @@ -19,6 +20,8 @@ use App\Models\Province; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; +use Throwable; + class HarimOfficeController extends Controller { @@ -39,6 +42,9 @@ class HarimOfficeController extends Controller return response()->json($data); } + /** + * @throws Throwable + */ public function rejectRequest(RejectRequest $request, Harim $harim): JsonResponse { DB::transaction(function () use ($request, $harim) { @@ -64,6 +70,9 @@ class HarimOfficeController extends Controller return $this->successResponse(); } + /** + * @throws Throwable + */ public function referRequest(ReferRequest $request, Harim $harim): JsonResponse { DB::transaction(function () use ($request, $harim) { @@ -89,6 +98,9 @@ class HarimOfficeController extends Controller return $this->successResponse(); } + /** + * @throws Throwable + */ public function needRoadAccess(NeedRoadAccessRequest $request, Harim $harim): JsonResponse { DB::transaction(function () use ($request, $harim) { @@ -116,6 +128,9 @@ class HarimOfficeController extends Controller return $this->successResponse(); } + /** + * @throws Throwable + */ public function withoutRoadAccess(WithoutRoadAccessRequest $request, Harim $harim): JsonResponse { DB::transaction(function () use ($request, $harim) { @@ -143,6 +158,9 @@ class HarimOfficeController extends Controller return $this->successResponse(); } + /** + * @throws Throwable + */ public function fileAccepted(FileAcceptedRequest $request, Harim $harim): JsonResponse { DB::transaction(function () use ($request, $harim) { @@ -156,7 +174,7 @@ class HarimOfficeController extends Controller 'action_name' => HarimAction::name($action), ]); - $state = HarimStates::BARESI_FILE_APLODE_SHODE_TAVASOTE_MOAVEN->value; + $state = HarimStates::BARESI_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_MOAVEN->value; $harim->update([ 'state_id' => $state, @@ -168,6 +186,9 @@ class HarimOfficeController extends Controller return $this->successResponse(); } + /** + * @throws Throwable + */ public function fileRejected(FileRejectedRequest $request, Harim $harim): JsonResponse { DB::transaction(function () use ($request, $harim) { @@ -181,7 +202,7 @@ class HarimOfficeController extends Controller 'action_name' => HarimAction::name($action), ]); - $state = HarimStates::BARESI_FILE_APLODE_SHODE_TAVASOTE_MOAVEN->value; + $state = HarimStates::BARESI_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_MOAVEN->value; $harim->update([ 'state_id' => $state, @@ -208,4 +229,36 @@ class HarimOfficeController extends Controller 'province_name' => $province->name_fa, ]); } + + /** + * @throws Throwable + */ + public function computingPayment(ComputingPaymentRequest $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_ARSE_VA_AYAN_ERSAL_SHODE_TAVASOT_MOAVEN->value; + + $harim->update([ + 'traffic' => $request->traffic, + 'position' => $request->position, + 'final_plan_space' => $request->final_plan_space, + 'road_type' => $request->road_type, + 'payment_amount' => $request->payment_amount, + 'state_id' => $state, + 'state_name' => HarimStates::name($state), + ]); + }); + + return $this->successResponse(); + } } diff --git a/app/Http/Controllers/V3/Dashboard/Harim/TechnicalDeputyController.php b/app/Http/Controllers/V3/Dashboard/Harim/TechnicalDeputyController.php index 3a1fcdbc..79158594 100644 --- a/app/Http/Controllers/V3/Dashboard/Harim/TechnicalDeputyController.php +++ b/app/Http/Controllers/V3/Dashboard/Harim/TechnicalDeputyController.php @@ -6,8 +6,10 @@ 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\Deputy\ConfirmPaymentRequest; 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\ReferPaymentRequest; 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; @@ -16,6 +18,8 @@ use App\Models\Harim; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; +use Throwable; + class TechnicalDeputyController extends Controller { @@ -36,6 +40,9 @@ class TechnicalDeputyController extends Controller return response()->json($data); } + /** + * @throws \Throwable + */ public function confirmRequest(ConfirmRequest $request, Harim $harim): JsonResponse { DB::transaction(function () use ($request, $harim) { @@ -61,6 +68,9 @@ class TechnicalDeputyController extends Controller return $this->successResponse(); } + /** + * @throws Throwable + */ public function referRequest(ReferRequest $request, Harim $harim): JsonResponse { DB::transaction(function () use ($request, $harim) { @@ -86,6 +96,9 @@ class TechnicalDeputyController extends Controller return $this->successResponse(); } + /** + * @throws \Throwable + */ public function confirmRoadAccess(ConfirmRoadAccessRequest $request, Harim $harim): JsonResponse { DB::transaction(function () use ($request, $harim) { @@ -99,7 +112,7 @@ class TechnicalDeputyController extends Controller 'action_name' => HarimAction::name($action), ]); - $state = HarimStates::BARESI_FILE_APLODE_SHODE_TAVASOTE_MODIR_KOL->value; + $state = HarimStates::BARESI_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_MODIR_KOL->value; $harim->update([ 'state_id' => $state, @@ -110,6 +123,10 @@ class TechnicalDeputyController extends Controller return $this->successResponse(); } + + /** + * @throws \Throwable + */ public function referRoadAccess(ReferRoadAccessRequest $request, Harim $harim): JsonResponse { DB::transaction(function () use ($request, $harim) { @@ -123,7 +140,7 @@ class TechnicalDeputyController extends Controller 'action_name' => HarimAction::name($action), ]); - $state = HarimStates::BARESI_FILE_APLODE_SHODE_TAVASOTE_DAFTAR_HARIM->value; + $state = HarimStates::BARESI_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_DAFTAR_HARIM->value; $harim->update([ 'state_id' => $state, diff --git a/app/Http/Requests/V3/Dashboard/Harim/Deputy/ConfirmPaymentRequest.php b/app/Http/Requests/V3/Dashboard/Harim/Deputy/ConfirmPaymentRequest.php new file mode 100644 index 00000000..2acd1e16 --- /dev/null +++ b/app/Http/Requests/V3/Dashboard/Harim/Deputy/ConfirmPaymentRequest.php @@ -0,0 +1,31 @@ +harim->province_id == auth()->user()->province_id && + $this->harim->state_id == HarimStates::BARESI_ARSE_VA_AYAN_ERSAL_SHODE_TAVASOT_MOAVEN->value; + } + + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + public function rules(): array + { + return [ + 'expert_description' => 'required|string', + ]; + } +} diff --git a/app/Http/Requests/V3/Dashboard/Harim/Deputy/ConfirmRoadAccessRequest.php b/app/Http/Requests/V3/Dashboard/Harim/Deputy/ConfirmRoadAccessRequest.php index 667b6e72..24f31d15 100644 --- a/app/Http/Requests/V3/Dashboard/Harim/Deputy/ConfirmRoadAccessRequest.php +++ b/app/Http/Requests/V3/Dashboard/Harim/Deputy/ConfirmRoadAccessRequest.php @@ -14,7 +14,7 @@ class ConfirmRoadAccessRequest extends FormRequest public function authorize(): bool { return $this->harim->province_id == auth()->user()->province_id && - $this->harim->state_id == HarimStates::BARESI_FILE_APLODE_SHODE_TAVASOTE_MOAVEN->value; + $this->harim->state_id == HarimStates::BARESI_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_MOAVEN->value; } /** diff --git a/app/Http/Requests/V3/Dashboard/Harim/Deputy/ReferPaymentRequest.php b/app/Http/Requests/V3/Dashboard/Harim/Deputy/ReferPaymentRequest.php new file mode 100644 index 00000000..9755727d --- /dev/null +++ b/app/Http/Requests/V3/Dashboard/Harim/Deputy/ReferPaymentRequest.php @@ -0,0 +1,31 @@ +harim->province_id == auth()->user()->province_id && + $this->harim->state_id == HarimStates::BARESI_ARSE_VA_AYAN_ERSAL_SHODE_TAVASOT_MOAVEN->value; + } + + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + 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 index 6226908a..37cc6560 100644 --- a/app/Http/Requests/V3/Dashboard/Harim/Deputy/ReferRoadAccessRequest.php +++ b/app/Http/Requests/V3/Dashboard/Harim/Deputy/ReferRoadAccessRequest.php @@ -14,7 +14,7 @@ class ReferRoadAccessRequest extends FormRequest public function authorize(): bool { return $this->harim->province_id == auth()->user()->province_id && - $this->harim->state_id == HarimStates::BARESI_FILE_APLODE_SHODE_TAVASOTE_MOAVEN->value; + $this->harim->state_id == HarimStates::BARESI_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_MOAVEN->value; } /** diff --git a/app/Http/Requests/V3/Dashboard/Harim/GeneralManager/ConfirmPaymentRequest.php b/app/Http/Requests/V3/Dashboard/Harim/GeneralManager/ConfirmPaymentRequest.php new file mode 100644 index 00000000..9bab48f7 --- /dev/null +++ b/app/Http/Requests/V3/Dashboard/Harim/GeneralManager/ConfirmPaymentRequest.php @@ -0,0 +1,31 @@ +harim->province_id == auth()->user()->province_id && + $this->harim->state_id == HarimStates::BARESI_ARSE_VA_AYAN_ERSAL_SHODE_TAVASOT_MODIR_KOL->value; + } + + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + 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 index 70da1e2d..eaa004d3 100644 --- a/app/Http/Requests/V3/Dashboard/Harim/GeneralManager/ConfirmRoadAccessEditNeedRequest.php +++ b/app/Http/Requests/V3/Dashboard/Harim/GeneralManager/ConfirmRoadAccessEditNeedRequest.php @@ -14,7 +14,7 @@ class ConfirmRoadAccessEditNeedRequest extends FormRequest public function authorize(): bool { return $this->harim->province_id == auth()->user()->province_id && - $this->harim->state_id == HarimStates::BARESI_FILE_APLODE_SHODE_TAVASOTE_MODIR_KOL->value; + $this->harim->state_id == HarimStates::BARESI_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_MODIR_KOL->value; } /** diff --git a/app/Http/Requests/V3/Dashboard/Harim/GeneralManager/ReferFileRequest.php b/app/Http/Requests/V3/Dashboard/Harim/GeneralManager/ReferFileRequest.php index 4ab18be5..351b3f99 100644 --- a/app/Http/Requests/V3/Dashboard/Harim/GeneralManager/ReferFileRequest.php +++ b/app/Http/Requests/V3/Dashboard/Harim/GeneralManager/ReferFileRequest.php @@ -14,7 +14,7 @@ class ReferFileRequest extends FormRequest public function authorize(): bool { return $this->harim->province_id == auth()->user()->province_id && - $this->harim->state_id == HarimStates::BARESI_FILE_APLODE_SHODE_TAVASOTE_MODIR_KOL->value; + $this->harim->state_id == HarimStates::BARESI_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_MODIR_KOL->value; } /** diff --git a/app/Http/Requests/V3/Dashboard/Harim/GeneralManager/ReferPaymentRequest.php b/app/Http/Requests/V3/Dashboard/Harim/GeneralManager/ReferPaymentRequest.php new file mode 100644 index 00000000..c7175dd3 --- /dev/null +++ b/app/Http/Requests/V3/Dashboard/Harim/GeneralManager/ReferPaymentRequest.php @@ -0,0 +1,31 @@ +harim->province_id == auth()->user()->province_id && + $this->harim->state_id == HarimStates::BARESI_ARSE_VA_AYAN_ERSAL_SHODE_TAVASOT_MODIR_KOL->value; + } + + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + public function rules(): array + { + return [ + 'expert_description' => 'required|string', + ]; + } +} diff --git a/app/Http/Requests/V3/Dashboard/Harim/HarimOffice/ComputingPaymentRequest.php b/app/Http/Requests/V3/Dashboard/Harim/HarimOffice/ComputingPaymentRequest.php new file mode 100644 index 00000000..c2e9a406 --- /dev/null +++ b/app/Http/Requests/V3/Dashboard/Harim/HarimOffice/ComputingPaymentRequest.php @@ -0,0 +1,36 @@ +harim->province_id === auth()->user()->province_id && + $this->harim->state_id === HarimStates::BARESI_ARSE_VA_AYAN_ERSAL_SHODE_TAVASOT_DAFTAR_HARIM->value; + } + + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + public function rules(): array + { + return [ + 'traffic' => 'required|numeric|decimal:1', + 'road_type' => 'required|numeric|decimal:1', + 'position' => 'required|numeric|decimal:1', + 'final_area_space' => 'required|numeric|decimal:2', + 'payment_amount' => 'required|numeric|decimal:2', + 'expert_description' => 'required|string', + ]; + } +} diff --git a/app/Http/Requests/V3/Dashboard/Harim/HarimOffice/FileAcceptedRequest.php b/app/Http/Requests/V3/Dashboard/Harim/HarimOffice/FileAcceptedRequest.php index 38d5397b..0a4c5145 100644 --- a/app/Http/Requests/V3/Dashboard/Harim/HarimOffice/FileAcceptedRequest.php +++ b/app/Http/Requests/V3/Dashboard/Harim/HarimOffice/FileAcceptedRequest.php @@ -14,7 +14,7 @@ class FileAcceptedRequest extends FormRequest public function authorize(): bool { return $this->harim->province_id == auth()->user()->province_id && - $this->harim->state_id == HarimStates::BARESI_FILE_APLODE_SHODE_TAVASOTE_DAFTAR_HARIM->value; + $this->harim->state_id == HarimStates::BARESI_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_DAFTAR_HARIM->value; } /** diff --git a/app/Http/Requests/V3/Dashboard/Harim/HarimOffice/FileRejectedRequest.php b/app/Http/Requests/V3/Dashboard/Harim/HarimOffice/FileRejectedRequest.php index 5c3f386d..8e2f1901 100644 --- a/app/Http/Requests/V3/Dashboard/Harim/HarimOffice/FileRejectedRequest.php +++ b/app/Http/Requests/V3/Dashboard/Harim/HarimOffice/FileRejectedRequest.php @@ -14,7 +14,7 @@ class FileRejectedRequest extends FormRequest public function authorize(): bool { return $this->harim->province_id == auth()->user()->province_id && - $this->harim->state_id == HarimStates::BARESI_FILE_APLODE_SHODE_TAVASOTE_DAFTAR_HARIM->value; + $this->harim->state_id == HarimStates::BARESI_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_DAFTAR_HARIM->value; } /** diff --git a/database/migrations/2025_11_08_093438_add_trafic_position_road_type_to_harims_table.php b/database/migrations/2025_11_08_093438_add_trafic_position_road_type_to_harims_table.php new file mode 100644 index 00000000..52d42ac3 --- /dev/null +++ b/database/migrations/2025_11_08_093438_add_trafic_position_road_type_to_harims_table.php @@ -0,0 +1,32 @@ +decimal('traffic',total: 3,places: 1)->nullable(); + $table->decimal('road_type', total: 3,places: 1)->nullable(); + $table->decimal('position', total: 3,places: 1)->nullable(); + $table->decimal('final_area_space')->nullable(); + $table->decimal('forbidden_area_space')->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('harims', function (Blueprint $table) { + $table->dropColumn('traffic', 'road_type', 'position'); + }); + } +}; From 40513d72b8ee03a2da6ae87babff880fcda9312a Mon Sep 17 00:00:00 2001 From: faezehzafarbakhsh Date: Sun, 9 Nov 2025 15:25:00 +0330 Subject: [PATCH 2/3] change strcture controller becuse repet some code in 3 file and get same code in model --- app/Enums/HarimStates.php | 42 ++- .../Harim/GeneralManagerController.php | 292 +++++------------- .../Dashboard/Harim/HarimOfficeController.php | 205 ++++-------- .../Harim/ProvinceOfficeController.php | 28 +- .../Harim/TechnicalDeputyController.php | 147 ++++----- app/Models/Harim.php | 22 ++ routes/v3.php | 6 + 7 files changed, 250 insertions(+), 492 deletions(-) diff --git a/app/Enums/HarimStates.php b/app/Enums/HarimStates.php index 46605887..8b533560 100644 --- a/app/Enums/HarimStates.php +++ b/app/Enums/HarimStates.php @@ -22,28 +22,26 @@ enum HarimStates: int case MOKHALEFAT_BA_DASTGAH = 16; case ETMAM_FARAYAND = 17; - public static function name(int $state): string + public function label(): string { - $mapArray = [ - 1 => "بررسی ادارات شهرستان", - 2 => "بررسی توسط ادارات حریم", - 3 => "بررسی توسط معاون ", - 4 => "بررسی توسط مدیر کل", - 5 => "بررسی راه دسترسی آپلود شده توسط اداره حریم", - 6 => "بررسی راه دسترسی آپلود شده توسط معاون", - 7 => "بررسی راه دسترسی آپلود شده توسط مدیر", - 8 => "ارسال ضمانت نامه توسط کاربر", - 9 => "ارسال به پنجره واحد (نیاز به راه دسترسی)", - 10 => "امکان پذیر نمی باشد", - 11 => "ارسال به پنجره واحد (بدون نیاز به راه دسترسی)", - 12 => "بازبینی راه دسترسی بارگذاری شده", - 13 => "تائید عرصه و اعیان ارسال شده توسط اداره حریم", - 14 => "تائید عرصه و اعیان ارسال شده توسط معاون", - 15 => "تائید عرصه و اعیان ارسال شده توسط مدیر", - 16 => "مخالفت با درخواست", - 17 => "اتمام فرایند" - ]; - - return $mapArray[$state]; + return match ($this) { + self::BARESI_EDARE_SHAHRESTAN => "بررسی ادارات شهرستان", + self::BARESI_TAVASOT_DAFTAR_HARIM => "بررسی توسط ادارات حریم", + self::BARESI_TAVASOT_MOAVEN => "بررسی توسط معاون ", + self::BARESI_TAVASOT_MODIR_KOL => "بررسی توسط مدیر کل", + self::BARESI_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_DAFTAR_HARIM => "بررسی راه دسترسی آپلود شده توسط اداره حریم", + self::BARESI_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_MOAVEN => "بررسی راه دسترسی آپلود شده توسط معاون", + self::BARESI_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_MODIR_KOL => "بررسی راه دسترسی آپلود شده توسط مدیر", + self::ARSE_VA_AYAN_NAHAI => "ارسال ضمانت نامه توسط کاربر", + self::ERSAL_BE_PANJAREH_VAHED_NIAZ_BE_RAH_DASTRASI => "ارسال به پنجره واحد (نیاز به راه دسترسی)", + self::EMKAN_PAZIR_NEMEBASHAD => "امکان پذیر نمی باشد", + self::ERSAL_BE_PANJAREH_VAHED_BEDONEH_NIAZ_BE_RAH_DASTRASI => "ارسال به پنجره واحد (بدون نیاز به راه دسترسی)", + self::UPDATE_RAHE_DASTRASI_BARGOZARE_SHODE => "بازبینی راه دسترسی بارگذاری شده", + self::BARESI_ARSE_VA_AYAN_ERSAL_SHODE_TAVASOT_DAFTAR_HARIM => "تائید عرصه و اعیان ارسال شده توسط اداره حریم", + self::BARESI_ARSE_VA_AYAN_ERSAL_SHODE_TAVASOT_MOAVEN => "تائید عرصه و اعیان ارسال شده توسط معاون", + self::BARESI_ARSE_VA_AYAN_ERSAL_SHODE_TAVASOT_MODIR_KOL => "تائید عرصه و اعیان ارسال شده توسط مدیر", + self::MOKHALEFAT_BA_DASTGAH => "مخالفت با درخواست", + self::ETMAM_FARAYAND => "اتمام فرایند", + }; } } \ No newline at end of file diff --git a/app/Http/Controllers/V3/Dashboard/Harim/GeneralManagerController.php b/app/Http/Controllers/V3/Dashboard/Harim/GeneralManagerController.php index 9266b34f..9b6db5e1 100644 --- a/app/Http/Controllers/V3/Dashboard/Harim/GeneralManagerController.php +++ b/app/Http/Controllers/V3/Dashboard/Harim/GeneralManagerController.php @@ -25,8 +25,6 @@ use App\Http\Traits\ApiResponse; use App\Models\Harim; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; -use Illuminate\Support\Facades\DB; -use Throwable; class GeneralManagerController extends Controller @@ -48,209 +46,104 @@ class GeneralManagerController extends Controller return response()->json($data); } - /** - * @throws Throwable - */ public function rejectRequest(RejectRequest $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::EMKAN_PAZIR_NEMEBASHAD->value; - - $harim->update([ - 'state_id' => $state, - 'state_name' => HarimStates::name($state), - ]); - - RejectRequestEvent::dispatch($harim); - }); + $harim->updateStateWithHistory( + action:HarimAction::CONFIRM->value, + description: $request->expert_description, + data: [ + 'state_id' => HarimStates::EMKAN_PAZIR_NEMEBASHAD->value, + 'state_name' => HarimStates::EMKAN_PAZIR_NEMEBASHAD->label(), + ] + ); + RejectRequestEvent::dispatch($harim); return $this->successResponse(); } - /** - * @throws Throwable - */ public function referRequest(ReferRequest $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_TAVASOT_MOAVEN->value; - - $harim->update([ - 'state_id' => $state, - 'state_name' => HarimStates::name($state), - ]); - }); + $harim->updateStateWithHistory( + action:HarimAction::REFER->value, + description: $request->expert_description, + data: [ + 'state_id' => HarimStates::BARESI_TAVASOT_MOAVEN->value, + 'state_name' => HarimStates::BARESI_TAVASOT_MOAVEN->label(), + ] + ); return $this->successResponse(); } - /** - * @throws Throwable - */ 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_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_MOAVEN->value; - - $harim->update([ - 'state_id' => $state, - 'state_name' => HarimStates::name($state), - ]); - }); + $harim->updateStateWithHistory( + action:HarimAction::REFER->value, + description: $request->expert_description, + data: [ + 'state_id' => HarimStates::BARESI_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_MOAVEN->value, + 'state_name' => HarimStates::BARESI_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_MOAVEN->label(), + ] + ); return $this->successResponse(); } - /** - * @throws Throwable - */ 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), - ]); - - ConfirmRoadAccessNeedEvent::dispatch($harim); - }); + $harim->updateStateWithHistory( + action:HarimAction::CONFIRM->value, + description: $request->expert_description, + data: [ + 'state_id' => HarimStates::ERSAL_BE_PANJAREH_VAHED_NIAZ_BE_RAH_DASTRASI->value, + 'state_name' => HarimStates::ERSAL_BE_PANJAREH_VAHED_NIAZ_BE_RAH_DASTRASI->label(), + ] + ); return $this->successResponse(); } - /** - * @throws Throwable - */ 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), - ]); - - ConfirmNoRoadAccessNeedEvent::dispatch($harim); - - }); + $harim->updateStateWithHistory( + action:HarimAction::CONFIRM->value, + description: $request->expert_description, + data: [ + 'state_id' => HarimStates::ERSAL_BE_PANJAREH_VAHED_BEDONEH_NIAZ_BE_RAH_DASTRASI->value, + 'state_name' => HarimStates::ERSAL_BE_PANJAREH_VAHED_BEDONEH_NIAZ_BE_RAH_DASTRASI->label(), + ] + ); + ConfirmNoRoadAccessNeedEvent::dispatch($harim); return $this->successResponse(); } - /** - * @throws Throwable - */ 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_RAHE_DASTRASI_BARGOZARE_SHODE->value; - - $harim->update([ - 'state_id' => $state, - 'state_name' => HarimStates::name($state), - ]); - - ConfirmRoadAccessEditNeedEvent::dispatch($harim); - }); + $harim->updateStateWithHistory( + action:HarimAction::CONFIRM->value, + description: $request->expert_description, + data: [ + 'state_id' => HarimStates::UPDATE_RAHE_DASTRASI_BARGOZARE_SHODE->value, + 'state_name' => HarimStates::UPDATE_RAHE_DASTRASI_BARGOZARE_SHODE->label(), + ] + ); + ConfirmRoadAccessEditNeedEvent::dispatch($harim); return $this->successResponse(); } - /** - * @throws \Throwable - */ 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::ARSE_VA_AYAN_NAHAI->value; - - $harim->update([ - 'state_id' => $state, - 'state_name' => HarimStates::name($state), - ]); - - ConfirmGuaranteeLetterNeedEvent::dispatch($harim); - }); + $harim->updateStateWithHistory( + action:HarimAction::CONFIRM->value, + description: $request->expert_description, + data: [ + 'state_id' => HarimStates::ARSE_VA_AYAN_NAHAI->value, + 'state_name' => HarimStates::ARSE_VA_AYAN_NAHAI->label(), + ] + ); + ConfirmGuaranteeLetterNeedEvent::dispatch($harim); return $this->successResponse(); } @@ -260,60 +153,33 @@ class GeneralManagerController extends Controller return $this->successResponse($harim->load('histories')); } - /** - * @throws Throwable - */ - public function referPaymentRequest(ReferPaymentRequest $request, Harim $harim): JsonResponse + public function referPayment(ReferPaymentRequest $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_ARSE_VA_AYAN_ERSAL_SHODE_TAVASOT_MOAVEN->value; - - $harim->update([ - 'state_id' => $state, - 'state_name' => HarimStates::name($state), - ]); - }); + $harim->updateStateWithHistory( + action:HarimAction::REFER->value, + description: $request->expert_description, + data: [ + 'state_id' => HarimStates::BARESI_ARSE_VA_AYAN_ERSAL_SHODE_TAVASOT_MOAVEN->value, + 'state_name' => HarimStates::BARESI_ARSE_VA_AYAN_ERSAL_SHODE_TAVASOT_MOAVEN->label(), + ] + ); + ConfirmGuaranteeLetterNeedEvent::dispatch($harim); return $this->successResponse(); } - /** - * @throws Throwable - */ public function confirmPayment(ConfirmPaymentRequest $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::ETMAM_FARAYAND->value; - - $harim->update([ - 'state_id' => $state, - 'state_name' => HarimStates::name($state), - ]); - }); + $harim->updateStateWithHistory( + action:HarimAction::CONFIRM->value, + description: $request->expert_description, + data: [ + 'state_id' => HarimStates::ETMAM_FARAYAND->value, + 'state_name' => HarimStates::ETMAM_FARAYAND->label(), + ] + ); + ConfirmGuaranteeLetterNeedEvent::dispatch($harim); return $this->successResponse(); } - } diff --git a/app/Http/Controllers/V3/Dashboard/Harim/HarimOfficeController.php b/app/Http/Controllers/V3/Dashboard/Harim/HarimOfficeController.php index 8d112444..68bca460 100644 --- a/app/Http/Controllers/V3/Dashboard/Harim/HarimOfficeController.php +++ b/app/Http/Controllers/V3/Dashboard/Harim/HarimOfficeController.php @@ -42,178 +42,100 @@ class HarimOfficeController extends Controller return response()->json($data); } - /** - * @throws Throwable - */ 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), + $harim->updateStateWithHistory( + action:HarimAction::NO->value, + description: $request->expert_description, + data: [ + 'state_id' => HarimStates::BARESI_TAVASOT_MOAVEN->value, + 'state_name' => HarimStates::BARESI_TAVASOT_MOAVEN->label(), 'is_possible' => false, - ]); - }); + ] + ); return $this->successResponse(); } - /** - * @throws Throwable - */ public function referRequest(ReferRequest $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_EDARE_SHAHRESTAN->value; - - $harim->update([ - 'state_id' => $state, - 'state_name' => HarimStates::name($state), - ]); - }); + $harim->updateStateWithHistory( + action:HarimAction::REFER->value, + description: $request->expert_description, + data: [ + 'state_id' => HarimStates::BARESI_EDARE_SHAHRESTAN->value, + 'state_name' => HarimStates::BARESI_EDARE_SHAHRESTAN->label(), + ] + ); return $this->successResponse(); } - /** - * @throws Throwable - */ public function needRoadAccess(NeedRoadAccessRequest $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), + $harim->updateStateWithHistory( + action:HarimAction::YES->value, + description: $request->expert_description, + data: [ + 'state_id' => HarimStates::BARESI_TAVASOT_MOAVEN->value, + 'state_name' => HarimStates::BARESI_TAVASOT_MOAVEN->label(), 'is_possible' => true, 'need_access_road' => true, 'need_payment' => $request->need_payment, - ]); - }); + ] + ); return $this->successResponse(); } - /** - * @throws Throwable - */ 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), + $harim->updateStateWithHistory( + action:HarimAction::YES->value, + description: $request->expert_description, + data: [ + 'state_id' => HarimStates::BARESI_TAVASOT_MOAVEN->value, + 'state_name' => HarimStates::BARESI_TAVASOT_MOAVEN->label(), 'is_possible' => true, 'need_access_road' => false, 'need_payment' => $request->need_payment, - ]); - }); + ] + ); return $this->successResponse(); } - /** - * @throws Throwable - */ 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_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_MOAVEN->value; - - $harim->update([ - 'state_id' => $state, - 'state_name' => HarimStates::name($state), + $harim->updateStateWithHistory( + action:HarimAction::YES->value, + description: $request->expert_description, + data: [ + 'state_id' => HarimStates::BARESI_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_MOAVEN->value, + 'state_name' => HarimStates::BARESI_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_MOAVEN->label(), 'access_road_allowed' => true, - ]); - }); + ] + ); return $this->successResponse(); } - /** - * @throws Throwable - */ public function fileRejected(FileRejectedRequest $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_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_MOAVEN->value; - - $harim->update([ - 'state_id' => $state, - 'state_name' => HarimStates::name($state), + $harim->updateStateWithHistory( + action:HarimAction::YES->value, + description: $request->expert_description, + data: [ + 'state_id' => HarimStates::BARESI_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_MOAVEN->value, + 'state_name' => HarimStates::BARESI_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_MOAVEN->label(), 'access_road_allowed' => false, - ]); - }); + ] + ); return $this->successResponse(); } + public function show(ShowRequest $request, Harim $harim): JsonResponse { return $this->successResponse($harim->load('histories')); @@ -230,34 +152,21 @@ class HarimOfficeController extends Controller ]); } - /** - * @throws Throwable - */ public function computingPayment(ComputingPaymentRequest $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_ARSE_VA_AYAN_ERSAL_SHODE_TAVASOT_MOAVEN->value; - - $harim->update([ + $harim->updateStateWithHistory( + action:HarimAction::CONFIRM->value, + description: $request->expert_description, + data: [ + 'state_id' => HarimStates::BARESI_ARSE_VA_AYAN_ERSAL_SHODE_TAVASOT_MOAVEN->value, + 'state_name' => HarimStates::BARESI_ARSE_VA_AYAN_ERSAL_SHODE_TAVASOT_MOAVEN->label(), 'traffic' => $request->traffic, 'position' => $request->position, 'final_plan_space' => $request->final_plan_space, 'road_type' => $request->road_type, 'payment_amount' => $request->payment_amount, - 'state_id' => $state, - 'state_name' => HarimStates::name($state), - ]); - }); + ] + ); return $this->successResponse(); } diff --git a/app/Http/Controllers/V3/Dashboard/Harim/ProvinceOfficeController.php b/app/Http/Controllers/V3/Dashboard/Harim/ProvinceOfficeController.php index d81169f2..056257df 100644 --- a/app/Http/Controllers/V3/Dashboard/Harim/ProvinceOfficeController.php +++ b/app/Http/Controllers/V3/Dashboard/Harim/ProvinceOfficeController.php @@ -34,29 +34,17 @@ class ProvinceOfficeController extends Controller return response()->json($data); } - public function feedback(FeedBackRequest $request, Harim $harim): JsonResponse { - DB::transaction(function () use ($request, $harim) { - $action = HarimAction::FEEDBACK->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_DAFTAR_HARIM->value; - - $harim->update([ - 'state_id' => $state, - 'state_name' => HarimStates::name($state), + $harim->updateStateWithHistory( + action:HarimAction::FEEDBACK->value, + description: $request->expert_description, + data: [ + 'state_id' => HarimStates::BARESI_TAVASOT_DAFTAR_HARIM->value, + 'state_name' => HarimStates::BARESI_TAVASOT_DAFTAR_HARIM->label(), 'forbidden_area' => $request->input('forbidden_area'), - ]); - }); + ] + ); return $this->successResponse(); } diff --git a/app/Http/Controllers/V3/Dashboard/Harim/TechnicalDeputyController.php b/app/Http/Controllers/V3/Dashboard/Harim/TechnicalDeputyController.php index 79158594..b00fac04 100644 --- a/app/Http/Controllers/V3/Dashboard/Harim/TechnicalDeputyController.php +++ b/app/Http/Controllers/V3/Dashboard/Harim/TechnicalDeputyController.php @@ -17,8 +17,6 @@ use App\Http\Traits\ApiResponse; use App\Models\Harim; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; -use Illuminate\Support\Facades\DB; -use Throwable; class TechnicalDeputyController extends Controller @@ -40,113 +38,58 @@ class TechnicalDeputyController extends Controller return response()->json($data); } - /** - * @throws \Throwable - */ public function confirmRequest(ConfirmRequest $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_TAVASOT_MODIR_KOL->value; - - $harim->update([ - 'state_id' => $state, - 'state_name' => HarimStates::name($state), - ]); - }); + $harim->updateStateWithHistory( + action:HarimAction::CONFIRM->value, + description: $request->expert_description, + data: [ + 'state_id' => HarimStates::BARESI_TAVASOT_MODIR_KOL->value, + 'state_name' => HarimStates::BARESI_TAVASOT_MODIR_KOL->label(), + ] + ); return $this->successResponse(); } - /** - * @throws Throwable - */ public function referRequest(ReferRequest $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_TAVASOT_DAFTAR_HARIM->value; - - $harim->update([ - 'state_id' => $state, - 'state_name' => HarimStates::name($state), - ]); - }); + $harim->updateStateWithHistory( + action:HarimAction::REFER->value, + description: $request->expert_description, + data: [ + 'state_id' => HarimStates::BARESI_TAVASOT_DAFTAR_HARIM->value, + 'state_name' => HarimStates::BARESI_TAVASOT_DAFTAR_HARIM->label(), + ] + ); return $this->successResponse(); } - /** - * @throws \Throwable - */ 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_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_MODIR_KOL->value; - - $harim->update([ - 'state_id' => $state, - 'state_name' => HarimStates::name($state), - ]); - }); + $harim->updateStateWithHistory( + action:HarimAction::CONFIRM->value, + description: $request->expert_description, + data: [ + 'state_id' => HarimStates::BARESI_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_MODIR_KOL->value, + 'state_name' => HarimStates::BARESI_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_MODIR_KOL->label(), + ] + ); return $this->successResponse(); } - - /** - * @throws \Throwable - */ 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_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_DAFTAR_HARIM->value; - - $harim->update([ - 'state_id' => $state, - 'state_name' => HarimStates::name($state), - ]); - }); + $harim->updateStateWithHistory( + action:HarimAction::REFER->value, + description: $request->expert_description, + data: [ + 'state_id' => HarimStates::BARESI_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_DAFTAR_HARIM->value, + 'state_name' => HarimStates::BARESI_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_DAFTAR_HARIM->label(), + ] + ); return $this->successResponse(); } @@ -155,4 +98,30 @@ class TechnicalDeputyController extends Controller { return $this->successResponse($harim->load('histories')); } + + public function referPayment(ReferPaymentRequest $request, Harim $harim): JsonResponse + { + $harim->updateStateWithHistory( + action:HarimAction::REFER->value, + description: $request->expert_description, + data: [ + 'state_id' => HarimStates::BARESI_ARSE_VA_AYAN_ERSAL_SHODE_TAVASOT_DAFTAR_HARIM->value, + 'state_name' => HarimStates::BARESI_ARSE_VA_AYAN_ERSAL_SHODE_TAVASOT_DAFTAR_HARIM->label(), + ] + ); + return $this->successResponse(); + } + + public function confirmPayment(ConfirmPaymentRequest $request, Harim $harim): JsonResponse + { + $harim->updateStateWithHistory( + action:HarimAction::CONFIRM->value, + description: $request->expert_description, + data: [ + 'state_id' => HarimStates::BARESI_ARSE_VA_AYAN_ERSAL_SHODE_TAVASOT_MODIR_KOL->value, + 'state_name' => HarimStates::BARESI_ARSE_VA_AYAN_ERSAL_SHODE_TAVASOT_MODIR_KOL->label(), + ] + ); + return $this->successResponse(); + } } diff --git a/app/Models/Harim.php b/app/Models/Harim.php index 8e68d219..e63421ae 100644 --- a/app/Models/Harim.php +++ b/app/Models/Harim.php @@ -2,10 +2,13 @@ namespace App\Models; +use App\Enums\HarimStates; use Illuminate\Database\Eloquent\Casts\Attribute; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\HasMany; +use Illuminate\Support\Facades\DB; +use Throwable; class Harim extends Model { @@ -23,4 +26,23 @@ class Harim extends Model get: fn($value) => json_decode($value) ); } + + /** + * @throws Throwable + */ + public function updateStateWithHistory(int $action, string $description , array $data): void + { + DB::transaction(function () use ($action, $description, $data) { + $this->histories()->create([ + 'expert_id' => auth()->user()->id, + 'previous_state_id' => $this->state_id, + 'previous_state_name'=> $this->state_name, + 'expert_description' => $description, + 'action_id' => $action, + 'action_name' => HarimAction::name($action), + ]); + + $this->update($data); + }); + } } diff --git a/routes/v3.php b/routes/v3.php index fede5047..ae2911a3 100644 --- a/routes/v3.php +++ b/routes/v3.php @@ -552,6 +552,8 @@ Route::prefix('harim') Route::post('/file_rejected/{harim}', 'fileRejected')->name('fileRejected'); Route::get('/{harim}', 'show')->name('show'); Route::post('/refer_request/{harim}', 'referRequest')->name('referRequest'); + Route::post('/computing_payment/{harim}', 'computingPayment')->name('computingPayment'); + Route::post('/refer_to_city/{harim}', 'referToCity')->name('referToCity'); }); Route::prefix('technical_deputy') @@ -564,6 +566,8 @@ Route::prefix('harim') 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::post('/refer_payment/{harim}', 'referPayment')->name('referPayment'); + Route::post('/confirm_payment/{harim}', 'confirmPayment')->name('confirmPayment'); }); Route::prefix('general_manager') @@ -579,6 +583,8 @@ Route::prefix('harim') 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'); + Route::post('/refer_payment/{harim}', 'referPayment')->name('referPayment'); + Route::post('/confirm_payment/{harim}', 'confirmPayment')->name('confirmPayment'); }); }); From bb4886a9fa43bba4cb3690e2fd0b52f6836e5d24 Mon Sep 17 00:00:00 2001 From: faezehzafarbakhsh Date: Sun, 9 Nov 2025 15:41:29 +0330 Subject: [PATCH 3/3] use pint and fix code --- .../Harim/GeneralManagerController.php | 38 ++++++------ .../Dashboard/Harim/HarimOfficeController.php | 32 +++++----- .../Harim/PanjareVahedController.php | 62 +++++++++---------- .../Harim/ProvinceOfficeController.php | 6 +- .../Harim/TechnicalDeputyController.php | 27 ++++---- .../Harim/PanjareVahed/ReceiveNewRequest.php | 1 - 6 files changed, 77 insertions(+), 89 deletions(-) diff --git a/app/Http/Controllers/V3/Dashboard/Harim/GeneralManagerController.php b/app/Http/Controllers/V3/Dashboard/Harim/GeneralManagerController.php index 9b6db5e1..dd084e3e 100644 --- a/app/Http/Controllers/V3/Dashboard/Harim/GeneralManagerController.php +++ b/app/Http/Controllers/V3/Dashboard/Harim/GeneralManagerController.php @@ -7,7 +7,6 @@ use App\Enums\HarimStates; use App\Events\V3\Dashboard\Harim\ConfirmGuaranteeLetterNeedEvent; use App\Events\V3\Dashboard\Harim\ConfirmNoRoadAccessNeedEvent; use App\Events\V3\Dashboard\Harim\ConfirmRoadAccessEditNeedEvent; -use App\Events\V3\Dashboard\Harim\ConfirmRoadAccessNeedEvent; use App\Events\V3\Dashboard\Harim\RejectRequestEvent; use App\Facades\DataTable\DataTableFacade; use App\Http\Controllers\Controller; @@ -26,7 +25,6 @@ use App\Models\Harim; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; - class GeneralManagerController extends Controller { use ApiResponse; @@ -49,10 +47,10 @@ class GeneralManagerController extends Controller public function rejectRequest(RejectRequest $request, Harim $harim): JsonResponse { $harim->updateStateWithHistory( - action:HarimAction::CONFIRM->value, + action: HarimAction::CONFIRM->value, description: $request->expert_description, data: [ - 'state_id' => HarimStates::EMKAN_PAZIR_NEMEBASHAD->value, + 'state_id' => HarimStates::EMKAN_PAZIR_NEMEBASHAD->value, 'state_name' => HarimStates::EMKAN_PAZIR_NEMEBASHAD->label(), ] ); @@ -64,10 +62,10 @@ class GeneralManagerController extends Controller public function referRequest(ReferRequest $request, Harim $harim): JsonResponse { $harim->updateStateWithHistory( - action:HarimAction::REFER->value, + action: HarimAction::REFER->value, description: $request->expert_description, data: [ - 'state_id' => HarimStates::BARESI_TAVASOT_MOAVEN->value, + 'state_id' => HarimStates::BARESI_TAVASOT_MOAVEN->value, 'state_name' => HarimStates::BARESI_TAVASOT_MOAVEN->label(), ] ); @@ -78,10 +76,10 @@ class GeneralManagerController extends Controller public function referFile(ReferFileRequest $request, Harim $harim): JsonResponse { $harim->updateStateWithHistory( - action:HarimAction::REFER->value, + action: HarimAction::REFER->value, description: $request->expert_description, data: [ - 'state_id' => HarimStates::BARESI_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_MOAVEN->value, + 'state_id' => HarimStates::BARESI_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_MOAVEN->value, 'state_name' => HarimStates::BARESI_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_MOAVEN->label(), ] ); @@ -92,10 +90,10 @@ class GeneralManagerController extends Controller public function confirmRoadAccessNeed(ConfirmRoadAccessNeedRequest $request, Harim $harim): JsonResponse { $harim->updateStateWithHistory( - action:HarimAction::CONFIRM->value, + action: HarimAction::CONFIRM->value, description: $request->expert_description, data: [ - 'state_id' => HarimStates::ERSAL_BE_PANJAREH_VAHED_NIAZ_BE_RAH_DASTRASI->value, + 'state_id' => HarimStates::ERSAL_BE_PANJAREH_VAHED_NIAZ_BE_RAH_DASTRASI->value, 'state_name' => HarimStates::ERSAL_BE_PANJAREH_VAHED_NIAZ_BE_RAH_DASTRASI->label(), ] ); @@ -106,10 +104,10 @@ class GeneralManagerController extends Controller public function confirmNoRoadAccessNeed(ConfirmNoRoadAccessNeedRequest $request, Harim $harim): JsonResponse { $harim->updateStateWithHistory( - action:HarimAction::CONFIRM->value, + action: HarimAction::CONFIRM->value, description: $request->expert_description, data: [ - 'state_id' => HarimStates::ERSAL_BE_PANJAREH_VAHED_BEDONEH_NIAZ_BE_RAH_DASTRASI->value, + 'state_id' => HarimStates::ERSAL_BE_PANJAREH_VAHED_BEDONEH_NIAZ_BE_RAH_DASTRASI->value, 'state_name' => HarimStates::ERSAL_BE_PANJAREH_VAHED_BEDONEH_NIAZ_BE_RAH_DASTRASI->label(), ] ); @@ -121,10 +119,10 @@ class GeneralManagerController extends Controller public function confirmRoadAccessEditNeed(ConfirmRoadAccessEditNeedRequest $request, Harim $harim): JsonResponse { $harim->updateStateWithHistory( - action:HarimAction::CONFIRM->value, + action: HarimAction::CONFIRM->value, description: $request->expert_description, data: [ - 'state_id' => HarimStates::UPDATE_RAHE_DASTRASI_BARGOZARE_SHODE->value, + 'state_id' => HarimStates::UPDATE_RAHE_DASTRASI_BARGOZARE_SHODE->value, 'state_name' => HarimStates::UPDATE_RAHE_DASTRASI_BARGOZARE_SHODE->label(), ] ); @@ -136,10 +134,10 @@ class GeneralManagerController extends Controller public function confirmGuaranteeLetterNeed(ConfirmGuaranteeLetterNeedRequest $request, Harim $harim): JsonResponse { $harim->updateStateWithHistory( - action:HarimAction::CONFIRM->value, + action: HarimAction::CONFIRM->value, description: $request->expert_description, data: [ - 'state_id' => HarimStates::ARSE_VA_AYAN_NAHAI->value, + 'state_id' => HarimStates::ARSE_VA_AYAN_NAHAI->value, 'state_name' => HarimStates::ARSE_VA_AYAN_NAHAI->label(), ] ); @@ -156,10 +154,10 @@ class GeneralManagerController extends Controller public function referPayment(ReferPaymentRequest $request, Harim $harim): JsonResponse { $harim->updateStateWithHistory( - action:HarimAction::REFER->value, + action: HarimAction::REFER->value, description: $request->expert_description, data: [ - 'state_id' => HarimStates::BARESI_ARSE_VA_AYAN_ERSAL_SHODE_TAVASOT_MOAVEN->value, + 'state_id' => HarimStates::BARESI_ARSE_VA_AYAN_ERSAL_SHODE_TAVASOT_MOAVEN->value, 'state_name' => HarimStates::BARESI_ARSE_VA_AYAN_ERSAL_SHODE_TAVASOT_MOAVEN->label(), ] ); @@ -171,10 +169,10 @@ class GeneralManagerController extends Controller public function confirmPayment(ConfirmPaymentRequest $request, Harim $harim): JsonResponse { $harim->updateStateWithHistory( - action:HarimAction::CONFIRM->value, + action: HarimAction::CONFIRM->value, description: $request->expert_description, data: [ - 'state_id' => HarimStates::ETMAM_FARAYAND->value, + 'state_id' => HarimStates::ETMAM_FARAYAND->value, 'state_name' => HarimStates::ETMAM_FARAYAND->label(), ] ); diff --git a/app/Http/Controllers/V3/Dashboard/Harim/HarimOfficeController.php b/app/Http/Controllers/V3/Dashboard/Harim/HarimOfficeController.php index 68bca460..3e6dc817 100644 --- a/app/Http/Controllers/V3/Dashboard/Harim/HarimOfficeController.php +++ b/app/Http/Controllers/V3/Dashboard/Harim/HarimOfficeController.php @@ -19,9 +19,6 @@ use App\Models\Harim; use App\Models\Province; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; -use Illuminate\Support\Facades\DB; -use Throwable; - class HarimOfficeController extends Controller { @@ -45,10 +42,10 @@ class HarimOfficeController extends Controller public function rejectRequest(RejectRequest $request, Harim $harim): JsonResponse { $harim->updateStateWithHistory( - action:HarimAction::NO->value, + action: HarimAction::NO->value, description: $request->expert_description, data: [ - 'state_id' => HarimStates::BARESI_TAVASOT_MOAVEN->value, + 'state_id' => HarimStates::BARESI_TAVASOT_MOAVEN->value, 'state_name' => HarimStates::BARESI_TAVASOT_MOAVEN->label(), 'is_possible' => false, ] @@ -60,10 +57,10 @@ class HarimOfficeController extends Controller public function referRequest(ReferRequest $request, Harim $harim): JsonResponse { $harim->updateStateWithHistory( - action:HarimAction::REFER->value, + action: HarimAction::REFER->value, description: $request->expert_description, data: [ - 'state_id' => HarimStates::BARESI_EDARE_SHAHRESTAN->value, + 'state_id' => HarimStates::BARESI_EDARE_SHAHRESTAN->value, 'state_name' => HarimStates::BARESI_EDARE_SHAHRESTAN->label(), ] ); @@ -74,10 +71,10 @@ class HarimOfficeController extends Controller public function needRoadAccess(NeedRoadAccessRequest $request, Harim $harim): JsonResponse { $harim->updateStateWithHistory( - action:HarimAction::YES->value, + action: HarimAction::YES->value, description: $request->expert_description, data: [ - 'state_id' => HarimStates::BARESI_TAVASOT_MOAVEN->value, + 'state_id' => HarimStates::BARESI_TAVASOT_MOAVEN->value, 'state_name' => HarimStates::BARESI_TAVASOT_MOAVEN->label(), 'is_possible' => true, 'need_access_road' => true, @@ -91,10 +88,10 @@ class HarimOfficeController extends Controller public function withoutRoadAccess(WithoutRoadAccessRequest $request, Harim $harim): JsonResponse { $harim->updateStateWithHistory( - action:HarimAction::YES->value, + action: HarimAction::YES->value, description: $request->expert_description, data: [ - 'state_id' => HarimStates::BARESI_TAVASOT_MOAVEN->value, + 'state_id' => HarimStates::BARESI_TAVASOT_MOAVEN->value, 'state_name' => HarimStates::BARESI_TAVASOT_MOAVEN->label(), 'is_possible' => true, 'need_access_road' => false, @@ -108,10 +105,10 @@ class HarimOfficeController extends Controller public function fileAccepted(FileAcceptedRequest $request, Harim $harim): JsonResponse { $harim->updateStateWithHistory( - action:HarimAction::YES->value, + action: HarimAction::YES->value, description: $request->expert_description, data: [ - 'state_id' => HarimStates::BARESI_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_MOAVEN->value, + 'state_id' => HarimStates::BARESI_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_MOAVEN->value, 'state_name' => HarimStates::BARESI_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_MOAVEN->label(), 'access_road_allowed' => true, ] @@ -123,10 +120,10 @@ class HarimOfficeController extends Controller public function fileRejected(FileRejectedRequest $request, Harim $harim): JsonResponse { $harim->updateStateWithHistory( - action:HarimAction::YES->value, + action: HarimAction::YES->value, description: $request->expert_description, data: [ - 'state_id' => HarimStates::BARESI_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_MOAVEN->value, + 'state_id' => HarimStates::BARESI_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_MOAVEN->value, 'state_name' => HarimStates::BARESI_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_MOAVEN->label(), 'access_road_allowed' => false, ] @@ -135,7 +132,6 @@ class HarimOfficeController extends Controller return $this->successResponse(); } - public function show(ShowRequest $request, Harim $harim): JsonResponse { return $this->successResponse($harim->load('histories')); @@ -155,10 +151,10 @@ class HarimOfficeController extends Controller public function computingPayment(ComputingPaymentRequest $request, Harim $harim): JsonResponse { $harim->updateStateWithHistory( - action:HarimAction::CONFIRM->value, + action: HarimAction::CONFIRM->value, description: $request->expert_description, data: [ - 'state_id' => HarimStates::BARESI_ARSE_VA_AYAN_ERSAL_SHODE_TAVASOT_MOAVEN->value, + 'state_id' => HarimStates::BARESI_ARSE_VA_AYAN_ERSAL_SHODE_TAVASOT_MOAVEN->value, 'state_name' => HarimStates::BARESI_ARSE_VA_AYAN_ERSAL_SHODE_TAVASOT_MOAVEN->label(), 'traffic' => $request->traffic, 'position' => $request->position, diff --git a/app/Http/Controllers/V3/Dashboard/Harim/PanjareVahedController.php b/app/Http/Controllers/V3/Dashboard/Harim/PanjareVahedController.php index cc177988..8eea1e24 100644 --- a/app/Http/Controllers/V3/Dashboard/Harim/PanjareVahedController.php +++ b/app/Http/Controllers/V3/Dashboard/Harim/PanjareVahedController.php @@ -24,14 +24,13 @@ class PanjareVahedController extends Controller $iv = config('harim_web_services.Harim_Info.iv'); $keyString = config('harim_web_services.Harim_Info.key'); - $key = hash('sha256',$keyString, true); + $key = hash('sha256', $keyString, true); - $decrypted = openssl_decrypt($request->data,'aes-256-cbc',$key,false, $iv); + $decrypted = openssl_decrypt($request->data, 'aes-256-cbc', $key, false, $iv); $decodedString = json_decode($decrypted); $decodedArray = json_decode($decodedString, true); - $wkt = 'POLYGON(('.implode(',', array_map(fn ($c) => "{$c[0]} {$c[1]}", $request->primary_area['coordinates'])).'))'; $result = DB::selectOne('SELECT ST_AsText(ST_PointOnSurface(ST_GeomFromText(?, 4326))) AS point', [$wkt]); preg_match('/POINT\(([^ ]+) ([^ ]+)\)/', $result->point, $matches); @@ -52,34 +51,32 @@ class PanjareVahedController extends Controller ->first(['id', 'name_fa', 'province_id']); } - $state = HarimStates::BARESI_EDARE_SHAHRESTAN->value; - $harim = Harim::query()->firstOrCreate( [ - 'panjare_vahed_id' => $request->request_id + 'panjare_vahed_id' => $request->request_id, ], [ - 'state_id' => $state, - 'state_name' => HarimStates::name($state), - 'panjare_vahed_id' => $request->request_id, - 'national_id' => $request->national_id, - 'phone_number' => $request->phone_number, - 'request_date' => $request->request_date, - 'province_id' => $city->province_id, - 'province_name' => $city->province()->first()->name_fa, - 'city_id' => $city->id, - 'city_name' => $city->name_fa, - 'edareh_shahri_id' => $city->edarateShahri()->first()->id, - 'requested_organization' => $request->requested_organization, - 'plan_group' => $request->plan_group, - 'plan_title' => $request->plan_title, - 'worksheet_id' => $request->worksheet, - 'response_options' => json_encode($request->response_options), - 'isic' => $request->isic, - 'primary_area' => json_encode($request->primary_area), - 'data' => $decodedString, - 'token' => $decodedArray['token'], - ]); + 'state_id' => HarimStates::BARESI_EDARE_SHAHRESTAN->value, + 'state_name' => HarimStates::BARESI_EDARE_SHAHRESTAN->label(), + 'panjare_vahed_id' => $request->request_id, + 'national_id' => $request->national_id, + 'phone_number' => $request->phone_number, + 'request_date' => $request->request_date, + 'province_id' => $city->province_id, + 'province_name' => $city->province()->first()->name_fa, + 'city_id' => $city->id, + 'city_name' => $city->name_fa, + 'edareh_shahri_id' => $city->edarateShahri()->first()->id, + 'requested_organization' => $request->requested_organization, + 'plan_group' => $request->plan_group, + 'plan_title' => $request->plan_title, + 'worksheet_id' => $request->worksheet, + 'response_options' => json_encode($request->response_options), + 'isic' => $request->isic, + 'primary_area' => json_encode($request->primary_area), + 'data' => $decodedString, + 'token' => $decodedArray['token'], + ]); return response()->json([ 'id' => $harim->id, @@ -92,13 +89,11 @@ class PanjareVahedController extends Controller public function getAccessRoad(GetAccessRoadRequest $request): JsonResponse { - $state = HarimStates::BARESI_FILE_APLODE_SHODE_TAVASOTE_DAFTAR_HARIM->value; - $harim = Harim::query()->firstWhere('panjare_vahed_id', '=', $request->request_id); $harim->update([ - 'state_id' => $state, - 'state_name' => HarimStates::name($state), + 'state_id' => HarimStates::BARESI_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_DAFTAR_HARIM->value, + 'state_name' => HarimStates::BARESI_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_DAFTAR_HARIM->label(), 'access_road' => json_encode($request->access_road), 'data' => $request->data['data'], 'token' => $request->data['token'], @@ -135,13 +130,12 @@ class PanjareVahedController extends Controller public function getFinalPolygons(GetFinalPolygonsRequest $request): JsonResponse { - $state = HarimStates::TAEDE_ARSE_VA_AYAN_ERSAL_SHODE_TAVASOT_DAFTAR_HARIM->value; $harim = Harim::query()->firstWhere('panjare_vahed_id', '=', $request->request_id); $harim->update([ - 'state_id' => $state, - 'state_name' => HarimStates::name($state), + 'state_id' => HarimStates::BARESI_ARSE_VA_AYAN_ERSAL_SHODE_TAVASOT_DAFTAR_HARIM->value, + 'state_name' => HarimStates::BARESI_ARSE_VA_AYAN_ERSAL_SHODE_TAVASOT_DAFTAR_HARIM->label(), 'final_area' => json_encode($request->final_area), 'final_plan' => json_encode($request->final_plan), 'data' => $request->data['data'], diff --git a/app/Http/Controllers/V3/Dashboard/Harim/ProvinceOfficeController.php b/app/Http/Controllers/V3/Dashboard/Harim/ProvinceOfficeController.php index 056257df..9e38f1af 100644 --- a/app/Http/Controllers/V3/Dashboard/Harim/ProvinceOfficeController.php +++ b/app/Http/Controllers/V3/Dashboard/Harim/ProvinceOfficeController.php @@ -12,7 +12,6 @@ use App\Http\Traits\ApiResponse; use App\Models\Harim; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; -use Illuminate\Support\Facades\DB; class ProvinceOfficeController extends Controller { @@ -34,13 +33,14 @@ class ProvinceOfficeController extends Controller return response()->json($data); } + public function feedback(FeedBackRequest $request, Harim $harim): JsonResponse { $harim->updateStateWithHistory( - action:HarimAction::FEEDBACK->value, + action: HarimAction::FEEDBACK->value, description: $request->expert_description, data: [ - 'state_id' => HarimStates::BARESI_TAVASOT_DAFTAR_HARIM->value, + 'state_id' => HarimStates::BARESI_TAVASOT_DAFTAR_HARIM->value, 'state_name' => HarimStates::BARESI_TAVASOT_DAFTAR_HARIM->label(), 'forbidden_area' => $request->input('forbidden_area'), ] diff --git a/app/Http/Controllers/V3/Dashboard/Harim/TechnicalDeputyController.php b/app/Http/Controllers/V3/Dashboard/Harim/TechnicalDeputyController.php index b00fac04..4323f36c 100644 --- a/app/Http/Controllers/V3/Dashboard/Harim/TechnicalDeputyController.php +++ b/app/Http/Controllers/V3/Dashboard/Harim/TechnicalDeputyController.php @@ -18,7 +18,6 @@ use App\Models\Harim; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; - class TechnicalDeputyController extends Controller { use ApiResponse; @@ -41,10 +40,10 @@ class TechnicalDeputyController extends Controller public function confirmRequest(ConfirmRequest $request, Harim $harim): JsonResponse { $harim->updateStateWithHistory( - action:HarimAction::CONFIRM->value, + action: HarimAction::CONFIRM->value, description: $request->expert_description, data: [ - 'state_id' => HarimStates::BARESI_TAVASOT_MODIR_KOL->value, + 'state_id' => HarimStates::BARESI_TAVASOT_MODIR_KOL->value, 'state_name' => HarimStates::BARESI_TAVASOT_MODIR_KOL->label(), ] ); @@ -55,10 +54,10 @@ class TechnicalDeputyController extends Controller public function referRequest(ReferRequest $request, Harim $harim): JsonResponse { $harim->updateStateWithHistory( - action:HarimAction::REFER->value, + action: HarimAction::REFER->value, description: $request->expert_description, data: [ - 'state_id' => HarimStates::BARESI_TAVASOT_DAFTAR_HARIM->value, + 'state_id' => HarimStates::BARESI_TAVASOT_DAFTAR_HARIM->value, 'state_name' => HarimStates::BARESI_TAVASOT_DAFTAR_HARIM->label(), ] ); @@ -69,10 +68,10 @@ class TechnicalDeputyController extends Controller public function confirmRoadAccess(ConfirmRoadAccessRequest $request, Harim $harim): JsonResponse { $harim->updateStateWithHistory( - action:HarimAction::CONFIRM->value, + action: HarimAction::CONFIRM->value, description: $request->expert_description, data: [ - 'state_id' => HarimStates::BARESI_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_MODIR_KOL->value, + 'state_id' => HarimStates::BARESI_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_MODIR_KOL->value, 'state_name' => HarimStates::BARESI_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_MODIR_KOL->label(), ] ); @@ -83,10 +82,10 @@ class TechnicalDeputyController extends Controller public function referRoadAccess(ReferRoadAccessRequest $request, Harim $harim): JsonResponse { $harim->updateStateWithHistory( - action:HarimAction::REFER->value, + action: HarimAction::REFER->value, description: $request->expert_description, data: [ - 'state_id' => HarimStates::BARESI_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_DAFTAR_HARIM->value, + 'state_id' => HarimStates::BARESI_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_DAFTAR_HARIM->value, 'state_name' => HarimStates::BARESI_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_DAFTAR_HARIM->label(), ] ); @@ -102,26 +101,28 @@ class TechnicalDeputyController extends Controller public function referPayment(ReferPaymentRequest $request, Harim $harim): JsonResponse { $harim->updateStateWithHistory( - action:HarimAction::REFER->value, + action: HarimAction::REFER->value, description: $request->expert_description, data: [ - 'state_id' => HarimStates::BARESI_ARSE_VA_AYAN_ERSAL_SHODE_TAVASOT_DAFTAR_HARIM->value, + 'state_id' => HarimStates::BARESI_ARSE_VA_AYAN_ERSAL_SHODE_TAVASOT_DAFTAR_HARIM->value, 'state_name' => HarimStates::BARESI_ARSE_VA_AYAN_ERSAL_SHODE_TAVASOT_DAFTAR_HARIM->label(), ] ); + return $this->successResponse(); } public function confirmPayment(ConfirmPaymentRequest $request, Harim $harim): JsonResponse { $harim->updateStateWithHistory( - action:HarimAction::CONFIRM->value, + action: HarimAction::CONFIRM->value, description: $request->expert_description, data: [ - 'state_id' => HarimStates::BARESI_ARSE_VA_AYAN_ERSAL_SHODE_TAVASOT_MODIR_KOL->value, + 'state_id' => HarimStates::BARESI_ARSE_VA_AYAN_ERSAL_SHODE_TAVASOT_MODIR_KOL->value, 'state_name' => HarimStates::BARESI_ARSE_VA_AYAN_ERSAL_SHODE_TAVASOT_MODIR_KOL->label(), ] ); + return $this->successResponse(); } } diff --git a/app/Http/Requests/V3/Dashboard/Harim/PanjareVahed/ReceiveNewRequest.php b/app/Http/Requests/V3/Dashboard/Harim/PanjareVahed/ReceiveNewRequest.php index 3653c53b..3ddf8d7e 100644 --- a/app/Http/Requests/V3/Dashboard/Harim/PanjareVahed/ReceiveNewRequest.php +++ b/app/Http/Requests/V3/Dashboard/Harim/PanjareVahed/ReceiveNewRequest.php @@ -2,7 +2,6 @@ namespace App\Http\Requests\V3\Dashboard\Harim\PanjareVahed; -use App\Models\Harim; use Illuminate\Contracts\Validation\ValidationRule; use Illuminate\Contracts\Validation\Validator; use Illuminate\Foundation\Http\FormRequest;