Просмотр исходного кода

feat: :sparkles: feat(agendamento-sob-medida) foi realizado o ajuste para garantir o carregamento correto das propostas dos clientes

foi ajustado o dashboardService para que garantir o carregamento correto das proposta vinculadas aos agendamentos dos clientes,

fase:dev | origin:escopo
kayo henrique 4 дней назад
Родитель
Сommit
db3cc52a55

+ 3 - 0
app/Http/Controllers/CustomScheduleController.php

@@ -8,7 +8,9 @@ use App\Http\Requests\CustomScheduleProposeRequest;
 use App\Http\Requests\CustomScheduleRefuseOpportunityRequest;
 use App\Http\Requests\CustomScheduleVerifyCodeRequest;
 use App\Http\Resources\CustomScheduleResource;
+use App\Models\Client;
 use App\Services\CustomScheduleService;
+use Auth;
 use Illuminate\Http\JsonResponse;
 use Illuminate\Support\Facades\Log;
 
@@ -213,4 +215,5 @@ class CustomScheduleController extends Controller
       return $this->errorResponse($e->getMessage(), 400);
     }
   }
+
 }

+ 1 - 0
app/Http/Resources/DashboardClienteResource.php

@@ -22,6 +22,7 @@ class DashboardClienteResource extends JsonResource
       'lastDoneSchedules' => $this['lastDoneSchedules'],
       'favoriteProviders' => $this['favoriteProviders'],
       'providersClose' => $this['providersClose'],
+      'schedulesProposals' => $this['schedulesProposals'],
     ];
   }
 }

+ 9 - 8
app/Services/CustomScheduleService.php

@@ -214,18 +214,18 @@ class CustomScheduleService
       ->get();
 
     $grouped = $this->formatCustomSchedules($schedules);
-   
+
     return $grouped;
   }
 
   public function getAvailableOpportunities($providerId)
   {
     $opportunities = Schedule::with([
-        'client.user',
-        'address',
-        'customSchedule.serviceType',
-        'customSchedule.specialities'
-      ])
+      'client.user',
+      'address',
+      'customSchedule.serviceType',
+      'customSchedule.specialities'
+    ])
       ->leftJoin('schedule_refuses', function ($join) use ($providerId) {
         $join->on('schedules.id', '=', 'schedule_refuses.schedule_id')
           ->where('schedule_refuses.provider_id', $providerId);
@@ -368,12 +368,12 @@ class CustomScheduleService
     $provider_id = $providerId;
 
     $date = Carbon::parse($schedule->date);
-    $dayOfWeek = $date->dayOfWeek;//0-6
+    $dayOfWeek = $date->dayOfWeek; //0-6
     $startTime = $schedule->start_time;
     $endTime = $schedule->end_time;
     $date_ymd = $date->format('Y-m-d');
     $period = $startTime < '13:00:00' ? 'morning' : 'afternoon';
-    $period_type = $schedule->period_type;//2,4,6,8
+    $period_type = $schedule->period_type; //2,4,6,8
 
     // bloqueio 2 schedules por semana para o mesmo client e provider
     ScheduleBusinessRules::validateWeeklyScheduleLimit(
@@ -552,4 +552,5 @@ class CustomScheduleService
 
     return $schedule_refuse;
   }
+
 }

+ 10 - 0
app/Services/DashboardService.php

@@ -8,6 +8,7 @@ use App\Models\ClientFavoriteProvider;
 use App\Models\Provider;
 use App\Models\Review;
 use App\Models\Schedule;
+use App\Models\ScheduleProposal;
 use App\Rules\ScheduleBusinessRules;
 use Illuminate\Support\Facades\Auth;
 use Illuminate\Support\Facades\DB;
@@ -180,6 +181,14 @@ class DashboardService
       ->orderBy('schedules.date', 'asc')
       ->get();
 
+      $schedulesProposals = ScheduleProposal::leftJoin('schedules', 'schedule_proposals.schedule_id', '=', 'schedules.id')
+      ->where('schedules.client_id', $cliente->id)
+      ->where('schedules.schedule_type', 'custom')
+      ->where('schedules.status', 'pending')
+
+      ->orderBy('schedule_proposals.created_at', 'desc')
+      ->get();
+
     return [
       'headerBar'        => $headerBar,
       'summaryInfos'     => $summaryInfos,
@@ -188,6 +197,7 @@ class DashboardService
       'lastDoneSchedules' => $lastDoneSchedules,
       'favoriteProviders' => $favoriteProviders,
       'providersClose'   => $providersClose,
+      'schedulesProposals' => $schedulesProposals,
     ];
   }