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);
|
||||
}
|
||||
|
||||
// 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());
|
||||
|
||||
$entry = \App\Models\InternshipJournalEntry::updateOrCreate([
|
||||
'career_application_id' => $intern->id,
|
||||
'day_number' => $request->day_number,
|
||||
'date' => $request->date,
|
||||
], [
|
||||
'date' => $request->date,
|
||||
'content' => $request->content,
|
||||
'is_retroactive' => $isRetroactive,
|
||||
'supervisor_approved' => false,
|
||||
|
||||
Reference in New Issue
Block a user