first
This commit is contained in:
@@ -70,13 +70,24 @@ class ProgramController extends Controller
|
||||
'questionnaire.questionnaireSet.questions',
|
||||
]);
|
||||
|
||||
// Consolidate into 2 queries instead of 6 separate COUNTs
|
||||
$ppStats = \DB::table('program_participants')
|
||||
->where('program_id', $program->id)
|
||||
->selectRaw("COUNT(*) as total, SUM(is_pre_registered) as pre_registered, SUM(registration_source = 'walk_in') as walk_in")
|
||||
->first();
|
||||
|
||||
$certStats = \DB::table('certificates')
|
||||
->where('program_id', $program->id)
|
||||
->selectRaw("COUNT(*) as total, SUM(status IN ('generated','emailed','downloaded')) as cert_generated")
|
||||
->first();
|
||||
|
||||
$stats = [
|
||||
'total_participants' => $program->programParticipants()->count(),
|
||||
'pre_registered' => $program->programParticipants()->where('is_pre_registered', true)->count(),
|
||||
'walk_in' => $program->programParticipants()->where('registration_source', 'walk_in')->count(),
|
||||
'total_attendances' => $program->attendances()->count(),
|
||||
'total_certificates' => $program->certificates()->count(),
|
||||
'generated_certificates'=> $program->certificates()->whereIn('status', ['generated', 'emailed', 'downloaded'])->count(),
|
||||
'total_participants' => (int) ($ppStats->total ?? 0),
|
||||
'pre_registered' => (int) ($ppStats->pre_registered ?? 0),
|
||||
'walk_in' => (int) ($ppStats->walk_in ?? 0),
|
||||
'total_attendances' => $program->attendances()->count(),
|
||||
'total_certificates' => (int) ($certStats->total ?? 0),
|
||||
'generated_certificates' => (int) ($certStats->cert_generated ?? 0),
|
||||
];
|
||||
|
||||
return view('admin.programs.show', compact('program', 'stats'));
|
||||
|
||||
Reference in New Issue
Block a user