Bladeren bron

Show training and patient appts. in patient single > calendar

Vijayakrishnan 4 jaren geleden
bovenliggende
commit
252c08b81e

+ 4 - 3
app/Http/Controllers/AppointmentController.php

@@ -44,7 +44,8 @@ class AppointmentController extends Controller
                 ->where(function ($query) use ($proIds, $clientId) {
                     $query
                         ->whereIn('pro_id', $proIds)
-                        ->orWhere('client_id', '=', $clientId);
+                        ->orWhere('client_id', '=', $clientId)
+                        ->orWhereRaw('client_id IN (SELECT shadow_client_id FROM pro WHERE id IN (?))', [implode(',', $proIds)]);
                 });
         }
 
@@ -245,8 +246,8 @@ class AppointmentController extends Controller
                 }
 
                 // make already booked slots unavailable
-                $proAppointments = $appointments->filter(function ($record) use ($proId) {
-                    return $record->pro_id == $proId && !in_array($record->status, ['CANCELLED', 'COMPLETED', 'ABANDONED']);
+                $proAppointments = $appointments->filter(function ($record) use ($proId, $pro) {
+                    return ($record->pro_id == $proId || $record->client_id == $pro->shadow_client_id) && !in_array($record->status, ['CANCELLED', 'COMPLETED', 'ABANDONED']);
                 });
                 foreach ($proAppointments as $appointment) {
                     if ($appointment->start_time && $appointment->end_time) {

+ 4 - 0
app/Models/Client.php

@@ -504,4 +504,8 @@ class Client extends Model
             ->orderBy('created_at', 'asc');
     }
 
+    public function shadowOfPro() {
+        return $this->hasOne(Pro::class, 'id', 'shadow_pro_id');
+    }
+
 }

+ 7 - 0
resources/views/app/patient/appointment-calendar.blade.php

@@ -543,6 +543,13 @@
                                         if(_data && Array.isArray(_data)) {
                                             let events = _data, displayEvents = [];
                                             for(let e in events) {
+                                                if(!self.proMeta[events[e].proUid]) {
+                                                    self.proMeta[events[e].proUid] = {
+                                                        ac: '#000',
+                                                        bc: '#c1f966',
+                                                        fc: '#222'
+                                                    };
+                                                }
                                                 if(events.hasOwnProperty(e) && self.proMeta[events[e].proUid]) {
                                                     let ev = events[e], meta = self.proMeta[ev.proUid];
                                                     if(ev.type === 'appointment') {