add machines and rahdaran to road patrols

This commit is contained in:
2024-12-28 11:22:55 +03:30
parent c25b7ecb32
commit 42c3dc4ce8
3 changed files with 47 additions and 11 deletions

View File

@@ -37,7 +37,7 @@ class RoadPatrolProjectController extends Controller
'operator_name', 'officer_plaque', 'officer_phone_number', 'officer_name',
'supervisor_description', 'supervising_time', 'supervisor_name', 'status',
'status_fa', 'distance', 'province_id', 'province_fa', 'edare_id', 'edare_name',
'start_time', 'end_time','description'
'start_time', 'end_time','description', 'cmmsMachines.machine_code'
);
$allowedFilters = $columns;
@@ -47,13 +47,16 @@ class RoadPatrolProjectController extends Controller
$query = null;
if ($user->hasPermissionTo('show-road-patrol-supervise-cartable')) {
$query = RoadPatrol::query();
$query = RoadPatrol::query()
->with(['rahdaran:id,name,code', 'cmmsMachines:id,machine_code,car_name,plak_number']);
}
elseif ($user->hasPermissionTo('show-road-patrol-supervise-cartable-province')) {
if (is_null($user->province_id)) {
return $this->errorResponse('استانی برای شما در سامانه ثبت نشده است!');
}
$query = RoadPatrol::query()->where('province_id', '=', $user->province_id);
$query = RoadPatrol::query()
->with(['rahdaran:id,name,code', 'cmmsMachines:id,machine_code,car_name,plak_number'])
->where('province_id', '=', $user->province_id);
}
$data = DataTableFacade::run(
@@ -123,13 +126,15 @@ class RoadPatrolProjectController extends Controller
$columns = array(
'id', 'start_lat', 'start_lon', 'end_lat', 'end_lon', 'officer_plaque',
'officer_phone_number', 'officer_name', 'supervisor_description', 'supervising_time',
'supervisor_name', 'status', 'status_fa', 'distance', 'start_time', 'end_time'
'supervisor_name', 'status', 'status_fa', 'distance', 'start_time', 'end_time', 'cmmsMachines.machine_code'
);
$allowedFilters = $columns;
$allowedSortings = $columns;
$query = RoadPatrol::query()->where('operator_id', '=', auth()->user()->id);
$query = RoadPatrol::query()
->with(['rahdaran:id,name,code', 'cmmsMachines:id,machine_code,car_name,plak_number'])
->where('operator_id', '=', auth()->user()->id);
$data = DataTableFacade::run(
$query,
@@ -192,6 +197,9 @@ class RoadPatrolProjectController extends Controller
'description' => $request->description ?? null,
]);
$road_patrol->rahdaran()->attach($request->rahdaran_id);
$road_patrol->cmmsMachines()->attach($request->machines_id);
if ($request->observed_items) {
foreach ($request->observed_items as $index => $item) {
$info_item = InfoItem::where('item', $item['item_id'])
@@ -297,10 +305,7 @@ class RoadPatrolProjectController extends Controller
return $road_patrol;
});
return response()->json([
'road_patrol_id' => $road_patrol->id,
'message' => 'succussful'
]);
return $this->successResponse();
}
public function getReport(RoadPatrol $roadPatrol): JsonResponse

View File

@@ -11,7 +11,7 @@ class StoreRequest extends FormRequest
*/
public function authorize(): bool
{
return false;
return true;
}
/**
@@ -47,7 +47,16 @@ class StoreRequest extends FormRequest
'observed_items.*.priority' => 'integer|in:1,2,3|required_if:instant_action,0',
'observed_items.*.priority_fa' => 'string|required_if:instant_action,0',
'description' => 'string|required_with:observed_items',
'machines_id' => 'required|array',
'machines_id.*' => 'required|exists:cmms_machines,id',
'rahdaran_id' => 'required|array',
'rahdaran_id.*' => 'required|exists:rahdaran,id',
];
}
public function attributes(): array
{
return [
'start_time' => 'ساعت شروع گشت',
'end_time' => 'ساعت پایان گشت',
];

View File

@@ -4,6 +4,8 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphToMany;
class RoadPatrol extends Model
{
@@ -11,8 +13,28 @@ class RoadPatrol extends Model
protected $guarded = ['id'];
public function observedItems()
public function observedItems(): HasMany
{
return $this->hasMany(ObservedItem::class);
}
public function cmmsMachines(): MorphToMany
{
return $this->morphToMany(CMMSMachine::class,
'machinable',
'machinables',
'machinable_id',
'machine_id'
);
}
public function rahdaran(): MorphToMany
{
return $this->morphToMany(Rahdaran::class,
'rahdarable',
'rahdarables',
'rahdarable_id',
'rahdar_id',
);
}
}