Пример #1
0
 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->addSelectColumn(TipoasistenciaPeer::DESCRIPCION);
     $c->add(TipoasistenciaPeer::GRUPO, 'Inasistencias', Criteria::EQUAL);
     $rsColumna = TipoasistenciaPeer::doSelectStmt($c);
     $c = new Criteria();
     $c->clearSelectColumns();
     $c->addGroupByColumn(TipoasistenciaPeer::DESCRIPCION);
     //        $c->addSelectColumn(TipoasistenciaPeer::GRUPO);
     $c->addSelectColumn(TipoasistenciaPeer::DESCRIPCION);
     $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);
     $c->add(TipoasistenciaPeer::GRUPO, 'Inasistencias', Criteria::EQUAL);
     $rsValor = TipoasistenciaPeer::doSelectStmt($c);
     if ($rsColumna) {
         while ($res_c = $rsColumna->fetch()) {
             $aAsistencia[$res_c[0]] = 0;
             // indice: nombre del Grupo, contenido:
         }
     }
     if ($rsValor) {
         while ($res = $rsValor->fetch()) {
             // indice: nombre del Grupo, contenido: sumatoria de valor
             $aAsistencia[$res[0]] = $res[1];
         }
     }
     return $aAsistencia;
 }
Пример #2
0
 public function reload($deep = false, PropelPDO $con = null)
 {
     if ($this->isDeleted()) {
         throw new PropelException("Cannot reload a deleted object.");
     }
     if ($this->isNew()) {
         throw new PropelException("Cannot reload an unsaved object.");
     }
     if ($con === null) {
         $con = Propel::getConnection(TipoasistenciaPeer::DATABASE_NAME, Propel::CONNECTION_READ);
     }
     $stmt = TipoasistenciaPeer::doSelectStmt($this->buildPkeyCriteria(), $con);
     $row = $stmt->fetch(PDO::FETCH_NUM);
     $stmt->closeCursor();
     if (!$row) {
         throw new PropelException('Cannot find matching row in the database to reload object values.');
     }
     $this->hydrate($row, 0, true);
     if ($deep) {
         $this->collAsistencias = null;
         $this->lastAsistenciaCriteria = null;
     }
 }
Пример #3
0
 public static function doSelect(Criteria $criteria, PropelPDO $con = null)
 {
     return TipoasistenciaPeer::populateObjects(TipoasistenciaPeer::doSelectStmt($criteria, $con));
 }