public static function retrieveOrCreateByCareerSubjectAndStudent($career_subject_id, $student_id)
 {
     $c = new Criteria();
     $c->add(self::CAREER_SUBJECT_ID, $career_subject_id);
     $c->add(self::STUDENT_ID, $student_id);
     $sacs = self::doSelectOne($c);
     if ($sacs == null) {
         $criteria = new criteria();
         $criteria->add(CareerSubjectSchoolYearPeer::CAREER_SUBJECT_ID, $career_subject_id);
         $career_subject_school_years = CareerSubjectSchoolYearPeer::doSelect($criteria);
         $opcions = array();
         foreach ($career_subject_school_years as $career_subject_school_year) {
             foreach ($career_subject_school_year->getChoices() as $optional_career_subject_school_year) {
                 $cs = CareerSubjectPeer::retrieveByCareerSubjectSchoolYearId($optional_career_subject_school_year->getChoiceCareerSubjectSchoolYearId());
                 $opcions[] = $cs->getId();
             }
         }
         $criteria = new criteria();
         $criteria->add(self::CAREER_SUBJECT_ID, $opcions, Criteria::IN);
         $sacs = self::doSelectOne($criteria);
         if ($sacs == null) {
             $sacs = new StudentApprovedCareerSubject();
             $sacs->setCareerSubjectId($career_subject_id);
         }
     }
     $sacs->setStudentId($student_id);
     return $sacs;
 }
 public static function getCourseSubjects($widget, $values)
 {
     $sf_user = sfContext::getInstance()->getUser();
     $career_school_year = CareerSchoolYearPeer::retrieveByPK(sfContext::getInstance()->getUser()->getAttribute('career_school_year_id'));
     $career = $career_school_year->getCareer();
     $c = new Criteria();
     $c->addJoin(CourseSubjectPeer::CAREER_SUBJECT_SCHOOL_YEAR_ID, CareerSubjectSchoolYearPeer::ID);
     $c->add(CareerSubjectSchoolYearPeer::CAREER_SCHOOL_YEAR_ID, $career_school_year->getId());
     $c->addJoin(CourseSubjectPeer::COURSE_ID, CoursePeer::ID);
     $c->add(CoursePeer::SCHOOL_YEAR_ID, SchoolYearPeer::retrieveCurrent()->getId());
     $c->addJoin(CareerSubjectSchoolYearPeer::CAREER_SUBJECT_ID, CareerSubjectPeer::ID);
     $c->addJoin(CareerSubjectSchoolYearPeer::CAREER_SCHOOL_YEAR_ID, CareerSchoolYearPeer::ID);
     $c->add(CareerSubjectPeer::YEAR, $values);
     if ($sf_user->isPreceptor()) {
         $course_ids = PersonalPeer::retrieveCourseIdsjoinWithDivisionCourseOrCommission($sf_user->getGuardUser()->getId(), true);
         $c->add(CoursePeer::ID, $course_ids, Criteria::IN);
         $c->addJoin(CourseSubjectPeer::COURSE_ID, CoursePeer::ID);
     }
     $course_ids = array();
     foreach (CourseSubjectPeer::doSelect($c) as $course_subject) {
         if ($course_subject->hasAttendanceForSubject()) {
             $course_ids[] = $course_subject->getId();
         }
     }
     $criteria = new Criteria();
     $criteria->add(CourseSubjectPeer::ID, $course_ids, Criteria::IN);
     $criteria->addJoin(CourseSubjectPeer::CAREER_SUBJECT_SCHOOL_YEAR_ID, CareerSubjectSchoolYearPeer::ID);
     CareerSubjectSchoolYearPeer::sorted($criteria);
     $widget->setOption('criteria', $criteria);
 }
Exemplo n.º 3
0
 public function createExaminationSubjectsForYear($year)
 {
     $career_subject_school_years = CareerSubjectSchoolYearPeer::retrieveForExaminationAndYear($this, $year);
     foreach ($career_subject_school_years as $career_subject_school_year) {
         $examination_subject = new ExaminationSubject();
         $examination_subject->setCareerSubjectSchoolYearId($career_subject_school_year->getId());
         $this->addExaminationSubject($examination_subject);
     }
 }
 public function getExcludeRepprovedSubjects()
 {
     $c = new Criteria();
     $c->add(CareerSubjectPeer::SUBJECT_ID, self::ED_FISICA);
     $c->addJoin(CareerSubjectPeer::ID, CareerSubjectSchoolYearPeer::CAREER_SUBJECT_ID);
     $result = array();
     foreach (CareerSubjectSchoolYearPeer::doSelect($c) as $career_school_year) {
         $result[] = $career_school_year->getId();
     }
     return $result;
 }
Exemplo n.º 5
0
 public function executeUpdateOptional(sfWebRequest $request)
 {
     $this->career_subject_school_year = CareerSubjectSchoolYearPeer::retrieveByPk($request->getParameter('id'));
     if (null === $this->career_subject_school_year) {
         $this->getUser()->setFlash('error', 'Debe seleccionar una materia para editar sus opciones');
         $this->redirect('@career_school_year');
     }
     $this->form = new OptionalCareerSubjectManyForm($this->career_subject_school_year);
     $this->processForm($request, $this->form);
     $this->setTemplate('optional');
 }
 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';
 }
 /**
  * Creates examination subjects for the given examination
  *
  * @param Examination $examination
  * @param PropelPDO $con
  */
 public function createExaminationSubjects($examination, PropelPDO $con)
 {
     if (!$examination->isNew()) {
         return;
     }
     $career_subject_school_years = CareerSubjectSchoolYearPeer::retrieveForExamination($examination, $con);
     foreach ($career_subject_school_years as $career_subject_school_year) {
         $examination_subject = new ExaminationSubject();
         $examination_subject->setCareerSubjectSchoolYearId($career_subject_school_year->getId());
         $examination->addExaminationSubject($examination_subject);
     }
 }
