public function executeDelete() { $subject_curr_id = $this->getRequestParameter('subject_curr_id'); $subject_curr = SubjectCurrPeer::retrieveByPK($subject_curr_id); $this->forward404Unless($subject_curr); $this->subject_curr = $subject_curr; $subject_grading = SubjectGradingPeer::retrieveByPk($this->getRequestParameter('id')); $this->forward404Unless($subject_grading); $ref_error = 0; foreach ($subject_grading->getRefCountMethods() as $ref) { $method = "count" . $ref['affix']; $count = $subject_grading->{$method}(); if ($count > 0) { ++$ref_error; $this->getRequest()->setError('subject_grading/delete/' . sfInflector::camelize($ref['table']), $count); } } $c = new Criteria(); $c->add(StudentCoursePeer::SUBJECT_CURR_ID, $subject_grading->getSubjectCurrId()); $c->add(StudentCoursePeer::GRADE_COMPONENT_ID, $subject_grading->getGradeComponentId()); $c->addJoin(StudentRaportPeer::STUDENT_COURSE_ID, StudentCoursePeer::ID); $score_count = StudentRaportPeer::doCount($c); if ($ref_error > 0) { $this->getRequest()->setError('subject_grading/delete', '_ERR_DELETE_ (' . $subject_grading->toString() . ' - id:' . $subject_grading->getId() . ')'); } elseif ($score_count > 0) { $this->getRequest()->setError('subject_grading/delete/StudentScore', $score_count); $this->getRequest()->setError('subject_grading/delete', '_ERR_DELETE_ (' . $subject_grading->toString() . ' - id:' . $subject_grading->getId() . ')'); } else { $subject_grading->delete(); } $this->getRequest()->setParameter('subject_curr_id', $subject_curr_id); return $this->forward('subject_grading', 'list'); }