convert many to many to one to many
This commit is contained in:
@@ -13,6 +13,7 @@ use App\Http\Requests\V3\Mission\RequestPortal\NoProcessRequest;
|
||||
use App\Http\Requests\V3\Mission\RequestPortal\StoreRequest;
|
||||
use App\Http\Requests\V3\Mission\RequestPortal\UpdateRequest;
|
||||
use App\Http\Traits\ApiResponse;
|
||||
use App\Models\CMMSMachine;
|
||||
use App\Models\Mission;
|
||||
use App\Models\RoadObserved;
|
||||
use App\Services\Cartables\Mission\RequestPortalService;
|
||||
@@ -20,6 +21,7 @@ use Carbon\Carbon;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Throwable;
|
||||
|
||||
class RequestPortalController extends Controller
|
||||
{
|
||||
@@ -30,6 +32,9 @@ class RequestPortalController extends Controller
|
||||
return response()->json($requestPortalService->datatable($request));
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws Throwable
|
||||
*/
|
||||
public function store(StoreRequest $request): JsonResponse
|
||||
{
|
||||
DB::transaction(function () use ($request) {
|
||||
@@ -65,13 +70,6 @@ class RequestPortalController extends Controller
|
||||
]);
|
||||
|
||||
$mission->rahdaran()->sync($request->rahdaran);
|
||||
|
||||
if ($category == 3) {
|
||||
RoadObserved::query()
|
||||
->find($request->road_observed_id)
|
||||
->missions()
|
||||
->attach($mission->id);
|
||||
}
|
||||
});
|
||||
|
||||
return $this->successResponse();
|
||||
@@ -82,6 +80,9 @@ class RequestPortalController extends Controller
|
||||
return $this->successResponse($mission);
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws Throwable
|
||||
*/
|
||||
public function continueMission(ContinueMissionRequest $request, Mission $mission): JsonResponse
|
||||
{
|
||||
DB::transaction(function () use ($request, $mission) {
|
||||
@@ -95,6 +96,7 @@ class RequestPortalController extends Controller
|
||||
|
||||
$state = MissionStates::START_MISSION->value;
|
||||
$category = $request->category_id;
|
||||
$machine = CMMSMachine::query()->find($request->machine_id);
|
||||
|
||||
$newMission = Mission::query()->create([
|
||||
'user_id' => $user->id,
|
||||
@@ -119,23 +121,20 @@ class RequestPortalController extends Controller
|
||||
'category_name' => MissionCategory::name($category),
|
||||
'explanation' => $request->explanation,
|
||||
'start_time' => now(),
|
||||
'machine_id' => $machine->id,
|
||||
'machine_name' => $machine->car_name,
|
||||
]);
|
||||
|
||||
$newMission->rahdaran()->sync($request->rahdaran);
|
||||
$newMission->machines()->attach($request->machines);
|
||||
$newMission->rahdaran()->attach($request->driver, ['is_driver' => true]);
|
||||
|
||||
if ($category == 3) {
|
||||
RoadObserved::query()
|
||||
->find($request->road_observed_id)
|
||||
->missions()
|
||||
->attach($newMission->id);
|
||||
}
|
||||
});
|
||||
|
||||
return $this->successResponse();
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws Throwable
|
||||
*/
|
||||
public function update(UpdateRequest $request, Mission $mission): JsonResponse
|
||||
{
|
||||
DB::transaction(function () use ($mission, $request) {
|
||||
@@ -159,31 +158,30 @@ class RequestPortalController extends Controller
|
||||
]);
|
||||
|
||||
$mission->rahdaran()->sync($request->rahdaran);
|
||||
if ($request->category_id == 3) {
|
||||
RoadObserved::query()
|
||||
->find($request->road_observed_id)
|
||||
->missions()
|
||||
->sync($mission->id);
|
||||
}
|
||||
});
|
||||
|
||||
return $this->successResponse();
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws Throwable
|
||||
*/
|
||||
public function destroy(Mission $mission): JsonResponse
|
||||
{
|
||||
DB::transaction(function () use ($mission) {
|
||||
$mission->rahdaran()->detach();
|
||||
$mission->rahdaran()->delete();
|
||||
$mission->delete();
|
||||
});
|
||||
|
||||
return $this->successResponse();
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws Throwable
|
||||
*/
|
||||
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;
|
||||
|
||||
Reference in New Issue
Block a user