public function executeUpdate() { $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'); $employee_id = sfContext::getInstance()->getUser()->getAttribute('user_id', null, 'bo'); $employee = EmployeePeer::retrieveByPK($employee_id); $this->forward404Unless($employee); if ($action_type == $action_i18n || !$this->getRequestParameter('id')) { $class_agenda = new ClassAgenda(); } else { $class_agenda = ClassAgendaPeer::retrieveByPk($this->getRequestParameter('id')); $this->forward404Unless($class_agenda); } $class_agenda->setId($this->getRequestParameter('id')); $class_agenda->setCourseScheduleId($this->getRequestParameter('course_schedule_id')); $class_agenda->setDetail($this->getRequestParameter('detail')); if ($this->getRequestParameter('date')) { $class_agenda->setDate($this->getRequestParameter('date')); } $class_agenda->setStatus($this->getRequestParameter('status')); $class_agenda->setSubjectGradingId($this->getRequestParameter('subject_grading_id')); $class_agenda->setMeetingPoint($this->getRequestParameter('meeting_point')); $class_agenda->setActionType($this->getRequestParameter('action_type')); $class_agenda->setDay($this->getRequestParameter('day')); if ($this->getRequestParameter('class_group_id')) { $class_agenda->setClassGroupId($this->getRequestParameter('class_group_id')); } else { $cs = CourseSchedulePeer::retrieveByPk($this->getRequestParameter('course_schedule_id')); $this->forward404Unless($cs); $class_agenda->setClassGroupId($cs->getClassGroupId()); } $class_agenda->setDescription($this->getRequestParameter('description')); $class_agenda->save(); $status = $this->getRequestParameter('status'); if ($status) { foreach ($status as $stu_id => $status) { $c = new Criteria(); $c->add(StudentAbsencePeer::ID, $stu_id); $g = StudentAbsencePeer::doSelectOne($c); if ($g == null) { $g = new StudentAbsence(); } $g->setId($stu_id); $g->setStatus($status); $g->save(); } } return $this->forward('agenda', 'list'); #return $this->redirect('agenda/list'); }