diff --git a/app/Console/Commands/DailyMovingMachineCommand.php b/app/Console/Commands/DailyMovingMachineCommand.php index 0b0bacbe..bc19cbfd 100644 --- a/app/Console/Commands/DailyMovingMachineCommand.php +++ b/app/Console/Commands/DailyMovingMachineCommand.php @@ -4,10 +4,11 @@ namespace App\Console\Commands; use App\Enums\ActivityMachineType; use App\Models\Mission; -use App\Models\AssignmentFails; +use App\Models\MissionViolation; use App\Services\CMMS\DailyMovingMachinesService; use Exception; use Illuminate\Console\Command; +use Illuminate\Support\Carbon; class DailyMovingMachineCommand extends Command { @@ -34,7 +35,7 @@ class DailyMovingMachineCommand extends Command $vehiclesInfo = $dailyMovingMachines->run(); $response = collect($vehiclesInfo['vehiclesInfo']); - $date = now()->toDateString(); + $date = Carbon::yesterday()->toDateString(); $cmms = $response->pluck('machineCode'); @@ -46,27 +47,27 @@ class DailyMovingMachineCommand extends Command $missionOnly = $mission->diff($cmms); foreach ($cmmsOnly as $code) { - $cmm = $response->firstWhere('machineCode', $code); + $cmm = $response->firstWhere('machineCode', '=', $code); - AssignmentFails::query()->create([ + MissionViolation::query()->create([ 'machine_code' => $code, - 'type' => ActivityMachineType::KHOROJ_BEDONE_MOGAVEZ->label(), + 'type' => ActivityMachineType::KHOROJ_BEDONE_MOGAVEZ->value, 'request_date' => $date, 'mileage' => $cmm['mileageKM'], - 'exit_time' => $cmm['exit_time'], - 'enter_time' => $cmm['enter_time'], +// 'exit_time' => $cmm['exit_time'], +// 'enter_time' => $cmm['enter_time'], ]); } foreach ($missionOnly as $code) { $missionId = Mission::query()->where('machine_code', $code) - ->whereDate('start_time', today()) + ->whereDate('start_time', $date) ->value('id'); - AssignmentFails::query()->create([ + MissionViolation::query()->create([ 'machine_code' => $code, 'mission_id' => $missionId, - 'type' => ActivityMachineType::ADAM_TAHAROK->label(), + 'type' => ActivityMachineType::ADAM_TAHAROK->value, 'request_date' => $date, ]); } diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php index 7fd4011a..4b9554d3 100755 --- a/app/Console/Kernel.php +++ b/app/Console/Kernel.php @@ -50,7 +50,7 @@ class Kernel extends ConsoleKernel ->appendOutputTo(storage_path('logs/telescope.log')); $schedule->command('daily_moving_machine') - ->dailyAt('23:59')->appendOutputTo(storage_path('logs/dailymovingmachine.log')); + ->dailyAt('02:00')->appendOutputTo(storage_path('logs/dailymovingmachine.log')); } diff --git a/app/Http/Controllers/V3/Dashboard/Mission/DetailController.php b/app/Http/Controllers/V3/Dashboard/Mission/DetailController.php index 4a99af4f..cf1b2dd1 100644 --- a/app/Http/Controllers/V3/Dashboard/Mission/DetailController.php +++ b/app/Http/Controllers/V3/Dashboard/Mission/DetailController.php @@ -5,9 +5,7 @@ namespace App\Http\Controllers\V3\Dashboard\Mission; use App\Http\Controllers\Controller; use App\Http\Traits\ApiResponse; use App\Models\Mission; -use App\Services\Cartables\Mission\DailyMoveMachineService; use Illuminate\Http\JsonResponse; -use Illuminate\Http\Request; class DetailController extends Controller { @@ -15,7 +13,7 @@ class DetailController extends Controller public function machines(Mission $mission): JsonResponse { - return $this->successResponse($mission->machine()->get(['cmms_machines.id', 'cmms_machines.machine_code', 'cmms_machines.car_name', 'cmms_machines.plak_number'])); + return $this->successResponse($mission->machines()->get(['cmms_machines.id', 'cmms_machines.machine_code', 'cmms_machines.car_name', 'cmms_machines.plak_number'])); } public function rahdaran(Mission $mission): JsonResponse @@ -33,11 +31,4 @@ class DetailController extends Controller return $this->successResponse($rahdaran); } - - public function index(Request $request, DailyMoveMachineService $dailyMoveMachineService): JsonResponse - { - $data = $dailyMoveMachineService->dataTable($request); - - return response()->json($data); - } } diff --git a/app/Http/Controllers/V3/Dashboard/Mission/ViolationManagementController.php b/app/Http/Controllers/V3/Dashboard/Mission/ViolationManagementController.php new file mode 100644 index 00000000..4e6e95ad --- /dev/null +++ b/app/Http/Controllers/V3/Dashboard/Mission/ViolationManagementController.php @@ -0,0 +1,79 @@ +dataTable($request); + + return response()->json($data); + } + + public function noProcess(NoProcessRequest $request): JsonResponse + { + DB::transaction(function () use ($request) { + + $start = Carbon::parse($request->start_date); + $end = Carbon::parse($request->end_date); + $type = $start->diffInMinutes($end) > 480 ? MissionTypes::NO_PROCESS_ROZANE->value : MissionTypes::NO_PROCESS_SAATY->value; + $user = auth()->user(); + $zone = $request->zone; + $state = MissionStates::END_MISSION->value; + + $mission = Mission::query()->create([ + 'user_id' => $user->id, + 'username' => $user->username, + 'province_id' => $user->province_id, + 'province_name' => $user->province_fa, + 'edare_shahri_id' => $user->edarate_shahri_id ?? null, + 'edare_shahri_name' => $user->edarate_shahri_name ?? null, + 'zone' => $zone, + 'zone_fa' => MissionZones::name($zone), + 'type' => $type, + 'type_fa' => MissionTypes::name($type), + 'start_date' => $request->start_date, + 'end_date' => $request->end_date, + 'end_point' => $request->end_point, + 'area' => json_encode($request->area), + 'category_id' => $request->category_id, + 'category_name' => MissionCategory::name($request->category_id), + 'start_time' => $request->start_date, + 'finish_time' => $request->end_date, + 'state_id' => $state, + 'state_name' => MissionStates::name($state), + 'explanation' => $request->explanation, + 'request_date' => now(), + ]); + + $mission->rahdaran()->sync($request->rahdaran); + $mission->machines()->attach($request->machines); + $mission->rahdaran()->attach($request->driver, ['is_driver' => true]); + + if ($mission->category_id == 2) { + $rpc = new OperatorController; + $rpc->store($mission); + } + }); + + return $this->successResponse(); + } +} diff --git a/app/Models/AssignmentFails.php b/app/Models/MissionViolation.php similarity index 87% rename from app/Models/AssignmentFails.php rename to app/Models/MissionViolation.php index ea33b98c..b1ff3be1 100644 --- a/app/Models/AssignmentFails.php +++ b/app/Models/MissionViolation.php @@ -5,7 +5,7 @@ namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; -class AssignmentFails extends Model +class MissionViolation extends Model { use HasFactory; protected $guarded =[]; diff --git a/app/Services/CMMS/DailyMovingMachinesService.php b/app/Services/CMMS/DailyMovingMachinesService.php index 1facb4e8..3f891221 100644 --- a/app/Services/CMMS/DailyMovingMachinesService.php +++ b/app/Services/CMMS/DailyMovingMachinesService.php @@ -3,7 +3,7 @@ namespace App\Services\CMMS; use Exception; -use Illuminate\Support\Collection; +use Illuminate\Support\Carbon; use Illuminate\Support\Facades\Http; use Illuminate\Support\Facades\Log; @@ -54,10 +54,12 @@ class DailyMovingMachinesService private function makeInputParameters(): string { + $day = Carbon::yesterday()->toDateString(); + return json_encode([ "username" => $this->username, "password" => $this->password, - "day" => today(), + "day" => $day, "minMileage" => 10, ]); } diff --git a/app/Services/Cartables/Mission/DailyMoveMachineService.php b/app/Services/Cartables/Mission/DailyMoveMachineService.php index b3d08ac1..c074fba6 100644 --- a/app/Services/Cartables/Mission/DailyMoveMachineService.php +++ b/app/Services/Cartables/Mission/DailyMoveMachineService.php @@ -3,7 +3,7 @@ namespace App\Services\Cartables\Mission; use App\Facades\DataTable\DataTableFacade; -use App\Models\AssignmentFails; +use App\Models\MissionViolation; use Illuminate\Http\Request; class DailyMoveMachineService @@ -11,7 +11,7 @@ class DailyMoveMachineService public function dataTable(Request $request) { return DataTableFacade::run( - AssignmentFails::query(), + MissionViolation::query(), $request, allowedFilters: ['*'], allowedSortings: ['*'], diff --git a/database/factories/AssignmentFailsFactory.php b/database/factories/AssignmentFailsFactory.php index 1f5144f5..27e8e5f4 100644 --- a/database/factories/AssignmentFailsFactory.php +++ b/database/factories/AssignmentFailsFactory.php @@ -2,12 +2,12 @@ namespace Database\Factories; -use App\Models\AssignmentFails; +use App\Models\MissionViolation; use Illuminate\Database\Eloquent\Factories\Factory; class AssignmentFailsFactory extends Factory { - protected $model = AssignmentFails::class; + protected $model = MissionViolation::class; public function definition(): array { diff --git a/database/migrations/2025_11_12_155435_create_assignment_fails_table.php b/database/migrations/2025_11_12_155435_create_mission_violations_table.php similarity index 73% rename from database/migrations/2025_11_12_155435_create_assignment_fails_table.php rename to database/migrations/2025_11_12_155435_create_mission_violations_table.php index b59d5f16..c741572f 100644 --- a/database/migrations/2025_11_12_155435_create_assignment_fails_table.php +++ b/database/migrations/2025_11_12_155435_create_mission_violations_table.php @@ -11,12 +11,12 @@ return new class extends Migration */ public function up(): void { - Schema::create('assignment_fails', function (Blueprint $table) { + Schema::create('mission_violations', function (Blueprint $table) { $table->id(); - $table->foreignId('mission_id')->constrained('missions')->nullable(); + $table->foreignId('mission_id')->nullable()->constrained('missions'); $table->string('machine_code')->nullable(); $table->date('request_date')->nullable(); - $table->string('type')->nullable(); + $table->tinyInteger('type')->nullable(); $table->bigInteger('mileage')->nullable(); $table->dateTime('exit_time')->nullable(); $table->dateTime('enter_time')->nullable(); @@ -30,6 +30,6 @@ return new class extends Migration */ public function down(): void { - Schema::dropIfExists('assignment_fails'); + Schema::dropIfExists('mission_violations'); } };