feat: update student import and graduation workflows
This commit is contained in:
@@ -21,7 +21,7 @@ class StudentTransferController extends Controller
|
||||
$departmentId = $request->get('department_id');
|
||||
$classId = $request->get('class_id');
|
||||
|
||||
$studentTransfers = StudentTransfer::query()
|
||||
$studentTransfersQuery = StudentTransfer::query()
|
||||
->with(['academicYear', 'department', 'classRoom'])
|
||||
->when($search !== '', function ($query) use ($search) {
|
||||
$query->where(function ($subQuery) use ($search) {
|
||||
@@ -32,12 +32,25 @@ class StudentTransferController extends Controller
|
||||
})
|
||||
->when($academicYearId, fn ($query) => $query->where('academic_year_id', $academicYearId))
|
||||
->when($departmentId, fn ($query) => $query->where('department_id', $departmentId))
|
||||
->when($classId, fn ($query) => $query->where('class_id', $classId))
|
||||
->when($classId, fn ($query) => $query->where('class_id', $classId));
|
||||
|
||||
$studentTransfers = (clone $studentTransfersQuery)
|
||||
->latest('transfer_date')
|
||||
->latest('id')
|
||||
->paginate(10)
|
||||
->withQueryString();
|
||||
|
||||
$totalTransfers = StudentTransfer::count();
|
||||
$withLetterCount = StudentTransfer::query()->whereNotNull('transfer_letter_file_path')->count();
|
||||
$withoutLetterCount = max($totalTransfers - $withLetterCount, 0);
|
||||
$thisYearCount = StudentTransfer::query()->whereYear('transfer_date', now()->year)->count();
|
||||
$latestTransferDate = StudentTransfer::query()->max('transfer_date');
|
||||
$recentTransfers = StudentTransfer::query()
|
||||
->latest('transfer_date')
|
||||
->latest('id')
|
||||
->limit(3)
|
||||
->get(['id', 'full_name', 'transfer_date', 'department_id', 'class_id']);
|
||||
|
||||
return view('student-transfers.index', [
|
||||
'studentTransfers' => $studentTransfers,
|
||||
'search' => $search,
|
||||
@@ -49,6 +62,15 @@ class StudentTransferController extends Controller
|
||||
'academicYears' => AcademicYear::orderBy('name')->pluck('name', 'id'),
|
||||
'departments' => Department::orderBy('name')->pluck('name', 'id'),
|
||||
'classes' => SchoolClass::orderBy('name')->pluck('name', 'id'),
|
||||
'summary' => [
|
||||
'total' => $totalTransfers,
|
||||
'with_letter' => $withLetterCount,
|
||||
'without_letter' => $withoutLetterCount,
|
||||
'this_year' => $thisYearCount,
|
||||
'latest_transfer_date' => $latestTransferDate,
|
||||
'filtered' => $studentTransfers->total(),
|
||||
],
|
||||
'recentTransfers' => $recentTransfers,
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user