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
+11 -2
View File
@@ -37,6 +37,7 @@ class CertificateController extends BaseController
->join('classSection cs', 'cs.class_section_id = sc.class_section_id')
->where('s.is_active', 1)
->where('sc.school_year', $schoolYear)
->groupBy('s.id, s.firstname, s.lastname, sc.class_section_id, cs.class_section_name')
->orderBy('s.firstname', 'ASC')
->orderBy('s.lastname', 'ASC')
->get()
@@ -105,10 +106,18 @@ class CertificateController extends BaseController
// ── Build per-class buckets and stats ──────────────────────────────────
$studentsByClass = [];
$statsPerClass = [];
$seenEnrollments = [];
foreach ($allEnrolled as $row) {
$sid = (int)$row['student_id'];
$csid = (int)$row['class_section_id'];
$enrollmentKey = $csid . ':' . $sid;
if (isset($seenEnrollments[$enrollmentKey])) {
continue;
}
$seenEnrollments[$enrollmentKey] = true;
if (!isset($statsPerClass[$csid])) {
$statsPerClass[$csid] = [
@@ -293,7 +302,7 @@ class CertificateController extends BaseController
->with('error', 'Please select at least one student.');
}
$studentIds = array_filter(array_map('intval', $studentIds));
$studentIds = array_values(array_unique(array_filter(array_map('intval', $studentIds))));
$certDate = preg_replace('/[^0-9\/\-]/', '', $certDate);
if (empty($studentIds)) {
@@ -661,4 +670,4 @@ class CertificateController extends BaseController
$pdf->SetTextColor(0, 0, 0);
$pdf->Text($x, $y, $text);
}
}
}