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
+8 -2
View File
@@ -26,7 +26,7 @@ class ExpenseController extends BaseController
$this->financialAttachmentService = new FinancialAttachmentService();
$this->schoolYear = $this->configModel->getConfig('school_year');
$this->semester = $this->configModel->getConfig('semester');
$this->semester = getSemester();
// Default list of common retailors; adjust as needed
$this->retailors = [
@@ -96,6 +96,8 @@ class ExpenseController extends BaseController
public function index()
{
$schoolYear = (string) ($this->configModel->getConfig('school_year') ?? '');
$expenses = $this->expenseModel
->select("
expenses.*,
@@ -104,6 +106,7 @@ class ExpenseController extends BaseController
")
->join('users u', 'u.id = expenses.purchased_by', 'left')
->join('users approver', 'approver.id = expenses.approved_by', 'left')
->where('expenses.school_year', $schoolYear)
->orderBy('expenses.created_at', 'DESC')
->findAll();
@@ -115,7 +118,10 @@ class ExpenseController extends BaseController
return $row;
}, $expenses);
return view('expenses/index', ['expenses' => $expenses]);
return view('expenses/index', [
'expenses' => $expenses,
'schoolYear' => $schoolYear,
]);
}
public function create()