[Alba-desarrollo] SVN Alba r6169 - in prosistem/alba/trunk/alba: apps/principal/modules/boletin/actions apps/principal/modules/informes/actions lib/model

commits en pressenter.com.ar commits en pressenter.com.ar
Sab Mayo 9 03:27:03 CEST 2009


Author: josx
Date: 2009-05-08 22:27:03 -0300 (Fri, 08 May 2009)
New Revision: 6169

Modified:
   prosistem/alba/trunk/alba/apps/principal/modules/boletin/actions/actions.class.php
   prosistem/alba/trunk/alba/apps/principal/modules/informes/actions/actions.class.php
   prosistem/alba/trunk/alba/lib/model/Alumno.php
Log:
Sacando funcionalidad de boletines y poniendola en objeto de alumno

Modified: prosistem/alba/trunk/alba/apps/principal/modules/boletin/actions/actions.class.php
===================================================================
--- prosistem/alba/trunk/alba/apps/principal/modules/boletin/actions/actions.class.php	2009-05-08 18:48:48 UTC (rev 6168)
+++ prosistem/alba/trunk/alba/apps/principal/modules/boletin/actions/actions.class.php	2009-05-09 01:27:03 UTC (rev 6169)
@@ -403,38 +403,17 @@
                 $optionsActividad = $this->getActividades($division_id);
                 $optionsConcepto = $this->getConcepto($establecimiento_id);
 
-                // notas del alumno
-                $criteria = new Criteria();
-                $criteria->add(BoletinActividadesPeer::FK_ALUMNO_ID, $alumno->getId());
-                $criteria->addJoin(BoletinActividadesPeer::FK_ESCALANOTA_ID, EscalanotaPeer::ID);
-                $criteria->addAsColumn("boletinActividades_periodo_id", BoletinActividadesPeer::FK_PERIODO_ID);
-                $criteria->addAsColumn("boletinActividades_actividad_id", BoletinActividadesPeer::FK_ACTIVIDAD_ID);
-                $criteria->addAsColumn("escalanota_nombre", EscalanotaPeer::NOMBRE);
-                $aBoletinActividades = BasePeer::doSelect($criteria);
-                foreach($aBoletinActividades as $boletinActividades) {
-                    $notaAlumno[$boletinActividades[0]][$boletinActividades[1]] = $boletinActividades[2];
-                }
+                $notaAlumno = $alumno->getNotas();
+                $conceptoAlumno = $alumno->getNotasConcepto();
 
-
-                //conceptos de alumno
                 $criteria = new Criteria();
-                $criteria->add(BoletinConceptualPeer::FK_ALUMNO_ID, $alumno->getId());
-                $aBoletinConceptual = BoletinConceptualPeer::doSelect($criteria);
-                foreach($aBoletinConceptual as $boletinConceptual ) {
-                    if($boletinConceptual->getFkEscalanotaId()) {
-                        $conceptoAlumno[$boletinConceptual->getFkPeriodoId()][$boletinConceptual->getFkConceptoId()] = $boletinConceptual->getEscalanota()->getNombre();
-                    }
-                    if($boletinConceptual->getObservacion() != null) {
-                        $conceptoAlumno[$boletinConceptual->getFkPeriodoId()][$boletinConceptual->getFkConceptoId()] = $boletinConceptual->getObservacion();
-                    }
-                }            
-                $criteria = new Criteria();
                 $criteria->add(PeriodoPeer::FK_CICLOLECTIVO_ID, $this->getUser()->getAttribute('fk_ciclolectivo_id'));
                 $aPeriodo = PeriodoPeer::doSelect($criteria);
                 foreach($aPeriodo as $periodo) {
                     $optionsPeriodo[$periodo->getId()] = $periodo->getDescripcion();
-                    $aAsistencia[$periodo->getId()] = $this->getAsistenciaTotal($alumno_id, $periodo->getFechaInicio(), $periodo->getFechaFin());
-                }       
+                    $aAsistencia[$periodo->getId()] = $alumno->getAsistenciasPorFechas($periodo->getFechaInicio(), $periodo->getFechaFin());
+                }
+
             } else {
                 $this->getUser()->setFlash('notice','Error: el alumno no esta en ninguna división');
             }
