public function getAsistenciasJoinAlumno($criteria = null, $con = null, $join_behavior = Criteria::LEFT_JOIN) { if ($criteria === null) { $criteria = new Criteria(TipoasistenciaPeer::DATABASE_NAME); } elseif ($criteria instanceof Criteria) { $criteria = clone $criteria; } if ($this->collAsistencias === null) { if ($this->isNew()) { $this->collAsistencias = array(); } else { $criteria->add(AsistenciaPeer::FK_TIPOASISTENCIA_ID, $this->id); $this->collAsistencias = AsistenciaPeer::doSelectJoinAlumno($criteria, $con, $join_behavior); } } else { $criteria->add(AsistenciaPeer::FK_TIPOASISTENCIA_ID, $this->id); if (!isset($this->lastAsistenciaCriteria) || !$this->lastAsistenciaCriteria->equals($criteria)) { $this->collAsistencias = AsistenciaPeer::doSelectJoinAlumno($criteria, $con, $join_behavior); } } $this->lastAsistenciaCriteria = $criteria; return $this->collAsistencias; }
public function fromArray($arr, $keyType = BasePeer::TYPE_PHPNAME) { $keys = AsistenciaPeer::getFieldNames($keyType); if (array_key_exists($keys[0], $arr)) { $this->setId($arr[$keys[0]]); } if (array_key_exists($keys[1], $arr)) { $this->setFkAlumnoId($arr[$keys[1]]); } if (array_key_exists($keys[2], $arr)) { $this->setFkTipoasistenciaId($arr[$keys[2]]); } if (array_key_exists($keys[3], $arr)) { $this->setFecha($arr[$keys[3]]); } }
/** * Graba las asistencias */ public function executeGrabar() { // inicializando variables $aDatosTipoasistencia = array(); // tomando los datos del formulario $division_id = $this->getRequestParameter('division_id'); $vista_id = $this->getRequestParameter('vista_id'); $d = $this->getRequestParameter('dia'); $m = $this->getRequestParameter('mes'); $y = $this->getRequestParameter('ano'); $destino = "asistencia/index?division_id={$division_id}&dia={$d}&mes={$m}&ano={$y}&vistas={$vista_id}"; if ($this->getRequestParameter('alumno_id')) { $alumno_id = $this->getRequestParameter('alumno_id'); $destino .= "&alumno_id={$alumno_id}"; } $aAsistencia = $this->getRequestParameter('asistencia'); $cantAsistencia = count($aAsistencia); if ($cantAsistencia > 0) { // tomo los tipos de asistencias $aDatosTablaTipoAsistencias = $this->getTiposasistencias(); //grabo al disco $con = Propel::getConnection(); // Propel::getConnection() try { $con->beginTransaction(); $criteria = new Criteria(); foreach ($aAsistencia as $alumno_id => $aPeriodo) { foreach ($aPeriodo as $fecha => $Tipoasistencia) { $cton1 = $criteria->getNewCriterion(AsistenciaPeer::FK_ALUMNO_ID, $alumno_id); $cton2 = $criteria->getNewCriterion(AsistenciaPeer::FECHA, $fecha); $cton1->addAnd($cton2); $criteria->addOr($cton1); } } AsistenciaPeer::doDelete($criteria); foreach ($aAsistencia as $alumno_id => $aPeriodo) { foreach ($aPeriodo as $fecha => $Tipoasistencia) { $Asistencia = new Asistencia(); $Tipoasistencia = strtoupper($Tipoasistencia); if (array_key_exists($Tipoasistencia, $aDatosTablaTipoAsistencias)) { $Asistencia->setFkAlumnoId($alumno_id); list($y, $m, $d) = split("[/. -]", $fecha); $fecha = "{$y}-{$m}-{$d}"; $Asistencia->setFecha($fecha); $Asistencia->setFkTipoasistenciaId($aDatosTablaTipoAsistencias[$Tipoasistencia][0]); $Asistencia->save(); } } } $con->commit(); } catch (PDOException $e) { $con->rollBack(); throw $e; } } return $this->redirect($destino); }
public static function retrieveByPKs($pks, PropelPDO $con = null) { if ($con === null) { $con = Propel::getConnection(AsistenciaPeer::DATABASE_NAME, Propel::CONNECTION_READ); } $objs = null; if (empty($pks)) { $objs = array(); } else { $criteria = new Criteria(AsistenciaPeer::DATABASE_NAME); $criteria->add(AsistenciaPeer::ID, $pks, Criteria::IN); $objs = AsistenciaPeer::doSelect($criteria, $con); } return $objs; }