Merge branch 'feature/AddMachineToRoadPatrol' into 'develop'
Feature/add machine to road patrol See merge request witelgroup/rms_v2!53
This commit is contained in:
@@ -14,7 +14,7 @@ class CMMSMachinesController extends Controller
|
||||
|
||||
public function list(): JsonResponse
|
||||
{
|
||||
$machinesList = CMMSMachine::query()->get(['machine_code', 'id']);
|
||||
$machinesList = CMMSMachine::query()->get(['machine_code', 'id', 'plak_number', 'car_name']);
|
||||
|
||||
return $this->successResponse($machinesList);
|
||||
}
|
||||
@@ -23,7 +23,7 @@ class CMMSMachinesController extends Controller
|
||||
{
|
||||
$matchedSearchedMachines = CMMSMachine::query()
|
||||
->where('machine_code', 'LIKE', "%{$request->machine_code}%")
|
||||
->get(['machine_code', 'id']);
|
||||
->get(['machine_code', 'id', 'plak_number', 'car_name']);
|
||||
|
||||
return $this->successResponse($matchedSearchedMachines);
|
||||
}
|
||||
|
||||
31
app/Http/Controllers/V3/FMSVehicleManagementController.php
Normal file
31
app/Http/Controllers/V3/FMSVehicleManagementController.php
Normal file
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\V3;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Traits\ApiResponse;
|
||||
use App\Services\FMS\GetVehicleActivityService;
|
||||
use Exception;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class FMSVehicleManagementController extends Controller
|
||||
{
|
||||
use ApiResponse;
|
||||
|
||||
/**
|
||||
* @throws Exception
|
||||
*/
|
||||
public function getActivity(Request $request, GetVehicleActivityService $getVehicleActivityService): JsonResponse
|
||||
{
|
||||
$getVehicleActivityService->setInputParameters([
|
||||
"machineCode" => $request->machineCode,
|
||||
"startDT" => $request->startDT,
|
||||
"endDT" => $request->endDT,
|
||||
"minStopDuration" => $request->minStopDuration
|
||||
]);
|
||||
|
||||
$data = $getVehicleActivityService->run();
|
||||
return $this->successResponse($data);
|
||||
}
|
||||
}
|
||||
@@ -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'])
|
||||
@@ -285,6 +293,9 @@ class RoadPatrolProjectController extends Controller
|
||||
'message' => 'اقدام مربوطه قبلا رسیدگی شده است.'
|
||||
], 400);
|
||||
}
|
||||
|
||||
$road_item->rahdaran()->attach($request->rahdaran_id);
|
||||
$road_item->cmmsMachines()->attach($request->machines_id);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -297,10 +308,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
|
||||
|
||||
@@ -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' => 'ساعت پایان گشت',
|
||||
];
|
||||
|
||||
@@ -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',
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ use App\Http\Controllers\V3\Azmayesh\AzmayeshController;
|
||||
use App\Http\Controllers\V3\Azmayesh\AzmayeshSampleController;
|
||||
use App\Http\Controllers\V3\Azmayesh\AzmayeshTypeController;
|
||||
use App\Http\Controllers\V3\CMMSMachinesController;
|
||||
use App\Http\Controllers\V3\FMSVehicleManagementController;
|
||||
use App\Http\Controllers\V3\Harim\DivarkeshiController;
|
||||
use App\Http\Controllers\V3\ProfileController;
|
||||
use App\Http\Controllers\V3\RahdaranController;
|
||||
@@ -170,3 +171,10 @@ Route::prefix('rahdaran')
|
||||
Route::get('/list', 'list')->name('list');
|
||||
Route::get('/search', 'search')->name('search');
|
||||
});
|
||||
|
||||
Route::prefix('fms_vehicle')
|
||||
->name('fmsVehicle.')
|
||||
->controller(FMSVehicleManagementController::class)
|
||||
->group(function () {
|
||||
Route::get('/get_activity', 'getActivity')->name('getActivity');
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user