@@ -534,44 +513,4 @@
         return $this->redirect("boletin/listConcepto?division_id=$division_id&concepto_id=$concepto_id&periodo_id=$periodo_id&carrera_id=$carrera_id");
     }   
 
-
-    public function getAsistenciaTotal($alumno_id, $fecha_inicio, $fecha_fin) {
-        $aAsistencia = array();
-
-        // En teoria esta dos consultas pueden reemplazarse con una solo usando LEFT JOIN y CASE
-
-        $c = new Criteria();
-        $c->addGroupByColumn(TipoasistenciaPeer::GRUPO);
-        $c->addSelectColumn(TipoasistenciaPeer::GRUPO);
-        $rsColumna = TipoasistenciaPeer::doSelectStmt($c);
-
-        $c = new Criteria();
-        $c->clearSelectColumns();
-        $c->addGroupByColumn(TipoasistenciaPeer::GRUPO);
-        $c->addSelectColumn(TipoasistenciaPeer::GRUPO);
-        $c->addSelectColumn('SUM('.TipoasistenciaPeer::VALOR.') AS valor');
-        $c->addJoin(TipoasistenciaPeer::ID, AsistenciaPeer::FK_TIPOASISTENCIA_ID);
-        $c->add(AsistenciaPeer::FK_ALUMNO_ID, $alumno_id, Criteria::EQUAL);
-        $c2 = new Criteria();
-        $criterion = $c2->getNewCriterion(AsistenciaPeer::FECHA, $fecha_inicio, Criteria::GREATER_EQUAL);
-        $criterion->addAnd($c2->getNewCriterion(AsistenciaPeer::FECHA, $fecha_fin, Criteria::LESS_EQUAL));
-        $c->add($criterion);
-        $rsValor = TipoasistenciaPeer::doSelectStmt($c);
-
-        if($rsColumna) {
-            while( $res = $rsColumna->fetchColumn(1)) {
-                $aAsistencia[$res] = 0;  // indice: nombre del Grupo, contenido: 
-            }
-        }
-
-        if($rsValor) {
-            while($rsValor->fetch()) {
-                // indice: nombre del Grupo, contenido: sumatoria de valor
-                $aAsistencia[$rsValor->fetchColumn(1)] = $rsValor->fetchColumn(2); 
-            }
-        }
-
-        return $aAsistencia;
-    }
-
 }

Modified: prosistem/alba/trunk/alba/apps/principal/modules/informes/actions/actions.class.php
===================================================================
--- prosistem/alba/trunk/alba/apps/principal/modules/informes/actions/actions.class.php	2009-05-08 18:48:48 UTC (rev 6168)
+++ prosistem/alba/trunk/alba/apps/principal/modules/informes/actions/actions.class.php	2009-05-09 01:27:03 UTC (rev 6169)
@@ -708,6 +708,10 @@
                     }
                     break;
 
+                case 'boletin':
+                    
+
+                    break;
                 default:
             }
         }

Modified: prosistem/alba/trunk/alba/lib/model/Alumno.php
===================================================================
--- prosistem/alba/trunk/alba/lib/model/Alumno.php	2009-05-08 18:48:48 UTC (rev 6168)
+++ prosistem/alba/trunk/alba/lib/model/Alumno.php	2009-05-09 01:27:03 UTC (rev 6169)
@@ -56,5 +56,79 @@
     }
 
 