Exemplo n.º 8
0
 public static function getCourses($widget, $values)
 {
     $career_school_year_id = sfContext::getInstance()->getUser()->getAttribute('career_school_year_id');
     $criteria = new Criteria();
     $criteria->add(CareerSubjectPeer::YEAR, $values);
     $criteria->add(CareerSubjectPeer::IS_OPTION, false);
     $criteria->addJoin(CareerSubjectPeer::ID, CareerSubjectSchoolYearPeer::CAREER_SUBJECT_ID);
     $criteria->add(CareerSubjectSchoolYearPeer::CAREER_SCHOOL_YEAR_ID, $career_school_year_id);
     $criteria->addJoin(CareerSubjectPeer::SUBJECT_ID, SubjectPeer::ID);
     CareerSubjectSchoolYearPeer::sorted($criteria);
     $widget->setOption('criteria', $criteria);
 }
 public function configure()
 {
     $sf_formatter_revisited = new sfWidgetFormSchemaFormatterRevisited($this);
     $this->getWidgetSchema()->addFormFormatter('Revisited', $sf_formatter_revisited);
     $this->getWidgetSchema()->setFormFormatterName('Revisited');
     $this->loadHelpers(array('Tag', 'Asset'));
     //WIDGETS
     $this->setWidget('id', new sfWidgetFormInputHidden());
     $criteria = CareerSubjectSchoolYearPeer::getAvailableChoicesCriteria($this->getObject(), $exclude_related = false, $exclude_repetead = false);
     $this->setWidget('option_career_subject_list', new sfWidgetFormPropelChoice(array('model' => 'CareerSubjectSchoolYear', 'multiple' => true, 'criteria' => $criteria, 'renderer_class' => 'csWidgetFormSelectDoubleList')));
     $this->getWidget('option_career_subject_list')->setLabel('Opciones');
     $this->widgetSchema->setNameFormat('optional_career_subject[%s]');
     //VALIDATORS
     $this->setValidator('id', new sfValidatorPropelChoice(array('model' => 'CareerSubjectSchoolYear')));
     $this->setValidator('option_career_subject_list', new sfValidatorPropelChoice(array('model' => 'CareerSubjectSchoolYear', 'multiple' => true, 'required' => false, 'criteria' => $criteria)));
 }
Exemplo n.º 10
0
 public function updateOptionalCareerSubject($widget, $value)
 {
     $school_year_id = array_shift($value);
     $criteria = new Criteria();
     if ($school_year_id != "") {
         $career_subject = $this->getObject()->getCareerSubject();
         $school_year = SchoolYearPeer::retrieveByPK($school_year_id);
         $career_subject_school_year = CareerSubjectSchoolYearPeer::retrieveByCareerSubjectAndSchoolYear($career_subject, $school_year);
         $opcions = array();
         foreach ($career_subject_school_year->getChoices() as $optional_career_subject_school_year) {
             $cs = CareerSubjectPeer::retrieveByCareerSubjectSchoolYearId($optional_career_subject_school_year->getChoiceCareerSubjectSchoolYearId());
             $opcions[] = $cs->getId();
         }
         //$opcions es un arreglo con todas las posibles optativas
         $criteria->add(CareerSubjectPeer::ID, $opcions, Criteria::IN);
         $widget->getOption('widget')->setOption('criteria', $criteria);
     }
 }
Exemplo n.º 11
0
 public function getOptionalCourseSubjectStudents($student, $school_year = null)
 {
     if (is_null($school_year)) {
         $school_year = SchoolYearPeer::retrieveCurrent();
     }
     $c = new Criteria();
     $c->add(CoursePeer::SCHOOL_YEAR_ID, $school_year->getId());
     $c->addJoin(CourseSubjectPeer::COURSE_ID, CoursePeer::ID);
     $c->addJoin(CourseSubjectStudentPeer::COURSE_SUBJECT_ID, CourseSubjectPeer::ID);
     $c->addJoin(CourseSubjectPeer::CAREER_SUBJECT_SCHOOL_YEAR_ID, CareerSubjectSchoolYearPeer::ID);
     $c->addJoin(CareerSubjectPeer::ID, CareerSubjectSchoolYearPeer::CAREER_SUBJECT_ID);
     $c->add(CareerSubjectPeer::IS_OPTION, true);
     CareerSubjectSchoolYearPeer::sorted($c);
     $course_subject_students = $student->getCourseSubjectStudents($c);
     $results = array();
     foreach ($course_subject_students as $css) {
         $results[] = $css;
     }
     return $results;
 }
 public function save($con = null)
 {
     if (!$this->isValid()) {
         throw $this->getErrorSchema();
     }
     if (is_null($con)) {
         $con = Propel::getConnection(CareerSubjectSchoolYearPeer::DATABASE_NAME, Propel::CONNECTION_WRITE);
     }
     try {
         $con->beginTransaction();
         $values = $this->getValues();
         // TODO: ver si se puede mejorar esto:
         $fields = array("final_examination_required", "course_required", "course_minimun_mark", "course_examination_count", "max_previous", "evaluation_method", "course_type", "attendance_type");
         $to_save = array();
         foreach ($fields as $field) {
             $to_save[$field] = isset($values[$field]) ? $values[$field] : null;
             unset($values[$field]);
         }
         foreach ($values as $career_subject_school_year_id) {
             $career_subject_school_year = CareerSubjectSchoolYearPeer::retrieveByPk($career_subject_school_year_id, $con);
             $subject_configuration = $career_subject_school_year->getSubjectConfigurationOrCreate();
             foreach ($to_save as $field => $value) {
                 if (!is_null($value)) {
                     $method = "set" . sfInflector::camelize($field);
                     $subject_configuration->{$method}($value);
                 }
             }
             $career_subject_school_year->setSubjectConfiguration($subject_configuration);
             $subject_configuration->setCourseMarks(BaseCustomOptionsHolder::getInstance('CourseType')->getMarksFor($subject_configuration->getCourseType()));
             $subject_configuration->setEvaluationMethod(BaseCustomOptionsHolder::getInstance('CourseType')->getEvaluationMethodFor($subject_configuration->getCourseType()));
             $subject_configuration->save($con);
         }
         $con->commit();
     } catch (Exception $e) {
         $con->rollBack();
         throw $e;
     }
     return $this->object;
 }
