public function executeListByEmployee2() { $employee_id = sfContext::getInstance()->getUser()->getAttribute('user_id', null, 'bo'); $employee = EmployeePeer::retrieveByPK($employee_id); $this->forward404Unless($employee); $dept = $this->getContext()->getUser()->getAttribute('department_id', null, 'bo'); $cr = new Criteria(); $cr->add(AcademicCalendarPeer::DEPARTMENT_ID, $dept); $cr->add(AcademicCalendarPeer::COURSE_MODEL, 'C'); $cr->add(AcademicCalendarPeer::CURR_SYSTEM_ID, 1); $parent = AcademicCalendarPeer::doSelectOne($cr); $cw = new Criteria(); $cw->add(AcademicCalendarPeer::PARENT, $parent->getId()); $cw->add(AcademicCalendarPeer::COURSE_MODEL, 'B'); $cw->add(AcademicCalendarPeer::DEPARTMENT_ID, $dept); $child = AcademicCalendarPeer::doSelectOne($cw); if ($employee->getStaffTypeId() == 13 || $employee->getStaffTypeId() == 14) { $c = new Criteria(); $cton1 = $c->getNewCriterion(SchedulePeer::TYPE, Schedule::IS_EKSKUL, Criteria::IN); $cton2 = $c->getNewCriterion(SchedulePeer::ACADEMIC_CALENDAR_ID, $child->getId(), Criteria::IN); $cton1->addAnd($cton2); $c->add($cton1); } else { /** $c = new Criteria(); $cton1 = $c->getNewCriterion(SchedulePeer::EMPLOYEE_ID, $employee->getId(), Criteria::IN); $cton2 = $c->getNewCriterion(SchedulePeer::TYPE, Schedule::IS_EKSKUL, Criteria::IN); $cton3 = $c->getNewCriterion(SchedulePeer::ACADEMIC_CALENDAR_ID, $child->getId(), Criteria::IN); $cton2->addAnd($cton3); $cton1->addAnd($cton2); $c->add($cton1); **/ $cw = new Criteria(); $cw->add(ScheduleTutorPeer::EMPLOYEE_ID, $employee->getId()); $tutor = ScheduleTutorPeer::doSelectOne($cw); if ($tutor) { $c = new Criteria(); $c->add(ScheduleTutorPeer::EMPLOYEE_ID, $employee->getId(), Criteria::IN); $c->addJoin(SchedulePeer::ID, ScheduleTutorPeer::SCHEDULE_ID); $c->add(SchedulePeer::TYPE, Schedule::IS_EKSKUL, Criteria::IN); $c->add(SchedulePeer::ACADEMIC_CALENDAR_ID, $child->getId(), Criteria::IN); } else { $c = new Criteria(); $c->add(SchedulePeer::EMPLOYEE_ID, $employee->getId(), Criteria::IN); $c->add(SchedulePeer::TYPE, Schedule::IS_EKSKUL, Criteria::IN); $c->add(SchedulePeer::ACADEMIC_CALENDAR_ID, $child->getId(), Criteria::IN); } } $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(), 'schedule')); $this->getUser()->setAttribute('max_per_page', $rpp, 'schedule'); $pager = new sfPropelPager('Schedule', $rpp); $pager->setCriteria($c); $page = $this->getRequestParameter('page', $this->getUser()->getAttribute('page', 1, 'schedule')); $this->getUser()->setAttribute('page', $page, 'schedule'); $pager->setPage($page); $pager->init(); $this->pager = $pager; $actions = array(array('name' => 'filter', 'color' => 'white')); $filter_string = ""; if ($this->filters) { foreach ($this->filters as $key => $val) { $filter_string .= "&filters[{$key}]={$val}"; } $filter_string = preg_replace('/^&/', '', $filter_string); } array_unshift($actions, array('name' => '_AS_CSV_', 'url' => "extracurricular/listByEmployeeAsCSV2?{$filter_string}", 'color' => 'black', 'type' => 'direct')); array_unshift($actions, array('name' => '_AS_PDF_', 'url' => "extracurricular/listByEmployeeAsPDF2?{$filter_string}", 'color' => 'black', 'type' => 'direct')); $this->actions = $actions; $actions2 = array(array('name' => '<span>Semester 1, ' . $parent->getName() . '</span>', 'url' => 'extracurricular/listByEmployee', 'color' => 'sun')); array_push($actions2, array('name' => '<span>Semester 2, ' . $parent->getName() . '</span>', 'url' => 'extracurricular/listByEmployee2', 'color' => 'sky', 'type' => 'direct')); $this->actions2 = $actions2; $this->subtitle = $employee->toString(); $this->employee_id = $employee_id; }
public function executeListEkskul() { $user_tipe = $this->getContext()->getUser()->getAttribute('usertype', null, 'bo'); $accal_id = $this->getRequestParameter('academic_calendar_id'); $academic_calendar = AcademicCalendarPeer::retrieveByPK($accal_id); $this->forward404Unless($academic_calendar); $this->academic_calendar = $academic_calendar; if ($user_tipe == 'lector') { $this->byEmployee = true; $employee_id = sfContext::getInstance()->getUser()->getAttribute('user_id', null, 'bo'); $employee = EmployeePeer::retrieveByPK($employee_id); $this->forward404Unless($employee); ##Tampilan untuk Kepala Sekolah dan Coordinator if ($employee->getStaffTypeId() == 13 || $employee->getStaffTypeId() == 14 || $employee->getStaffTypeId() == 26) { $c = new Criteria(); $c->add(SchedulePeer::TYPE, Schedule::IS_EKSKUL); $c->add(SchedulePeer::ACADEMIC_CALENDAR_ID, $academic_calendar->getId()); } else { $cw = new Criteria(); $cw->add(ScheduleTutorPeer::EMPLOYEE_ID, $employee->getId()); $tutor = ScheduleTutorPeer::doSelectOne($cw); if ($tutor) { $c = new Criteria(); $c->add(ScheduleTutorPeer::EMPLOYEE_ID, $employee->getId(), Criteria::IN); $c->addJoin(SchedulePeer::ID, ScheduleTutorPeer::SCHEDULE_ID); $c->add(SchedulePeer::TYPE, Schedule::IS_EKSKUL, Criteria::IN); $c->add(SchedulePeer::ACADEMIC_CALENDAR_ID, $academic_calendar->getId(), Criteria::IN); } else { $c = new Criteria(); $c->add(SchedulePeer::EMPLOYEE_ID, $employee->getId(), Criteria::IN); $c->add(SchedulePeer::TYPE, Schedule::IS_EKSKUL, Criteria::IN); $c->add(SchedulePeer::ACADEMIC_CALENDAR_ID, $academic_calendar->getId(), Criteria::IN); } } } else { $this->byEmployee = false; $c = new Criteria(); $c->add(SchedulePeer::TYPE, Schedule::IS_EKSKUL); $c->add(SchedulePeer::ACADEMIC_CALENDAR_ID, $academic_calendar->getId()); } $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(), 'schedule')); $this->getUser()->setAttribute('max_per_page', $rpp, 'schedule'); $pager = new sfPropelPager('Schedule', $rpp); $pager->setCriteria($c); $page = $this->getRequestParameter('page', $this->getUser()->getAttribute('page', 1, 'schedule')); $this->getUser()->setAttribute('page', $page, 'schedule'); $pager->setPage($page); $pager->init(); $this->pager = $pager; $actions = array(); $this->actions = $actions; $this->type = 'list'; $this->subtitle = $academic_calendar->toString(); $this->academic_calendar = $academic_calendar; }