add transportation routes
This commit is contained in:
@@ -25,19 +25,23 @@ class RequestPortalController extends Controller
|
||||
public function store(StoreRequest $request): JsonResponse
|
||||
{
|
||||
DB::transaction(function () use ($request) {
|
||||
$user = auth()->user();
|
||||
$state = MissionStates::REQUEST_CREATED->value;
|
||||
$mission = Mission::query()->create([
|
||||
'user_id'=> auth()->user()->id,
|
||||
'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_machine_type' => $request->requested_machine_type,
|
||||
'requested_machine_numbers' => $request->requested_machine_numbers,
|
||||
'requested_machines' => $request->requested_machines,
|
||||
'type' => $request->type,
|
||||
'start_date' => $request->start_date,
|
||||
'end_date' => $request->end_date,
|
||||
'request_date' => $request->request_date,
|
||||
'request_date' => now(),
|
||||
'description' => $request->description,
|
||||
'start_point' => $request->start_point,
|
||||
'end_point' => $request->end_point,
|
||||
]);
|
||||
|
||||
@@ -59,16 +63,14 @@ class RequestPortalController extends Controller
|
||||
$mission->update([
|
||||
'state_id' =>$state,
|
||||
'state_name' => MissionStates::name($state),
|
||||
'requested_machine_type' => $request->requested_machine_type,
|
||||
'requested_machine_numbers' => $request->requested_machine_numbers,
|
||||
'requested_machines' => $request->requested_machines,
|
||||
'type' => $request->type,
|
||||
'start_date' => $request->start_date,
|
||||
'end_date' => $request->end_date,
|
||||
'request_date' => $request->request_date,
|
||||
'description' => $request->description,
|
||||
'start_point' => $request->start_point,
|
||||
'end_point' => $request->end_point,
|
||||
]);
|
||||
]);
|
||||
|
||||
$mission->rahdaran()->sync($request->rahdaran);
|
||||
});
|
||||
|
||||
@@ -5,6 +5,7 @@ namespace App\Http\Controllers\V3\Dashboard\Mission;
|
||||
use App\Enums\MissionStates;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\V3\Mission\TransportaionUnit\AllocateRequest;
|
||||
use App\Http\Requests\V3\Mission\TransportaionUnit\DeallocateRequest;
|
||||
use App\Http\Traits\ApiResponse;
|
||||
use App\Models\Mission;
|
||||
use App\Services\Cartables\Mission\TransportationUnitService;
|
||||
@@ -33,13 +34,14 @@ class TransportationUnitController extends Controller
|
||||
return $this->successResponse();
|
||||
}
|
||||
|
||||
public function deallocate(Mission $mission): JsonResponse
|
||||
public function deallocate(DeallocateRequest $request, Mission $mission): JsonResponse
|
||||
{
|
||||
$state = MissionStates::REJECT_BY_TRANSPORTATION->value;
|
||||
|
||||
$mission->update([
|
||||
'state_id' => $state,
|
||||
'state_name' => MissionStates::name($state),
|
||||
'description' => $request->description
|
||||
]);
|
||||
|
||||
return $this->successResponse();
|
||||
|
||||
@@ -24,8 +24,7 @@ class StoreRequest extends FormRequest
|
||||
return [
|
||||
'rahdaran' => 'required|array',
|
||||
'rahdaran.*' => 'exists:rahdaran,id',
|
||||
'requested_machine_type' => 'required|string|max:255',
|
||||
'requested_machine_numbers'=> 'required|integer|max:255',
|
||||
'requested_machines' => 'required|array',
|
||||
'type' => 'required|string|max:50',
|
||||
'start_date' => 'required|date',
|
||||
'end_date' => 'required|date',
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Http\Requests\V3\Mission\RequestPortal;
|
||||
|
||||
use App\Enums\MissionStates;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class UpdateRequest extends FormRequest
|
||||
@@ -11,7 +12,7 @@ class UpdateRequest extends FormRequest
|
||||
*/
|
||||
public function authorize(): bool
|
||||
{
|
||||
return ($this->route('mission'))->user_id === auth()->id();
|
||||
return $this->mission->user_id === auth()->user()->id && $this->mission->state_id == MissionStates::REJECT_BY_TRANSPORTATION->value;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -24,8 +25,7 @@ class UpdateRequest extends FormRequest
|
||||
return [
|
||||
'rahdaran' => 'required|array',
|
||||
'rahdaran.*' => 'exists:rahdaran,id',
|
||||
'requested_machine_type' => 'required|string|max:255',
|
||||
'requested_machine_numbers'=> 'required|integer|max:255',
|
||||
'requested_machines' => 'required|array',
|
||||
'type' => 'required|string|max:50',
|
||||
'start_date' => 'required|date',
|
||||
'end_date' => 'required|date',
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Http\Requests\V3\Mission\TransportaionUnit;
|
||||
|
||||
use App\Enums\MissionStates;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class AllocateRequest extends FormRequest
|
||||
@@ -11,7 +12,7 @@ class AllocateRequest extends FormRequest
|
||||
*/
|
||||
public function authorize(): bool
|
||||
{
|
||||
return $this->mission->edare_shahri_id == auth()->user()->edarate_shahri_id;
|
||||
return $this->mission->edare_shahri_id == auth()->user()->edarate_shahri_id && $this->mission->state_id == MissionStates::REQUEST_CREATED->value;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\V3\Mission\TransportaionUnit;
|
||||
|
||||
use App\Enums\MissionStates;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class DeallocateRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*/
|
||||
public function authorize(): bool
|
||||
{
|
||||
return $this->mission->edare_shahri_id == auth()->user()->edarate_shahri_id && $this->mission->state_id == MissionStates::REQUEST_CREATED->value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string>
|
||||
*/
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'description' => 'string',
|
||||
];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user