Exemple #1
0
 public function executeGrabarNotas()
 {
     // inicializando variables
     $aDatosTablaEscalaNota = array();
     // tomando los datos del formulario
     $division_id = $this->getRequestParameter('division_id');
     $actividad_id = $this->getRequestParameter('actividad_id');
     $periodo_id = $this->getRequestParameter('periodo_id');
     $carrera_id = $this->getRequestParameter('carrera_id');
     $aNota = $this->getRequestParameter('nota');
     $cantNotas = count($aNota);
     if ($cantNotas > 0) {
         // tomo escala notas
         $establecimiento_id = $this->getUser()->getAttribute('fk_establecimiento_id');
         $aDatosTablaEscalaNota = $this->getEscalanota($establecimiento_id);
         //grabo al disco
         $con = Propel::getConnection();
         try {
             //$con->begin();
             $criteria = new Criteria();
             foreach ($aNota as $alumno_id => $aPeriodo) {
                 foreach ($aPeriodo as $periodoid => $nota) {
                     $cton1 = $criteria->getNewCriterion(BoletinActividadesPeer::FK_ALUMNO_ID, $alumno_id);
                     $cton2 = $criteria->getNewCriterion(BoletinActividadesPeer::FK_PERIODO_ID, $periodoid);
                     $cton3 = $criteria->getNewCriterion(BoletinActividadesPeer::FK_ACTIVIDAD_ID, $actividad_id);
                     $cton1->addAnd($cton2)->addAnd($cton3);
                     $criteria->addOr($cton1);
                 }
             }
             BoletinActividadesPeer::doDelete($criteria);
             foreach ($aNota as $alumno_id => $aPeriodo) {
                 foreach ($aPeriodo as $periodoid => $nota) {
                     // estaria bueno hacer todos los insert en una sola query
                     $boletin = new BoletinActividades();
                     $boletin->setFkAlumnoId($alumno_id);
                     $boletin->setFkPeriodoId($periodoid);
                     $boletin->setFkActividadId($actividad_id);
                     if (array_key_exists($nota[0], $aDatosTablaEscalaNota)) {
                         $boletin->setFkEscalanotaId($aDatosTablaEscalaNota[$nota[0]]);
                     }
                     $boletin->setFecha(date("Y-m-d"));
                     $boletin->save();
                 }
             }
             //$con->commit();
         } catch (Exception $e) {
             //$con->rollback();
             throw $e;
         }
     }
     return $this->redirect("boletin/list?carrera_id={$carrera_id}&division_id={$division_id}&actividad_id={$actividad_id}&periodo_id={$periodo_id}");
 }
 public static function addInstanceToPool(BoletinActividades $obj, $key = null)
 {
     if (Propel::isInstancePoolingEnabled()) {
         if ($key === null) {
             $key = (string) $obj->getId();
         }
         self::$instances[$key] = $obj;
     }
 }