|
@@ -6,9 +6,11 @@ use App\Models\Address;
|
|
|
use App\Models\Client;
|
|
use App\Models\Client;
|
|
|
use App\Models\ClientFavoriteProvider;
|
|
use App\Models\ClientFavoriteProvider;
|
|
|
use App\Models\Provider;
|
|
use App\Models\Provider;
|
|
|
|
|
+use App\Models\ProviderSpeciality;
|
|
|
use App\Models\Review;
|
|
use App\Models\Review;
|
|
|
use App\Models\Schedule;
|
|
use App\Models\Schedule;
|
|
|
use App\Models\ScheduleProposal;
|
|
use App\Models\ScheduleProposal;
|
|
|
|
|
+use App\Models\Speciality;
|
|
|
use App\Rules\ScheduleBusinessRules;
|
|
use App\Rules\ScheduleBusinessRules;
|
|
|
use Illuminate\Support\Facades\Auth;
|
|
use Illuminate\Support\Facades\Auth;
|
|
|
use Illuminate\Support\Facades\DB;
|
|
use Illuminate\Support\Facades\DB;
|
|
@@ -44,7 +46,7 @@ class DashboardService
|
|
|
->count(),
|
|
->count(),
|
|
|
];
|
|
];
|
|
|
|
|
|
|
|
- $nextSchedules = Schedule::with('address:district,address,number,source_id,source,id,address_type')
|
|
|
|
|
|
|
+ $nextSchedules = Schedule::with('address:district,address,complement,number,source_id,source,id,address_type')
|
|
|
->where('schedules.client_id', $cliente->id)
|
|
->where('schedules.client_id', $cliente->id)
|
|
|
->whereIn('schedules.status', ['accepted', 'paid'])
|
|
->whereIn('schedules.status', ['accepted', 'paid'])
|
|
|
->leftJoin('providers', 'providers.id', '=', 'schedules.provider_id')
|
|
->leftJoin('providers', 'providers.id', '=', 'schedules.provider_id')
|
|
@@ -213,6 +215,71 @@ class DashboardService
|
|
|
|
|
|
|
|
->get();
|
|
->get();
|
|
|
|
|
|
|
|
|
|
+ // $schedulesProposals = ScheduleProposal::query()
|
|
|
|
|
+ // ->leftJoin('schedules', 'schedule_proposals.schedule_id', '=', 'schedules.id')
|
|
|
|
|
+ // ->leftJoin('providers', 'schedule_proposals.provider_id', '=', 'providers.id')
|
|
|
|
|
+ // ->leftJoin('users', 'providers.user_id', '=', 'users.id')
|
|
|
|
|
+
|
|
|
|
|
+ // ->where('schedules.client_id', $cliente->id)
|
|
|
|
|
+ // ->where('schedules.schedule_type', 'custom')
|
|
|
|
|
+ // ->where('schedules.status', 'pending')
|
|
|
|
|
+
|
|
|
|
|
+ // ->orderBy('schedule_proposals.created_at', 'desc')
|
|
|
|
|
+
|
|
|
|
|
+ // ->select([
|
|
|
|
|
+ // 'schedule_proposals.id',
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ // DB::raw("DATE_PART('year', AGE(providers.birth_date)) as idade"),
|
|
|
|
|
+ // 'providers.id as provider_id',
|
|
|
|
|
+ // 'schedules.id as schedule_id',
|
|
|
|
|
+ // 'schedules.date',
|
|
|
|
|
+ // 'schedules.start_time',
|
|
|
|
|
+ // 'schedules.end_time',
|
|
|
|
|
+ // 'schedules.period_type',
|
|
|
|
|
+ // 'schedules.total_amount',
|
|
|
|
|
+ // 'providers.daily_price_8h',
|
|
|
|
|
+ // 'providers.average_rating',
|
|
|
|
|
+ // 'providers.total_services',
|
|
|
|
|
+
|
|
|
|
|
+ // 'users.name as provider_name'
|
|
|
|
|
+ // ])
|
|
|
|
|
+
|
|
|
|
|
+ // ->get();
|
|
|
|
|
+
|
|
|
|
|
+ $todaySchedules = Schedule::with('address:district,address,number,source_id,source,id,address_type')
|
|
|
|
|
+ ->where('schedules.client_id', $cliente->id)
|
|
|
|
|
+ ->whereIn('schedules.status', ['accepted', 'paid', 'started', 'finished'])
|
|
|
|
|
+ ->whereDate('schedules.date', now()->toDateString())
|
|
|
|
|
+ ->leftJoin('providers', 'providers.id', '=', 'schedules.provider_id')
|
|
|
|
|
+ ->leftJoin('users as provider_user', 'provider_user.id', '=', 'providers.user_id')
|
|
|
|
|
+ ->leftJoin('media', 'media.id', '=', 'providers.profile_media_id')
|
|
|
|
|
+ ->select(
|
|
|
|
|
+ 'schedules.id',
|
|
|
|
|
+ 'schedules.provider_id',
|
|
|
|
|
+ 'provider_user.name as provider_name',
|
|
|
|
|
+ 'schedules.date',
|
|
|
|
|
+ 'schedules.start_time',
|
|
|
|
|
+ 'schedules.end_time',
|
|
|
|
|
+ 'schedules.total_amount',
|
|
|
|
|
+ 'schedules.period_type',
|
|
|
|
|
+ 'schedules.schedule_type',
|
|
|
|
|
+ 'schedules.address_id',
|
|
|
|
|
+ 'schedules.status',
|
|
|
|
|
+ 'schedules.code_verified',
|
|
|
|
|
+ 'schedules.code',
|
|
|
|
|
+ 'media.url as provider_photo',
|
|
|
|
|
+ DB::raw("EXISTS(
|
|
|
|
|
+ SELECT 1 FROM reviews
|
|
|
|
|
+ WHERE reviews.schedule_id = schedules.id
|
|
|
|
|
+ AND reviews.origin = 'client'
|
|
|
|
|
+ AND reviews.origin_id = {$cliente->id}
|
|
|
|
|
+ AND reviews.deleted_at IS NULL
|
|
|
|
|
+ ) as client_reviewed"),
|
|
|
|
|
+ )
|
|
|
|
|
+ ->orderBy('schedules.start_time', 'asc')
|
|
|
|
|
+ ->get();
|
|
|
|
|
+
|
|
|
return [
|
|
return [
|
|
|
'headerBar' => $headerBar,
|
|
'headerBar' => $headerBar,
|
|
|
'summaryInfos' => $summaryInfos,
|
|
'summaryInfos' => $summaryInfos,
|
|
@@ -222,6 +289,7 @@ class DashboardService
|
|
|
'favoriteProviders' => $favoriteProviders,
|
|
'favoriteProviders' => $favoriteProviders,
|
|
|
'providersClose' => $providersClose,
|
|
'providersClose' => $providersClose,
|
|
|
'schedulesProposals' => $schedulesProposals,
|
|
'schedulesProposals' => $schedulesProposals,
|
|
|
|
|
+ 'todaySchedules' => $todaySchedules,
|
|
|
];
|
|
];
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -285,13 +353,14 @@ class DashboardService
|
|
|
|
|
|
|
|
$todayServices = Schedule::with('address:district,address,number,source_id,source,id')
|
|
$todayServices = Schedule::with('address:district,address,number,source_id,source,id')
|
|
|
->where('schedules.provider_id', $provider->id)
|
|
->where('schedules.provider_id', $provider->id)
|
|
|
- ->whereIn('schedules.status', ['accepted', 'paid', 'started'])
|
|
|
|
|
|
|
+ ->whereIn('schedules.status', ['accepted', 'paid', 'started', 'finished'])
|
|
|
->whereDate('schedules.date', now()->toDateString())
|
|
->whereDate('schedules.date', now()->toDateString())
|
|
|
->leftJoin('clients', 'clients.id', '=', 'schedules.client_id')
|
|
->leftJoin('clients', 'clients.id', '=', 'schedules.client_id')
|
|
|
->leftJoin('users as client_user', 'client_user.id', '=', 'clients.user_id')
|
|
->leftJoin('users as client_user', 'client_user.id', '=', 'clients.user_id')
|
|
|
->leftJoin('custom_schedules', 'custom_schedules.schedule_id', '=', 'schedules.id')
|
|
->leftJoin('custom_schedules', 'custom_schedules.schedule_id', '=', 'schedules.id')
|
|
|
->select(
|
|
->select(
|
|
|
'schedules.id',
|
|
'schedules.id',
|
|
|
|
|
+ 'schedules.client_id',
|
|
|
'client_user.name as client_name',
|
|
'client_user.name as client_name',
|
|
|
'schedules.date',
|
|
'schedules.date',
|
|
|
'schedules.start_time',
|
|
'schedules.start_time',
|
|
@@ -302,8 +371,15 @@ class DashboardService
|
|
|
'schedules.schedule_type',
|
|
'schedules.schedule_type',
|
|
|
'schedules.status',
|
|
'schedules.status',
|
|
|
'schedules.code_verified',
|
|
'schedules.code_verified',
|
|
|
- 'schedules.status',
|
|
|
|
|
|
|
+ 'schedules.code',
|
|
|
'custom_schedules.offers_meal',
|
|
'custom_schedules.offers_meal',
|
|
|
|
|
+ DB::raw("EXISTS(
|
|
|
|
|
+ SELECT 1 FROM reviews
|
|
|
|
|
+ WHERE reviews.schedule_id = schedules.id
|
|
|
|
|
+ AND reviews.origin = 'provider'
|
|
|
|
|
+ AND reviews.origin_id = {$provider->id}
|
|
|
|
|
+ AND reviews.deleted_at IS NULL
|
|
|
|
|
+ ) as provider_reviewed"),
|
|
|
)
|
|
)
|
|
|
->orderBy('schedules.start_time', 'asc')
|
|
->orderBy('schedules.start_time', 'asc')
|
|
|
->get();
|
|
->get();
|