public function executeListAbsence() { $course_schedule = CourseSchedulePeer::retrieveByPk($this->getRequestParameter('course_id')); $this->forward404Unless($course_schedule); $course_schedule_id = $course_schedule->getId(); $tgl = date('d'); $bln = date('m'); $thn = date('Y'); $tanggal = $thn . '-' . $bln . '-' . $tgl; $cd = new Criteria(); $cd->add(AttendanceClassPeer::CLASS_GROUP_ID, $course_schedule->getClassGroupId()); $cd->add(AttendanceClassPeer::ACADEMIC_CALENDAR_ID, $course_schedule->getAcademicCalendarId()); $cd->add(AttendanceClassPeer::DATETIME, $tanggal); $attend_today = AttendanceClassPeer::doSelect($cd); $cb = new Criteria(); $cb->add(StudentPeer::CLASS_GROUP_ID, $course_schedule->getClassGroupId()); $cb->add(StudentPeer::ACADEMIC_CALENDAR_ID, $course_schedule->getAcademicCalendar()->getParent()); $cb->add(StudentPeer::STATUS, 1); $student_count = StudentPeer::doCount($cb); $c = new Criteria(); $c->add(AttendanceClassPeer::ACADEMIC_CALENDAR_ID, $course_schedule->getAcademicCalendarId()); $c->add(AttendanceClassPeer::CLASS_GROUP_ID, $course_schedule->getClassGroupId()); $c->addDescendingOrderByColumn(AttendanceClassPeer::ID); $this->sortAbsence($c); if ($this->getRequest()->hasParameter('filters')) { $filters = $this->getRequestParameter('filters'); if ($filters == 'clear') { $this->filters = null; } else { $defined_filter = false; foreach ($filters as $f) { if (is_array($f)) { if (strlen($f['from']) > 0 || strlen($f['to']) > 0) { $defined_filter = true; break; } } else { if ($f != null && $f != '') { $defined_filter = true; break; } } } if ($defined_filter) { $this->filters = $filters; $this->filterAbsence($c, $this->getRequestParameter('filters')); } } } $rpp = $this->getRequestParameter('max_per_page', $this->getUser()->getAttribute('max_per_page', ParamsPeer::retrieveByCode('row_per_page')->getValue(), 'attend')); $this->getUser()->setAttribute('max_per_page', $rpp, 'attend'); $pager = new sfPropelPager('AttendanceClass', $rpp); $pager->setCriteria($c); $page = $this->getRequestParameter('page', $this->getUser()->getAttribute('page', 1, 'attend')); $this->getUser()->setAttribute('page', $page, 'attend'); $pager->setPage($page); $pager->init(); $this->pager = $pager; $class = $this->getRequestParameter('class'); $subject = $this->getRequestParameter('subject'); $actions = array(); array_unshift($actions, array('name' => 'Print Excel', 'url' => "rpt_course/listAbsenceAsCSV?course_id=" . $course_schedule->getId(), 'color' => 'black', 'type' => 'direct')); array_unshift($actions, array('name' => 'Print PDF', 'url' => "rpt_course/listAbsenceAsPDF?course_id=" . $course_schedule->getId(), 'color' => 'black', 'type' => 'direct')); $this->actions = $actions; $actions2 = array(array('name' => '<span>Riwayat Agenda Kelas</span>', 'url' => 'rpt_course/listAgenda?course_id=' . $course_schedule->getId(), 'color' => 'sun')); array_unshift($actions2, array('name' => '<span>Riwayat Akademik</span>', 'url' => 'rpt_course/list', 'color' => 'sun')); array_push($actions2, array('name' => '<span>Riwayat Absensi Kelas</span>', 'url' => 'rpt_course/listAbsence?course_id=' . $course_schedule->getId(), 'color' => 'sun', 'type' => 'direct')); array_push($actions2, array('name' => '<span>Riwayat Jadwal Tugas/Ulangan/PR</span>', 'url' => 'rpt_course/listSched?course_id=' . $course_schedule->getId(), 'color' => 'sun')); array_push($actions2, array('name' => '<span>Riwayat Bimbingan Konseling</span>', 'url' => 'rpt_course/listCounseling?course_id=' . $course_schedule->getId(), 'color' => 'sun')); array_push($actions2, array('name' => '<span>Riwayat Penilaian</span>', 'url' => 'rpt_course/listScore?course_id=' . $course_schedule->getId(), 'color' => 'sun')); $this->actions2 = $actions2; $this->subtitle = $course_schedule->getSubjectCurr()->getSubject()->getName() . ' - (' . $course_schedule->getClassGroup()->toString() . ' # ' . $course_schedule->getAcademicCalendar()->getName() . ')'; $this->course_schedule = $course_schedule; $this->course_schedule_id = $course_schedule_id; $this->attend_today = $attend_today; $this->student_count = $student_count; $this->tanggal = $tanggal; }
public static function retrieveByPKs($pks, $con = null) { if ($con === null) { $con = Propel::getConnection(self::DATABASE_NAME); } $objs = null; if (empty($pks)) { $objs = array(); } else { $criteria = new Criteria(); $criteria->add(AttendanceClassPeer::ID, $pks, Criteria::IN); $objs = AttendanceClassPeer::doSelect($criteria, $con); } return $objs; }
public function executeList() { $employee_id = sfContext::getInstance()->getUser()->getAttribute('user_id', null, 'bo'); $employee = EmployeePeer::retrieveByPK($employee_id); $this->forward404Unless($employee); $dept = $this->getContext()->getUser()->getAttribute('department', null, 'bo'); $course_schedule = CourseSchedulePeer::retrieveByPk($this->getRequestParameter('course_id')); $this->forward404Unless($course_schedule); $tgl = date('d'); $bln = date('m'); $thn = date('Y'); $tanggal = $thn . '-' . $bln . '-' . $tgl; $cd = new Criteria(); $cd->add(AttendanceClassPeer::ACADEMIC_CALENDAR_ID, $course_schedule->getAcademicCalendarId()); $cd->add(AttendanceClassPeer::CLASS_GROUP_ID, $course_schedule->getClassGroupId()); $cd->add(AttendanceClassPeer::DATETIME, $tanggal); $confirms = AttendanceClassPeer::doSelect($cd); if ($confirms != null) { $c = new Criteria(); $c->add(VStudentActivePeer::ACADEMIC_CALENDAR_ID, $course_schedule->getAcademicCalendar()->getParent()); $c->add(VStudentActivePeer::CLASS_GROUP_ID, $course_schedule->getClassGroupId()); $count = VStudentActivePeer::doCount($c); $cw = new Criteria(); $cw->add(StudentAbsencePeer::ACADEMIC_CALENDAR_ID, $course_schedule->getAcademicCalendarId()); $cw->add(StudentAbsencePeer::CLASS_GROUP_ID, $course_schedule->getClassGroupId()); $cw->add(StudentAbsencePeer::START, $tanggal); $cw->addJoin(StudentAbsencePeer::STUDENT_ID, VStudentActivePeer::ID); $cw->addAscendingOrderByColumn(VStudentActivePeer::CLASS_NAME); $students = VStudentActivePeer::doSelect($cw); } else { $c = new Criteria(); $c->add(AcademicCalendarPeer::DEPARTMENT_ID, $dept->getChildRecurs(), Criteria::IN); $c->addJoin(VAttendancePeer::ACADEMIC_CALENDAR_ID, AcademicCalendarPeer::ID); $c->add(VAttendancePeer::DATETIME, $tanggal); $count = VAttendancePeer::doCount($c); $cm = new Criteria(); $cm->add(VAttendancePeer::CLASS_GROUP_ID, $course_schedule->getClassGroupId()); $attends = VAttendancePeer::doSelect($cm); $student_ids = array(); foreach ($attends as $attend) { $student_ids[] = $attend->getStudentId(); } $cw = new Criteria(); $cw->add(VStudentActivePeer::ACADEMIC_CALENDAR_ID, $course_schedule->getAcademicCalendar()->getParent(), Criteria::IN); $cw->add(VStudentActivePeer::CLASS_GROUP_ID, $course_schedule->getClassGroupId(), Criteria::IN); $cw->add(VStudentActivePeer::ID, $student_ids, Criteria::NOT_IN); $cw->addAscendingOrderByColumn(VStudentActivePeer::CLASS_NAME); $students = VStudentActivePeer::doSelect($cw); } $rpp = $this->getRequestParameter('max_per_page', 999); $pager = new sfPropelPager('VStudentActive', $rpp); $pager->setCriteria($cw); $page = $this->getRequestParameter('page', $this->getUser()->getAttribute('page', 1, 'student_active')); $this->getUser()->setAttribute('page', $page, 'student_active'); $pager->setPage($page); $pager->init(); $this->pager = $pager; $class = $this->getRequestParameter('class'); $subject = $this->getRequestParameter('subject'); $this->filter_class = $class; $this->filter_subject = $subject; $actions = array(array('name' => 'save', 'type' => 'submit', 'options' => array('class' => 'save_button', 'onclick' => "action_type.value=this.value"))); if ($class) { array_unshift($actions, array('name' => 'batal', 'url' => 'course_absence/listShow?course_id=' . $course_schedule->getId() . '&class=' . $class, 'color' => 'black')); } elseif ($subject) { array_unshift($actions, array('name' => 'batal', 'url' => 'course_absence/listShow?course_id=' . $course_schedule->getId() . '&subject=' . $subject, 'color' => 'black')); } else { array_unshift($actions, array('name' => 'batal', 'url' => 'course_absence/listShow?course_id=' . $course_schedule->getId(), 'color' => 'black')); } $this->actions = $actions; $actions2 = array(array('name' => '<span>Agenda Kelas</span>', 'url' => 'course_agenda/list?course_id=' . $course_schedule->getId(), 'color' => 'sun')); if ($course_schedule->getAcademicCalendar()->getCourseModel() == 'A') { if ($class) { array_unshift($actions2, array('name' => '<span>' . $course_schedule->getAcademicCalendar()->getName() . '</span>', 'url' => 'course/listScore?filters[CODE_CLASS]=' . $class, 'color' => 'sun')); } elseif ($subject) { array_unshift($actions2, array('name' => '<span>' . $course_schedule->getAcademicCalendar()->getName() . '</span>', 'url' => 'course/listScore?filters[SUBJECT_NAME]=' . $subject, 'color' => 'sun')); } else { array_unshift($actions2, array('name' => '<span>' . $course_schedule->getAcademicCalendar()->getName() . '</span>', 'url' => 'course/listScore', 'color' => 'sun')); } } else { if ($class) { array_unshift($actions2, array('name' => '<span>' . $course_schedule->getAcademicCalendar()->getName() . '</span>', 'url' => 'course/listScore2?filters[CODE_CLASS]=' . $class, 'color' => 'sun')); } elseif ($subject) { array_unshift($actions2, array('name' => '<span>' . $course_schedule->getAcademicCalendar()->getName() . '</span>', 'url' => 'course/listScore2?filters[SUBJECT_NAME]=' . $subject, 'color' => 'sun')); } else { array_unshift($actions2, array('name' => '<span>' . $course_schedule->getAcademicCalendar()->getName() . '</span>', 'url' => 'course/listScore2', 'color' => 'sun')); } } array_push($actions2, array('name' => '<span>Absensi Kelas</span>', 'url' => 'course_absence/listShow?course_id=' . $course_schedule->getId(), 'color' => 'sun', 'type' => 'direct')); array_push($actions2, array('name' => '<span>Jadwal Tugas / Ulangan / PR</span>', 'url' => 'course_test/list?course_id=' . $course_schedule->getId(), 'color' => 'sun')); array_push($actions2, array('name' => '<span>Bimbingan Konseling</span>', 'url' => 'course_counseling/list?course_id=' . $course_schedule->getId(), 'color' => 'sun')); $this->actions2 = $actions2; $this->subtitle = $course_schedule->getSubjectCurr()->getSubject()->getName() . ' - ' . $course_schedule->getClassGroup()->toString(); $this->tanggal = $tanggal; $this->students = $students; $this->course_schedule = $course_schedule; $this->course_schedule_id = $course_schedule->getId(); $this->employee = $employee; $this->count = $count; }
public function executeListShow() { $employee_id = sfContext::getInstance()->getUser()->getAttribute('user_id', null, 'bo'); $employee = EmployeePeer::retrieveByPK($employee_id); $this->forward404Unless($employee); $course_schedule = CourseSchedulePeer::retrieveByPk($this->getRequestParameter('course_id')); $this->forward404Unless($course_schedule); $course_schedule_id = $course_schedule->getId(); $tgl = date('d'); $bln = date('m'); $thn = date('Y'); $tanggal = $thn . '-' . $bln . '-' . $tgl; $cd = new Criteria(); $cd->add(AttendanceClassPeer::CLASS_GROUP_ID, $course_schedule->getClassGroupId()); $cd->add(AttendanceClassPeer::ACADEMIC_CALENDAR_ID, $course_schedule->getAcademicCalendarId()); $cd->add(AttendanceClassPeer::DATETIME, $tanggal); $attend_today = AttendanceClassPeer::doSelect($cd); $cb = new Criteria(); $cb->add(StudentPeer::CLASS_GROUP_ID, $course_schedule->getClassGroupId()); $cb->add(StudentPeer::ACADEMIC_CALENDAR_ID, $course_schedule->getAcademicCalendar()->getParent()); $cb->add(StudentPeer::STATUS, 1); $student_count = StudentPeer::doCount($cb); $c = new Criteria(); $c->add(AttendanceClassPeer::ACADEMIC_CALENDAR_ID, $course_schedule->getAcademicCalendarId()); $c->add(AttendanceClassPeer::CLASS_GROUP_ID, $course_schedule->getClassGroupId()); $c->addDescendingOrderByColumn(AttendanceClassPeer::ID); $this->sort($c); if ($this->getRequest()->hasParameter('filters')) { $filters = $this->getRequestParameter('filters'); if ($filters == 'clear') { $this->filters = null; } else { $defined_filter = false; foreach ($filters as $f) { if (is_array($f)) { if (strlen($f['from']) > 0 || strlen($f['to']) > 0) { $defined_filter = true; break; } } else { if ($f != null && $f != '') { $defined_filter = true; break; } } } if ($defined_filter) { $this->filters = $filters; $this->filter($c, $this->getRequestParameter('filters')); } } } $rpp = $this->getRequestParameter('max_per_page', $this->getUser()->getAttribute('max_per_page', ParamsPeer::retrieveByCode('row_per_page')->getValue(), 'attend')); $this->getUser()->setAttribute('max_per_page', $rpp, 'attend'); $pager = new sfPropelPager('AttendanceClass', $rpp); $pager->setCriteria($c); $page = $this->getRequestParameter('page', $this->getUser()->getAttribute('page', 1, 'attend')); $this->getUser()->setAttribute('page', $page, 'attend'); $pager->setPage($page); $pager->init(); $this->pager = $pager; $class = $this->getRequestParameter('class'); $subject = $this->getRequestParameter('subject'); $actions = array(); if ($class) { array_unshift($actions, array('name' => 'Tambah', 'url' => 'course_absence/list?course_id=' . $course_schedule->getId() . '&class=' . $class, 'color' => 'black')); } elseif ($subject) { array_unshift($actions, array('name' => 'Tambah', 'url' => 'course_absence/list?course_id=' . $course_schedule->getId() . '&subject=' . $subject, 'color' => 'black')); } else { array_unshift($actions, array('name' => 'Tambah', 'url' => 'course_absence/list?course_id=' . $course_schedule->getId(), 'color' => 'black')); } array_unshift($actions, array('name' => 'Print PDF', 'url' => "course_absence/listShowAsPDF?course_id=" . $course_schedule->getId(), 'color' => 'black', 'type' => 'direct')); array_unshift($actions, array('name' => 'Print Excel', 'url' => "course_absence/listShowAsCSV?course_id=" . $course_schedule->getId(), 'color' => 'black', 'type' => 'direct')); $this->actions = $actions; $actions2 = array(array('name' => '<span>Agenda Kelas</span>', 'url' => 'course_agenda/list?course_id=' . $course_schedule->getId(), 'color' => 'sun')); if ($course_schedule->getAcademicCalendar()->getCourseModel() == 'A') { if ($class) { array_unshift($actions2, array('name' => '<span>' . $course_schedule->getAcademicCalendar()->getName() . '</span>', 'url' => 'course/listScore?filters[CODE_CLASS]=' . $class, 'color' => 'sun')); } elseif ($subject) { array_unshift($actions2, array('name' => '<span>' . $course_schedule->getAcademicCalendar()->getName() . '</span>', 'url' => 'course/listScore?filters[SUBJECT_NAME]=' . $subject, 'color' => 'sun')); } else { array_unshift($actions2, array('name' => '<span>' . $course_schedule->getAcademicCalendar()->getName() . '</span>', 'url' => 'course/listScore', 'color' => 'sun')); } } else { if ($class) { array_unshift($actions2, array('name' => '<span>' . $course_schedule->getAcademicCalendar()->getName() . '</span>', 'url' => 'course/listScore2?filters[CODE_CLASS]=' . $class, 'color' => 'sun')); } elseif ($subject) { array_unshift($actions2, array('name' => '<span>' . $course_schedule->getAcademicCalendar()->getName() . '</span>', 'url' => 'course/listScore2?filters[SUBJECT_NAME]=' . $subject, 'color' => 'sun')); } else { array_unshift($actions2, array('name' => '<span>' . $course_schedule->getAcademicCalendar()->getName() . '</span>', 'url' => 'course/listScore2', 'color' => 'sun')); } } array_push($actions2, array('name' => '<span>Absensi Kelas</span>', 'url' => 'course_absence/listShow?course_id=' . $course_schedule->getId(), 'color' => 'sun', 'type' => 'direct')); array_push($actions2, array('name' => '<span>Jadwal Tugas / Ulangan / PR</span>', 'url' => 'course_test/list?course_id=' . $course_schedule->getId(), 'color' => 'sun')); array_push($actions2, array('name' => '<span>Bimbingan Konseling</span>', 'url' => 'course_counseling/list?course_id=' . $course_schedule->getId(), 'color' => 'sun')); $this->actions2 = $actions2; $this->subtitle = $course_schedule->getSubjectCurr()->getSubject()->getName() . ' - ' . $course_schedule->getClassGroup()->toString(); $this->course_schedule = $course_schedule; $this->course_schedule_id = $course_schedule_id; $this->employee = $employee; $this->attend_today = $attend_today; $this->student_count = $student_count; $this->tanggal = $tanggal; }
echo input_hidden_tag('filter_subject', $filter_subject); $c = new Criteria(); $c->add(VAttendancePeer::CLASS_GROUP_ID, $course_schedule->getClassGroupId()); $c->add(VAttendancePeer::DATETIME, $tanggal); $sas = VAttendancePeer::doSelect($c); $stu_attendance = array(); if (count($sas)) { foreach ($sas as $sa) { $stu_attendance[$sa->getStudentId()] = (array_key_exists($sa->getStudentId(), $stu_attendance) ? $stu_attendance[$sa->getStudentId()] : 0) + 1; } } $cd = new Criteria(); $cd->add(AttendanceClassPeer::ACADEMIC_CALENDAR_ID, $course_schedule->getAcademicCalendarId()); $cd->add(AttendanceClassPeer::CLASS_GROUP_ID, $course_schedule->getClassGroupId()); $cd->add(AttendanceClassPeer::DATETIME, $tanggal); $confirms = AttendanceClassPeer::doSelect($cd); $cm = new Criteria(); $cm->add(StudentAbsencePeer::ACADEMIC_CALENDAR_ID, $course_schedule->getAcademicCalendarId()); $cm->add(StudentAbsencePeer::START, $tanggal); $cm->addGroupByColumn(StudentAbsencePeer::START); $cm->addGroupByColumn(StudentAbsencePeer::STUDENT_ID); $cm->addGroupByColumn(StudentAbsencePeer::ACADEMIC_CALENDAR_ID); $cm->addGroupByColumn(StudentAbsencePeer::CLASS_GROUP_ID); $stas = StudentabsencePeer::doSelect($cm); $absence = array(); if (count($stas)) { foreach ($stas as $sta) { $absence[$sta->getStudentId()] = $sta->getStatus(); } } ?>