public function executeUpdateStatus() { $i18n = new sfI18N(); $i18n->initialize($this->getContext()); $i18n->setCulture($this->getUser()->getCulture()); $action_i18n = $i18n->globalMessageFormat->format('save as new'); $action_type = $this->getRequestParameter('action_type'); $student = StudentPeer::retrieveByPk($this->getRequestParameter('id')); $this->forward404Unless($student); $student->setStatus($this->getRequestParameter('status')); $student->save(); $c = new Criteria(); $c->add(StudentLeavePeer::STUDENT_ID, $student->getId()); $student_leave = StudentLeavePeer::doSelectOne($c); if ($student_leave == null) { $student_leave = new StudentLeave(); } $student_leave->setAcademicCalendarId($this->getRequestParameter('academic_calendar_id')); $student_leave->setStatus($this->getRequestParameter('status')); $student_leave->setYear($this->getRequestParameter('year')); $student_leave->setEndDate($this->getRequestParameter('end_date')); $student_leave->setDetail($this->getRequestParameter('detail')); $student_leave->setNextSchool($this->getRequestParameter('next_school')); $student_leave->setNextLevel($this->getRequestParameter('next_level')); $student_leave->save(); if ($student->getStatus() == Student::STATUS_OVERDUE) { $c = new Criteria(); $c->add(StudentAccalPeer::STUDENT_ID, $student->getId()); $c->add(StudentAccalPeer::CLASS_GROUP_ID, $student->getClassGroupId()); $c->add(StudentAccalPeer::ACADEMIC_CALENDAR_ID, $student_leave->getAcademicCalendarId()); $student_accal = StudentAccalPeer::doSelectOne($c); if ($student_accal) { $student_accal->setStatus(Student::STATUS_OVERDUE); $student_accal->save(); /** $student_accal->delete(); **/ } } return $this->redirect('scholar/list'); }