public function preAttendaceStats() { $toReturn = array(); $classes = classes::where('classAcademicYear', $this->panelInit->selectAcYear)->get(); $toReturn['classes'] = array(); $subjList = array(); foreach ($classes as $class) { $class['classSubjects'] = json_decode($class['classSubjects'], true); if (is_array($class['classSubjects'])) { foreach ($class['classSubjects'] as $subject) { $subjList[] = $subject; } } $toReturn['classes'][$class->id] = $class->className; } $subjList = array_unique($subjList); if ($this->data['panelInit']->settingsArray['attendanceModel'] == "subject") { $toReturn['subjects'] = array(); if (count($subjList) > 0) { $subjects = subject::whereIN('id', $subjList)->get(); foreach ($subjects as $subject) { $toReturn['subjects'][$subject->id] = $subject->subjectTitle; } } } $toReturn['role'] = $this->data['users']->role; $toReturn['attendanceModel'] = $this->data['panelInit']->settingsArray['attendanceModel']; return $toReturn; }
public function getStats($date = "") { if ($date == "") { $date = date('m/Y'); } $date = explode("/", $date); $toReturn = array(); $classes = classes::where('classAcademicYear', $this->panelInit->selectAcYear)->get(); $toReturn['classes'] = array(); $subjList = array(); foreach ($classes as $class) { $class['classSubjects'] = json_decode($class['classSubjects'], true); if (is_array($class['classSubjects'])) { foreach ($class['classSubjects'] as $subject) { $subjList[] = $subject; } } $toReturn['classes'][$class->id] = $class->className; } $subjList = array_unique($subjList); if ($this->data['panelInit']->settingsArray['attendanceModel'] == "subject") { $toReturn['subjects'] = array(); if (count($subjList) > 0) { $subjects = subject::whereIN('id', $subjList)->get(); foreach ($subjects as $subject) { $toReturn['subjects'][$subject->id] = $subject->subjectTitle; } } } $toReturn['role'] = $this->data['users']->role; $toReturn['attendanceModel'] = $this->data['panelInit']->settingsArray['attendanceModel']; if ($this->data['users']->role == "admin" || $this->data['users']->role == "teacher") { $attendanceArray = attendance::where('date', 'like', $date[0] . "%")->where('date', 'like', "%" . $date[1])->orderBy('date')->get(); foreach ($attendanceArray as $value) { $dateHere = str_replace("/" . $date[1], "", $value->date); $dateHere = str_replace($date[0] . "/", "", $dateHere); $dateHere = preg_replace('/^0/', "", $dateHere); if (!isset($toReturn['attendance'][$dateHere][0])) { $toReturn['attendance'][$dateHere][0] = 0; $toReturn['attendance'][$dateHere][1] = 0; $toReturn['attendance'][$dateHere][2] = 0; $toReturn['attendance'][$dateHere][3] = 0; $toReturn['attendance'][$dateHere][4] = 0; } $toReturn['attendance'][$dateHere][$value->status]++; } $attendanceArrayToday = attendance::where('date', date('m/d/Y'))->get(); if ($this->data['panelInit']->settingsArray['attendanceModel'] == "subject") { foreach ($attendanceArrayToday as $value) { if (isset($toReturn['subjects'][$value->subjectId])) { if (!isset($toReturn['attendanceDay'][$toReturn['subjects'][$value->subjectId]])) { $toReturn['attendanceDay'][$toReturn['subjects'][$value->subjectId]] = 0; } $toReturn['attendanceDay'][$toReturn['subjects'][$value->subjectId]]++; } } } else { foreach ($attendanceArrayToday as $value) { if (isset($toReturn['classes'][$value->classId])) { if (!isset($toReturn['attendanceDay'][$toReturn['classes'][$value->classId]])) { $toReturn['attendanceDay'][$toReturn['classes'][$value->classId]] = 0; } $toReturn['attendanceDay'][$toReturn['classes'][$value->classId]]++; } } } } elseif ($this->data['users']->role == "student") { $attendanceArray = attendance::where('studentId', $this->data['users']->id)->where('date', 'like', $date[0] . "%")->where('date', 'like', "%" . $date[1])->get(); foreach ($attendanceArray as $value) { $toReturn['studentAttendance'][] = array("date" => $value->date, "status" => $value->status, "subject" => isset($toReturn['subjects'][$value->subjectId]) ? $toReturn['subjects'][$value->subjectId] : ""); } } elseif ($this->data['users']->role == "parent") { if ($this->data['users']->parentOf != "") { $parentOf = json_decode($this->data['users']->parentOf, true); $ids = array(); while (list(, $value) = each($parentOf)) { $ids[] = $value['id']; } $studentArray = User::where('role', 'student')->whereIn('id', $ids)->get(); foreach ($studentArray as $stOne) { $students[$stOne->id] = array('name' => $stOne->fullName, 'studentRollId' => $stOne->studentRollId); } if (count($ids) > 0) { $attendanceArray = attendance::whereIn('studentId', $ids)->where('date', 'like', $date[0] . "%")->where('date', 'like', "%" . $date[1])->get(); foreach ($attendanceArray as $value) { if (!isset($toReturn['studentAttendance'][$value->studentId])) { $toReturn['studentAttendance'][$value->studentId]['n'] = $students[$value->studentId]; $toReturn['studentAttendance'][$value->studentId]['d'] = array(); } $toReturn['studentAttendance'][$value->studentId]['d'][] = array("date" => $value->date, "status" => $value->status, "subject" => $value->subjectId); } } } } return $toReturn; }