Fix semester context, attendance rosters, and billing workflows
- 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:
@@ -147,7 +147,6 @@ final class FinancialAidService
|
||||
$classSectionModel = $this->classSectionModel ?? new ClassSectionModel();
|
||||
$eventChargesModel = $this->eventChargesModel ?? new EventChargesModel();
|
||||
$configurationModel = $this->configurationModel ?? new ConfigurationModel();
|
||||
$userModel = $this->userModel ?? new UserModel();
|
||||
$invoiceIssuanceService = $this->invoiceIssuanceService ?? new InvoiceIssuanceService(
|
||||
$this->requestModel->db,
|
||||
$this->invoiceModel,
|
||||
@@ -155,7 +154,7 @@ final class FinancialAidService
|
||||
$this->invoiceLedgerService
|
||||
);
|
||||
|
||||
$semester = (string) ($configurationModel->getConfig('semester') ?: '');
|
||||
$semester = (string) (getSemester() ?: '');
|
||||
$enrollments = $enrollmentModel
|
||||
->where('parent_id', $parentId)
|
||||
->where('school_year', $schoolYear)
|
||||
@@ -199,16 +198,12 @@ final class FinancialAidService
|
||||
throw new RuntimeException('Invoice could not be created because this parent has no billable tuition or event charges.');
|
||||
}
|
||||
|
||||
$schoolId = $userModel->getSchoolIdByUserId($parentId);
|
||||
$invoiceNumber = !empty($schoolId)
|
||||
? 'INV-' . $schoolId . '-' . uniqid()
|
||||
: uniqid('INV-');
|
||||
$issueUtc = (new DateTime('now', new DateTimeZone('UTC')))->format('Y-m-d H:i:s');
|
||||
$dueUtc = $this->invoiceDueUtc($configurationModel);
|
||||
|
||||
$result = $invoiceIssuanceService->issueInvoice(new IssueInvoiceCommand([
|
||||
'parent_id' => $parentId,
|
||||
'invoice_number' => $invoiceNumber,
|
||||
'invoice_number' => $invoiceIssuanceService->generateInvoiceNumber($schoolYear, $parentId),
|
||||
'total_amount' => $totalAmount,
|
||||
'paid_amount' => 0,
|
||||
'balance' => $totalAmount,
|
||||
|
||||
Reference in New Issue
Block a user