Merge branch 'feature/Polyline' into 'develop'

add relation for road observation

See merge request witelgroup/rms_v2!141
This commit is contained in:
2025-07-13 12:26:19 +00:00
4 changed files with 17 additions and 13 deletions

View File

@@ -11,6 +11,7 @@ use App\Http\Requests\V3\Mission\RequestPortal\StoreRequest;
use App\Http\Requests\V3\Mission\RequestPortal\UpdateRequest; use App\Http\Requests\V3\Mission\RequestPortal\UpdateRequest;
use App\Http\Traits\ApiResponse; use App\Http\Traits\ApiResponse;
use App\Models\Mission; use App\Models\Mission;
use App\Models\RoadObserved;
use App\Services\Cartables\Mission\RequestPortalService; use App\Services\Cartables\Mission\RequestPortalService;
use Illuminate\Http\JsonResponse; use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request; use Illuminate\Http\Request;
@@ -59,7 +60,10 @@ class RequestPortalController extends Controller
$mission->rahdaran()->attach($request->rahdaran); $mission->rahdaran()->attach($request->rahdaran);
if ($request->category_id == 3){ if ($request->category_id == 3){
$mission->roadObserved()->attach($request->road_observed_id); RoadObserved::query()
->find($request->road_observed_id)
->missions()
->attach($mission->id);
} }
}); });

View File

@@ -39,7 +39,7 @@ class StoreRequest extends FormRequest
'area.coordinates' => 'required|array', 'area.coordinates' => 'required|array',
'explanation' => 'required|string', 'explanation' => 'required|string',
'category_id' => 'required|in:1,2,3', 'category_id' => 'required|in:1,2,3',
'road_observed_id' => 'required_if:category_id,3|exists:road_observed,id', 'road_observed_id' => 'required_if:category_id,3|exists:road_observeds,id',
]; ];
} }
@@ -48,17 +48,15 @@ class StoreRequest extends FormRequest
return [ return [
function (Validator $validator) { function (Validator $validator) {
if ($this->type === 1){ if ($this->type === 1){
$start = Carbon::parse($this->start_date); $start = Carbon::parse($this->start_date);
$end = Carbon::parse($this->end_date); $end = Carbon::parse($this->end_date);
if ($start->diffInMinutes($end) > 480 ){ if ($start->diffInMinutes($end) > 480){
$validator->errors()->add( $validator->errors()->add(
'end_date', 'end_date',
'مدت مأموریت روزانه نباید بیشتر از ۸ ساعت باشد.' 'مدت زمان مأموریت ساعتی نباید بیشتر از ۸ ساعت باشد.'
); );
} }
} }
} }
]; ];

View File

@@ -40,27 +40,24 @@ class UpdateRequest extends FormRequest
'area.coordinates' => 'required|array', 'area.coordinates' => 'required|array',
'explanation' => 'required|string', 'explanation' => 'required|string',
'category_id' => 'required|in:1,2,3', 'category_id' => 'required|in:1,2,3',
'road_observed_id' => 'required_if:category_id,3|exists:road_observed,id', 'road_observed_id' => 'required_if:category_id,3|exists:road_observeds,id',
]; ];
} }
public function after(): array public function after(): array
{ {
return [ return [
function (Validator $validator) { function (Validator $validator) {
if ($this->type === 1){ if ($this->type === 1){
$start = Carbon::parse($this->start_date); $start = Carbon::parse($this->start_date);
$end = Carbon::parse($this->end_date); $end = Carbon::parse($this->end_date);
if ($start->diffInMinutes($end) > 480 ){ if ($start->diffInMinutes($end) > 480){
$validator->errors()->add( $validator->errors()->add(
'end_date', 'end_date',
'مدت مأموریت روزانه نباید بیشتر از ۸ ساعت باشد.' 'مدت زمان مأموریت ساعتی نباید بیشتر از ۸ ساعت باشد.'
); );
} }
} }
} }
]; ];

View File

@@ -70,6 +70,11 @@ class Mission extends Model
public function roadObserved(): MorphToMany public function roadObserved(): MorphToMany
{ {
return $this->morphToMany(RoadObserved::class, 'missionable'); return $this->morphToMany(RoadObserved::class,
'missionable',
'missionables',
'mission_id',
'missionable_id',
);
} }
} }