fix enrollment, invoice, payment and financila aid
Deploy to Shared Hosting / Shared hosting deploy (push) Failing after 47s
Tests / PHPUnit (push) Failing after 1m19s

This commit is contained in:
root
2026-08-24 21:20:58 -04:00
parent 576da3bd78
commit 608aca79b8
30 changed files with 3327 additions and 774 deletions
@@ -214,6 +214,8 @@ public function updateStatuses(?array $enrollmentStatuses, string $schoolYear, s
$refundAmountByParent = []; // parent_id => preview amount for notification context
$validStatuses = EnrollmentStatusService::VALID_STATUSES;
$transitionService = service('enrollmentTransition');
$advanceStatuses = $transitionService->statusesRequiringEnrollmentEligibility();
foreach ($enrollmentStatuses as $studentId => $newEnrollmentStatus) {
if (!in_array($newEnrollmentStatus, $validStatuses, true)) {
@@ -246,6 +248,16 @@ public function updateStatuses(?array $enrollmentStatuses, string $schoolYear, s
continue;
}
if (in_array($newEnrollmentStatus, $advanceStatuses, true)) {
$advance = $transitionService->evaluateEnrollmentAdvance($parentId, (int) $studentId, $this->schoolYear, 'admin');
if (! $transitionService->adminMayAdvanceEnrollment($advance)) {
$transitionService->logEnrollmentBlock($advance, 'admin_updateStatuses_create', $parentId, $performedBy);
$errors[] = "Student ID $studentId cannot be advanced to '$newEnrollmentStatus': "
. (string) ($advance['primary_parent_message'] ?? 'Enrollment eligibility check failed.');
continue;
}
}
$isWithdrawn = in_array($newEnrollmentStatus, ['withdrawn', 'refund pending', 'withdraw under review'], true) ? 1 : 0;
$result = $enrollmentStatusService->upsertStatus([
@@ -323,6 +335,16 @@ public function updateStatuses(?array $enrollmentStatuses, string $schoolYear, s
continue;
}
if ($oldStatus !== $newEnrollmentStatus && in_array($newEnrollmentStatus, $advanceStatuses, true)) {
$advance = $transitionService->evaluateEnrollmentAdvance((int) $parentId, (int) $studentId, $this->schoolYear, 'admin');
if (! $transitionService->adminMayAdvanceEnrollment($advance)) {
$transitionService->logEnrollmentBlock($advance, 'admin_updateStatuses', (int) $parentId, $performedBy);
$errors[] = "Student ID $studentId cannot be advanced to '$newEnrollmentStatus': "
. (string) ($advance['primary_parent_message'] ?? 'Enrollment eligibility check failed.');
continue;
}
}
$result = $enrollmentStatusService->upsertStatus([
'id' => (int) $enrollmentRow['id'],
'student_id' => (int) $studentId,