This commit is contained in:
2025-12-20 11:36:14 +03:30
parent 3ecfdf02d9
commit 0a2df262e1
7 changed files with 69 additions and 9 deletions

View File

@@ -0,0 +1,17 @@
<?php
namespace App\Enums;
enum MissionViolationStatus: int
{
case BEDON_EGHDAM = 0;
case EGHDAM_SHODE = 2;
public function label(): string
{
return match ($this) {
self::BEDON_EGHDAM => "بدون اقدام",
self::EGHDAM_SHODE => "اقدام شده",
};
}
}

View File

@@ -94,6 +94,11 @@ class RequestPortalController extends Controller
'state_name' => MissionStates::name(MissionStates::END_MISSION->value), 'state_name' => MissionStates::name(MissionStates::END_MISSION->value),
]); ]);
if ($mission->category_id == 2) {
$rpc = new OperatorController;
$rpc->store($mission);
}
$state = MissionStates::START_MISSION->value; $state = MissionStates::START_MISSION->value;
$category = $request->category_id; $category = $request->category_id;
$machine = CMMSMachine::query()->find($request->machine_id); $machine = CMMSMachine::query()->find($request->machine_id);

View File

@@ -10,12 +10,15 @@ use App\Http\Controllers\Controller;
use App\Http\Controllers\V3\Dashboard\RoadPatrol\OperatorController; use App\Http\Controllers\V3\Dashboard\RoadPatrol\OperatorController;
use App\Http\Requests\V3\Mission\RequestPortal\NoProcessRequest; use App\Http\Requests\V3\Mission\RequestPortal\NoProcessRequest;
use App\Http\Traits\ApiResponse; use App\Http\Traits\ApiResponse;
use App\Models\CMMSMachine;
use App\Models\Mission; use App\Models\Mission;
use App\Models\MissionViolation;
use App\Services\Cartables\Mission\DailyMoveMachineService; use App\Services\Cartables\Mission\DailyMoveMachineService;
use Carbon\Carbon; use Carbon\Carbon;
use Illuminate\Http\JsonResponse; use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use Throwable;
class ViolationManagementController extends Controller class ViolationManagementController extends Controller
{ {
@@ -28,9 +31,12 @@ class ViolationManagementController extends Controller
return response()->json($data); return response()->json($data);
} }
public function noProcess(NoProcessRequest $request): JsonResponse /**
* @throws Throwable
*/
public function noProcess(NoProcessRequest $request, MissionViolation $violation): JsonResponse
{ {
DB::transaction(function () use ($request) { DB::transaction(function () use ($request, $violation) {
$start = Carbon::parse($request->start_date); $start = Carbon::parse($request->start_date);
$end = Carbon::parse($request->end_date); $end = Carbon::parse($request->end_date);
@@ -38,6 +44,7 @@ class ViolationManagementController extends Controller
$user = auth()->user(); $user = auth()->user();
$zone = $request->zone; $zone = $request->zone;
$state = MissionStates::END_MISSION->value; $state = MissionStates::END_MISSION->value;
$machine = CMMSMachine::query()->where('machine_code', '=', $violation->machine_code)->first(['id', 'machine_code']);
$mission = Mission::query()->create([ $mission = Mission::query()->create([
'user_id' => $user->id, 'user_id' => $user->id,
@@ -50,22 +57,23 @@ class ViolationManagementController extends Controller
'zone_fa' => MissionZones::name($zone), 'zone_fa' => MissionZones::name($zone),
'type' => $type, 'type' => $type,
'type_fa' => MissionTypes::name($type), 'type_fa' => MissionTypes::name($type),
'start_date' => $request->start_date, 'start_date' => $request->start_date,//
'end_date' => $request->end_date, 'end_date' => $request->end_date,//
'end_point' => $request->end_point, 'end_point' => $request->end_point,
'area' => json_encode($request->area), 'area' => json_encode($request->area),//
'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' => $request->start_date,//
'finish_time' => $request->end_date, 'finish_time' => $request->end_date,//
'state_id' => $state, 'state_id' => $state,
'state_name' => MissionStates::name($state), 'state_name' => MissionStates::name($state),
'explanation' => $request->explanation, 'explanation' => $request->explanation,
'request_date' => now(), 'request_date' => now(),
'machine_id' => $machine->id,//
'machine_code' => $machine->machine_code,//
]); ]);
$mission->rahdaran()->sync($request->rahdaran); $mission->rahdaran()->sync($request->rahdaran);
$mission->machines()->attach($request->machines);
$mission->rahdaran()->attach($request->driver, ['is_driver' => true]); $mission->rahdaran()->attach($request->driver, ['is_driver' => true]);
if ($mission->category_id == 2) { if ($mission->category_id == 2) {

View File

@@ -31,6 +31,7 @@ class ProfileController extends Controller
'degree' => $user->degree, 'degree' => $user->degree,
'mobile' => $user->mobile, 'mobile' => $user->mobile,
'province_id' => $user->province_id, 'province_id' => $user->province_id,
'city_id' => $user->city_id,
'avatar' => $user->avatarUrl(), 'avatar' => $user->avatarUrl(),
]); ]);
} }

View File

@@ -14,7 +14,7 @@ return new class extends Migration
Schema::create('rahdaran', function (Blueprint $table) { Schema::create('rahdaran', function (Blueprint $table) {
$table->id(); $table->id();
$table->string('name'); $table->string('name');
$table->string('code'); $table->string('code')->nullable();
$table->timestamps(); $table->timestamps();
}); });
} }

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('mission_violations', function (Blueprint $table) {
$table->smallInteger('status')->default(0);
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('mission_violations', function (Blueprint $table) {
$table->dropColumn('status');
});
}
};

View File

@@ -526,6 +526,7 @@ Route::prefix('missions')
->controller(ViolationManagementController::class) ->controller(ViolationManagementController::class)
->group(function () { ->group(function () {
Route::get('/', 'index')->name('index'); Route::get('/', 'index')->name('index');
Route::post('/no_process','noProcess')->name('noProcess');
}); });
}); });