|
@@ -872,13 +872,42 @@ class DashboardService
|
|
|
: 'schedule-'.$schedule->id)
|
|
: 'schedule-'.$schedule->id)
|
|
|
->values();
|
|
->values();
|
|
|
|
|
|
|
|
- $pendingSchedules->each(function ($schedule) {
|
|
|
|
|
|
|
+ $packageSchedules = collect();
|
|
|
|
|
+
|
|
|
|
|
+ $listedPackageIds = $pendingSchedules->pluck('service_package_id')->filter()->unique();
|
|
|
|
|
+
|
|
|
|
|
+ if ($listedPackageIds->isNotEmpty()) {
|
|
|
|
|
+ $packageSchedules = Schedule::query()
|
|
|
|
|
+ ->join('service_package_items as spi', 'spi.schedule_id', '=', 'schedules.id')
|
|
|
|
|
+ ->whereIn('spi.service_package_id', $listedPackageIds)
|
|
|
|
|
+ ->whereNotIn('schedules.status', ['cancelled', 'rejected'])
|
|
|
|
|
+ ->orderBy('schedules.date', 'asc')
|
|
|
|
|
+ ->orderBy('schedules.start_time', 'asc')
|
|
|
|
|
+ ->select([
|
|
|
|
|
+ 'schedules.id',
|
|
|
|
|
+ 'schedules.date',
|
|
|
|
|
+ 'schedules.start_time',
|
|
|
|
|
+ 'schedules.end_time',
|
|
|
|
|
+ 'schedules.total_amount',
|
|
|
|
|
+ 'schedules.offers_meal',
|
|
|
|
|
+ 'schedules.status',
|
|
|
|
|
+ 'spi.service_package_id',
|
|
|
|
|
+ ])
|
|
|
|
|
+ ->get()
|
|
|
|
|
+ ->groupBy('service_package_id');
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ $pendingSchedules->each(function ($schedule) use ($packageSchedules) {
|
|
|
$schedule->address = [
|
|
$schedule->address = [
|
|
|
'address' => $schedule->address_address,
|
|
'address' => $schedule->address_address,
|
|
|
'number' => $schedule->address_number,
|
|
'number' => $schedule->address_number,
|
|
|
'district' => $schedule->address_district,
|
|
'district' => $schedule->address_district,
|
|
|
];
|
|
];
|
|
|
|
|
|
|
|
|
|
+ $schedule->package_items = $schedule->service_package_id
|
|
|
|
|
+ ? $packageSchedules->get($schedule->service_package_id, collect())->values()
|
|
|
|
|
+ : collect();
|
|
|
|
|
+
|
|
|
unset(
|
|
unset(
|
|
|
$schedule->address_address,
|
|
$schedule->address_address,
|
|
|
$schedule->address_number,
|
|
$schedule->address_number,
|