Fix semester context, attendance rosters, and billing workflows
Deploy to Shared Hosting / Shared hosting deploy (push) Failing after 31s
Tests / PHPUnit (push) Failing after 55s

- load global semester helpers consistently and use date-based semester defaults
- fix grading and daily attendance duplicate student/section rows
- keep attendance violations scoped to the current semester by default
- update invoice, refund, discount, payment, and financial aid flows
- add configuration cleanup migrations for duplicate calendar/semester keys
- refresh parent registration/report-card and print request handling
- update related models, services, views, cron notes, and test coverage
This commit is contained in:
root
2026-08-16 17:41:11 -04:00
parent 36c7e3fc6d
commit 0ac3a8375e
99 changed files with 1598 additions and 814 deletions
+1 -10
View File
@@ -379,27 +379,20 @@ final class SchoolYearManagementService
'school_year' => $name,
'date_age_reference' => $ageReferenceDate,
'refund_deadline' => $ageReferenceDate,
'year_start_date' => $yearStart,
'year_end_date' => $yearEnd,
'school_year_start_date' => $yearStart,
'school_year_end_date' => $yearEnd,
'registration_day' => $registrationDay,
'registration_starts_on' => $registrationDay,
'end_of_registration' => $enrollmentDeadline,
'enrollment_deadline' => $enrollmentDeadline,
'1st_day_of_school' => $firstDay,
'first_day_of_school' => $firstDay,
'Installment_date' => $installment,
'installment_date' => $installment,
'fall_semester_start' => $firstDay,
'fall_semester_start' => $yearStart,
'school_start_date' => $firstDay,
'Due_date' => $firstDay,
'due_date' => $firstDay,
'last_day_of_school' => $lastDay,
'last_school_day' => $lastDay,
'Final_Exam_day' => $finalExam,
'final_exam_day' => $finalExam,
'Make_up_exam' => $makeupExam,
'make_up_exam' => $makeupExam,
'makeup_exam_day' => $makeupExam,
'Orientation_day' => $orientation,
@@ -448,10 +441,8 @@ final class SchoolYearManagementService
'fall_makeup_exam_on' => $firstDay->modify('-1 week')->format('Y-m-d'),
'orientation_day' => $firstDay->modify('-2 weeks')->format('Y-m-d'),
'first_day_of_school' => $firstDay->format('Y-m-d'),
'1st_day_of_school' => $firstDay->format('Y-m-d'),
'installment_date' => sprintf('%04d-03-01', $endYear),
'last_day_of_school' => $finalExam->modify('+2 weeks')->format('Y-m-d'),
'last_school_day' => $finalExam->modify('+2 weeks')->format('Y-m-d'),
'final_exam_day' => $finalExam->format('Y-m-d'),
'midterm_exam_day' => $midterm->format('Y-m-d'),
'spring_semester_start' => $midterm->modify('+1 week')->format('Y-m-d'),