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
@@ -247,7 +247,7 @@ class ParentAttendanceReportController extends BaseController
// Upper bound already enforced by $validDates building
$semester = (string) $this->configModel->getConfig('semester');
$semester = (string) getSemester();
$semesterResolver = new SemesterRangeService($this->configModel);
$inserted = 0;
@@ -996,7 +996,7 @@ class ParentAttendanceReportController extends BaseController
: (string)$this->configModel->getConfig('school_year');
$semester = (is_string($semesterParam) && $semesterParam !== '')
? (string)$semesterParam
: (string)$this->configModel->getConfig('semester');
: (string) getSemester();
$rows = $this->reportModel->listForDateRange($start, $end ?: null, $schoolYear, $semester);
@@ -1306,7 +1306,7 @@ class ParentAttendanceReportController extends BaseController
}
$schoolYear = (string)$this->configModel->getConfig('school_year');
$semester = (string)$this->configModel->getConfig('semester');
$semester = (string) getSemester();
// Fetch students with their current-year class section (if any)
try {
@@ -1362,7 +1362,7 @@ class ParentAttendanceReportController extends BaseController
}
$schoolYear = (string)$this->configModel->getConfig('school_year');
$semester = (string)$this->configModel->getConfig('semester');
$semester = (string) getSemester();
// Resolve parent_id of the student
$stu = $this->studentModel->select('id, parent_id, firstname, lastname')->find($studentId);