From 6db1933046b76ee5b7376e73d49ffbc08c269610 Mon Sep 17 00:00:00 2001 From: amirghasempoor Date: Wed, 10 Jun 2026 14:56:22 +0330 Subject: [PATCH 1/2] add time for type 2 --- .../Mission/ViolationManagementController.php | 17 ++++++----- .../V3/Mission/Violation/NoProcessRequest.php | 10 ------- .../V3/Mission/Violation/StoreRequest.php | 2 +- .../V3/Mission/Violation/UpdateRequest.php | 2 +- ...add_column_to_mission_violations_table.php | 29 +++++++++++++++++++ 5 files changed, 40 insertions(+), 20 deletions(-) create mode 100644 database/migrations/2026_06_10_144529_add_column_to_mission_violations_table.php diff --git a/app/Http/Controllers/V3/Dashboard/Mission/ViolationManagementController.php b/app/Http/Controllers/V3/Dashboard/Mission/ViolationManagementController.php index 5617b251..3c9e731d 100644 --- a/app/Http/Controllers/V3/Dashboard/Mission/ViolationManagementController.php +++ b/app/Http/Controllers/V3/Dashboard/Mission/ViolationManagementController.php @@ -43,8 +43,8 @@ class ViolationManagementController extends Controller { DB::transaction(function () use ($request, $violation) { - $start = Carbon::parse($request->start_date); - $end = Carbon::parse($request->end_date); + $start = Carbon::parse($violation->exit_station); + $end = Carbon::parse($violation->enter_station); $type = $start->diffInMinutes($end) > 480 ? MissionTypes::NO_PROCESS_ROZANE->value : MissionTypes::NO_PROCESS_SAATY->value; $user = auth()->user(); $zone = $request->zone; @@ -64,13 +64,13 @@ class ViolationManagementController extends Controller 'area' => $request->area, 'type' => $type, 'type_fa' => MissionTypes::name($type), - 'start_date' => $request->start_date, - 'end_date' => $request->end_date, + 'start_date' => $violation->exit_station, + 'end_date' => $violation->enter_station, 'end_point' => $request->end_point, 'category_id' => $request->category_id, 'category_name' => MissionCategory::name($request->category_id), - 'start_time' => $request->start_date, - 'finish_time' => $request->end_date, + 'start_time' => $violation->exit_station, + 'finish_time' => $violation->enter_station, 'state_id' => MissionStates::END_MISSION->value, 'state_name' => MissionStates::END_MISSION->label(), 'explanation' => $request->explanation, @@ -114,7 +114,7 @@ class ViolationManagementController extends Controller 'city_name' => $user->city_fa, 'station_id' => $user->station_id, 'station_name' => RahdariPoint::query()->find($user->station_id)->name, - 'exit_time' => $request->exit_time, + 'exit_station' => $request->exit_station, ]); return $this->successResponse(); @@ -128,7 +128,8 @@ class ViolationManagementController extends Controller public function update(UpdateRequest $request, MissionViolation $violation): JsonResponse { $violation->update([ - 'enter_time' => $request->enter_time, + 'enter_station' => $request->enter_station, + 'status' => MissionViolationStatus::BEDON_EGHDAM->value, ]); return $this->successResponse(); diff --git a/app/Http/Requests/V3/Mission/Violation/NoProcessRequest.php b/app/Http/Requests/V3/Mission/Violation/NoProcessRequest.php index 7026fa5d..81939652 100644 --- a/app/Http/Requests/V3/Mission/Violation/NoProcessRequest.php +++ b/app/Http/Requests/V3/Mission/Violation/NoProcessRequest.php @@ -29,20 +29,10 @@ class NoProcessRequest extends FormRequest 'rahdaran.*' => 'exists:rahdaran,id', 'driver' => 'required|integer|exists:rahdaran,id', 'zone' => 'required|in:1,2,3', - 'start_date' => 'required|date', - 'end_date' => 'required|date|after:start_date|before:now', 'end_point' => 'required|string', 'area' => 'required|string', 'category_id' => 'required|in:1,2,3', 'explanation' => 'required|string', ]; } - - public function messages(): array - { - return [ - 'end_date.before' => 'تاریخ پایان باید قبل از زمان فعلی باشد.', - 'end_date.after' => 'تاریخ پایان نباید قبل از تاریخ شروع باشد.', - ]; - } } diff --git a/app/Http/Requests/V3/Mission/Violation/StoreRequest.php b/app/Http/Requests/V3/Mission/Violation/StoreRequest.php index 16ea27bc..2994a64f 100644 --- a/app/Http/Requests/V3/Mission/Violation/StoreRequest.php +++ b/app/Http/Requests/V3/Mission/Violation/StoreRequest.php @@ -25,7 +25,7 @@ class StoreRequest extends FormRequest public function rules(): array { return [ - 'exit_time' => 'required|date', + 'exit_station' => 'required|date', 'machine_code' => 'required', 'km'=> 'string', ]; diff --git a/app/Http/Requests/V3/Mission/Violation/UpdateRequest.php b/app/Http/Requests/V3/Mission/Violation/UpdateRequest.php index 3b5ad00a..0948924e 100644 --- a/app/Http/Requests/V3/Mission/Violation/UpdateRequest.php +++ b/app/Http/Requests/V3/Mission/Violation/UpdateRequest.php @@ -26,7 +26,7 @@ class UpdateRequest extends FormRequest public function rules(): array { return [ - 'enter_time' => 'required|date', + 'enter_station' => 'required|date', ]; } } diff --git a/database/migrations/2026_06_10_144529_add_column_to_mission_violations_table.php b/database/migrations/2026_06_10_144529_add_column_to_mission_violations_table.php new file mode 100644 index 00000000..b6c28ccd --- /dev/null +++ b/database/migrations/2026_06_10_144529_add_column_to_mission_violations_table.php @@ -0,0 +1,29 @@ +dateTime('exit_station')->nullable(); + $table->dateTime('enter_station')->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('mission_violations', function (Blueprint $table) { + $table->dropColumn(['exit_station', 'enter_station']); + }); + } +}; -- 2.49.1 From 55b40eb0ccfcd967403993614049babb2ebd4895 Mon Sep 17 00:00:00 2001 From: amirghasempoor Date: Wed, 10 Jun 2026 15:17:54 +0330 Subject: [PATCH 2/2] replace encoded_route --- .../Mission/RequestPortalController.php | 6 ++-- .../Mission/ViolationManagementController.php | 3 +- .../RequestPortal/ContinueMissionRequest.php | 2 +- .../V3/Mission/RequestPortal/StoreRequest.php | 2 +- .../Mission/RequestPortal/UpdateRequest.php | 2 +- .../V3/Mission/Violation/NoProcessRequest.php | 2 +- .../Cartables/Mission/ControlUnitService.php | 2 +- .../Mission/RequestPortalService.php | 2 +- .../Mission/TransportationUnitService.php | 2 +- ...10_150953_add_column_to_missions_table.php | 28 +++++++++++++++++++ 10 files changed, 40 insertions(+), 11 deletions(-) create mode 100644 database/migrations/2026_06_10_150953_add_column_to_missions_table.php diff --git a/app/Http/Controllers/V3/Dashboard/Mission/RequestPortalController.php b/app/Http/Controllers/V3/Dashboard/Mission/RequestPortalController.php index 3881a3cc..e1a81498 100644 --- a/app/Http/Controllers/V3/Dashboard/Mission/RequestPortalController.php +++ b/app/Http/Controllers/V3/Dashboard/Mission/RequestPortalController.php @@ -66,7 +66,7 @@ class RequestPortalController extends Controller 'request_date' => now(), 'description' => $request->description, 'end_point' => $request->end_point, - 'area' => $request->area, + 'encoded_route' => $request->encoded_route, 'category_id' => $request->category_id, 'category_name' => MissionCategory::name($request->category_id), 'explanation' => $request->explanation, @@ -136,7 +136,7 @@ class RequestPortalController extends Controller 'request_date' => now(), 'description' => $request->description, 'end_point' => $request->end_point, - 'area' => $request->area, + 'encoded_route' => $request->encoded_route, 'category_id' => $request->category_id, 'category_name' => MissionCategory::name($request->category_id), 'explanation' => $request->explanation, @@ -174,7 +174,7 @@ class RequestPortalController extends Controller 'end_date' => $request->end_date, 'description' => $request->description, 'end_point' => $request->end_point, - 'area' => $request->area, + 'encoded_route' => $request->encoded_route, 'category_id' => $request->category_id, 'category_name' => MissionCategory::name($request->category_id), 'explanation' => $request->explanation, diff --git a/app/Http/Controllers/V3/Dashboard/Mission/ViolationManagementController.php b/app/Http/Controllers/V3/Dashboard/Mission/ViolationManagementController.php index 3c9e731d..b3fa6a26 100644 --- a/app/Http/Controllers/V3/Dashboard/Mission/ViolationManagementController.php +++ b/app/Http/Controllers/V3/Dashboard/Mission/ViolationManagementController.php @@ -61,7 +61,7 @@ class ViolationManagementController extends Controller 'edare_shahri_name' => $user->edarate_shahri_name ?? null, 'zone' => $zone, 'zone_fa' => MissionZones::name($zone), - 'area' => $request->area, + 'encoded_route' => $request->encoded_route, 'type' => $type, 'type_fa' => MissionTypes::name($type), 'start_date' => $violation->exit_station, @@ -71,6 +71,7 @@ class ViolationManagementController extends Controller 'category_name' => MissionCategory::name($request->category_id), 'start_time' => $violation->exit_station, 'finish_time' => $violation->enter_station, + 'mission_duration' => strtotime($violation->enter_station) - strtotime($violation->exit_station), 'state_id' => MissionStates::END_MISSION->value, 'state_name' => MissionStates::END_MISSION->label(), 'explanation' => $request->explanation, diff --git a/app/Http/Requests/V3/Mission/RequestPortal/ContinueMissionRequest.php b/app/Http/Requests/V3/Mission/RequestPortal/ContinueMissionRequest.php index c76d5282..1fe7f381 100644 --- a/app/Http/Requests/V3/Mission/RequestPortal/ContinueMissionRequest.php +++ b/app/Http/Requests/V3/Mission/RequestPortal/ContinueMissionRequest.php @@ -35,7 +35,7 @@ class ContinueMissionRequest extends FormRequest 'end_date' => 'required|date', 'description' => 'string', 'end_point' => 'required|string', - 'area' => 'required|string', + 'encoded_route' => 'required|string', 'explanation' => 'required|string', 'category_id' => 'required|in:1,2,3', ]; diff --git a/app/Http/Requests/V3/Mission/RequestPortal/StoreRequest.php b/app/Http/Requests/V3/Mission/RequestPortal/StoreRequest.php index 0baa1614..0e787c12 100644 --- a/app/Http/Requests/V3/Mission/RequestPortal/StoreRequest.php +++ b/app/Http/Requests/V3/Mission/RequestPortal/StoreRequest.php @@ -34,7 +34,7 @@ class StoreRequest extends FormRequest 'end_date' => 'required|date', 'description' => 'string', 'end_point' => 'required|string', - 'area' => 'required|string', + 'encoded_route' => 'required|string', 'explanation' => 'required|string', 'category_id' => 'required|in:1,2,3', ]; diff --git a/app/Http/Requests/V3/Mission/RequestPortal/UpdateRequest.php b/app/Http/Requests/V3/Mission/RequestPortal/UpdateRequest.php index aebee794..ce8858fa 100644 --- a/app/Http/Requests/V3/Mission/RequestPortal/UpdateRequest.php +++ b/app/Http/Requests/V3/Mission/RequestPortal/UpdateRequest.php @@ -35,7 +35,7 @@ class UpdateRequest extends FormRequest 'end_date' => 'required|date', 'description' => 'string', 'end_point' => 'required|string', - 'area' => 'required|string', + 'encoded_route' => 'required|string', 'explanation' => 'required|string', 'category_id' => 'required|in:1,2,3', ]; diff --git a/app/Http/Requests/V3/Mission/Violation/NoProcessRequest.php b/app/Http/Requests/V3/Mission/Violation/NoProcessRequest.php index 81939652..49ad280f 100644 --- a/app/Http/Requests/V3/Mission/Violation/NoProcessRequest.php +++ b/app/Http/Requests/V3/Mission/Violation/NoProcessRequest.php @@ -30,7 +30,7 @@ class NoProcessRequest extends FormRequest 'driver' => 'required|integer|exists:rahdaran,id', 'zone' => 'required|in:1,2,3', 'end_point' => 'required|string', - 'area' => 'required|string', + 'encoded_route' => 'required|string', 'category_id' => 'required|in:1,2,3', 'explanation' => 'required|string', ]; diff --git a/app/Services/Cartables/Mission/ControlUnitService.php b/app/Services/Cartables/Mission/ControlUnitService.php index 6b234a3c..c27d60e0 100644 --- a/app/Services/Cartables/Mission/ControlUnitService.php +++ b/app/Services/Cartables/Mission/ControlUnitService.php @@ -37,7 +37,7 @@ class ControlUnitService allowedSelects: [ 'id', 'user_id', 'username', 'state_name', 'province_name', 'edare_shahri_name', 'description', 'requested_machines', 'type', 'type_fa', 'start_date', 'state_id', - 'end_date', 'request_date', 'end_point', 'area', 'zone', 'zone_fa', 'start_time', 'finish_time', + 'end_date', 'request_date', 'end_point', 'encoded_route', 'zone', 'zone_fa', 'start_time', 'finish_time', 'code', 'category_id', 'category_name', 'explanation', 'city_id', 'city_name', 'province_id', 'station_name', ] ); diff --git a/app/Services/Cartables/Mission/RequestPortalService.php b/app/Services/Cartables/Mission/RequestPortalService.php index 5be57872..58d197b9 100644 --- a/app/Services/Cartables/Mission/RequestPortalService.php +++ b/app/Services/Cartables/Mission/RequestPortalService.php @@ -32,7 +32,7 @@ class RequestPortalService allowedSelects: [ 'id', 'user_id', 'username', 'state_name', 'province_name', 'edare_shahri_name', 'description', 'requested_machines', 'type', 'type_fa', 'start_date', 'state_id', - 'end_date', 'request_date', 'end_point', 'area', 'zone', 'zone_fa', 'start_time', 'finish_time', + 'end_date', 'request_date', 'end_point', 'encoded_route', 'zone', 'zone_fa', 'start_time', 'finish_time', 'code', 'category_id', 'category_name', 'explanation', 'city_id', 'city_name', 'province_id', 'station_name', ] ); diff --git a/app/Services/Cartables/Mission/TransportationUnitService.php b/app/Services/Cartables/Mission/TransportationUnitService.php index d4e3be54..f8fc4ff5 100644 --- a/app/Services/Cartables/Mission/TransportationUnitService.php +++ b/app/Services/Cartables/Mission/TransportationUnitService.php @@ -32,7 +32,7 @@ class TransportationUnitService allowedSelects: [ 'id', 'user_id', 'username', 'state_name', 'province_name', 'edare_shahri_name', 'description', 'requested_machines', 'type', 'type_fa', 'start_date', 'state_id', - 'end_date', 'request_date', 'end_point', 'area', 'zone', 'zone_fa', 'start_time', 'finish_time', + 'end_date', 'request_date', 'end_point', 'encoded_route', 'zone', 'zone_fa', 'start_time', 'finish_time', 'code', 'category_id', 'category_name', 'explanation', 'km', 'city_id', 'city_name', 'province_id', 'station_name', ] ); diff --git a/database/migrations/2026_06_10_150953_add_column_to_missions_table.php b/database/migrations/2026_06_10_150953_add_column_to_missions_table.php new file mode 100644 index 00000000..c8ae17ee --- /dev/null +++ b/database/migrations/2026_06_10_150953_add_column_to_missions_table.php @@ -0,0 +1,28 @@ +longText('encoded_route')->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('missions', function (Blueprint $table) { + $table->dropColumn('encoded_route'); + }); + } +}; -- 2.49.1