feat: add internship date fields and business day calculation to career applications

This commit is contained in:
Ümit Tunç
2026-06-01 08:02:36 +03:00
parent e24b4bdf41
commit aa48ce7890
5 changed files with 125 additions and 2 deletions
+25 -2
View File
@@ -136,11 +136,18 @@ class CareerController extends Controller
$request->validate([
'internship_form' => 'required|file|mimes:pdf,docx,jpg,png,jpeg|max:51200',
'internship_start_date' => 'required|date',
'internship_end_date' => 'required|date|after_or_equal:internship_start_date',
], [
'internship_form.required' => 'Lütfen bir dosya seçin.',
'internship_form.file' => 'Yüklenen öğe geçerli bir dosya olmalıdır.',
'internship_form.mimes' => 'Yalnızca PDF, DOCX, JPG ve PNG formatındaki dosyalar kabul edilir.',
'internship_form.max' => 'Dosya boyutu en fazla 50MB olabilir.',
'internship_start_date.required' => 'Lütfen staj başlangıç tarihini girin.',
'internship_start_date.date' => 'Geçerli bir başlangıç tarihi girin.',
'internship_end_date.required' => 'Lütfen staj bitiş tarihini girin.',
'internship_end_date.date' => 'Geçerli bir bitiş tarihi girin.',
'internship_end_date.after_or_equal' => 'Bitiş tarihi, başlangıç tarihinden önce olamaz.',
]);
$intern = CareerApplication::findOrFail(session('intern_id'));
@@ -152,11 +159,27 @@ class CareerController extends Controller
}
$path = $request->file('internship_form')->store('to_be_signed_interns', 'public');
// Calculate business days (excluding weekends)
$startDate = \Carbon\Carbon::parse($request->internship_start_date);
$endDate = \Carbon\Carbon::parse($request->internship_end_date);
$days = 0;
$tempDate = $startDate->copy();
while ($tempDate->lte($endDate)) {
if (!$tempDate->isWeekend()) {
$days++;
}
$tempDate->addDay();
}
$intern->update([
'to_be_signed_internship_form_path' => $path
'to_be_signed_internship_form_path' => $path,
'internship_start_date' => $request->internship_start_date,
'internship_end_date' => $request->internship_end_date,
'internship_total_days' => $days,
]);
return redirect()->back()->with('success', 'İmzalanacak staj formunuz başarıyla yüklendi.');
return redirect()->back()->with('success', 'İmzalanacak staj formunuz ve staj tarihleri başarıyla kaydedildi.');
}
return redirect()->back()->with('error', 'Dosya yüklenirken bir hata oluştu.');