示例#1
0
 public function executeDelete()
 {
     $formula = FormulaPeer::retrieveByPk($this->getRequestParameter('id'));
     $this->forward404Unless($formula);
     $ref_error = 0;
     foreach ($formula->getRefCountMethods() as $ref) {
         $method = "count" . $ref['affix'];
         $count = $formula->{$method}();
         if ($count > 0) {
             ++$ref_error;
             $this->getRequest()->setError('formula/delete/' . sfInflector::camelize($ref['table']), $count);
         }
     }
     if ($ref_error > 0) {
         $this->getRequest()->setError('formula/delete', '_ERR_DELETE_ (' . $formula->toString() . ' - id:' . $formula->getId() . ')');
     } else {
         $formula->delete();
     }
     return $this->forward('formula', 'list');
 }
示例#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(FormulaPeer::ID, $pks, Criteria::IN);
         $objs = FormulaPeer::doSelect($criteria, $con);
     }
     return $objs;
 }
 public static function doSelectJoinAllExceptSubjectCurr(Criteria $c, $con = null)
 {
     $c = clone $c;
     if ($c->getDbName() == Propel::getDefaultDB()) {
         $c->setDbName(self::DATABASE_NAME);
     }
     CourseRegulationPeer::addSelectColumns($c);
     $startcol2 = CourseRegulationPeer::NUM_COLUMNS - CourseRegulationPeer::NUM_LAZY_LOAD_COLUMNS + 1;
     ClassGroupPeer::addSelectColumns($c);
     $startcol3 = $startcol2 + ClassGroupPeer::NUM_COLUMNS;
     AcademicCalendarPeer::addSelectColumns($c);
     $startcol4 = $startcol3 + AcademicCalendarPeer::NUM_COLUMNS;
     SubjectGradingPeer::addSelectColumns($c);
     $startcol5 = $startcol4 + SubjectGradingPeer::NUM_COLUMNS;
     FormulaPeer::addSelectColumns($c);
     $startcol6 = $startcol5 + FormulaPeer::NUM_COLUMNS;
     $c->addJoin(CourseRegulationPeer::CLASS_GROUP_ID, ClassGroupPeer::ID);
     $c->addJoin(CourseRegulationPeer::ACADEMIC_CALENDAR_ID, AcademicCalendarPeer::ID);
     $c->addJoin(CourseRegulationPeer::SUBJECT_GRADING_ID, SubjectGradingPeer::ID);
     $c->addJoin(CourseRegulationPeer::FORMULA_ID, FormulaPeer::ID);
     $rs = BasePeer::doSelect($c, $con);
     $results = array();
     while ($rs->next()) {
         $omClass = CourseRegulationPeer::getOMClass();
         $cls = Propel::import($omClass);
         $obj1 = new $cls();
         $obj1->hydrate($rs);
         $omClass = ClassGroupPeer::getOMClass();
         $cls = Propel::import($omClass);
         $obj2 = new $cls();
         $obj2->hydrate($rs, $startcol2);
         $newObject = true;
         for ($j = 0, $resCount = count($results); $j < $resCount; $j++) {
             $temp_obj1 = $results[$j];
             $temp_obj2 = $temp_obj1->getClassGroup();
             if ($temp_obj2->getPrimaryKey() === $obj2->getPrimaryKey()) {
                 $newObject = false;
                 $temp_obj2->addCourseRegulation($obj1);
                 break;
             }
         }
         if ($newObject) {
             $obj2->initCourseRegulations();
             $obj2->addCourseRegulation($obj1);
         }
         $omClass = AcademicCalendarPeer::getOMClass();
         $cls = Propel::import($omClass);
         $obj3 = new $cls();
         $obj3->hydrate($rs, $startcol3);
         $newObject = true;
         for ($j = 0, $resCount = count($results); $j < $resCount; $j++) {
             $temp_obj1 = $results[$j];
             $temp_obj3 = $temp_obj1->getAcademicCalendar();
             if ($temp_obj3->getPrimaryKey() === $obj3->getPrimaryKey()) {
                 $newObject = false;
                 $temp_obj3->addCourseRegulation($obj1);
                 break;
             }
         }
         if ($newObject) {
             $obj3->initCourseRegulations();
             $obj3->addCourseRegulation($obj1);
         }
         $omClass = SubjectGradingPeer::getOMClass();
         $cls = Propel::import($omClass);
         $obj4 = new $cls();
         $obj4->hydrate($rs, $startcol4);
         $newObject = true;
         for ($j = 0, $resCount = count($results); $j < $resCount; $j++) {
             $temp_obj1 = $results[$j];
             $temp_obj4 = $temp_obj1->getSubjectGrading();
             if ($temp_obj4->getPrimaryKey() === $obj4->getPrimaryKey()) {
                 $newObject = false;
                 $temp_obj4->addCourseRegulation($obj1);
                 break;
             }
         }
         if ($newObject) {
             $obj4->initCourseRegulations();
             $obj4->addCourseRegulation($obj1);
         }
         $omClass = FormulaPeer::getOMClass();
         $cls = Propel::import($omClass);
         $obj5 = new $cls();
         $obj5->hydrate($rs, $startcol5);
         $newObject = true;
         for ($j = 0, $resCount = count($results); $j < $resCount; $j++) {
             $temp_obj1 = $results[$j];
             $temp_obj5 = $temp_obj1->getFormula();
             if ($temp_obj5->getPrimaryKey() === $obj5->getPrimaryKey()) {
                 $newObject = false;
                 $temp_obj5->addCourseRegulation($obj1);
                 break;
             }
         }
         if ($newObject) {
             $obj5->initCourseRegulations();
             $obj5->addCourseRegulation($obj1);
         }
         $results[] = $obj1;
     }
     return $results;
 }