Exemplo n.º 13
0
 public function executeUpdateConfiguration(sfWebRequest $request)
 {
     $this->career_subject_school_year = CareerSubjectSchoolYearPeer::retrieveByPK($request->getParameter('id'));
     if (null === $this->career_school_year) {
         $this->getUser()->setFlash('error', 'Debe seleccionar una carrera para editar su configuracion');
         $this->redirect('@career_school_year');
     }
     $subject_configuration = $this->career_subject_school_year->getSubjectConfigurationOrCreate();
     $this->career_subject_school_year->setSubjectConfiguration($subject_configuration);
     $parameters = $request->getPostParameters();
     $parameter = $parameters["subject_configuration"];
     if ($this->career_subject_school_year->hasChoices()) {
         $course_subjects = array();
         foreach ($this->career_subject_school_year->getChoices() as $option) {
             $course_subjects = array_merge($course_subjects, CourseSubjectPeer::retrieveByCareerSubjectSchoolYear($option->getChoiceCareerSubjectSchoolYearId()));
         }
     } else {
         $course_subjects = CourseSubjectPeer::retrieveByCareerSubjectSchoolYear($this->career_subject_school_year->getId());
     }
     //actualización de las notas para los cursos
     $this->updateCourseMarksConfiguration($parameter, $subject_configuration, $course_subjects);
     //actualización del tipo de curso para los cursos
     $this->updateCourseTypeConfiguration($parameter, $subject_configuration, $course_subjects);
     //actualización del tipo de asistencia para los cursos y las asistencias de los alumnos
     $this->updateStudentAssistanceConfiguration($parameter, $subject_configuration, $course_subjects);
     $form_name = SchoolBehaviourFactory::getInstance()->getFormFactory()->getCareerSubjectSchoolYearConfigurationForm();
     $this->form = new $form_name($subject_configuration);
     $this->form->bind($request->getParameter($this->form->getName()), $request->getFiles($this->form->getName()));
     if ($this->form->isValid()) {
         $notice = $this->getProcessFormNotice($this->form->getObject()->isNew());
         $subject_configuration = $this->form->save();
         $this->getUser()->setFlash('notice', $notice);
     } else {
         $this->setProcessFormErrorFlash();
     }
     $this->setTemplate('configuration');
 }
 public function saveSubject(PropelPDO $con)
 {
     if (!isset($this->widgetSchema['subject'])) {
         // somebody has unset this widget
         return;
     }
     foreach ($this->getObject()->getCourseSubjects() as $course_subject) {
         $course_subject->delete($con);
     }
     $values = $this->getValue('subject');
     if ($values) {
         try {
             $con->beginTransaction();
             foreach ($values as $value) {
                 $career_subject_school_year = CareerSubjectSchoolYearPeer::retrieveByPK($value);
                 $career_subject_school_year->createCourseSubject($this->getObject(), $con);
             }
             $con->commit();
         } catch (Exception $e) {
             throw $e;
             $con->rollBack();
         }
     }
 }
 public static function getCourses($widget, $values)
 {
     $career_school_year_id = sfContext::getInstance()->getUser()->getAttribute('career_school_year_id');
     $c2 = new Criteria();
     $c2->add(CareerSubjectPeer::YEAR, $values);
     $c2->add(CareerSubjectPeer::HAS_OPTIONS, false);
     $c2->addAnd(CareerSubjectPeer::IS_OPTION, false);
     $c2->addJoin(CareerSubjectPeer::ID, CareerSubjectSchoolYearPeer::CAREER_SUBJECT_ID);
     $c2->add(CareerSubjectSchoolYearPeer::CAREER_SCHOOL_YEAR_ID, $career_school_year_id);
     $c2->addSelectColumn(CareerSubjectSchoolYearPeer::ID);
     $stmt2 = CareerSubjectSchoolYearPeer::doSelectStmt($c2);
     $no_options = $stmt2->fetchAll();
     $c = new Criteria();
     $c->add(CareerSubjectPeer::YEAR, $values);
     $c->add(CareerSubjectPeer::HAS_OPTIONS, false);
     $c->addJoin(CareerSubjectPeer::ID, CareerSubjectSchoolYearPeer::CAREER_SUBJECT_ID);
     $c->add(CareerSubjectSchoolYearPeer::CAREER_SCHOOL_YEAR_ID, $career_school_year_id);
     $c->addJoin(CareerSubjectPeer::SUBJECT_ID, SubjectPeer::ID);
     $c->addJoin(CareerSubjectPeer::ID, CareerSubjectSchoolYearPeer::CAREER_SUBJECT_ID);
     $c->addJoin(OptionalCareerSubjectPeer::CHOICE_CAREER_SUBJECT_SCHOOL_YEAR_ID, CareerSubjectSchoolYearPeer::ID);
     $c->clearSelectColumns();
     $c->addSelectColumn(CareerSubjectSchoolYearPeer::ID);
     $stmt = CareerSubjectSchoolYearPeer::doSelectStmt($c);
     $options = $stmt->fetchAll();
     $all = array_merge($options, $no_options);
     $choice = array();
     foreach ($all as $echa) {
         $choice[] = $echa['ID'];
     }
     $criteria = new Criteria();
     $criteria->add(CareerSubjectSchoolYearPeer::ID, $choice, Criteria::IN);
     $criteria->addJoin(CareerSubjectSchoolYearPeer::CAREER_SUBJECT_ID, CareerSubjectPeer::ID);
     $criteria->addJoin(CareerSubjectPeer::SUBJECT_ID, SubjectPeer::ID);
     $criteria->addAscendingOrderByColumn(SubjectPeer::NAME);
     $widget->setOption('criteria', $criteria);
 }
Exemplo n.º 16
0
    <tr>
      <th class ="sf_admin_text"> Alumno </th>
      <th class ="sf_admin_text"> Materia </th>
      <th class ="sf_admin_text"> Cantidad de inscripciones </th>
    </tr>
  </thead>

  <tbody>
    <?php 
