Merge pull request 'add time for type 2' (#15) from feature/MissionMachinesReport into develop

Reviewed-on: #15
This commit was merged in pull request #15.
This commit is contained in:
2026-06-10 11:56:23 +00:00
13 changed files with 80 additions and 31 deletions

View File

@@ -66,7 +66,7 @@ class RequestPortalController extends Controller
'request_date' => now(), 'request_date' => now(),
'description' => $request->description, 'description' => $request->description,
'end_point' => $request->end_point, 'end_point' => $request->end_point,
'area' => $request->area, 'encoded_route' => $request->encoded_route,
'category_id' => $request->category_id, 'category_id' => $request->category_id,
'category_name' => MissionCategory::name($request->category_id), 'category_name' => MissionCategory::name($request->category_id),
'explanation' => $request->explanation, 'explanation' => $request->explanation,
@@ -136,7 +136,7 @@ class RequestPortalController extends Controller
'request_date' => now(), 'request_date' => now(),
'description' => $request->description, 'description' => $request->description,
'end_point' => $request->end_point, 'end_point' => $request->end_point,
'area' => $request->area, 'encoded_route' => $request->encoded_route,
'category_id' => $request->category_id, 'category_id' => $request->category_id,
'category_name' => MissionCategory::name($request->category_id), 'category_name' => MissionCategory::name($request->category_id),
'explanation' => $request->explanation, 'explanation' => $request->explanation,
@@ -174,7 +174,7 @@ class RequestPortalController extends Controller
'end_date' => $request->end_date, 'end_date' => $request->end_date,
'description' => $request->description, 'description' => $request->description,
'end_point' => $request->end_point, 'end_point' => $request->end_point,
'area' => $request->area, 'encoded_route' => $request->encoded_route,
'category_id' => $request->category_id, 'category_id' => $request->category_id,
'category_name' => MissionCategory::name($request->category_id), 'category_name' => MissionCategory::name($request->category_id),
'explanation' => $request->explanation, 'explanation' => $request->explanation,

View File

@@ -43,8 +43,8 @@ class ViolationManagementController extends Controller
{ {
DB::transaction(function () use ($request, $violation) { DB::transaction(function () use ($request, $violation) {
$start = Carbon::parse($request->start_date); $start = Carbon::parse($violation->exit_station);
$end = Carbon::parse($request->end_date); $end = Carbon::parse($violation->enter_station);
$type = $start->diffInMinutes($end) > 480 ? MissionTypes::NO_PROCESS_ROZANE->value : MissionTypes::NO_PROCESS_SAATY->value; $type = $start->diffInMinutes($end) > 480 ? MissionTypes::NO_PROCESS_ROZANE->value : MissionTypes::NO_PROCESS_SAATY->value;
$user = auth()->user(); $user = auth()->user();
$zone = $request->zone; $zone = $request->zone;
@@ -61,16 +61,17 @@ class ViolationManagementController extends Controller
'edare_shahri_name' => $user->edarate_shahri_name ?? null, 'edare_shahri_name' => $user->edarate_shahri_name ?? null,
'zone' => $zone, 'zone' => $zone,
'zone_fa' => MissionZones::name($zone), 'zone_fa' => MissionZones::name($zone),
'area' => $request->area, 'encoded_route' => $request->encoded_route,
'type' => $type, 'type' => $type,
'type_fa' => MissionTypes::name($type), 'type_fa' => MissionTypes::name($type),
'start_date' => $request->start_date, 'start_date' => $violation->exit_station,
'end_date' => $request->end_date, 'end_date' => $violation->enter_station,
'end_point' => $request->end_point, 'end_point' => $request->end_point,
'category_id' => $request->category_id, 'category_id' => $request->category_id,
'category_name' => MissionCategory::name($request->category_id), 'category_name' => MissionCategory::name($request->category_id),
'start_time' => $request->start_date, 'start_time' => $violation->exit_station,
'finish_time' => $request->end_date, 'finish_time' => $violation->enter_station,
'mission_duration' => strtotime($violation->enter_station) - strtotime($violation->exit_station),
'state_id' => MissionStates::END_MISSION->value, 'state_id' => MissionStates::END_MISSION->value,
'state_name' => MissionStates::END_MISSION->label(), 'state_name' => MissionStates::END_MISSION->label(),
'explanation' => $request->explanation, 'explanation' => $request->explanation,
@@ -114,7 +115,7 @@ class ViolationManagementController extends Controller
'city_name' => $user->city_fa, 'city_name' => $user->city_fa,
'station_id' => $user->station_id, 'station_id' => $user->station_id,
'station_name' => RahdariPoint::query()->find($user->station_id)->name, 'station_name' => RahdariPoint::query()->find($user->station_id)->name,
'exit_time' => $request->exit_time, 'exit_station' => $request->exit_station,
]); ]);
return $this->successResponse(); return $this->successResponse();
@@ -128,7 +129,8 @@ class ViolationManagementController extends Controller
public function update(UpdateRequest $request, MissionViolation $violation): JsonResponse public function update(UpdateRequest $request, MissionViolation $violation): JsonResponse
{ {
$violation->update([ $violation->update([
'enter_time' => $request->enter_time, 'enter_station' => $request->enter_station,
'status' => MissionViolationStatus::BEDON_EGHDAM->value,
]); ]);
return $this->successResponse(); return $this->successResponse();

View File

@@ -35,7 +35,7 @@ class ContinueMissionRequest extends FormRequest
'end_date' => 'required|date', 'end_date' => 'required|date',
'description' => 'string', 'description' => 'string',
'end_point' => 'required|string', 'end_point' => 'required|string',
'area' => 'required|string', 'encoded_route' => 'required|string',
'explanation' => 'required|string', 'explanation' => 'required|string',
'category_id' => 'required|in:1,2,3', 'category_id' => 'required|in:1,2,3',
]; ];

View File

@@ -34,7 +34,7 @@ class StoreRequest extends FormRequest
'end_date' => 'required|date', 'end_date' => 'required|date',
'description' => 'string', 'description' => 'string',
'end_point' => 'required|string', 'end_point' => 'required|string',
'area' => 'required|string', 'encoded_route' => 'required|string',
'explanation' => 'required|string', 'explanation' => 'required|string',
'category_id' => 'required|in:1,2,3', 'category_id' => 'required|in:1,2,3',
]; ];

View File

@@ -35,7 +35,7 @@ class UpdateRequest extends FormRequest
'end_date' => 'required|date', 'end_date' => 'required|date',
'description' => 'string', 'description' => 'string',
'end_point' => 'required|string', 'end_point' => 'required|string',
'area' => 'required|string', 'encoded_route' => 'required|string',
'explanation' => 'required|string', 'explanation' => 'required|string',
'category_id' => 'required|in:1,2,3', 'category_id' => 'required|in:1,2,3',
]; ];

