Bläddra i källkod

Merge branch 'feature/diariaapp-kay-agendamentos-sob-medida-apps' of gogs.softpar.inf.br:Softpar/sfp_api_laravel_diarista into feature/diariaapp-kay-agendamentos-sob-medida-apps

Gustavo Zanatta 1 dag sedan
förälder
incheckning
b479ee2e01

+ 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;
   }
+
 }

+ 34 - 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,38 @@ class DashboardService
       ->orderBy('schedules.date', 'asc')
       ->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();
+
     return [
       'headerBar'        => $headerBar,
       'summaryInfos'     => $summaryInfos,
@@ -188,6 +221,7 @@ class DashboardService
       'lastDoneSchedules' => $lastDoneSchedules,
       'favoriteProviders' => $favoriteProviders,
       'providersClose'   => $providersClose,
+      'schedulesProposals' => $schedulesProposals,
     ];
   }