|
|
@@ -9,18 +9,22 @@
|
|
|
|
|
|
class StudentContractService
|
|
|
{
|
|
|
- public function getFranchisorSummary(): array
|
|
|
+ public function getFranchisorSummary(array $unitIds = []): array
|
|
|
{
|
|
|
+ $base = StudentContract::query()
|
|
|
+ ->when(!empty($unitIds), fn ($q) => $q->whereIn('unit_id', $unitIds));
|
|
|
+
|
|
|
return [
|
|
|
- 'frozen' => StudentContract::where('status', 'frozen')->count(),
|
|
|
- 'cancelled' => StudentContract::where('status', 'cancelled')->count(),
|
|
|
+ 'frozen' => (clone $base)->where('status', 'frozen')->count(),
|
|
|
+ 'cancelled' => (clone $base)->where('status', 'cancelled')->count(),
|
|
|
];
|
|
|
}
|
|
|
|
|
|
- public function getFranchisorByStatus(string $status): Collection
|
|
|
+ public function getFranchisorByStatus(string $status, array $unitIds = []): Collection
|
|
|
{
|
|
|
return StudentContract::with(['student', 'unit'])
|
|
|
->where('status', $status)
|
|
|
+ ->when(!empty($unitIds), fn ($q) => $q->whereIn('unit_id', $unitIds))
|
|
|
->orderBy('created_at', 'desc')
|
|
|
->get();
|
|
|
}
|