create control unit cartable

This commit is contained in:
2025-05-25 08:58:30 +03:30
parent 440e5be062
commit 94d60fae7e
5 changed files with 99 additions and 18 deletions

View File

@@ -0,0 +1,16 @@
<?php
namespace App\Http\Controllers\V3\Dashboard\Mission;
use App\Http\Controllers\Controller;
use App\Services\Cartables\Mission\ControlUnitService;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class ControlUnitController extends Controller
{
public function index(Request $request, ControlUnitService $controlUnitService): JsonResponse
{
return response()->json($controlUnitService->datatable($request));
}
}

View File

@@ -0,0 +1,24 @@
<?php
namespace App\Http\Controllers\V3\Dashboard\Mission;
use App\Http\Controllers\Controller;
use App\Http\Traits\ApiResponse;
use App\Models\Mission;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class DetailController extends Controller
{
use ApiResponse;
public function machines(Mission $mission): JsonResponse
{
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
{
return $this->successResponse($mission->rahdaran()->get(['rahdaran.id', 'rahdaran.name', 'rahdaran.code']));
}
}

View File

@@ -28,13 +28,13 @@ class RequestPortalController extends Controller
$user = auth()->user();
$state = MissionStates::REQUEST_CREATED->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->edare_shahri_id ?? null,
'edare_shahri_name'=> $user->edare_shahri_name ?? null,
'state_id' =>$state,
'user_id' => $user->id,
'username' => $user->username,
'province_id' => $user->province_id,
'province_name' => $user->province_fa,
'edare_shahri_id' => $user->edare_shahri_id ?? null,
'edare_shahri_name' => $user->edare_shahri_name ?? null,
'state_id' => $state,
'state_name' => MissionStates::name($state),
'requested_machines' => json_encode($request->requested_machines),
'type' => $request->type,
@@ -86,13 +86,4 @@ class RequestPortalController extends Controller
});
return $this->successResponse();
}
public function machines(Mission $mission): JsonResponse
{
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
{
return $this->successResponse($mission->rahdaran()->get(['rahdaran.id', 'rahdaran.name', 'rahdaran.code']));
}
}

View File

@@ -0,0 +1,37 @@
<?php
namespace App\Services\Cartables\Mission;
use App\Enums\MissionStates;
use App\Facades\DataTable\DataTableFacade;
use App\Http\Traits\ApiResponse;
use App\Models\Mission;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class ControlUnitService
{
use ApiResponse;
public function dataTable(Request $request)
{
$fields = [
'id', 'user_id', 'username', 'state_name', 'province_name', 'edare_shahri_name',
'description', 'requested_machines', 'type', 'start_date',
'end_date', 'request_date', 'end_point',
];
$query = Mission::query()
->where('state_id', '=', MissionStates::PENDING_CONFIRMATION->value)
->where('edare_shahri_name', '=', Auth::user()->edarate_shahri_id);
return DataTableFacade::run(
$query,
$request,
allowedFilters: ['*'],
allowedSortings: ['*'],
allowedSelects: $fields
);
}
}

View File

@@ -7,6 +7,8 @@ use App\Http\Controllers\V3\Dashboard\Azmayesh\AzmayeshController;
use App\Http\Controllers\V3\Dashboard\Azmayesh\AzmayeshSampleController;
use App\Http\Controllers\V3\Dashboard\Azmayesh\AzmayeshTypeController;
use App\Http\Controllers\V3\Dashboard\ItemsManagementController;
use App\Http\Controllers\V3\Dashboard\Mission\ControlUnitController;
use App\Http\Controllers\V3\Dashboard\Mission\DetailController;
use App\Http\Controllers\V3\Dashboard\Mission\RequestPortalController;
use App\Http\Controllers\V3\Dashboard\Mission\TransportationUnitController;
use App\Http\Controllers\V3\Dashboard\ObservedItemController;
@@ -440,8 +442,6 @@ Route::prefix('missions')
Route::get('/{mission}', 'show')->name('show');
Route::post('/{mission}', 'update')->name('update');
Route::delete('/{mission}', 'destroy')->name('destroy');
Route::get('/machine/{mission}','machines')->name('machines');
Route::get('/rahdar/{mission}','rahdaran')->name('rahdaran');
});
Route::name('transportationUnit.')
->prefix('transportation_unit')
@@ -451,4 +451,17 @@ Route::prefix('missions')
Route::post('/allocate/{mission}', 'allocate')->name('allocate');
Route::post('/deallocate/{mission}', 'deallocate')->name('deallocate');
});
Route::name('controlUnit.')
->prefix('control_unit')
->controller(ControlUnitController::class)
->group(function () {
Route::get('/', 'index')->name('index');
});
Route::prefix('details')
->name('details.')
->controller(DetailController::class)
->group(function () {
Route::get('/machines/{mission}', 'machines')->name('machines');
Route::get('/rahdaran/{mission}', 'rahdaran')->name('rahdaran');
});
});