[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