Browse Source

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 tháng trước cách đây
mục cha
commit
3f29bba859
2 tập tin đã thay đổi với 26 bổ sung11 xóa
  1. 21 8
      app/Services/CustomScheduleService.php
  2. 5 3
      app/Services/DashboardService.php

+ 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')