Эх сурвалжийг харах

feat: ✨ feat(redirecionamento-dashboard) Foi ajustado o backend para lista na dashbord apenas datas do dia ou datas futuras

Realizado ajuste nas listagens para exibir apenas agendamentos com datas do dia atual ou datas futuras, removendo registros antigos das dashboards e oportunidades.Foi realizado uma implementação de validação separada dos fluxos da dashboard e do sobmedida, corrigindo conflito das rotas e tratamento dos ids. O ajuste ajuda a identificar corretamente de onde o prestador esta selecionando a oportunidade
fase:dev | origin:escopo
kayo henrique 1 сар өмнө
parent
commit
3f29bba859

+ 21 - 8
app/Services/CustomScheduleService.php

@@ -32,14 +32,27 @@ class CustomScheduleService
   }
 
   public function getById($id)
-  {
-    return CustomSchedule::with([
-      'schedule.client.user',
-      'schedule.address',
-      'serviceType',
-      'specialities.speciality'
-    ])->findOrFail($id);
-  }
+{
+    $customSchedule = CustomSchedule::with([
+        'schedule.client.user',
+        'schedule.address',
+        'serviceType',
+        'specialities.speciality'
+    ])->find($id);
+
+    if (!$customSchedule) {
+        $customSchedule = CustomSchedule::with([
+            'schedule.client.user',
+            'schedule.address',
+            'serviceType',
+            'specialities.speciality'
+        ])
+        ->where('schedule_id', $id)
+        ->firstOrFail();
+    }
+
+    return $customSchedule;
+}
 
   public function create(array $data)
   {

+ 5 - 3
app/Services/DashboardService.php

@@ -49,7 +49,7 @@ class DashboardService
     $nextSchedules = Schedule::with('address:district,address,complement,number,source_id,source,id,address_type')
       ->where('schedules.client_id', $cliente->id)
       ->whereIn('schedules.status', ['accepted', 'paid'])
-      ->leftJoin('providers', 'providers.id', '=', 'schedules.provider_id')
+       ->whereDate('schedules.date', '>=', now()->toDateString())
       ->leftJoin('users as provider_user', 'provider_user.id', '=', 'providers.user_id')
       ->leftJoin('custom_schedules', 'custom_schedules.schedule_id', '=', 'schedules.id')
       ->where('schedules.date', '>=', now()->toDateString())
@@ -213,8 +213,8 @@ class DashboardService
         'providers.daily_price_8h',
         'providers.average_rating',
         'providers.total_services',
-        
-        
+
+
         'users.name as provider_name'
       ])
 
@@ -404,6 +404,7 @@ class DashboardService
     $nextSchedules = Schedule::with('address:district,address,number,source_id,source,id')
       ->where('schedules.provider_id', $provider->id)
       ->whereIn('schedules.status', ['accepted', 'paid'])
+      ->whereDate('schedules.date', '>=', now()->toDateString())
       ->leftJoin('clients', 'clients.id', '=', 'schedules.client_id')
       ->leftJoin('users as client_user', 'client_user.id', '=', 'clients.user_id')
       ->leftJoin('custom_schedules', 'custom_schedules.schedule_id', '=', 'schedules.id')
@@ -426,6 +427,7 @@ class DashboardService
     $opportunities = Schedule::with('address:district,source_id,source,id')
       ->where('schedules.schedule_type', 'custom')
       ->where('schedules.status', 'pending')
+      ->whereDate('schedules.date', '>=', now()->toDateString())
       ->leftJoin('clients', 'clients.id', '=', 'schedules.client_id')
       ->leftJoin('users as client_user', 'client_user.id', '=', 'clients.user_id')
       ->leftJoin('custom_schedules', 'custom_schedules.schedule_id', '=', 'schedules.id')