示例#4
0
 public function fromArray($arr, $keyType = BasePeer::TYPE_PHPNAME)
 {
     $keys = FormulaPeer::getFieldNames($keyType);
     if (array_key_exists($keys[0], $arr)) {
         $this->setId($arr[$keys[0]]);
     }
     if (array_key_exists($keys[1], $arr)) {
         $this->setCode($arr[$keys[1]]);
     }
     if (array_key_exists($keys[2], $arr)) {
         $this->setDetail($arr[$keys[2]]);
     }
     if (array_key_exists($keys[3], $arr)) {
         $this->setFormulaType($arr[$keys[3]]);
     }
     if (array_key_exists($keys[4], $arr)) {
         $this->setNumb1($arr[$keys[4]]);
     }
     if (array_key_exists($keys[5], $arr)) {
         $this->setNumb2($arr[$keys[5]]);
     }
     if (array_key_exists($keys[6], $arr)) {
         $this->setNumb3($arr[$keys[6]]);
     }
     if (array_key_exists($keys[7], $arr)) {
         $this->setNumb4($arr[$keys[7]]);
     }
 }
示例#5
0
 public function executeListRecaptAfective()
 {
     $employee_id = sfContext::getInstance()->getUser()->getAttribute('user_id', null, 'bo');
     $employee = EmployeePeer::retrieveByPK($employee_id);
     $this->forward404Unless($employee);
     $this->employee_id = $employee_id;
     $course_schedule = CourseSchedulePeer::retrieveByPk($this->getRequestParameter('course_id'));
     $this->forward404Unless($course_schedule);
     $course_schedule_id = $course_schedule->getId();
     $c = new Criteria();
     $c->addJoin(VStudentAccalPeer::STUDENT_ID, VStudentActivePeer::ID);
     $c->add(VStudentAccalPeer::ACADEMIC_CALENDAR_ID, $course_schedule->getAcademicCalendarId());
     $c->add(VStudentAccalPeer::CLASS_GROUP_ID, $course_schedule->getClassGroupId());
     $c->addAscendingOrderByColumn(VStudentAccalPeer::CLASS_NAME);
     $rpp = $this->getRequestParameter('max_per_page', $this->getUser()->getAttribute('max_per_page', ParamsPeer::retrieveByCode('row_per_page')->getValue(), 'student'));
     $this->getUser()->setAttribute('max_per_page', $rpp, 'student');
     $pager = new sfPropelPager('VStudentAccal', $rpp);
     $pager->setCriteria($c);
     $page = $this->getRequestParameter('page', $this->getUser()->getAttribute('page', 1, 'student'));
     $this->getUser()->setAttribute('page', $page, 'student');
     $pager->setPage($page);
     $pager->init();
     $this->pager = $pager;
     $this->student_count = VStudentAccalPeer::doCount($c);
     $actions = array(array('name' => 'save', 'type' => 'submit', 'options' => array('class' => 'save_button', 'onclick' => "action_type.value=this.value")));
     $this->actions = $actions;
     $this->subtitle = $course_schedule->getSubjectCurr()->getSubject()->getName() . ' - (' . $course_schedule->getClassGroup()->toString() . ' # ' . $course_schedule->getAcademicCalendar()->getName() . ')';
     $this->type = 'edit';
     $this->course_schedule = $course_schedule;
     ##Nilai Observasi
     $cr = new Criteria();
     $cr->add(GradeSpecPeer::CODE, 'Obs', Criteria::IN);
     $cr->addAscendingOrderByColumn(GradeSpecPeer::ID);
     $prakteks = GradeSpecPeer::doSelect($cr);
     $prakteks_ids = array();
     foreach ($prakteks as $praktek) {
         $prakteks_ids[] = $praktek->getId();
     }
     $this->prakteks = $prakteks;
     $this->prakteks_ids = $prakteks_ids;
     ## Mengelompokkan Penilaian Anak berdasarkan Tahun Ajaran dan Kelas
     $cr = new Criteria();
     $cr->add(StudentGradeRaportPeer::COURSE_SCHEDULE_ID, $course_schedule->getId(), Criteria::IN);
     $cr->add(StudentGradeRaportPeer::GRADE_SPEC_ID, $prakteks_ids, Criteria::IN);
     $stugrades = StudentGradeRaportPeer::doSelect($cr);
     $this->stugrades = $stugrades;
     $student_avg = array();
     $student_total = array();
     foreach ($stugrades as $stugrade) {
         $student_avg[$stugrade->getStudentAccalId()] = (array_key_exists($stugrade->getStudentAccalId(), $student_avg) ? $student_avg[$stugrade->getStudentAccalId()] : 0) + $stugrade->getGrade();
         $student_total[$stugrade->getStudentAccalId()] = (array_key_exists($stugrade->getStudentAccalId(), $student_total) ? $student_total[$stugrade->getStudentAccalId()] : 0) + 1;
     }
     $this->student_avg = $student_avg;
     $this->student_total = $student_total;
     #End Nilai Observasi
     ##Nilai Diri Sendiri
     $cri = new Criteria();
     $cri->add(GradeSpecPeer::CODE, 'Diri', Criteria::IN);
     $cri->addAscendingOrderByColumn(GradeSpecPeer::ID);
     $projects = GradeSpecPeer::doSelect($cri);
     $projects_ids = array();
     foreach ($projects as $project) {
         $projects_ids[] = $project->getId();
     }
     $this->projects = $projects;
     $this->projects_ids = $projects_ids;
     ## Mengelompokkan Penilaian Anak berdasarkan Tahun Ajaran dan Kelas
     $crm = new Criteria();
     $crm->add(StudentGradeRaportPeer::COURSE_SCHEDULE_ID, $course_schedule->getId(), Criteria::IN);
     $crm->add(StudentGradeRaportPeer::GRADE_SPEC_ID, $projects_ids, Criteria::IN);
     $stuprojects = StudentGradeRaportPeer::doSelect($crm);
     $this->stugrades = $stuprojects;
     $project_avg = array();
     $project_total = array();
     foreach ($stuprojects as $stuproject) {
         $project_avg[$stuproject->getStudentAccalId()] = (array_key_exists($stuproject->getStudentAccalId(), $project_avg) ? $project_avg[$stuproject->getStudentAccalId()] : 0) + $stuproject->getGrade();
         $project_total[$stuproject->getStudentAccalId()] = (array_key_exists($stuproject->getStudentAccalId(), $project_total) ? $project_total[$stuproject->getStudentAccalId()] : 0) + 1;
     }
     $this->project_avg = $project_avg;
     $this->project_total = $project_total;
     #End Nilai Diri
     ##Nilai Antar Teman
     $crt = new Criteria();
     $crt->add(GradeSpecPeer::CODE, 'Antar', Criteria::IN);
     $crt->addAscendingOrderByColumn(GradeSpecPeer::ID);
     $portfolios = GradeSpecPeer::doSelect($crt);
     $portfolio_ids = array();
     foreach ($portfolios as $portfolio) {
         $portfolio_ids[] = $portfolio->getId();
     }
     $this->portfolios = $portfolios;
     $this->portfolio_ids = $portfolio_ids;
     ## Mengelompokkan Penilaian Anak berdasarkan Tahun Ajaran dan Kelas
     $crn = new Criteria();
     $crn->add(StudentGradeRaportPeer::COURSE_SCHEDULE_ID, $course_schedule->getId(), Criteria::IN);
     $crn->add(StudentGradeRaportPeer::GRADE_SPEC_ID, $portfolio_ids, Criteria::IN);
     $stuportfolios = StudentGradeRaportPeer::doSelect($crn);
     $this->stuportfolios = $stuportfolios;
     $portfolio_avg = array();
     $portfolio_total = array();
     foreach ($stuportfolios as $stuportfolio) {
         $portfolio_avg[$stuportfolio->getStudentAccalId()] = (array_key_exists($stuportfolio->getStudentAccalId(), $portfolio_avg) ? $portfolio_avg[$stuportfolio->getStudentAccalId()] : 0) + $stuportfolio->getGrade();
         $portfolio_total[$stuportfolio->getStudentAccalId()] = (array_key_exists($stuportfolio->getStudentAccalId(), $portfolio_total) ? $portfolio_total[$stuportfolio->getStudentAccalId()] : 0) + 1;
     }
     $this->portfolio_avg = $portfolio_avg;
     $this->portfolio_total = $portfolio_total;
     #End Nilai Antar teman
     ##Nilai Jurnal Guru
     $crw = new Criteria();
     $crw->add(GradeSpecPeer::CODE, 'JG', Criteria::IN);
     $crw->addAscendingOrderByColumn(GradeSpecPeer::ID);
     $jurnals = GradeSpecPeer::doSelect($crw);
     $jurnal_ids = array();
     foreach ($jurnals as $jurnal) {
         $jurnal_ids[] = $jurnal->getId();
     }
     $this->jurnals = $jurnals;
     $this->jurnal_ids = $jurnal_ids;
     ## Mengelompokkan Penilaian Anak berdasarkan Tahun Ajaran dan Kelas
     $cro = new Criteria();
     $cro->add(StudentGradeRaportPeer::COURSE_SCHEDULE_ID, $course_schedule->getId(), Criteria::IN);
     $cro->add(StudentGradeRaportPeer::GRADE_SPEC_ID, $jurnal_ids, Criteria::IN);
     $stujurnals = StudentGradeRaportPeer::doSelect($cro);
     $this->stujurnals = $stujurnals;
     $jurnal_avg = array();
     $jurnal_total = array();
     foreach ($stujurnals as $stujurnal) {
         $jurnal_avg[$stujurnal->getStudentAccalId()] = (array_key_exists($stujurnal->getStudentAccalId(), $jurnal_avg) ? $jurnal_avg[$stujurnal->getStudentAccalId()] : 0) + $stujurnal->getGrade();
         $jurnal_total[$stujurnal->getStudentAccalId()] = (array_key_exists($stujurnal->getStudentAccalId(), $jurnal_total) ? $jurnal_total[$stujurnal->getStudentAccalId()] : 0) + 1;
     }
     $this->jurnal_avg = $jurnal_avg;
     $this->jurnal_total = $jurnal_total;
     #End Nilai Jurnal Guru
     $cem = new Criteria();
     $cem->add(CourseRegulationPeer::ACADEMIC_CALENDAR_ID, $course_schedule->getAcademicCalendarId());
     $cem->add(CourseRegulationPeer::CLASS_GROUP_ID, $course_schedule->getClassGroupId());
     $cem->add(CourseRegulationPeer::SUBJECT_CURR_ID, $course_schedule->getSubjectCurrId());
     $course_reg = CourseRegulationPeer::doSelectOne($cem);
     $this->course_reg = $course_reg;
     $cti = new Criteria();
     $cti->add(FormulaPeer::FORMULA_TYPE, Formula::TYPE_AFEKTIF);
     $formula = FormulaPeer::doSelectOne($cti);
     $this->formula = $formula;
     $actions2 = array(array('name' => '<span>Nilai Sikap Per Kategori</span>', 'url' => 'course_afective/listAfective?course_id=' . $course_schedule->getId(), 'color' => 'sky'));
     array_unshift($actions2, array('name' => '<span>' . $course_schedule->getAcademicCalendar()->getName() . '</span>', 'url' => 'course_score_new/list', 'color' => 'sky'));
     array_push($actions2, array('name' => '<span>Nilai Sikap Keseluruhan</span>', 'url' => 'course_afective/listAllAfective?course_id=' . $course_schedule->getId(), 'color' => 'sky'));
     array_push($actions2, array('name' => '<span>Rekap Nilai Sikap</span>', 'url' => 'course_afective/listRecaptAfective?course_id=' . $course_schedule->getId(), 'color' => 'sun', 'type' => 'direct'));
     $this->actions2 = $actions2;
     $cb = new Criteria();
     $cb->add(GradeConversionPeer::DEPARTMENT_ID, $course_schedule->getAcademicCalendar()->getDepartmentId());
     $cb->add(GradeConversionPeer::TYPE_CONVERSION, GradeConversion::TYPE_AFEKTIF);
     $grade_convs = GradeConversionPeer::doSelect($cb);
     $grade_select = array();
     foreach ($grade_convs as $grade_conv) {
         $grade_select[$grade_conv->getGrade()] = $grade_conv->getName();
     }
     $this->grade_select = $grade_select;
     $this->grade_convs = $grade_convs;
     $this->title = 'Rekap Nilai Sikap';
     $this->tipe = 'afective';
     $this->setTemplate('listRecapt');
 }
