diff --git a/app/Http/Controllers/V3/Dashboard/Mission/RequestPortalController.php b/app/Http/Controllers/V3/Dashboard/Mission/RequestPortalController.php index 2f231f72..95c6a694 100644 --- a/app/Http/Controllers/V3/Dashboard/Mission/RequestPortalController.php +++ b/app/Http/Controllers/V3/Dashboard/Mission/RequestPortalController.php @@ -126,6 +126,7 @@ class RequestPortalController extends Controller 'finish_time' => now(), 'state_id' => MissionStates::END_MISSION->value, 'state_name' => MissionStates::name(MissionStates::END_MISSION->value), + 'end_km' => $request->end_km, ]); // if ($mission->category_id == 2) { @@ -166,6 +167,8 @@ class RequestPortalController extends Controller 'station_name' => RahdariPoint::query()->find( $user->station_id)->name, 'driver_id' => $request->driver, 'driver_name' => Rahdaran::query()->find($request->driver)->name, + 'km' => $request->end_km, + 'requested_machines' => json_encode($mission->requested_machines), ]); $newMission->rahdaran()->sync($request->rahdaran); @@ -275,6 +278,7 @@ class RequestPortalController extends Controller 'station_id' => $user->station_id, 'station_name' => RahdariPoint::query()->find($user->station_id)->name, 'km' => $violation->km ?? null, + 'end_km' => $violation->end_km ?? null, 'driver_id' => $request->driver, 'driver_name' => Rahdaran::query()->find($request->driver)->name, ]); diff --git a/app/Http/Controllers/V3/Dashboard/Mission/ViolationManagementController.php b/app/Http/Controllers/V3/Dashboard/Mission/ViolationManagementController.php index 89e9d29d..5d73cefa 100644 --- a/app/Http/Controllers/V3/Dashboard/Mission/ViolationManagementController.php +++ b/app/Http/Controllers/V3/Dashboard/Mission/ViolationManagementController.php @@ -70,6 +70,7 @@ class ViolationManagementController extends Controller $violation->update([ 'enter_time' => $request->enter_time, 'status' => MissionViolationStatus::BEDON_EGHDAM->value, + 'end_km' => $request->end_km, ]); return $this->successResponse(); diff --git a/app/Http/Requests/V3/Mission/RequestPortal/ContinueMissionRequest.php b/app/Http/Requests/V3/Mission/RequestPortal/ContinueMissionRequest.php index 1fe7f381..46fc0cea 100644 --- a/app/Http/Requests/V3/Mission/RequestPortal/ContinueMissionRequest.php +++ b/app/Http/Requests/V3/Mission/RequestPortal/ContinueMissionRequest.php @@ -38,6 +38,7 @@ class ContinueMissionRequest extends FormRequest 'encoded_route' => 'required|string', 'explanation' => 'required|string', 'category_id' => 'required|in:1,2,3', + 'end_km'=> 'required|string', ]; } @@ -56,6 +57,18 @@ class ContinueMissionRequest extends FormRequest ); } } + if ($this->end_km < $this->mission->km) { + $validator->errors()->add( + 'end_km', + 'کیلومتر پایان باید بزرگتر از کیلومتر شروع باشد.' + ); + } + if (strtotime($this->end_date) < strtotime($this->mission->start_time)) { + $validator->errors()->add( + 'time', + 'زمان پایان ماموریت باید بعد از زمان شروع ماموریت باشد.' + ); + } }, ]; } diff --git a/app/Http/Requests/V3/Mission/Violation/UpdateRequest.php b/app/Http/Requests/V3/Mission/Violation/UpdateRequest.php index 29426bfd..561e2188 100644 --- a/app/Http/Requests/V3/Mission/Violation/UpdateRequest.php +++ b/app/Http/Requests/V3/Mission/Violation/UpdateRequest.php @@ -27,6 +27,7 @@ class UpdateRequest extends FormRequest { return [ 'enter_time' => 'required|date', + 'end_km'=> 'required|string', ]; } @@ -40,6 +41,12 @@ class UpdateRequest extends FormRequest 'زمان پایان ماموریت باید بعد از زمان شروع ماموریت باشد.' ); } + if ($this->end_km < $this->violation->km) { + $validator->errors()->add( + 'end_km', + 'کیلومتر پایان باید بزرگتر از کیلومتر شروع باشد.' + ); + } } ]; } diff --git a/database/migrations/2026_06_15_095947_add_column_to_mission_violations_table.php b/database/migrations/2026_06_15_095947_add_column_to_mission_violations_table.php new file mode 100644 index 00000000..164da569 --- /dev/null +++ b/database/migrations/2026_06_15_095947_add_column_to_mission_violations_table.php @@ -0,0 +1,28 @@ +string('end_km')->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('mission_violations', function (Blueprint $table) { + $table->dropColumn('end_km'); + }); + } +};