protected function execute($arguments = array(), $options = array()) { // initialize the database connection $databaseManager = new sfDatabaseManager($this->configuration); $connection = $databaseManager->getDatabase($options['connection'] ? $options['connection'] : null)->getConnection(); $c = new Criteria(); foreach (StudentAttendancePeer::doSelect($c) as $student_attendance) { $c1 = new Criteria(); $c1->add(StudentAttendancePeer::ID, $student_attendance->getId(), Criteria::NOT_EQUAL); $c1->add(StudentAttendancePeer::STUDENT_ID, $student_attendance->getStudentId()); $c1->add(StudentAttendancePeer::DAY, $student_attendance->getDay(), Criteria::EQUAL); foreach (StudentAttendancePeer::doSelect($c1) as $delete) { $delete->delete(); } } // add your code here }
public function executeIndex(sfWebRequest $request) { if ($request->getParameter('ids')) { $this->forward('attendance_justification', 'justificate'); } $filter_class = SchoolBehaviourFactory::getInstance()->getFormFactory()->getAttendanceJustificationFormFilter(); $this->form = new $filter_class($this->getFilterCriteria()); $this->has_subject_attendance = SchoolBehaviourFactory::getInstance()->hasSubjectAttendance(); if ($request->isMethod('POST')) { $params = $request->getParameter('attendance_justification'); $this->form->bind($params); if ($this->form->isValid()) { $this->setFilterCriteria($this->form->getValues()); $criteria = $this->buildCriteria(); $this->student_attendances = StudentAttendancePeer::doSelect($criteria); } } else { $criteria = $this->buildCriteria(); $this->student_attendances = StudentAttendancePeer::doSelect($criteria); } }
/** * This method returns the absences depending of arguments: * * IF period_id is null, then returns all the absences. * IF course_subject_id is null then returns the absences per day. * IF include_justificated is null, then excludes the absences justificated. * * @param type $career_school_year_id * @param type $student_id * @param type $period_id * @param type $course_subject_id * @param type $include_justificated * * @return StudentAttendance array */ public function getAbsences($career_school_year_id, $student_id, $period = null, $course_subject_id = null, $exclude_justificated = true) { $c = new Criteria(); $c->add(StudentAttendancePeer::STUDENT_ID, $student_id); $c->add(StudentAttendancePeer::CAREER_SCHOOL_YEAR_ID, $career_school_year_id); if ($course_subject_id instanceof CourseSubject) { $c->add(StudentAttendancePeer::COURSE_SUBJECT_ID, $course_subject_id->getId()); } else { $c->add(StudentAttendancePeer::COURSE_SUBJECT_ID, $course_subject_id); } $c->add(StudentAttendancePeer::VALUE, 0, Criteria::NOT_EQUAL); if (!is_null($period)) { $criterion = $c->getNewCriterion(StudentAttendancePeer::DAY, $period->getStartAt(), Criteria::GREATER_EQUAL); $criterion->addAnd($c->getNewCriterion(StudentAttendancePeer::DAY, $period->getEndAt(), Criteria::LESS_EQUAL)); $c->add($criterion); } return $student_attendances = StudentAttendancePeer::doSelect($c); }
public function getAbsencesReport($career_school_year_id, $student_id) { $c = new Criteria(); $c->add(StudentAttendancePeer::STUDENT_ID, $student_id); $c->add(StudentAttendancePeer::CAREER_SCHOOL_YEAR_ID, $career_school_year_id); $c->add(StudentAttendancePeer::VALUE, 0, Criteria::NOT_EQUAL); $c->addAscendingOrderByColumn(StudentAttendancePeer::DAY); return $student_attendances = StudentAttendancePeer::doSelect($c); }
public function getTotalAbsences() { $c = new Criteria(); $c->add(StudentAttendancePeer::STUDENT_ID, $this->getStudentId()); $c->add(StudentAttendancePeer::COURSE_SUBJECT_ID, $this->getCourseSubjectId()); $c->add(StudentAttendancePeer::STUDENT_ATTENDANCE_JUSTIFICATION_ID, null, Criteria::ISNULL); $student_attendances = StudentAttendancePeer::doSelect($c); $total = 0; foreach ($student_attendances as $student_attendance) { $total += $student_attendance->getAbsenceType() ? $student_attendance->getAbsenceType()->getValue() : $student_attendance->getValue(); } //$total = $this->roundAbsences($total); return $total; }