示例#6
0
 public function filterFormula($c, $filters)
 {
     $filters_key = array_keys($filters);
     foreach ($filters_key as $key) {
         $value = $filters[$key];
         if ($value == '' || $value == null) {
             continue;
         }
         $column = FormulaPeer::getTableMap()->getColumn($key);
         $name = $column->getFullyQualifiedName();
         $creoleType = $column->getCreoleType();
         if ($creoleType == CreoleTypes::TIMESTAMP) {
             $from = $value['from'];
             $to = $value['to'];
             if ($from != '' && $from != null) {
                 $c->add($name, $from, Criteria::GREATER_EQUAL);
             }
             if ($to != '' && $to != null) {
                 $c->add($name, $to, Criteria::LESS_EQUAL);
             }
         } else {
             if ($creoleType == CreoleTypes::INTEGER) {
                 $c->add($name, $value, Criteria::EQUAL);
             } else {
                 if ($creoleType == CreoleTypes::VARCHAR || $creoleType == CreoleTypes::CHAR) {
                     $c->add($name, "%{$value}%", Criteria::LIKE);
                 }
             }
         }
     }
 }
示例#7
0
 public function getFormula($con = null)
 {
     include_once 'lib/model/om/BaseFormulaPeer.php';
     if ($this->aFormula === null && $this->formula_id !== null) {
         $this->aFormula = FormulaPeer::retrieveByPK($this->formula_id, $con);
     }
     return $this->aFormula;
 }