コード例 #1
0
ファイル: actions.class.php プロジェクト: taryono/school
 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;
 }
コード例 #2
0
 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;
 }
コード例 #3
0
ファイル: actions.class_.php プロジェクト: taryono/school
 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;
 }
コード例 #4
0
ファイル: actions.class.php プロジェクト: taryono/school
 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;
 }
コード例 #5
0
ファイル: listSuccess.php プロジェクト: taryono/school
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();
    }
}
?>