예제 #1
0
 static function getStudentByBatchId($batchId, $selectedDate)
 {
     $selectedDate = date('Y-m-d', strtotime($selectedDate));
     $studentByBatchId = StudentClasses::with('Students')->where('batch_id', '=', $batchId)->whereDate('enrollment_start_date', '<', $selectedDate)->whereDate('enrollment_end_date', '>', $selectedDate)->get();
     //dd(DB::getQueryLog());
     return $studentByBatchId;
 }
예제 #2
0
 static function getAttendanceTable($batchId)
 {
     $studentsInBatch = StudentClasses::with('Students')->where('batch_id', '=', $batchId)->get(array('student_id', 'enrollment_start_date', 'enrollment_end_date'));
     $studentBatchDates = array();
     $i = 0;
     foreach ($studentsInBatch as $student) {
         $studentBatchDates[$i]['Student'] = $student;
         $studentBatchDates[$i]['Attendance'] = BatchSchedule::where("batch_id", '=', $batchId)->where('schedule_date', '>=', $student->enrollment_start_date)->where('schedule_date', '<=', $student->enrollment_end_date)->get();
         $batchdates = BatchSchedule::where("batch_id", '=', $batchId)->where('schedule_date', '>=', $student->enrollment_start_date)->where('schedule_date', '<=', $student->enrollment_end_date)->get();
         $attendanceIncrement = 0;
         $presentDays = 0;
         $eaDays = 0;
         $absentDays = 0;
         $totalSessions = 0;
         foreach ($batchdates as $date) {
             /* echo "<pre>";
             			print_r($student);
             			echo "</pre>"; */
             $attendance = Attendance::getDaysAttendanceForStudent($student->student_id, $batchId, $date->schedule_date);
             $studentBatchDates[$i]['Attendance'][$attendanceIncrement]['attendStat'] = $attendance;
             $studentBatchDates[$i]['Attendance'][$attendanceIncrement]['attenddate'] = $date->schedule_date;
             if ($attendance) {
                 if ($attendance->status == "P") {
                     $presentDays++;
                 }
                 if ($attendance->status == "EA") {
                     $eaDays++;
                 }
                 if ($attendance->status == "A") {
                     $absentDays++;
                 }
             }
             $attendanceIncrement++;
             $totalSessions++;
         }
         $studentBatchDates[$i]['statistics']['present'] = $presentDays;
         $studentBatchDates[$i]['statistics']['absent'] = $absentDays;
         $studentBatchDates[$i]['statistics']['ea'] = $eaDays;
         $studentBatchDates[$i]['statistics']['totalSessions'] = $totalSessions;
         /* echo "<pre>";
         			print_r(DB::getQueryLog());
         			print_r($studentBatchDates[$i]);
         			echo "</pre>";
         		 */
         $i++;
     }
     /* echo "<pre>";
     		print_r($studentBatchDates);
     		echo "</pre>";
     		exit(); */
     return $studentBatchDates;
 }
예제 #3
0
 public function attendance($id)
 {
     if (Auth::check()) {
         $currentPage = "BATCHES";
         $mainMenu = "COURSES_MAIN";
         $studentsInBatch = StudentClasses::with('Students')->where('batch_id', '=', $id)->count();
         $batch = Batches::where('id', '=', $id)->first();
         $attendanceArray = BatchSchedule::getAttendanceTable($id);
         $lead = Batches::with('LeadInstructors')->find($id);
         $alternate = Batches::with('AlternateInstructors')->find($id);
         if (isset($lead->LeadInstructors)) {
             $leadInstructor = $lead->LeadInstructors->first_name . ' ' . $lead->LeadInstructors->last_name;
         } else {
             $leadInstructor = "";
         }
         if (isset($alternate->AlternateInstructors)) {
             $alternateInstructor = $alternate->AlternateInstructors->first_name . ' ' . $alternate->AlternateInstructors->last_name;
         } else {
             $alternateInstructor = "";
         }
         $dataToView = array('currentPage', 'mainMenu', 'attendanceArray', 'batch', 'studentsInBatch', 'leadInstructor', 'alternateInstructor');
         return View::make('pages.batches.attendance', compact($dataToView));
     } else {
         return Redirect::to("/");
     }
 }