diff --git a/app/Http/Controllers/CareerController.php b/app/Http/Controllers/CareerController.php index 5c739af..ddc8fa3 100644 --- a/app/Http/Controllers/CareerController.php +++ b/app/Http/Controllers/CareerController.php @@ -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,