foreach ($result as $student_id => $student_whith_errors) {
    ?>
      <tr class ="sf_admin_row">
        <td class ="sf_admin_text"><?php 
    echo StudentPeer::retrieveByPK($student_id);
    ?>
</td>
        <td class ="sf_admin_text"><?php 
    echo CareerSubjectSchoolYearPeer::retrieveByPK(key($student_whith_errors));
    ?>
</td>
        <td class ="sf_admin_text"><?php 
    echo $student_whith_errors[key($student_whith_errors)];
    ?>
</td>
      </tr>
    <?php 
}
?>
  </tbody>
</table>
</div>
Exemplo n.º 17
0
 public function getCareerSubjectSchoolYear()
 {
     return CareerSubjectSchoolYearPeer::retrieveByPK($this->getCareerSubjectSchoolYearId());
 }
Exemplo n.º 18
0
 public function retrieveInstanceForSchoolYear($school_year)
 {
     $c = new Criteria();
     $c->add(CareerSubjectSchoolYearPeer::CAREER_SUBJECT_ID, $this->getId());
     $c->addJoin(CareerSubjectSchoolYearPeer::CAREER_SCHOOL_YEAR_ID, CareerSchoolYearPeer::ID);
     $c->add(CareerSchoolYearPeer::SCHOOL_YEAR_ID, $school_year->getId());
     return CareerSubjectSchoolYearPeer::doSelectOne($c);
 }
