98 lines
3.6 KiB
Plaintext
98 lines
3.6 KiB
Plaintext
}
|
|
|
|
return view('administrator/print_notification_admins', service('adminNotificationSettings')->printRecipientsPage());
|
|
}
|
|
|
|
public function savePrintNotificationRecipients()
|
|
{
|
|
if (!$this->canManageAdminNotifications()) {
|
|
return redirect()->to('/login');
|
|
}
|
|
|
|
$result = service('adminNotificationSettings')->savePrintRecipients((array) $this->request->getPost('notify'));
|
|
|
|
return redirect()->to('/administrator/print-notifications')
|
|
->with((string) ($result['type'] ?? 'info'), (string) ($result['message'] ?? ''));
|
|
}
|
|
|
|
public function studentProfiles()
|
|
{
|
|
$selectedYear = $this->currentSchoolYearName((string) ($this->schoolYear ?? ''));
|
|
|
|
return view(
|
|
'administrator/student_profiles',
|
|
service('administratorDirectory')->studentProfiles($selectedYear)
|
|
);
|
|
}
|
|
|
|
public function parentProfiles()
|
|
{
|
|
if ($redirect = $this->redirectWithoutLegacyTermFilters('administrator/parent_profiles')) {
|
|
return $redirect;
|
|
}
|
|
|
|
return view('administrator/parent_profile', service('administratorDirectory')->parentProfiles());
|
|
}
|
|
|
|
public function showEnrollmentWithdrawalPage()
|
|
{
|
|
try {
|
|
$schoolYearContext = $this->resolveSchoolYearContext();
|
|
$selectedYear = $schoolYearContext->yearName();
|
|
$payload = service('enrollmentWithdrawal')->buildRoster($selectedYear, (string) $this->semester);
|
|
|
|
return view('enroll_withdraw/enrollment_withdrawal', [
|
|
'students' => $payload['students'],
|
|
'classes' => $payload['classes'],
|
|
'selectedYear' => $selectedYear,
|
|
'currentYear' => $selectedYear,
|
|
'isCurrentYear' => ! $schoolYearContext->isReadonly(),
|
|
'missingYear' => $selectedYear === '',
|
|
]);
|
|
} catch (\Throwable $e) {
|
|
log_message('error', 'Enrollment/Withdrawal page error: {msg}', ['msg' => $e->getMessage()]);
|
|
return view('errors/html/error_500');
|
|
}
|
|
}
|
|
|
|
public function enrollmentWithdrawalData()
|
|
{
|
|
try {
|
|
$selectedYear = $this->currentSchoolYearName((string) ($this->schoolYear ?? ''));
|
|
$payload = service('enrollmentWithdrawal')->buildRoster($selectedYear, (string) $this->semester);
|
|
|
|
return $this->response->setJSON([
|
|
'students' => $payload['students'],
|
|
'classes' => $payload['classes'],
|
|
'csrfHash' => csrf_hash(),
|
|
'semester' => (string) $this->semester,
|
|
'school_year' => (string) $selectedYear,
|
|
]);
|
|
} catch (\Throwable $e) {
|
|
log_message('error', 'enrollmentWithdrawalData error: {msg}', ['msg' => $e->getMessage()]);
|
|
return $this->response->setStatusCode(500)->setJSON(['error' => 'Server error']);
|
|
}
|
|
}
|
|
|
|
public function showNewStudents()
|
|
{
|
|
return view(
|
|
'enroll_withdraw/new-students',
|
|
service('enrollmentWithdrawal')->newStudents((string) $this->schoolYear)
|
|
);
|
|
}
|
|
|
|
public function adminEnrollmentWithdrawalHandler()
|
|
{
|
|
$result = service('enrollmentWithdrawal')->updateStatuses(
|
|
$this->request->getPost('enrollment_status'),
|
|
(string) $this->schoolYear,
|
|
(string) $this->semester,
|
|
(int) (session()->get('user_id') ?? 0) ?: null
|
|
);
|
|
|
|
return redirect()->to(base_url('enroll_withdraw/enrollment_withdrawal'))
|
|
->with(!empty($result['ok']) ? 'success' : 'error', (string) ($result['message'] ?? ''));
|
|
}
|
|
}
|