public static function getLetterMarkByValue($value) { $criteria = new Criteria(); $criteria->add(LetterMarkPeer::VALUE, $value); $result = LetterMarkPeer::doSelectOne($criteria); return $result; }
public function configure() { $sf_formatter_revisited = new sfWidgetFormSchemaFormatterRevisited($this); $this->getWidgetSchema()->addFormFormatter('Revisited', $sf_formatter_revisited); $this->getWidgetSchema()->setFormFormatterName('Revisited'); unset($this['student_repproved_course_subject_id'], $this["examination_repproved_subject_id"]); $configuration = $this->getObject()->getStudentRepprovedCourseSubject()->getCourseSubjectStudent()->getCourseSubject()->getCareerSubjectSchoolYear()->getConfiguration(); if (!$this->getObject()->getExaminationRepprovedSubject()->canEditCalifications()) { unset($this["is_absent"]); $this->widgetSchema["mark"] = new mtWidgetFormPlain(array('object' => $this->getObject(), 'method' => 'getMarkStrByConfig', "empty_value" => "Is absent", 'method_args' => $configuration, 'add_hidden_input' => false), array('class' => 'mark')); } else { $this->widgetSchema->setHelp("mark", "Enter student's mark or mark him as absent."); if (!$configuration->isNumericalMark()) { $letter_mark = LetterMarkPeer::getLetterMarkByValue((int) $this->getObject()->getMark()); $this->setWidget('mark', new sfWidgetFormPropelChoice(array('model' => 'LetterMark', 'add_empty' => true))); if (!is_null($letter_mark)) { $this->setDefault('mark', $letter_mark->getId()); } $this->setValidator('mark', new sfValidatorPropelChoice(array('model' => 'LetterMark', 'required' => false))); } else { $behavior = SchoolBehaviourFactory::getEvaluatorInstance(); $this->validatorSchema["mark"]->setOption("min", $behavior->getMinimumMark()); $this->validatorSchema["mark"]->setOption("max", $behavior->getMaximumMark()); $this->validatorSchema["mark"]->setMessage("min", "Mark should be at least %min%."); $this->validatorSchema["mark"]->setMessage("max", "Mark should be at most %max%."); } } $this->widgetSchema->setLabel("mark", $this->getObject()->getStudentRepprovedCourseSubject()->getStudent()); $this->validatorSchema->setPostValidator(new sfValidatorCallback(array("callback" => array($this, "validateAbsence")))); }
public function getResult($with_mark = true) { $career_subject = CareerSubjectSchoolYearPeer::retrieveByCareerSubject($this->getCareerSubject()); $config = $career_subject->getConfiguration(); if ($config != null && !$config->isNumericalMark()) { $letter_mark = LetterMarkPeer::getLetterMarkByValue((int) $this->getMark()); $mark = $letter_mark->getLetter(); } else { $mark = $this->getMark(); } return $with_mark ? 'Aprobado ' . $mark : 'Aprobado'; }
public function getMarkStrByConfig($config = null) { if (is_null($config)) { $config = $this->getStudentRepprovedCourseSubject()->getCourseSubjectStudent()->getCourseSubject()->getCareerSubjectSchoolYear()->getSubjectConfiguration(); } if (!is_null($config) && !$config->isNumericalMark()) { $letter_mark = LetterMarkPeer::getLetterMarkByValue($this->getMark()); return $letter_mark->getLetter(); } else { return $this->getMark(); } }
public function getCourseSubjectStudentResult(CourseSubjectStudent $course_subject_student, PropelPDO $con = null) { if (!$course_subject_student->getConfiguration()->isNumericalMark()) { $letter_average = LetterMarkAveragePeer::getLetterMarkAverageByCourseSubjectStudent($course_subject_student); $average = LetterMarkPeer::getLetterMarkByPk($letter_average->getLetterMarkAverage()); $average = $average->getValue(); } else { $average = $course_subject_student->getMarksAverage($con); } if ($this->isApproved($course_subject_student, $average, $con)) { return $this->createStudentApprovedCourseSubject($course_subject_student, $average, $con); } else { $student_disapproved_course_subject = new StudentDisapprovedCourseSubject(); $student_disapproved_course_subject->setCourseSubjectStudent($course_subject_student); $student_disapproved_course_subject->setExaminationNumber($this->getExaminationNumberFor($average, false, $course_subject_student)); return $student_disapproved_course_subject; } }
public function getMarkByConfig($config = null) { if (is_null($config)) { $config = $this->getCourseSubjectStudent()->getCourseSubject()->getCareerSubjectSchoolYear()->getConfiguration(); } if ($this->getMark() != 0) { if (!is_null($config) && !$config->isNumericalMark()) { $letter_mark = LetterMarkPeer::getLetterMarkByValue((int) $this->getMark()); return $letter_mark->getLetter(); } else { return $this->getMark(); } } elseif ($this->getIsFree()) { return "Libre"; } else { return $this->getMark(); } }
public static function getLetterMarkAverageByCourseSubjectStudent($course_subject_student) { for ($i = 1; $i <= $course_subject_student->getConfiguration()->getCourseMarks(); $i++) { $marks[$i] = LetterMarkPeer::getLetterMarkByValue($course_subject_student->getMarkFor($i)->getMark()); } $criteria = new Criteria(); if (array_key_exists(1, $marks) && !is_null($marks[1])) { $criteria->add(LetterMarkAveragePeer::LETTER_MARK_1, $marks[1]->getId()); } else { $criteria->add(LetterMarkAveragePeer::LETTER_MARK_1, null, Criteria::ISNULL); } if (array_key_exists(2, $marks) && !is_null($marks[2])) { $criteria->add(LetterMarkAveragePeer::LETTER_MARK_2, $marks[2]->getId()); } else { $criteria->add(LetterMarkAveragePeer::LETTER_MARK_2, null, Criteria::ISNULL); } if (array_key_exists(3, $marks) && !is_null($marks[3])) { $criteria->add(LetterMarkAveragePeer::LETTER_MARK_3, $marks[3]->getId()); } else { $criteria->add(LetterMarkAveragePeer::LETTER_MARK_3, null, Criteria::ISNULL); } $result = LetterMarkAveragePeer::doSelectOne($criteria); return $result; }
public function getMarkStrByConfig($config = null) { if ($this->getIsAbsent()) { return __('A'); } else { if (is_null($config)) { $config = $this->getExaminationSubject()->getCareerSubjectSchoolYear()->getConfiguration(); } if ($this->getMark() != SchoolBehaviourFactory::getEvaluatorInstance()->getMinimumMark()) { if (!is_null($config) && !$config->isNumericalMark()) { $letter_mark = LetterMarkPeer::getLetterMarkByValue($this->getMark()); return $letter_mark->getLetter(); } else { return $this->getMark(); } } } }
public function save($con = null) { if (is_null($con)) { $con = $this->getConnection(); } try { $con->beginTransaction(); $values = $this->getValues(); $any_change = false; //First check the marks if ($this->canEditMarks()) { foreach ($this->getObject()->getSortedCourseSubjectStudentMarks() as $cssm) { $mark = $values['mark_' . $cssm->getId()]; $configuration = $this->getObject()->getConfiguration(); if (!$configuration->isNumericalMark()) { $letter_mark = LetterMarkPeer::retrieveByPk($mark); if (is_null($letter_mark)) { $mark = null; } else { $mark = $letter_mark->getValue(); } } if ($cssm->getMark() !== $mark) { $cssm->setMark($mark); if ($mark == 0) { $cssm->setIsFree(true); } else { $cssm->setIsFree(false); } $cssm->save($con); $any_change = true; } } if ($any_change && $this->getObject()->areAllMarksClosed()) { //Creo de nuevo el result porque cambiaron las notas $course_result = SchoolBehaviourFactory::getEvaluatorInstance()->getCourseSubjectStudentResult($this->getObject(), $con); $course_result->save($con); if ($course_result instanceof StudentApprovedCourseSubject) { $this->getObject()->setStudentApprovedCourseSubject($course_result); $this->getObject()->save($con); } //Si ya fue procesado el año lectivo, entonces crea si corresponde la materia aprobada o la mesa de examen if ($this->getObject()->getCourseSubject()->getCareerSubjectSchoolYear()->getCareerSchoolYear()->getIsProcessed() && $this->getObject()->getCourseSubject()->getCourse()->getIsClosed()) { SchoolBehaviourFactory::getEvaluatorInstance()->closeCourseSubjectStudent($course_result, $con); } } } //if para la edición de notas en mesas de examen if ($this->canEditExaminationSubject()) { $course_subject_student_examination = $this->getObject()->getLastCourseSubjectStudentExamination(); if (isset($values['course_subject_student_examination_id_' . $course_subject_student_examination->getId() . '_mark']) || isset($values['course_subject_student_examination_id_' . $course_subject_student_examination->getId() . '_is_absent'])) { $mark = $values['course_subject_student_examination_id_' . $course_subject_student_examination->getId() . '_mark']; $is_absent = $values['course_subject_student_examination_id_' . $course_subject_student_examination->getId() . '_is_absent']; $date = $values['course_subject_student_examination_id_' . $course_subject_student_examination->getId() . '_date']; $folio = $values['course_subject_student_examination_id_' . $course_subject_student_examination->getId() . '_folio_number']; if ($mark !== $course_subject_student_examination->getMark() || $is_absent !== $course_subject_student_examination->getIsAbsent()) { $course_subject_student_examination->setExaminationSubject(ExaminationSubjectPeer::retrieveByCourseSubjectStudentExamination($course_subject_student_examination)); $course_subject_student_examination->setMark($mark); $course_subject_student_examination->setIsAbsent($is_absent); $course_subject_student_examination->setDate($date); $course_subject_student_examination->setFolioNumber($folio); $course_subject_student_examination->save($con); SchoolBehaviourFactory::getEvaluatorInstance()->closeCourseSubjectStudentExamination($course_subject_student_examination, $con); } } } /* Esto se habia creado para las previas, pero no tiene sentido editarlas. Lo dejo comentado por si sirve para mas adelante. if ($this->canEditStudentRepprovedCourseSubjects()) { $student_repproved_course_subject = $this->getObject()->getStudentRepprovedCourseSubject(); $student_examination_repproved_subject = $student_repproved_course_subject->getLastStudentExaminationRepprovedSubject(); $mark = $values['student_examination_repproved_subject_' . $student_examination_repproved_subject->getId() .'_mark']; $is_absence_name = 'student_examination_repproved_subject_' . $student_examination_repproved_subject->getId() .'_is_absent'; $is_absence = isset($values[$is_absence_name]) ? $values[$is_absence_name] : null; if ($mark !== $student_examination_repproved_subject->getMark() || $is_absence !== $student_examination_repproved_subject->getIsAbsent()) { $student_examination_repproved_subject->setMark($mark); $student_examination_repproved_subject->setIsAbsence($is_absence); } } */ $con->commit(); } catch (PropelException $e) { $con->rollBack(); throw $e; } }
public function getMarkByConfig($config = null) { if ($config != null && !$config->isNumericalMark()) { $letter_mark = LetterMarkPeer::getLetterMarkByValue((int) $this->getMark()); if (!is_null($letter_mark)) { return $letter_mark->getLetter(); } } else { return sprintf("%01.2f", $this->getMark()); } }
protected function doSave($con = null) { $values = $this->getValues(); $c = new Criteria(); $c->add(CourseSubjectStudentMarkPeer::IS_CLOSED, false); foreach ($this->object->getCourseSubjectStudents() as $course_subject_student) { foreach ($course_subject_student->getAvailableCourseSubjectStudentMarks($c) as $course_subject_student_mark) { $is_free = $values[$course_subject_student->getId() . '_free_' . $course_subject_student_mark->getMarkNumber()]; $value = $values[$course_subject_student->getId() . '_' . $course_subject_student_mark->getMarkNumber()]; if (!is_null($is_free)) { if ($is_free) { $value = 0; } else { if ($value != null) { if (!$course_subject_student->getConfiguration()->isNumericalMark()) { $value = LetterMarkPeer::retrieveByPk($value)->getValue(); } } } $course_subject_student_mark->setMark($value); $course_subject_student_mark->setIsFree($is_free); $course_subject_student_mark->save($con); } } } }
public function getPromDef($course_result) { if (is_null($course_result)) { return ''; } $config = $course_result->getCourseSubject()->getCareerSubjectSchoolYear()->getConfiguration(); if ($course_result instanceof StudentApprovedCourseSubject) { if ($course_result->getCareerSchoolYear()->getSubjectConfiguration()->getNecessaryStudentApprovedCareerSubjectToShowPromDef()) { if ($config != null && !$config->isNumericalMark()) { $mark = $course_result->getStudentApprovedCareerSubject() ? $course_result->getStudentApprovedCareerSubject()->getMark() : $course_result->getMark(); $letter_mark = LetterMarkPeer::getLetterMarkByValue((int) $mark); if (!is_null($letter_mark)) { return $letter_mark->getLetter(); } } else { return ($student_approved_career_subject = $course_result->getStudentApprovedCareerSubject()) ? number_format($student_approved_career_subject->getMark(), 2, '.', '') : ' '; } } else { if ($config != null && !$config->isNumericalMark()) { $letter_mark = LetterMarkPeer::getLetterMarkByValue((int) $course_result->getMark()); if (!is_null($letter_mark)) { return $letter_mark->getLetter(); } } else { return number_format($course_result->getMark(), 2, '.', ''); } } } else { if ($config != null && !$config->isNumericalMark()) { $letter_mark = LetterMarkPeer::getLetterMarkByValue((int) $course_result->getStudentApprovedCareerSubject()->getMark()); return $letter_mark->getLetter(); } else { return $course_result->getStudentApprovedCareerSubject() ? number_format($course_result->getStudentApprovedCareerSubject()->getMark(), 2, '.', '') : ' '; } } }
public function getAverageByConfig($config = null) { if (!$this->areAllMarksClosed()) { return ''; } if ($config != null && !$config->isNumericalMark()) { $letter_average = LetterMarkAveragePeer::getLetterMarkAverageByCourseSubjectStudent($this); if (!is_null($letter_average)) { $letter_mark = LetterMarkPeer::getLetterMarkByPk($letter_average->getLetterMarkAverage()); return $letter_mark->getLetter(); } } else { return $this->getMarksAverage(); } }