+    public function getNotasConcepto() {
+        $conceptoAlumno = array();
+        $criteria = new Criteria();
+        $criteria->add(BoletinConceptualPeer::FK_ALUMNO_ID, $this->getId());
+        $aBoletinConceptual = BoletinConceptualPeer::doSelect($criteria);
+        foreach($aBoletinConceptual as $boletinConceptual ) {
+            if($boletinConceptual->getFkEscalanotaId()) {
+                $conceptoAlumno[$boletinConceptual->getFkPeriodoId()][$boletinConceptual->getFkConceptoId()] = $boletinConceptual->getEscalanota()->getNombre();
+            }
+            if($boletinConceptual->getObservacion() != null) {
+               $conceptoAlumno[$boletinConceptual->getFkPeriodoId()][$boletinConceptual->getFkConceptoId()] = $boletinConceptual->getObservacion();
+            }
+        }
+        return $conceptoAlumno;
+    }
 
+    public function getNotas() {
+        $notaAlumno = array();
+        // notas del alumno
+        $criteria = new Criteria();
+        $criteria->add(BoletinActividadesPeer::FK_ALUMNO_ID, $this->getId());
+        $criteria->addJoin(BoletinActividadesPeer::FK_ESCALANOTA_ID, EscalanotaPeer::ID);
+        $criteria->addAsColumn("boletinActividades_periodo_id", BoletinActividadesPeer::FK_PERIODO_ID);
+        $criteria->addAsColumn("boletinActividades_actividad_id", BoletinActividadesPeer::FK_ACTIVIDAD_ID);
+        $criteria->addAsColumn("escalanota_nombre", EscalanotaPeer::NOMBRE);
+        $aBoletinActividades = BasePeer::doSelect($criteria);
+        foreach($aBoletinActividades as $boletinActividades) {
+            $notaAlumno[$boletinActividades[0]][$boletinActividades[1]] = $boletinActividades[2];
+        }
+
+        return $notaAlumno;
+    }
+
+
+    public function getAsistenciasPorFechas($fecha_inicio, $fecha_fin) {
+        $aAsistencia = array();
+
+        // En teoria esta dos consultas pueden reemplazarse con una solo usando LEFT JOIN y CASE
+
+        $c = new Criteria();
+        $c->addGroupByColumn(TipoasistenciaPeer::GRUPO);
+        $c->addSelectColumn(TipoasistenciaPeer::GRUPO);
+        $rsColumna = TipoasistenciaPeer::doSelectStmt($c);
+
+        $c = new Criteria();
+        $c->clearSelectColumns();
+        $c->addGroupByColumn(TipoasistenciaPeer::GRUPO);
+        $c->addSelectColumn(TipoasistenciaPeer::GRUPO);
+        $c->addSelectColumn('SUM('.TipoasistenciaPeer::VALOR.') AS valor');
+        $c->addJoin(TipoasistenciaPeer::ID, AsistenciaPeer::FK_TIPOASISTENCIA_ID);
+        $c->add(AsistenciaPeer::FK_ALUMNO_ID, $this->getId(), Criteria::EQUAL);
+        $c2 = new Criteria();
+        $criterion = $c2->getNewCriterion(AsistenciaPeer::FECHA, $fecha_inicio, Criteria::GREATER_EQUAL);
+        $criterion->addAnd($c2->getNewCriterion(AsistenciaPeer::FECHA, $fecha_fin, Criteria::LESS_EQUAL));
+        $c->add($criterion);
+        $rsValor = TipoasistenciaPeer::doSelectStmt($c);
+
+        if($rsColumna) {
+            while( $res = $rsColumna->fetchColumn(1)) {
+                $aAsistencia[$res] = 0;  // indice: nombre del Grupo, contenido: 
+            }
+        }
+
+        if($rsValor) {
+            while($rsValor->fetch()) {
+                // indice: nombre del Grupo, contenido: sumatoria de valor
+                $aAsistencia[$rsValor->fetchColumn(1)] = $rsValor->fetchColumn(2); 
+            }
+        }
+
+        return $aAsistencia;
+
+
+    }
+
 } // Alumno




Más información sobre la lista de distribución Alba-desarrollo