diff --git a/app/Http/Requests/V3/RoadItem/Operator/StoreRequest.php b/app/Http/Requests/V3/RoadItem/Operator/StoreRequest.php index a6093ca1..1263bb97 100644 --- a/app/Http/Requests/V3/RoadItem/Operator/StoreRequest.php +++ b/app/Http/Requests/V3/RoadItem/Operator/StoreRequest.php @@ -57,9 +57,11 @@ class StoreRequest extends FormRequest $validator->errors()->add('mission_id', 'مأموریت یافت نشد.'); return; } + $startTime = Carbon::parse($mission->start_time); + $finishTime = Carbon::parse($mission->finish_time); $activityTime = Carbon::parse("{$this->activity_date} {$this->activity_time}"); - if ($activityTime->lt($mission->start_date) || $activityTime->gt($mission->end_date)) { + if (! $activityTime->between($startTime, $finishTime, true)) { $validator->errors()->add('activity_time', 'زمان گزارش باید بین بازه مأموریت باشد.'); } } diff --git a/app/Http/Requests/V3/RoadItem/Operator/UpdateRequest.php b/app/Http/Requests/V3/RoadItem/Operator/UpdateRequest.php index 51986ff5..a169d836 100644 --- a/app/Http/Requests/V3/RoadItem/Operator/UpdateRequest.php +++ b/app/Http/Requests/V3/RoadItem/Operator/UpdateRequest.php @@ -2,9 +2,12 @@ namespace App\Http\Requests\V3\RoadItem\Operator; +use App\Models\Mission; +use Carbon\Carbon; use Illuminate\Contracts\Validation\ValidationRule; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Validation\Rule; +use Illuminate\Validation\Validator; class UpdateRequest extends FormRequest { @@ -48,4 +51,25 @@ class UpdateRequest extends FormRequest 'activity_time' => 'ساعت فعالیت', ]; } + + public function after(): array + { + return [ + function (Validator $validator) { + + $mission = Mission::find($this->mission_id); + if (!$mission) { + $validator->errors()->add('mission_id', 'مأموریت یافت نشد.'); + return; + } + $startTime = Carbon::parse($mission->start_time); + $finishTime = Carbon::parse($mission->finish_time); + $activityTime = Carbon::parse("{$this->activity_date} {$this->activity_time}"); + + if (! $activityTime->between($startTime, $finishTime, true)) { + $validator->errors()->add('activity_time', 'زمان گزارش باید بین بازه مأموریت باشد.'); + } + } + ]; + } }