Exemplo n.º 19
0
 /**
  * Event listener function that should be registered to
  * 'admin.build_criteria' event in order to add some
  * personalized criteria restrictions.
  *
  * @param sfEvent $event
  * @param Criteria $criteria
  */
 static function applyRestrictions(sfEvent $event, $criteria)
 {
     $user = sfContext::getInstance()->getUser();
     if ($event->getSubject() instanceof schoolyearActions) {
         // Restrictions for schoolyear module
         // $criteria->add(...);
     } elseif ($event->getSubject() instanceof career_subjectActions) {
         // Restrictions for careersubject module
         if ($user->getReferenceFor('career')) {
             $criteria->add(CareerSubjectPeer::CAREER_ID, $user->getReferenceFor('career'));
             CareerSubjectPeer::OrderByYearAndName($criteria);
         }
     } elseif ($event->getSubject() instanceof career_subject_optionActions) {
         // Restrictions for careersubject module
         if ($user->getReferenceFor('career')) {
             $criteria->add(CareerSubjectPeer::IS_OPTION, true);
             $criteria->add(CareerSubjectPeer::CAREER_ID, $user->getReferenceFor('career'));
         }
     } elseif ($event->getSubject() instanceof career_school_yearActions) {
         if ($school_year_id = $user->getReferenceFor('schoolyear')) {
             $criteria->add(CareerSchoolYearPeer::SCHOOL_YEAR_ID, $school_year_id);
         }
     } elseif ($event->getSubject() instanceof career_subject_school_yearActions) {
         if ($career_school_year_id = $user->getReferenceFor('career_school_year')) {
             $criteria->add(CareerSubjectSchoolYearPeer::CAREER_SCHOOL_YEAR_ID, $career_school_year_id);
             $criteria->add(CareerSubjectPeer::IS_OPTION, false);
             $criteria->addJoin(CareerSubjectPeer::ID, CareerSubjectSchoolYearPeer::CAREER_SUBJECT_ID);
             CareerSubjectSchoolYearPeer::sorted($criteria);
         }
     } elseif ($event->getSubject() instanceof optional_school_yearActions) {
         if ($career_school_year_id = $user->getReferenceFor('career_school_year')) {
             $criteria->add(CareerSubjectSchoolYearPeer::CAREER_SCHOOL_YEAR_ID, $career_school_year_id);
             $criteria->add(CareerSubjectPeer::HAS_OPTIONS, true);
             $criteria->addJoin(CareerSubjectPeer::ID, CareerSubjectSchoolYearPeer::CAREER_SUBJECT_ID);
         }
     } elseif ($event->getSubject() instanceof division_courseActions) {
         if ($division_id = $user->getReferenceFor('division')) {
             $criterion = $criteria->getNewCriterion(CoursePeer::DIVISION_ID, $division_id);
             $criterion->addOr($criteria->getNewCriterion(CoursePeer::RELATED_DIVISION_ID, $division_id));
             $criteria->add($criterion);
         }
         if ($user->isPreceptor()) {
             self::addCoursePreceptorCriteria($criteria, $user);
         }
         if ($user->isTeacher()) {
             self::addCourseTeacherCriteria($criteria, $user);
         }
         $criteria->setDistinct();
     } elseif ($event->getSubject() instanceof divisionActions) {
         DivisionPeer::sorted($criteria);
         if ($user->isPreceptor()) {
             self::addDivisionPreceptorCriteria($criteria, $user);
         } elseif ($user->isTeacher()) {
             self::addDivisionTeacherCriteria($criteria, $user);
         } elseif ($user->isHeadPreceptor()) {
             self::addDivisionHeadPersonalCriteria($criteria, $user);
         }
     } else {
         if ($event->getSubject() instanceof shared_studentActions) {
             $reference_array = sfContext::getInstance()->getUser()->getReferenceFor("shared_student");
             $peer = $reference_array["peer"];
             $fk = $reference_array["fk"];
             if (isset($reference_array["object_id"])) {
                 $object_id = $reference_array["object_id"];
             } else {
                 $object_ids = $reference_array["object_ids"];
             }
             $criteria->addJoin(constant("{$peer}::STUDENT_ID"), StudentPeer::ID);
             $criteria->addGroupByColumn(StudentPeer::ID);
             if (isset($object_id)) {
                 $criteria->add(constant("{$peer}::{$fk}"), $object_id);
             } else {
                 $criteria->add(constant("{$peer}::{$fk}"), $object_ids, Criteria::IN);
             }
             $criteria->addJoin(StudentPeer::PERSON_ID, PersonPeer::ID);
             $criteria->add(PersonPeer::IS_ACTIVE, true);
         } else {
             if ($event->getSubject() instanceof examinationActions || $event->getSubject() instanceof manual_examinationActions) {
                 $school_year_id = sfContext::getInstance()->getUser()->getReferenceFor("schoolyear");
                 $criteria->add(ExaminationPeer::SCHOOL_YEAR_ID, $school_year_id);
                 if ($user->isTeacher()) {
                     $criteria->addJoin(ExaminationPeer::ID, ExaminationSubjectPeer::EXAMINATION_ID);
                     $criteria->addJoin(ExaminationSubjectPeer::ID, ExaminationSubjectTeacherPeer::EXAMINATION_SUBJECT_ID);
                     $criteria->addJoin(ExaminationSubjectTeacherPeer::TEACHER_ID, TeacherPeer::ID);
                     $criteria->addJoin(TeacherPeer::PERSON_ID, PersonPeer::ID);
                     $criteria->add(PersonPeer::IS_ACTIVE, true);
                     $criteria->add(PersonPeer::USER_ID, $user->getGuardUser()->getId());
                 }
             } else {
                 if ($event->getSubject() instanceof examination_subjectActions) {
                     $examination_id = sfContext::getInstance()->getUser()->getReferenceFor("examination");
                     $criteria->add(ExaminationSubjectPeer::EXAMINATION_ID, $examination_id);
                     $criteria->addJoin(CareerSubjectSchoolYearPeer::ID, ExaminationSubjectPeer::CAREER_SUBJECT_SCHOOL_YEAR_ID);
                     $criteria->addJoin(CareerSubjectPeer::ID, CareerSubjectSchoolYearPeer::CAREER_SUBJECT_ID);
                     $criteria->addAscendingOrderByColumn(CareerSubjectPeer::YEAR);
                     if ($user->isTeacher()) {
                         $criteria->addJoin(ExaminationSubjectPeer::ID, ExaminationSubjectTeacherPeer::EXAMINATION_SUBJECT_ID);
                         $criteria->addJoin(ExaminationSubjectTeacherPeer::TEACHER_ID, TeacherPeer::ID);
                         $criteria->addJoin(TeacherPeer::PERSON_ID, PersonPeer::ID);
                         $criteria->add(PersonPeer::IS_ACTIVE, true);
                         $criteria->add(PersonPeer::USER_ID, $user->getGuardUser()->getId());
                     }
                 } else {
                     if ($event->getSubject() instanceof manual_examination_subjectActions) {
                         $examination_id = sfContext::getInstance()->getUser()->getReferenceFor("manual_examination");
                         $criteria->add(ExaminationSubjectPeer::EXAMINATION_ID, $examination_id);
                         if ($user->isTeacher()) {
                             $criteria->addJoin(ExaminationSubjectPeer::ID, ExaminationSubjectTeacherPeer::EXAMINATION_SUBJECT_ID);
                             $criteria->addJoin(ExaminationSubjectTeacherPeer::TEACHER_ID, TeacherPeer::ID);
                             $criteria->addJoin(TeacherPeer::PERSON_ID, PersonPeer::ID);
                             $criteria->add(PersonPeer::IS_ACTIVE, true);
                             $criteria->add(PersonPeer::USER_ID, $user->getGuardUser()->getId());
                         }
                     } elseif ($event->getSubject() instanceof examination_repprovedActions) {
                         $school_year_id = sfContext::getInstance()->getUser()->getReferenceFor("schoolyear");
                         $criteria->add(ExaminationRepprovedPeer::SCHOOL_YEAR_ID, $school_year_id);
                         if ($user->isTeacher()) {
                             $criteria->addJoin(ExaminationRepprovedPeer::ID, ExaminationRepprovedSubjectPeer::EXAMINATION_REPPROVED_ID);
                             $criteria->addJoin(ExaminationRepprovedSubjectPeer::ID, ExaminationRepprovedSubjectTeacherPeer::EXAMINATION_REPPROVED_SUBJECT_ID);
                             $criteria->addJoin(ExaminationRepprovedSubjectTeacherPeer::TEACHER_ID, TeacherPeer::ID);
                             $criteria->addJoin(TeacherPeer::PERSON_ID, PersonPeer::ID);
                             $criteria->add(PersonPeer::IS_ACTIVE, true);
                             $criteria->add(PersonPeer::USER_ID, $user->getGuardUser()->getId());
                         }
                     } elseif ($event->getSubject() instanceof examination_repproved_subjectActions) {
                         $examination_repproved_id = sfContext::getInstance()->getUser()->getReferenceFor("examination_repproved");
                         $criteria->add(ExaminationRepprovedSubjectPeer::EXAMINATION_REPPROVED_ID, $examination_repproved_id);
                         ExaminationRepprovedSubjectPeer::sortedBySubject($criteria);
                         if ($user->isTeacher()) {
                             $criteria->addJoin(ExaminationRepprovedSubjectPeer::ID, ExaminationRepprovedSubjectTeacherPeer::EXAMINATION_REPPROVED_SUBJECT_ID);
                             $criteria->addJoin(ExaminationRepprovedSubjectTeacherPeer::TEACHER_ID, TeacherPeer::ID);
                             $criteria->addJoin(TeacherPeer::PERSON_ID, PersonPeer::ID);
                             $criteria->add(PersonPeer::IS_ACTIVE, true);
                             $criteria->add(PersonPeer::USER_ID, $user->getGuardUser()->getId());
                         }
                     } else {
                         if ($event->getSubject() instanceof courseActions) {
                             $school_year = SchoolYearPeer::retrieveCurrent();
                             $criteria->add(CoursePeer::DIVISION_ID, null, Criteria::ISNULL);
                             $criteria->add(CoursePeer::SCHOOL_YEAR_ID, $school_year->getId());
                             if ($user->isPreceptor()) {
                                 PersonalPeer::joinWithCourse($criteria, $user->getGuardUser()->getId());
                             }
                             if ($user->isTeacher()) {
                                 $criteria->addJoin(CoursePeer::ID, CourseSubjectPeer::COURSE_ID);
                                 $criteria->addJoin(CourseSubjectPeer::ID, CourseSubjectTeacherPeer::COURSE_SUBJECT_ID);
                                 $criteria->addJoin(CourseSubjectTeacherPeer::TEACHER_ID, TeacherPeer::ID);
                                 $criteria->addJoin(TeacherPeer::PERSON_ID, PersonPeer::ID);
                                 $criteria->add(PersonPeer::IS_ACTIVE, true);
                                 $criteria->add(PersonPeer::USER_ID, $user->getGuardUser()->getId());
                                 $criteria->setDistinct();
                             }
                         } else {
                             if ($event->getSubject() instanceof commissionActions) {
                                 /*
                                 $school_year = SchoolYearPeer::retrieveCurrent();
                                 $criteria->add(CoursePeer::SCHOOL_YEAR_ID, $school_year->getId());
                                 */
                                 CoursePeer::sorted($criteria);
                                 $criteria->add(CoursePeer::DIVISION_ID, null, Criteria::ISNULL);
                                 $criteria->add(CoursePeer::IS_PATHWAY, false);
                                 if ($user->isPreceptor()) {
                                     PersonalPeer::joinWithCourse($criteria, $user->getGuardUser()->getId());
                                 } elseif ($user->isTeacher()) {
                                     TeacherPeer::joinWithCourses($criteria, $user->getGuardUser()->getId(), true);
                                 }
                                 if ($user->isHeadPreceptor()) {
                                     self::addCommissionHeadPreceptorCriteria($criteria, $user);
                                 }
                             } else {
                                 if ($event->getSubject() instanceof final_examinationActions) {
                                     $school_year_id = sfContext::getInstance()->getUser()->getReferenceFor("schoolyear");
                                     $criteria->add(FinalExaminationPeer::SCHOOL_YEAR_ID, $school_year_id);
                                 } else {
                                     if ($event->getSubject() instanceof final_examination_subjectActions) {
                                         $final_examination_id = sfContext::getInstance()->getUser()->getReferenceFor("final_examination");
                                         $criteria->add(FinalExaminationSubjectPeer::FINAL_EXAMINATION_ID, $final_examination_id);
                                         if ($user->isTeacher()) {
                                             $criteria->addJoin(FinalExaminationSubjectTeacherPeer::TEACHER_ID, TeacherPeer::ID);
                                             $criteria->addJoin(TeacherPeer::PERSON_ID, PersonPeer::ID);
                                             $criteria->add(PersonPeer::IS_ACTIVE, true);
                                             $criteria->add(PersonPeer::USER_ID, $user->getGuardUser()->getId());
                                         }
                                     } else {
                                         if ($event->getSubject() instanceof equivalenceActions) {
                                             $student_id = sfContext::getInstance()->getUser()->getReferenceFor("student");
                                             $criteria->add(StudentCareerSchoolYearPeer::STUDENT_ID, $student_id);
                                         } else {
                                             if ($event->getSubject() instanceof sub_orientationActions) {
                                                 $orientation_id = sfContext::getInstance()->getUser()->getReferenceFor("orientation");
                                                 $criteria->add(SubOrientationPeer::ORIENTATION_ID, $orientation_id);
                                             } else {
                                                 if ($event->getSubject() instanceof student_reincorporationActions) {
                                                     $student_id = sfContext::getInstance()->getUser()->getReferenceFor("student");
                                                     if (is_null($student_id)) {
                                                         $student_id = $user->getAttribute('student_id');
                                                     }
                                                     $criteria->add(StudentReincorporationPeer::STUDENT_ID, $student_id);
                                                     $criteria->addJoin(StudentReincorporationPeer::CAREER_SCHOOL_YEAR_PERIOD_ID, CareerSchoolYearPeriodPeer::ID);
                                                     $criteria->addJoin(CareerSchoolYearPeriodPeer::CAREER_SCHOOL_YEAR_ID, CareerSchoolYearPeer::ID);
                                                     $criteria->add(CareerSchoolYearPeer::SCHOOL_YEAR_ID, SchoolYearPeer::retrieveCurrent()->getId());
                                                 } elseif ($event->getSubject() instanceof shared_course_subjectActions) {
                                                     $teacher_id = sfContext::getInstance()->getUser()->getReferenceFor("teacher");
                                                     $criteria->addJoin(CourseSubjectPeer::ID, CourseSubjectTeacherPeer::COURSE_SUBJECT_ID);
                                                     $criteria->addJoin(CourseSubjectTeacherPeer::TEACHER_ID, $teacher_id);
                                                     $criteria->setDistinct();
                                                 } elseif ($event->getSubject() instanceof personalActions) {
                                                     $criteria->add(PersonalPeer::PERSONAL_TYPE, PersonalType::PRECEPTOR);
                                                 } elseif ($event->getSubject() instanceof head_personalActions) {
                                                     $criteria->add(PersonalPeer::PERSONAL_TYPE, PersonalType::HEAD_PRECEPTOR);
                                                 } elseif ($event->getSubject() instanceof student_officeActions) {
                                                     $criteria->add(PersonalPeer::PERSONAL_TYPE, PersonalType::STUDENTS_OFFICE);
                                                 } elseif ($event->getSubject() instanceof studentActions) {
                                                     if ($user->isPreceptor()) {
                                                         SchoolBehaviourFactory::getInstance()->joinPreceptorWithStudents($criteria, $user->getGuardUser()->getId());
                                                     } elseif ($user->isTeacher()) {
                                                         TeacherPeer::joinWithStudents($criteria, $user->getGuardUser()->getId());
                                                     }
                                                     if ($user->isHeadPreceptor()) {
                                                         $criteria->addJoin(DivisionStudentPeer::STUDENT_ID, StudentPeer::ID);
                                                         $criteria->addJoin(DivisionStudentPeer::DIVISION_ID, DivisionPeer::ID);
                                                         self::addDivisionHeadPersonalCriteria($criteria, $user);
                                                     }
                                                 } elseif ($event->getSubject() instanceof licenseActions) {
                                                     if (!is_null(sfContext::getInstance()->getUser()->getReferenceFor("teacher"))) {
                                                         $person_id = TeacherPeer::retrieveByPK(sfContext::getInstance()->getUser()->getReferenceFor("teacher"))->getPersonId();
                                                     } else {
                                                         $person_id = PersonalPeer::retrieveByPK(sfContext::getInstance()->getUser()->getReferenceFor("personal"))->getPersonId();
                                                     }
                                                     $criteria->add(LicensePeer::PERSON_ID, $person_id);
                                                 } elseif ($event->getSubject() instanceof teacherActions) {
                                                     $criteria->setDistinct();
                                                 } else {
                                                     if ($event->getSubject() instanceof career_school_year_periodActions) {
                                                         $career_school_year_id = sfContext::getInstance()->getUser()->getReferenceFor("career_school_year");
                                                         $criteria->add(CareerSchoolYearPeriodPeer::CAREER_SCHOOL_YEAR_ID, $career_school_year_id);
                                                     } else {
                                                         if ($event->getSubject() instanceof student_freeActions) {
                                                             $student_id = sfContext::getInstance()->getUser()->getReferenceFor("student");
                                                             if (is_null($student_id)) {
                                                                 $student_id = $user->getAttribute('student_id');
                                                             }
                                                             $criteria->add(StudentFreePeer::STUDENT_ID, $student_id);
                                                         } else {
                                                             if ($event->getSubject() instanceof course_subject_student_examinationActions) {
                                                                 $examination_subject_id = sfContext::getInstance()->getUser()->getReferenceFor("examination_subject");
                                                                 $criteria->add(CourseSubjectStudentExaminationPeer::EXAMINATION_SUBJECT_ID, $examination_subject_id);
                                                             } else {
                                                                 if ($event->getSubject() instanceof student_examination_repproved_subjectActions) {
                                                                     $examination_repproved_subject_id = sfContext::getInstance()->getUser()->getReferenceFor("examination_repproved_subject");
                                                                     $criteria->add(StudentExaminationRepprovedSubjectPeer::EXAMINATION_REPPROVED_SUBJECT_ID, $examination_repproved_subject_id);
                                                                 } else {
                                                                     if ($event->getSubject() instanceof pathway_commissionActions) {
                                                                         $criteria->add(CoursePeer::IS_PATHWAY, true);
                                                                     }
                                                                 }
                                                             }
                                                         }
                                                     }
                                                 }
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
     return $criteria;
 }
Exemplo n.º 20
0
 public function getErrorsWithCourseSubjectsStudent($career_school_year)
 {
     $c = new Criteria();
     $c->add(CareerSchoolYearPeer::ID, $career_school_year->getId());
     $c->addJoin(CareerSubjectSchoolYearPeer::CAREER_SCHOOL_YEAR_ID, CareerSchoolYearPeer::ID);
     $c->addJoin(CareerSubjectSchoolYearPeer::ID, CourseSubjectPeer::CAREER_SUBJECT_SCHOOL_YEAR_ID);
     $c->addJoin(CourseSubjectStudentPeer::COURSE_SUBJECT_ID, CourseSubjectPeer::ID);
     $c->add(CourseSubjectStudentPeer::STUDENT_ID, $this->getId());
     $c->clearSelectColumns();
     $c->addSelectColumn(CareerSubjectSchoolYearPeer::ID);
     $stmt = CareerSubjectSchoolYearPeer::doSelectStmt($c);
     //me quedo solo con los IDs de los CareerSubjectSchoolYear
     $array = $stmt->fetchAll(PDO::FETCH_COLUMN);
     unset($stmt);
     //ordeno de mayot a menor
     arsort($array);
     //armo un arreglo con las claves de los CareerSubjectSchoolYear->ID y
     //valor la cantidad de veces que esta adentro del arreglo
     $array_count = array_count_values($array);
     unset($array);
     //Filtro los valores que son menores a 1
     $array_filtered = array_filter($array_count, create_function('$each', 'return $each>1;'));
     CareerSubjectSchoolYearPeer::clearInstancePool();
     unset($array_count);
     if (!empty($array_filtered)) {
         $array_filtered = SchoolBehaviourFactory::getEvaluatorInstance()->evaluateErrorsWithCareerSubjectSchoolYear($array_filtered);
     }
     return $array_filtered;
 }
Exemplo n.º 21
0
 public function copyConfiguration(PropelPDP $con = null)
 {
     $con = is_null($con) ? Propel::getConnection() : $con;
     $c = new Criteria();
     $c->add(CareerSchoolYearPeer::CAREER_ID, $this->getCareerId());
     $c->add(CareerSchoolYearPeer::SCHOOL_YEAR_ID, SchoolYearPeer::retrieveCurrent()->getId(), Criteria::NOT_EQUAL);
     $c->addDescendingOrderByColumn(CareerSchoolYearPeer::ID);
     try {
         $con->beginTransaction();
         //First copy the career configuration.
         $last_career = CareerSchoolYearPeer::doSelectOne($c);
         $configuration = $last_career->getSubjectConfiguration()->copy();
         $this->setSubjectConfiguration($configuration);
         //Second copy the career_subjects configurations
         foreach ($this->getCareerSubjectSchoolYears() as $cssy) {
             $c = new Criteria();
             $c->add(CareerSubjectSchoolYearPeer::CAREER_SUBJECT_ID, $cssy->getCareerSubjectId());
             $c->add(CareerSubjectSchoolYearPeer::CAREER_SCHOOL_YEAR_ID, $last_career->getId());
             $last_career_subject = CareerSubjectSchoolYearPeer::doSelectOne($c);
             if (!is_null($last_career_subject) && !is_null($last_career_subject->getSubjectConfiguration())) {
                 $cssy->setSubjectConfiguration($last_career_subject->getSubjectConfiguration()->copy());
                 $cssy->save($con);
             }
         }
         $this->save($con);
         $con->commit();
     } catch (PropelException $e) {
         $con->rollback();
         throw $e->getMessage();
     }
 }
Exemplo n.º 22
0
 public static function retrieveByStudentApprovedCareerSubject($student_approved_career_subject, $school_year = null)
 {
     $career_subject_school_year = CareerSubjectSchoolYearPeer::retrieveByCareerSubjectAndSchoolYear($student_approved_career_subject->getCareerSubject(), $school_year);
     return self::retrieveByCareerSubjectSchoolYearAndStudent($career_subject_school_year, $student_approved_career_subject->getStudentId());
 }
Exemplo n.º 23
0
 public function createAllCourses($con = null)
 {
     if (is_null($con)) {
         $con = Propel::getConnection();
     }
     try {
         $con->beginTransaction();
         /* @var $career_subject CareerSubject */
         foreach ($this->getUnrelatedCareerSubjects() as $career_subject) {
             $career_subject_school_year_id = CareerSubjectSchoolYearPeer::retrieveByCareerSubjectAndSchoolYear($career_subject, $this->getSchoolYear())->getId();
             $this->createCourse($career_subject_school_year_id, $con);
         }
         $con->commit();
     } catch (PropelException $e) {
     }
 }
Exemplo n.º 24
0
 public function getLastYearCareerSubjectSchoolYear()
 {
     $last_school_year = SchoolYearPeer::retrieveLastYearSchoolYear($this->getSchoolYear());
     $last_year_career_subject_school_year = CareerSubjectSchoolYearPeer::retrieveByCareerSubjectAndSchoolYear($this->getCareerSubject(), $last_school_year);
     return $last_year_career_subject_school_year;
 }
Exemplo n.º 25
0
 public function addSubjectColumnCriteria(Criteria $criteria, $field, $value)
 {
     $current_career_subject_school_year_ids = CareerSubjectSchoolYearPeer::getCurrentCareerSubjectSchoolYearIdsBySubjectId($value);
     $criteria->add(CourseSubjectPeer::CAREER_SUBJECT_SCHOOL_YEAR_ID, $current_career_subject_school_year_ids, Criteria::IN);
     $criteria->addJoin(CourseSubjectTeacherPeer::COURSE_SUBJECT_ID, CourseSubjectPeer::ID);
     $criteria->addJoin(TeacherPeer::ID, CourseSubjectTeacherPeer::TEACHER_ID);
 }
Exemplo n.º 26
0
 public function getCourseSubjectStudentsForCourseType($student, $course_type, $school_year = null)
 {
     $not_in = SchoolBehaviourFactory::getEvaluatorInstance()->getLvmSpecialSubjectIds($school_year);
     if (is_null($school_year)) {
         $school_year = SchoolYearPeer::retrieveCurrent();
     }
     $c = new Criteria();
     $c->add(CoursePeer::SCHOOL_YEAR_ID, $school_year->getId());
     $c->addJoin(CourseSubjectPeer::COURSE_ID, CoursePeer::ID);
     $c->addJoin(CourseSubjectStudentPeer::COURSE_SUBJECT_ID, CourseSubjectPeer::ID);
     $c->add(CourseSubjectPeer::CAREER_SUBJECT_SCHOOL_YEAR_ID, $not_in, Criteria::NOT_IN);
     $c->addJoin(CourseSubjectPeer::CAREER_SUBJECT_SCHOOL_YEAR_ID, CareerSubjectSchoolYearPeer::ID);
     CareerSubjectSchoolYearPeer::sorted($c);
     $course_subject_students = $student->getCourseSubjectStudents($c);
     $results = array();
     foreach ($course_subject_students as $css) {
         if ($css->getCourseSubject()->getCourseType() == $course_type) {
             $results[] = $css;
         }
     }
     return $results;
 }
 public function getLvmSpecialSubjects($school_year = null)
 {
     if (is_null($school_year)) {
         $school_year = SchoolYearPeer::retrieveCurrent();
     }
     $c = new Criteria();
     $c->add(CareerSubjectPeer::SUBJECT_ID, $this->_introduccion, Criteria::IN);
     $c->addJoin(CareerSubjectSchoolYearPeer::CAREER_SUBJECT_ID, CareerSubjectPeer::ID);
     $c->addJoin(CareerSubjectSchoolYearPeer::CAREER_SCHOOL_YEAR_ID, CareerSchoolYearPeer::ID, Criteria::INNER_JOIN);
     $c->add(CareerSchoolYearPeer::SCHOOL_YEAR_ID, $school_year->getId());
     return CareerSubjectSchoolYearPeer::doSelect($c);
 }
Exemplo n.º 28
0
 public function copyCourseSubjects(PropelPDO $con = null, Division $division = null, CareerSchoolYear $career_school_year, $copy_course)
 {
     $course_subjects = $this->getCourseSubjects();
     foreach ($course_subjects as $course_subject) {
         $copy_course_subject = new CourseSubject();
         $copy_course_subject->setCourse($copy_course);
         $career_subject_school_year = CareerSubjectSchoolYearPeer::retrieveByCareerSubjectAndSchoolYear($course_subject->getCareerSubjectSchoolYear()->getCareerSubject(), $career_school_year->getSchoolYear());
         CareerSubjectSchoolYearPeer::clearInstancePool();
         $copy_course_subject->setCareerSubjectSchoolYear($career_subject_school_year);
         $copy_course_subject->save($con);
         $course_subject->copyTeachersToCourseSubject($con, $copy_course_subject);
         $course_subject->copyCourseSubjectDays($con, $copy_course_subject);
         $career_subject_school_year->clearAllReferences(true);
         unset($career_subject_school_year);
         $copy_course_subject->clearAllReferences(true);
         unset($copy_course_subject);
         $course_subject->clearAllReferences(true);
         unset($course_subject);
     }
     unset($course_subjects);
     $this->clearAllReferences(true);
 }
 public function getHistoriaDelArteForSchoolYear($school_year)
 {
     $c = new Criteria();
     $c->add(CareerSubjectSchoolYearPeer::CAREER_SUBJECT_ID, 134);
     $c->addJoin(CareerSubjectSchoolYearPeer::CAREER_SCHOOL_YEAR_ID, CareerSchoolYearPeer::ID, Criteria::INNER_JOIN);
     $c->add(CareerSchoolYearPeer::SCHOOL_YEAR_ID, $school_year->getId());
     return CareerSubjectSchoolYearPeer::doSelectOne($c);
 }
Exemplo n.º 30
0
 public static function retrieveByCareerSubjectSchoolYearId($career_subject_school_year_id)
 {
     return CareerSubjectSchoolYearPeer::retrieveByPK($career_subject_school_year_id)->getCareerSubject();
 }