/** * * @param Cessiomaterial $OCESSIO * @return array('HORARIS','CESSIONS') */ public static function isDisponible(CessiomaterialForm $OCESSIO) { //Mirem si l'article que volem cedir, està disponible a la data de cessio i fins data de retorn (dins els cedits). //Mirem que no s'utilitzi a cap esdeveniment //com saber si un període està pel mig d'un altre. Di1 = HORARIS.DIA // DrI DrF // DpI DpF $ret = array(); $dC = $OCESSIO->getValue('DataCessio'); $dR = $OCESSIO->getValue('DataRetorn'); $idM = $OCESSIO->getValue('Material_idMaterial'); $idC = $OCESSIO->getValue('idCessioMaterial'); //Si un dia d'horaris encaixa pel mig del període de cessió, és dolent. $C = new Criteria(); $C1 = $C->getNewCriterion(HorarisPeer::DIA, $dC, CRITERIA::GREATER_EQUAL); $C2 = $C->getNewCriterion(HorarisPeer::DIA, $dR, CRITERIA::LESS_EQUAL); $C1->addAnd($C2); $C->addOr($C1); $C->addJoin(HorarisPeer::HORARISID, HorarisespaisPeer::HORARIS_HORARISID); $C->add(HorarisespaisPeer::MATERIAL_IDMATERIAL, $idM); $ret['HORARIS'] = HorarisPeer::doSelect($C); //Mirem que no l'haguem cedit algun dia d'aquests $C = new Criteria(); $C3 = $C->getNewCriterion(self::DATACESSIO, $dC, CRITERIA::GREATER_EQUAL); $C4 = $C->getNewCriterion(self::DATACESSIO, $dR, CRITERIA::LESS_EQUAL); $C3->addAnd($C4); $C5 = $C->getNewCriterion(self::DATARETORN, $dR, CRITERIA::LESS_EQUAL); $C6 = $C->getNewCriterion(self::DATARETORN, $dC, CRITERIA::GREATER_EQUAL); $C5->addAnd($C6); $C7 = $C->getNewCriterion(self::DATACESSIO, $dC, CRITERIA::GREATER_EQUAL); $C8 = $C->getNewCriterion(self::DATARETORN, $dR, CRITERIA::LESS_EQUAL); $C7->addAnd($C8); $C3->addOr($C5); $C3->addOr($C7); $C->add($C3); $C->add(self::MATERIAL_IDMATERIAL, $idM, CRITERIA::EQUAL); $C->add(self::IDCESSIOMATERIAL, $idC, CRITERIA::NOT_EQUAL); $C->add(self::RETORNAT, false); $ret['CESSIONS'] = self::doSelect($C); return $ret; }
/** * Retrieve multiple objects by pkey. * * @param array $pks List of primary keys * @param PropelPDO $con the connection to use * @throws PropelException Any exceptions caught during processing will be * rethrown wrapped into a PropelException. */ public static function retrieveByPKs($pks, PropelPDO $con = null) { if ($con === null) { $con = Propel::getConnection(HorarisPeer::DATABASE_NAME, Propel::CONNECTION_READ); } $objs = null; if (empty($pks)) { $objs = array(); } else { $criteria = new Criteria(HorarisPeer::DATABASE_NAME); $criteria->add(HorarisPeer::HORARISID, $pks, Criteria::IN); $objs = HorarisPeer::doSelect($criteria, $con); } return $objs; }
public static function getDiesAmbActivitatsMes($DATACAL, $idS) { $C = new Criteria(); $C = self::getCriteriaActiu($C, $idS); $C = ActivitatsPeer::getCriteriaActiu($C, $idS); $C = HorarisPeer::getCriteriaActiu($C, $idS); $dia_inicial = mktime(0, 0, 0, date('m', $DATACAL), 1, date('Y', $DATACAL)); $dia_final = mktime(0, 0, 0, date('m', $DATACAL) + 1, 1, date('Y', $DATACAL)); $C->add(ActivitatsPeer::PUBLICAWEB, true); $C->addJoin(HorarisPeer::ACTIVITATS_ACTIVITATID, ActivitatsPeer::ACTIVITATID); $C->add(HorarisPeer::DIA, $dia_inicial, CRITERIA::GREATER_EQUAL); $C->add(HorarisPeer::DIA, $dia_final, CRITERIA::LESS_EQUAL); $RET = array(); foreach (HorarisPeer::doSelect($C) as $OH) { $RET[$OH->getDia()] = $OH->getDia(); } return $RET; }
/** * Indica on està ocupat el material en un intèrval de temps * */ public static function OnOcupatMaterialHores($idM, $datai, $dataf, $hi, $hf, $idS, $idG = null, $idH = null, $idC = null) { //Busquem primer l'horari en el que està ocupat. //Altrament busquem la cessió en la que està ocupat //Agafo les activitats que tenen material ocupat una data determinada. $CESSIO = array(); $C = self::criteriaOcupatCessio($datai, $dataf, $hi, $hf, $idS, $idG, $idH, $idC); foreach (CessioPeer::doSelect($C) as $OC) { $CESSIO[$idM] = $OC; } $C = self::criteriaOcupatEspais($datai, $dataf, $hi, $hf, $idS, $idG, $idH, $idC); foreach (HorarisPeer::doSelect($C) as $OH) { $CESSIO[$idM] = $OH; } return $CESSIO; }
/** * Function que retorna els dies del mes que hi ha activitat. Només s'usa a la home page * @param unknown $mes * @param unknown $any */ public static function getDiesAmbActivitat($mes, $any, $idS) { $C = new Criteria(); $C = HorarisPeer::getCriteriaActiu($C, $idS); $C = self::getCriteriaActiu($C, $idS); $C1 = $C->getNewCriterion(HorarisPeer::DIA, $any . '-' . $mes . '-1', CRITERIA::GREATER_EQUAL); $C2 = $C->getNewCriterion(HorarisPeer::DIA, $any . '-' . $mes . '-31', CRITERIA::LESS_EQUAL); $C1->addAnd($C2); $C->add($C1); $C->add(ActivitatsPeer::PUBLICAWEB, true); $C->addJoin(self::ACTIVITATID, HorarisPeer::ACTIVITATS_ACTIVITATID); $C->addGroupByColumn(HorarisPeer::DIA); $dies = array(); foreach (HorarisPeer::doSelect($C) as $OH) { $dies[$OH->getDia('d')] = intval($OH->getDia('d')); } $ret = array(); foreach ($dies as $D) { $ret[] = $D; } rsort($ret); return $ret; }
/** * Gets an array of Horaris objects which contain a foreign key that references this object. * * If this collection has already been initialized with an identical Criteria, it returns the collection. * Otherwise if this Activitats has previously been saved, it will retrieve * related Horariss from storage. If this Activitats is new, it will return * an empty collection or the current collection, the criteria is ignored on a new object. * * @param PropelPDO $con * @param Criteria $criteria * @return array Horaris[] * @throws PropelException */ public function getHorariss($criteria = null, PropelPDO $con = null) { if ($criteria === null) { $criteria = new Criteria(ActivitatsPeer::DATABASE_NAME); } elseif ($criteria instanceof Criteria) { $criteria = clone $criteria; } if ($this->collHorariss === null) { if ($this->isNew()) { $this->collHorariss = array(); } else { $criteria->add(HorarisPeer::ACTIVITATS_ACTIVITATID, $this->activitatid); HorarisPeer::addSelectColumns($criteria); $this->collHorariss = HorarisPeer::doSelect($criteria, $con); } } else { // criteria has no effect for a new object if (!$this->isNew()) { // the following code is to determine if a new query is // called for. If the criteria is the same as the last // one, just return the collection. $criteria->add(HorarisPeer::ACTIVITATS_ACTIVITATID, $this->activitatid); HorarisPeer::addSelectColumns($criteria); if (!isset($this->lastHorarisCriteria) || !$this->lastHorarisCriteria->equals($criteria)) { $this->collHorariss = HorarisPeer::doSelect($criteria, $con); } } } $this->lastHorarisCriteria = $criteria; return $this->collHorariss; }
public static function getHorariss($idC, $idS) { $C = new Criteria(); $C = self::getCriteriaActiu($C, $idS); $C->addJoin(HorarisPeer::ACTIVITATS_ACTIVITATID, ActivitatsPeer::ACTIVITATID); //Seleccionem els horaris que encaixen amb una activitat $C->add(ActivitatsPeer::CICLES_CICLEID, $idC); //Cal uqe sigui d'un cicle determinat $C->add(ActivitatsPeer::PUBLICAWEB, true); //Cal que es publiqui al web $C->addGroupByColumn(HorarisPeer::HORARISID); return HorarisPeer::doSelect($C); }