Merge pull request #113 from witelgroup/develop

Develop
This commit is contained in:
Amir Ghasempoor
2025-12-23 11:10:06 +03:30
committed by GitHub
8 changed files with 85 additions and 8 deletions

View File

@@ -54,6 +54,7 @@ class DailyMovingMachineCommand extends Command
MissionViolation::query()->create([
'machine_code' => $code,
'machine_id' => CMMSMachine::query()->firstWhere('machine_code', '=', $code)->id,
'type' => MissionViolationType::KHOROJ_BEDONE_MOGAVEZ->value,
'request_date' => $date,
'mileage' => $cmm['mileageKM'],

View File

@@ -204,16 +204,16 @@ class RequestPortalController extends Controller
/**
* @throws Throwable
*/
public function noProcess(NoProcessRequest $request): JsonResponse
public function noProcess(NoProcessRequest $request, GetErrorRateService $getErrorRateService): JsonResponse
{
DB::transaction(function () use ($request) {
DB::transaction(function () use ($request, $getErrorRateService) {
$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;
$machine = CMMSMachine::query()->where('id', '=', $request->machine_id)->first(['id', 'machine_code']);
$machine = CMMSMachine::query()->where('machine_code', '=', $request->machine_code)->first(['id', 'machine_code']);
$mission = Mission::query()->create([
'user_id' => $user->id,
@@ -229,6 +229,7 @@ class RequestPortalController extends Controller
'type' => $type,
'type_fa' => MissionTypes::name($type),
'start_date' => $request->start_date,
'area' => json_encode($request->area),
'end_date' => $request->end_date,
'end_point' => $request->end_point,
'category_id' => $request->category_id,
@@ -247,6 +248,18 @@ class RequestPortalController extends Controller
$mission->rahdaran()->sync($request->rahdaran);
$mission->rahdaran()->attach($request->driver, ['is_driver' => true]);
$getErrorRateService->setInputParameters($mission);
$responseData = $getErrorRateService->run();
$mission->update([
'in_area_duration' => $responseData['timeInAreaSeconds'],
'first_enter' => $responseData['firstEnter'],
'last_exit' => $responseData['lastExit'],
'point_number_sent' => $responseData['noOfPointsInMission'],
'fms_result_code' => $responseData['resultCode'],
'fms_result_message' => FMSResultCode::name($responseData['resultCode']),
]);
// if ($mission->category_id == 2) {
// $rpc = new OperatorController;
// $rpc->store($mission);

View File

@@ -12,7 +12,8 @@ class NoProcessRequest extends FormRequest
*/
public function authorize(): bool
{
return $this->violation->status === 0 && $this->violation->type === 1;
// return $this->violation->status === 0 && $this->violation->type === 1;
return true;
}
/**
@@ -30,9 +31,9 @@ class NoProcessRequest extends FormRequest
'start_date' => 'required|date',
'end_date' => 'required|date|after:start_date|before:now',
'end_point' => 'required|string',
// 'area' => 'required|array',
// 'area.type' => 'required|string',
// 'area.coordinates' => 'required|array',
'area' => 'array',
'area.type' => 'string',
'area.coordinates' => 'array',
'category_id' => 'required|in:1,2,3',
'explanation' => 'required|string',
];

View File

@@ -4,14 +4,21 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasOne;
class MissionViolation extends Model
{
use HasFactory;
protected $guarded =[];
public function mission()
public function mission(): BelongsTo
{
return $this->belongsTo(Mission::class);
}
public function machine(): HasOne
{
return $this->hasOne(CMMSMachine::class);
}
}

View File

@@ -5,11 +5,26 @@ namespace App\Services\Cartables\Mission;
use App\Facades\DataTable\DataTableFacade;
use App\Models\MissionViolation;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class DailyMoveMachineService
{
public function dataTable(Request $request)
{
$user = Auth::user();
$query = MissionViolation::query();
if ($user->hasPermissionTo('manage-violation-station')) {
$query->whereRelation('machine', 'station_id', '=', $user->station_id);
}
elseif ($user->hasPermissionTo('manage-violation-city')) {
$query->whereRelation('machine', 'city_id', '=', $user->city_id);
}
elseif ($user->hasPermissionTo('manage-violation-province')) {
$query->whereRelation('machine', 'province_id', '=', $user->province_id);
}
return DataTableFacade::run(
MissionViolation::query(),
$request,

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->foreignId('machine_id')->constrained('cmms_machines');
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('mission_violations', function (Blueprint $table) {
$table->dropForeign('mission_violations_machine_id_foreign');
$table->dropColumn('machine_id');
});
}
};

View File

@@ -178,6 +178,16 @@
</div>
</div>
@endcan
@canany(['manage-request-portal-city', 'manage-request-portal-province', 'manage-request-portal-country', 'manage-request-portal-station',
'manage-transportation-unit-city', 'manage-transportation-unit-province', 'manage-transportation-unit-country', 'manage-transportation-unit-station',
'manage-control-unit-city', 'manage-control-unit-province', 'manage-control-unit-country', 'manage-control-unit-station',
])
<div class="user-actions-topic d-flex align-items-center justify-content-between p-2 text-white rounded mt-2">
<a href="/v3/dashboard/" class="">
<div><i class="fas fa-shipping-fast mx-2"></i>ماموریت</div>
</a>
</div>
@endcan
@canany(['add-road-patrol', 'show-road-patrol-supervise-cartable', 'show-road-patrol-supervise-cartable-province'])
<div class='user-actions-box pt-2'>
<div class="user-actions-topic d-flex align-items-center justify-content-between p-2 text-white rounded">

View File

@@ -523,6 +523,7 @@ Route::prefix('missions')
});
Route::prefix('violation_management')
->name('violationManagement.')
->middleware('permission:manage-violation-city|manage-violation-province|manage-violation-country|manage-violation-station')
->controller(ViolationManagementController::class)
->group(function () {
Route::get('/', 'index')->name('index');