refactor: remove redundant date validation logic from AcademicTermRequest
This commit is contained in:
parent
ded7217dbc
commit
9823b879d8
@ -46,37 +46,11 @@ function ($attribute, $value, $fail) {
|
|||||||
'start_date' => [
|
'start_date' => [
|
||||||
'required',
|
'required',
|
||||||
'date',
|
'date',
|
||||||
function ($attribute, $value, $fail) {
|
|
||||||
$academicYear = $this->input('academic_year');
|
|
||||||
$semester = $this->input('semester');
|
|
||||||
if ($academicYear && preg_match('/^(\d{4})\/(\d{4})$/', $academicYear, $matches)) {
|
|
||||||
$startYear = (int) $matches[1];
|
|
||||||
$endYear = (int) $matches[2];
|
|
||||||
$dateYear = (int) date('Y', strtotime($value));
|
|
||||||
$expectedYear = $semester === 'even' ? $endYear : $startYear;
|
|
||||||
if ($dateYear !== $expectedYear) {
|
|
||||||
$fail('Start date harus berada di tahun '.$expectedYear.' untuk semester '.($semester === 'even' ? 'Genap' : 'Ganjil').'.');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
],
|
],
|
||||||
'end_date' => [
|
'end_date' => [
|
||||||
'required',
|
'required',
|
||||||
'date',
|
'date',
|
||||||
'after_or_equal:start_date',
|
'after_or_equal:start_date',
|
||||||
function ($attribute, $value, $fail) {
|
|
||||||
$academicYear = $this->input('academic_year');
|
|
||||||
$semester = $this->input('semester');
|
|
||||||
if ($academicYear && preg_match('/^(\d{4})\/(\d{4})$/', $academicYear, $matches)) {
|
|
||||||
$startYear = (int) $matches[1];
|
|
||||||
$endYear = (int) $matches[2];
|
|
||||||
$dateYear = (int) date('Y', strtotime($value));
|
|
||||||
$expectedYear = $semester === 'even' ? $endYear : $startYear;
|
|
||||||
if ($dateYear !== $expectedYear) {
|
|
||||||
$fail('End date harus berada di tahun '.$expectedYear.' untuk semester '.($semester === 'even' ? 'Genap' : 'Ganjil').'.');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
],
|
],
|
||||||
'is_active' => ['boolean'],
|
'is_active' => ['boolean'],
|
||||||
'open_semesters' => ['nullable', 'array'],
|
'open_semesters' => ['nullable', 'array'],
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user