feat: validate alignment between internship date and day number before saving journal entries
This commit is contained in:
@@ -506,14 +506,29 @@ class CareerController extends Controller
|
|||||||
return response()->json(['success' => false, 'message' => 'Hafta sonu günlerine ve resmi tatillere staj günlüğü girilemez.'], 422);
|
return response()->json(['success' => false, 'message' => 'Hafta sonu günlerine ve resmi tatillere staj günlüğü girilemez.'], 422);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 3. Determine if retroactive
|
// 3. Verify alignment of day_number and date based on internship calendar
|
||||||
|
$dates = self::getInternshipDates($intern->internship_start_date, $intern->internship_total_days);
|
||||||
|
$dateToDayMap = [];
|
||||||
|
foreach ($dates as $d) {
|
||||||
|
$dateToDayMap[$d['date']] = $d['day_number'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$expectedDay = $dateToDayMap[$request->date] ?? null;
|
||||||
|
if ($expectedDay === null || $expectedDay != $request->day_number) {
|
||||||
|
return response()->json([
|
||||||
|
'success' => false,
|
||||||
|
'message' => 'Seçilen tarih ve gün sırası uyuşmuyor. Lütfen sayfayı yenileyip tekrar deneyin.'
|
||||||
|
], 422);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 4. Determine if retroactive
|
||||||
$isRetroactive = $dateObj->lt(\Carbon\Carbon::today());
|
$isRetroactive = $dateObj->lt(\Carbon\Carbon::today());
|
||||||
|
|
||||||
$entry = \App\Models\InternshipJournalEntry::updateOrCreate([
|
$entry = \App\Models\InternshipJournalEntry::updateOrCreate([
|
||||||
'career_application_id' => $intern->id,
|
'career_application_id' => $intern->id,
|
||||||
'day_number' => $request->day_number,
|
'day_number' => $request->day_number,
|
||||||
'date' => $request->date,
|
|
||||||
], [
|
], [
|
||||||
|
'date' => $request->date,
|
||||||
'content' => $request->content,
|
'content' => $request->content,
|
||||||
'is_retroactive' => $isRetroactive,
|
'is_retroactive' => $isRetroactive,
|
||||||
'supervisor_approved' => false,
|
'supervisor_approved' => false,
|
||||||
|
|||||||
Reference in New Issue
Block a user