View File

@@ -29,20 +29,10 @@ class NoProcessRequest extends FormRequest
'rahdaran.*' => 'exists:rahdaran,id', 'rahdaran.*' => 'exists:rahdaran,id',
'driver' => 'required|integer|exists:rahdaran,id', 'driver' => 'required|integer|exists:rahdaran,id',
'zone' => 'required|in:1,2,3', 'zone' => 'required|in:1,2,3',
'start_date' => 'required|date',
'end_date' => 'required|date|after:start_date|before:now',
'end_point' => 'required|string', 'end_point' => 'required|string',
'area' => 'required|string', 'encoded_route' => 'required|string',
'category_id' => 'required|in:1,2,3', 'category_id' => 'required|in:1,2,3',
'explanation' => 'required|string', 'explanation' => 'required|string',
]; ];
} }
public function messages(): array
{
return [
'end_date.before' => 'تاریخ پایان باید قبل از زمان فعلی باشد.',
'end_date.after' => 'تاریخ پایان نباید قبل از تاریخ شروع باشد.',
];
}
} }

View File

@@ -25,7 +25,7 @@ class StoreRequest extends FormRequest
public function rules(): array public function rules(): array
{ {
return [ return [
'exit_time' => 'required|date', 'exit_station' => 'required|date',
'machine_code' => 'required', 'machine_code' => 'required',
'km'=> 'string', 'km'=> 'string',
]; ];

View File

@@ -26,7 +26,7 @@ class UpdateRequest extends FormRequest
public function rules(): array public function rules(): array
{ {
return [ return [
'enter_time' => 'required|date', 'enter_station' => 'required|date',
]; ];
} }
} }

View File

@@ -37,7 +37,7 @@ class ControlUnitService
allowedSelects: [ allowedSelects: [
'id', 'user_id', 'username', 'state_name', 'province_name', 'edare_shahri_name', 'id', 'user_id', 'username', 'state_name', 'province_name', 'edare_shahri_name',
'description', 'requested_machines', 'type', 'type_fa', 'start_date', 'state_id', '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', 'code', 'category_id', 'category_name', 'explanation', 'city_id', 'city_name', 'province_id', 'station_name',
] ]
); );

View File

@@ -32,7 +32,7 @@ class RequestPortalService
allowedSelects: [ allowedSelects: [
'id', 'user_id', 'username', 'state_name', 'province_name', 'edare_shahri_name', 'id', 'user_id', 'username', 'state_name', 'province_name', 'edare_shahri_name',
'description', 'requested_machines', 'type', 'type_fa', 'start_date', 'state_id', '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', 'code', 'category_id', 'category_name', 'explanation', 'city_id', 'city_name', 'province_id', 'station_name',
] ]
); );

View File

@@ -32,7 +32,7 @@ class TransportationUnitService
allowedSelects: [ allowedSelects: [
'id', 'user_id', 'username', 'state_name', 'province_name', 'edare_shahri_name', 'id', 'user_id', 'username', 'state_name', 'province_name', 'edare_shahri_name',
'description', 'requested_machines', 'type', 'type_fa', 'start_date', 'state_id', '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', 'code', 'category_id', 'category_name', 'explanation', 'km', 'city_id', 'city_name', 'province_id', 'station_name',
] ]
); );

View File

@@ -0,0 +1,29 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::table('mission_violations', function (Blueprint $table) {
$table->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']);
});
}
};

View File

@@ -0,0 +1,28 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::table('missions', function (Blueprint $table) {
$table->longText('encoded_route')->nullable();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('missions', function (Blueprint $table) {
$table->dropColumn('encoded_route');
});
}
};