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
+2 -2
View File
@@ -7,7 +7,7 @@
// - Reset link uses '?' to clear query string reliably.
// Ensure helper functions are available
if (function_exists('helper')) { @helper('GlobalConfigHelper'); }
if (function_exists('helper')) { @helper('global_config'); }
// Resolve defaults
$currentYear = function_exists('getSchoolYear') ? (string) (getSchoolYear() ?? '') : '';
@@ -16,7 +16,7 @@ if ($currentYear === '' || $currentSem === '') {
try {
$cfg = new \App\Models\ConfigurationModel();
if ($currentYear === '') $currentYear = (string) ($cfg->getConfig('school_year') ?? '');
if ($currentSem === '') $currentSem = (string) ($cfg->getConfig('semester') ?? '');
if ($currentSem === '') $currentSem = (string) (getSemester() ?? '');
} catch (\Throwable $e) { /* ignore */ }
}
+1 -1
View File
@@ -277,7 +277,7 @@ switch ($role) {
} catch (\Throwable $e) {
$year = $sess->get('school_year') ?? $configModel->getConfig('school_year');
}
$semester = $sess->get('semester') ?? $configModel->getConfig('semester');
$semester = $sess->get('semester') ?? getSemester();
$activeEventCount = count($eventModel->getActiveEvents($year, $semester) ?? []);
}
?>