fix enrollment, invoice, payment and financila aid
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user