Пример #1
0
 public function getDiagStats($year, $month)
 {
     $schedules = schedule::diagDateInRange($year, $month)->join('scheduleLog', 'schedule.scheduleLogId', '=', 'scheduleLog.scheduleLogId')->join('doctor', 'scheduleLog.doctorId', '=', 'doctor.userId')->where('doctor.userId', '=', $this->userId)->where('schedule.diagDate', '<', Carbon::now())->orderBy('diagDate')->get();
     $i = -1;
     $lastDate = '';
     $results = array();
     foreach ($schedules as $s) {
         $schedule = schedule::where('scheduleId', $s['scheduleId'])->first();
         if ($s->diagDate != $lastDate) {
             $i++;
             $results[$i]['morning'] = '-';
             $results[$i]['afternoon'] = '-';
             $results[$i]['sum'] = 0;
             $results[$i]['date'] = $schedule['diagDate'];
             $lastDate = $s->diagDate;
         }
         $patientNo = $schedule->patientsAmount();
         $results[$i][$s->getOriginal('diagTime')] = $patientNo;
         $results[$i]['sum'] += $patientNo;
     }
     $results['sum']['date'] = 'รวม';
     $results['sum']['morning'] = 0;
     $results['sum']['afternoon'] = 0;
     foreach ($results as $date) {
         if ($date['morning'] != '-') {
             $results['sum']['morning'] += $date['morning'];
         }
         if ($date['afternoon'] != '-') {
             $results['sum']['afternoon'] += $date['afternoon'];
         }
     }
     $results['sum']['sum'] = $results['sum']['morning'] + $results['sum']['afternoon'];
     return $results;
 }