public function getNumActivitats() { $C = new Criteria(); $C = CiclesPeer::getCriteriaActiu($C, $this->getSiteId()); $C = ActivitatsPeer::getCriteriaActiu($C, $this->getSiteId()); $C = HorarisPeer::getCriteriaActiu($C, $this->getSiteId()); $C->addJoin(CiclesPeer::CICLEID, ActivitatsPeer::CICLES_CICLEID); $C->addJoin(ActivitatsPeer::ACTIVITATID, HorarisPeer::ACTIVITATS_ACTIVITATID); $C->add(CiclesPeer::CICLEID, $this->getCicleid()); $C->addAscendingOrderByColumn(HorarisPeer::DIA); $C->addGroupByColumn(ActivitatsPeer::ACTIVITATID); return HorarisPeer::doCount($C); }
/** * Retorna els descomptes d'una activitat concreta * */ public static function getDescomptesHorariArray($idH, $edicio = false) { $RET = array(); $OH = HorarisPeer::retrieveByPK($idH); $OEP = EntradesPreusPeer::retrieveByPK($idH); //Si tenim un preu correcte, if ($OEP instanceof EntradesPreus) { if ($edicio) { $RET[-1] = 'Cap descompte (' . $OEP->getPreu() . '€)'; } //Carrego els descomptes associats a aquest preu foreach (DescomptesPeer::getDescomptes($idH, false) as $OD) { $RET[$OD->getIddescompte()] = $OD->getNom() . ' (' . self::getPreuAmbDescompte($OC->getPreu(), $OD->getIddescompte()) . '€)'; } } else { $RET[-1] = 'Cap descompte'; } return $RET; }
/** * * @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; }
public function getHorari() { $OH = HorarisPeer::retrieveByPK($this->getEntradesPreusHorariId()); if ($OH instanceof Horaris) { return $OH; } else { $OH = new Horaris(); } }
public function getHorarisActius($idS) { $C = new Criteria(); $C = HorarisPeer::getCriteriaActiu($C, $idS); $C->addAscendingOrderByColumn(HorarisPeer::DIA); return $this->getHorariss($C); }
/** * 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; }
/** * @return array( status , OER ) * @return -1 (OH incorrecte) * @return -2 (OA incorrecte) * @return -3 (OEP incorrecte) * @return -4 (Repe) * @return -5 (Exhaurides) * @return -6 (Error TPV) * @return -7 (Es volen comprar 0 entrades) * @return 1 (Compra metàl·lic o codi de barres OK) * @return 2 (Reserva d'entrada OK) * @return 3 (Pagament amb TPV) * @return 4 (En llista d'espera) * @return 5 (Pagament amb domiciliació) || Aquest encara s'ha d'aplicar correctament. * */ public static function setCompraEntrada($OER) { $IDH = $OER->getEntradesPreusHorariId(); $IDU = $OER->getUsuariId(); $NEntrades = $OER->getQuantitat(); $Descompte = $OER->getDescompte(); $TPagament = $OER->getTipusPagament(); //Paràmetres que retornaré després de la compra d'una entrada. $RET = array('status' => 0, 'OER' => null); $OH = HorarisPeer::retrieveByPK($IDH); //Comprovem que existeixi l'horari if (!$OH instanceof Horaris) { $RET = array('status' => -1, 'OER' => null); //Horari OK. } else { $IDA = $OH->getActivitatsActivitatid(); $OA = ActivitatsPeer::retrieveByPK($IDA); //Comprovem que existeixi l'activitat if (!$OA instanceof Activitats) { $RET = array('status' => -2, 'OER' => null); //Activitat OK. } else { //Carrego l'entrada i el preu $OEP = EntradesPreusPeer::retrieveByPK($IDH); //No s'ha trobat el preu per aquesta activitat i horari. if (!$OEP instanceof EntradesPreus) { $RET = array('status' => -3, 'OER' => null); //HORARI_INEXISTENT } else { //Comprovem que el nombre d'entrades no sigui 0 o un valor extrany if (!($NEntrades >= 0)) { $RET = array('status' => -7, 'OER' => null); //Número d'entrades incorrecte } else { //Tenim un horari carregat i una activitat. $idS = $OH->getSiteid(); //Aquest no el farem servir perquè acceptem que les entrades siguin repetides pels usuaris. $HaComprat = 0; //EntradesReservaPeer::ExisteixenEntradesComprades($IDU, $IDH); $PlacesLliures = EntradesReservaPeer::countEntradesActivitatConf($IDH); //Comprovem si l'entrada està repetida if ($HaComprat) { $RET = array('status' => -4, 'OER' => null); //ENTRADA_REPE //No té cap entrada comprada } else { //Mirem si queden places tenint en cmopte que no hi ha llista d'espera. if ($PlacesLliures - $NEntrades < 0 && $TPagament != TipusPeer::PAGAMENT_LLISTA_ESPERA) { return array('status' => -5, 'OER' => null); //NO_QUEDEN_PROU_ENTRADES i no hi ha llista d'espera //Tot OK. Passem al tipus de pagament. } else { //Generem la nova compra o reserva //$OER = EntradesReservaPeer::initialize( $idS , '' , 0 , $IDH , $IDU , $NEntrades , $Descompte , $TPagament )->getObject(); //Marquem el preu $OER->setPagat(DescomptesPeer::getPreuAmbDescompte($OEP->getPreu(), $Descompte)); $OER->setData(date('Y-m-d H:i', time())); //Mirem el tipus de pagament i deixem l'estat oportú. if ($TPagament == TipusPeer::PAGAMENT_METALIC || $TPagament == TipusPeer::PAGAMENT_CODI_BARRES) { $OER->setEstat(EntradesReservaPeer::ESTAT_ENTRADA_RESERVADA); $OER->save(); return array('status' => 1, 'OER' => $OER); } elseif ($TPagament == TipusPeer::PAGAMENT_RESERVA) { $OER->setPagat(0); $OER->setEstat(EntradesReservaPeer::ESTAT_ENTRADA_RESERVADA); $OER->save(); return array('status' => 2, 'OER' => $OER); } elseif ($TPagament == TipusPeer::PAGAMENT_TARGETA) { $OER->setEstat(EntradesReservaPeer::ESTAT_ENTRADA_EN_PROCES); $OER->save(); return array('status' => 3, 'OER' => $OER); } elseif ($TPagament == TipusPeer::PAGAMENT_LLISTA_ESPERA) { $OER->setPagat(0); $OER->setEstat(EntradesReservaPeer::ESTAT_ENTRADA_EN_ESPERA); $OER->save(); return array('status' => 4, 'OER' => $OER); } elseif ($TPagament == TipusPeer::PAGAMENT_DOMICILIACIO) { $OER->setEstat(EntradesReservaPeer::ESTAT_ENTRADA_RESERVADA); $OER->save(); return array('status' => 5, 'OER' => $OER); } UsuarisPeer::addSite($IDU, $idS); } } } } } } return $RET; }
/** * ActivitatsPeer::getLlistatWord() * * Fa el select per a un formulari de llistat d'activitats i posterior impressió de word * * @param mixed $IAF * @param mixed $IDS * @return */ public static function getLlistatWord(InformeActivitatsForm $IAF, $IDS) { $C = new Criteria(); $C = ActivitatsPeer::getCriteriaActiu($C, $IDS); $C = HorarisPeer::getCriteriaActiu($C, $IDS); $C->addJoin(ActivitatsPeer::ACTIVITATID, HorarisPeer::ACTIVITATS_ACTIVITATID); if ($IAF->getValue('idCicle') > 0) { $C->add(ActivitatsPeer::CICLES_CICLEID, $IAF->getValue('idCicle')); } $C1 = $C->getNewCriterion(HorarisPeer::DIA, $IAF->getValue('DataInici'), CRITERIA::GREATER_EQUAL); $C2 = $C->getNewCriterion(HorarisPeer::DIA, $IAF->getValue('DataFi'), CRITERIA::LESS_EQUAL); if (!is_null($IAF->getValue('DataInici'))) { $C->addAnd($C1); } if (!is_null($IAF->getValue('DataFi'))) { $C->addAnd($C2); } $C->add(ActivitatsPeer::TMIG, "", CRITERIA::NOT_EQUAL); $C->addAscendingOrderByColumn(HorarisPeer::DIA); $C->addGroupByColumn(ActivitatsPeer::ACTIVITATID); return ActivitatsPeer::doSelect($C); }
public function executeGInformes(sfWebRequest $request) { $this->setLayout('gestio'); $this->IDS = $this->getUser()->getSessionPar('idS'); $this->POTVEURE = array(1 => true); //$this->POTVEURE = array(1=>UsuarisPeer::canSeeComptabilitat($this->getUser()->getSessionPar('idU'))); $this->accio = $request->getParameter('accio'); $this->getUser()->addLogAction('inside', 'gInformes'); if ($request->hasParameter('BGENERADOC')) { $this->accio = 'RESUM_ACTIVITATS'; } if ($request->hasParameter('BGENERAXML')) { $this->accio = 'RESUM_ACTIVITATS'; } if ($request->hasParameter('BGENERACSV')) { $this->accio = 'RESUM_ACTIVITATS'; } switch ($this->accio) { case 'MAT_DIA_PAG': $this->MODE = $request->getParameter('mode_pagament'); $this->DADES = array(); foreach (MatriculesPeer::getMatriculesPagadesDia($this->MODE, $this->IDS) as $OM) { $OU = $OM->getUsuaris(); $OC = $OM->getCursos(); $this->DADES[$OM->getIdmatricules()]['DATA'] = $OM->getDatainscripcio('d/m/Y'); $this->DADES[$OM->getIdmatricules()]['IMPORT'] = $OM->getPagat(); $this->DADES[$OM->getIdmatricules()]['DNI'] = $OU->getDni(); $this->DADES[$OM->getIdmatricules()]['NOM'] = $OU->getNomComplet(); $this->DADES[$OM->getIdmatricules()]['CURS'] = $OC->getCodi(); $this->DADES[$OM->getIdmatricules()]['HORA'] = $OM->getDatainscripcio('H:i'); $this->DADES[$OM->getIdmatricules()]['ORDER'] = $OM->getTpvOperacio(); $this->DADES[$OM->getIdmatricules()]['ESTAT'] = $OM->getEstat(); $this->DADES[$OM->getIdmatricules()]['ESTATS'] = $OM->getEstatString(); $this->DADES[$OM->getIdmatricules()]['PAGAMENT'] = $OM->getTpagamentString(); } break; //Treu un resum de les activitats aplicant-hi les etiquetes corresponents //Treu un resum de les activitats aplicant-hi les etiquetes corresponents case 'RESUM_ACTIVITATS': $RP = $request->getParameter('informe_activitats'); $this->FACTIVITATS = new InformeActivitatsForm(null, array('IDS' => $this->IDS)); $this->FACTIVITATS->bind($RP); if ($request->hasParameter('BGENERADOC')) { $this->LOA = ActivitatsPeer::getLlistatWord($this->FACTIVITATS, $this->IDS, true, false); } elseif ($request->hasParameter('BGENERACSV')) { $this->LOH = ActivitatsPeer::getLlistatWord($this->FACTIVITATS, $this->IDS, false, true); $nom = OptionsPeer::getString('SF_WEBSYSROOT', $this->IDS) . 'tmp/' . $this->IDS . 'NEWS.csv'; $file = fopen($nom, 'w'); foreach ($this->LOH as $OH) { $OA = $OH->getActivitats(); $LE = $OH->getArrayEspais(); foreach ($LE as $OE) { if ($OE->getEspaiid() == 2 || $OE->getEspaiid() == 4 || $OE->getEspaiid() == 19 || $OE->getEspaiid() == 5) { $pis = "P1"; } elseif ($OE->getEspaiid() > 9 && $OE->getEspaiid() < 16) { $pis = "P2"; } else { $pis = "PB"; } if (stripos($OE->getNom(), "Fita") > 0) { $Nom_espai = "Sala Domènech Fita"; } elseif (stripos($OE->getNom(), "A+B") > 0) { $Nom_espai = "Sala d'exposicions"; } else { $Nom_espai = $OE->getNom(); } fputcsv($file, array($OA->getTmig(), $OH->getDia('d/m/Y'), $OH->getHoraInici('H:i'), $Nom_espai, $pis, $OA->getOrganitzador()), ",", "\""); } } fclose($file); $response = sfContext::getInstance()->getResponse(); $response->setContentType('text/plain'); $response->setHttpHeader('Content-Disposition', 'attachment; filename="Agenda.csv'); $response->setHttpHeader('Content-Length', filesize($nom)); $response->setContent(file_get_contents($nom, false)); $response->sendHttpHeaders(); $response->sendContent(); throw new sfStopException(); } elseif ($request->hasParameter('BGENERAXML')) { $this->setLayout(null); $this->setTemplate(null); $LOH = ActivitatsPeer::getLlistatWord($this->FACTIVITATS, $this->IDS, false); //Creem l'objecte XML $i = 1; $document = "<document>\n"; foreach ($LOH as $OH) { $OA = $OH->getActivitats(); $LE = $OH->getArrayEspais(); $document .= "<caixa>\n"; $document .= " <data_inicial>" . $OA->getPrimerHorari()->getDia('Y-m-d') . "</data_inicial>\n"; $document .= " <data_fi>" . $OA->getUltimHorari()->getDia('Y-m-d') . "</data_fi>\n"; $document .= " <tipus_activitat>" . $OA->getNomTipusActivitat() . "</tipus_activitat>\n"; $document .= " <cicle>" . $OA->getCicles()->getTmig() . "</cicle>\n"; $document .= " <tipologia>" . $OA->getCategories() . "</tipologia>\n"; $document .= " <importancia>" . $OA->getImportancia() . "</importancia>\n"; $document .= " <titol>" . $OA->getTmig() . "</titol>\n"; $document .= " <text>" . strip_tags(html_entity_decode($OA->getDmig())) . "</text>\n"; $document .= " <url>" . $this->getController()->genUrl('@web_menu_click_activitat?idCicle=' . $OA->getCiclesCicleid() . '&idActivitat=' . $OA->getActivitatid() . '&titol=' . $OA->getNomForUrl(), true) . "</url>\n"; $document .= " <hora_inici>" . $OH->getHorainici("H.i") . "</hora_inici>\n"; $document .= " <hora_fi>" . $OH->getHorafi("H.i") . "</hora_fi>\n"; $document .= " <espais>" . implode(",", $LE) . "</espais>\n"; $document .= " <organitzador>" . html_entity_decode($OA->getOrganitzador()) . "</organitzador>\n"; $document .= " <info_practica>" . strip_tags(html_entity_decode($OA->getInfopractica())) . "</info_practica>\n"; $document .= " <url_img_s>http://www.hospici.cat/images/activitats/A-" . $OA->getActivitatid() . "-M.jpg</url_img_s>\n"; $document .= " <url_img_m>http://www.hospici.cat/images/activitats/A-" . $OA->getActivitatid() . "-L.jpg</url_img_m>\n"; $document .= " <url_img_l>http://www.hospici.cat/images/activitats/A-" . $OA->getActivitatid() . "-XL.jpg</url_img_l>\n"; $document .= "</caixa>\n"; } $document .= "</document>\n"; $nom = OptionsPeer::getString('SF_WEBSYSROOT', $this->IDS) . 'tmp/' . $this->IDS . 'NEWS.txt'; fwrite(fopen($nom, 'w'), $document); $response = sfContext::getInstance()->getResponse(); $response->setContentType('text/plain'); $response->setHttpHeader('Content-Disposition', 'attachment; filename="News.txt'); $response->setHttpHeader('Content-Length', filesize($nom)); $response->setContent(file_get_contents($nom, false)); $response->sendHttpHeaders(); $response->sendContent(); throw new sfStopException(); } break; //Mostra les activitats a quatre mesos vista que estan marcats com a publicables per web. //Mostra les activitats a quatre mesos vista que estan marcats com a publicables per web. case 'CONTINGUT_WEB': //Carrego les activitats $dia = date('d'); $mes = date('m'); $any = date('Y'); $inici = mktime(0, 0, 0, $mes, $dia, $any); $fi = mktime(0, 0, 0, $mes + 5, $dia, $any); $LLISTAT_ACTIVITATS_WEB = array(); $LOH = HorarisPeer::cerca(null, null, $inici, $fi, null, $this->IDS); foreach ($LOH as $id => $OH) { $OA = $OH->getActivitats(); //Si és una activitat correcta... la consultem. if ($OA instanceof Activitats) { $id = $OA->getActivitatid(); //Si es pot publicar al web if (!isset($LLISTAT_ACTIVITATS_WEB[$id]) && $OA->getPublicaweb()) { $LLISTAT_ACTIVITATS_WEB[$id]['OA'] = $OA; $LLISTAT_ACTIVITATS_WEB[$id]['text'] = strlen($OA->getTmig()) > 5; $LLISTAT_ACTIVITATS_WEB[$id]['desc'] = strlen($OA->getDmig()) > 5; $LLISTAT_ACTIVITATS_WEB[$id]['img_m'] = file_exists(getcwd() . '/images/activitats/A-' . $id . '-M.jpg'); $LLISTAT_ACTIVITATS_WEB[$id]['img_l'] = file_exists(getcwd() . '/images/activitats/A-' . $id . '-L.jpg'); $LLISTAT_ACTIVITATS_WEB[$id]['img_xl'] = file_exists(getcwd() . '/images/activitats/A-' . $id . '-XL.jpg'); $LLISTAT_ACTIVITATS_WEB[$id]['nivell'] = $OA->getImportancia(); } else { $LLISTAT_ACTIVITATS_WEB[$id]['OA'] = $OA; $LLISTAT_ACTIVITATS_WEB[$id]['text'] = strlen($OA->getTmig()) > 5; $LLISTAT_ACTIVITATS_WEB[$id]['desc'] = strlen($OA->getDmig()) > 5; $LLISTAT_ACTIVITATS_WEB[$id]['img_m'] = file_exists(getcwd() . '/images/activitats/A-' . $id . '-M.jpg'); $LLISTAT_ACTIVITATS_WEB[$id]['img_l'] = file_exists(getcwd() . '/images/activitats/A-' . $id . '-L.jpg'); $LLISTAT_ACTIVITATS_WEB[$id]['img_xl'] = file_exists(getcwd() . '/images/activitats/A-' . $id . '-XL.jpg'); $LLISTAT_ACTIVITATS_WEB[$id]['nivell'] = $OA->getImportancia(); } } } $this->LLISTAT_ACTIVITATS_WEB = $LLISTAT_ACTIVITATS_WEB; break; } }
/** * Returns the number of related Horaris objects. * * @param Criteria $criteria * @param boolean $distinct * @param PropelPDO $con * @return int Count of related Horaris objects. * @throws PropelException */ public function countHorariss(Criteria $criteria = null, $distinct = false, PropelPDO $con = null) { if ($criteria === null) { $criteria = new Criteria(ActivitatsPeer::DATABASE_NAME); } else { $criteria = clone $criteria; } if ($distinct) { $criteria->setDistinct(); } $count = null; if ($this->collHorariss === null) { if ($this->isNew()) { $count = 0; } else { $criteria->add(HorarisPeer::ACTIVITATS_ACTIVITATID, $this->activitatid); $count = HorarisPeer::doCount($criteria, false, $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 count of the collection. $criteria->add(HorarisPeer::ACTIVITATS_ACTIVITATID, $this->activitatid); if (!isset($this->lastHorarisCriteria) || !$this->lastHorarisCriteria->equals($criteria)) { $count = HorarisPeer::doCount($criteria, false, $con); } else { $count = count($this->collHorariss); } } else { $count = count($this->collHorariss); } } return $count; }
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); }
public function getHorari() { return HorarisPeer::retrieveByPK($this->getHorariId()); }
/** * This is a method for emulating ON DELETE CASCADE for DBs that don't support this * feature (like MySQL or SQLite). * * This method is not very speedy because it must perform a query first to get * the implicated records and then perform the deletes by calling those Peer classes. * * This method should be used within a transaction if possible. * * @param Criteria $criteria * @param PropelPDO $con * @return int The number of affected rows (if supported by underlying database driver). */ protected static function doOnDeleteCascade(Criteria $criteria, PropelPDO $con) { // initialize var to track total num of affected rows $affectedRows = 0; // first find the objects that are implicated by the $criteria $objects = ActivitatsPeer::doSelect($criteria, $con); foreach ($objects as $obj) { // delete related Horaris objects $criteria = new Criteria(HorarisPeer::DATABASE_NAME); $criteria->add(HorarisPeer::ACTIVITATS_ACTIVITATID, $obj->getActivitatid()); $affectedRows += HorarisPeer::doDelete($criteria, $con); } return $affectedRows; }
function Entrades_Llista($LEntrades) { ?> <table class="taula_llistat"> <tr> <th>Quan</th> <th>Hora</th> <th>Titol</th> <th>On</th> <th>Entrades</th> <th>Estat</th> </tr> <?php if (empty($LEntrades)) { echo '<tr><td colspan="4">No s\'ha trobat cap entrada comprada.</td></tr>'; } else { foreach ($LEntrades as $OER) { $OH = HorarisPeer::retrieveByPK($OER->getEntradesPreusHorariId()); if ($OH instanceof Horaris) { $OA = $OH->getActivitatss(); $SiteName = SitesPeer::getNom($OH->getSiteId()); $class = ""; if ($OER->getEstat() == EntradesReservaPeer::ESTAT_ENTRADA_ANULADA) { $class = "class=\"tatxat\""; } echo "<tr>\r\n <td {$class}>{$OH->getDia('d-m-Y')}</td>\r\n <td {$class}>{$OH->getHorainici('H:i')}</td>\r\n <td {$class}>{$OA->getTmig()}</td>\r\n <td {$class}>{$SiteName}</td>\r\n <td {$class}>{$OER->getQuantitat()}</td>\r\n <td {$class}>{$OER->getEstatString()}</td>"; //if($OER->getEstat() != EntradesReservaPeer::ESTAT_ENTRADA_ANULADA) echo "<td><a href=\"".url_for('@hospici_anula_entrada?idER='.$OER->getIdentrada())."\">Anul·lar</a></td>"; echo "</tr>"; } } } ?> </table> <?php }
public function getActivitatss() { $C = new Criteria(); $C = ActivitatsPeer::getCriteriaActiu($C, $this->getSiteId()); $C = HorarisPeer::getCriteriaActiu($C, $this->getSiteId()); $C->add(HorarisPeer::HORARISID, $this->getHorarisid()); $C->addJoin(HorarisPeer::ACTIVITATS_ACTIVITATID, ActivitatsPeer::ACTIVITATID); $C->addGroupByColumn(ActivitatsPeer::ACTIVITATID); return ActivitatsPeer::doSelectOne($C); }
public function GuardaHorari($horaris, $EXTRES, $idS) { $ERRORS = array(); $DBDD[] = array(); //Comprovem que s'hagi entrat un dia if (empty($horaris['Dia'])) { $ERRORS[] = "No has entrat cap data"; $DBDD['DIES'] = array(); } else { $DIES = explode(',', $horaris['Dia']); foreach ($DIES as $D) { list($dia, $mes, $any) = explode('/', $D); if (!($any > 2000 && $mes < 13 && $dia < 32)) { $ERRORS[] = "La data que has entrat és incorrecta"; } $DBDD['DIES'][] = "{$any}-{$mes}-{$dia}"; } } //Passem l'hora a format numèric per fer les comprovacions $DBDD['HoraPre'] = strval($horaris['HoraPre']['hour']) * 60 + strval($horaris['HoraPre']['minute']); $DBDD['HoraIn'] = strval($horaris['HoraInici']['hour']) * 60 + strval($horaris['HoraInici']['minute']); $DBDD['HoraFi'] = strval($horaris['HoraFi']['hour']) * 60 + strval($horaris['HoraFi']['minute']); $DBDD['HoraPost'] = strval($horaris['HoraPost']['hour']) * 60 + strval($horaris['HoraPost']['minute']); if ($DBDD['HoraPre'] > $DBDD['HoraIn']) { $ERRORS[] = "L'hora de preparació no pot ser més gran que la d'inici."; } if ($DBDD['HoraIn'] >= $DBDD['HoraFi']) { $ERRORS[] = "L'hora d'inici no pot ser més gran o igual que la d'acabament."; } if ($DBDD['HoraFi'] > $DBDD['HoraPost']) { $ERRORS[] = "L'hora d'acabament no pot ser més gran que la de desmuntatge."; } //Un cop fetes les verificacions... tornem a posar els valors que guardarem $DBDD['HoraPre'] = $horaris['HoraPre']['hour'] . ':' . $horaris['HoraPre']['minute']; $DBDD['HoraIn'] = $horaris['HoraInici']['hour'] . ':' . $horaris['HoraInici']['minute']; $DBDD['HoraFi'] = $horaris['HoraFi']['hour'] . ':' . $horaris['HoraFi']['minute']; $DBDD['HoraPost'] = $horaris['HoraPost']['hour'] . ':' . $horaris['HoraPost']['minute']; //Hem d'entrar algun espai ja sigui intern o extern i no podem entrar espais interns i a més externs if (empty($EXTRES['ESPAISOUT']) && !$EXTRES['ESPAIEXTERN']->isBound()) { $ERRORS[] = "Has d'entrar algun espai intern o extern"; } if (!empty($EXTRES['ESPAISOUT']) && $EXTRES['ESPAIEXTERN']->isBound()) { $ERRORS[] = "No pots entrar espais interns i externs a la vegada"; } //Mirem que la data no es solapi amb alguna altra activitat al mateix espai foreach ($DBDD['DIES'] as $D) { //Per tots els espais interns foreach ($EXTRES['ESPAISOUT'] as $E => $idE) { //Si l'usuari bloqueja un espai hem de mirar que no hi hagi cap activitat aquell dia. if ($idE == 22) { $RS = HorarisPeer::getActivitatsDia($D, $idS); if (sizeof($RS) > 0) { $ERRORS[] = "El dia {$D} hi ha " . sizeof($RS) . " activitat(s) que impedeixen el bloqueig."; } } else { //Mirem si encaixa amb alguna altra activitat solta $LOH = HorarisPeer::validaDia($D, $idE, $DBDD['HoraPre'], $DBDD['HoraPost'], $horaris['HorarisID'], $idS); if (sizeof($LOH) > 0) { $Espai = EspaisPeer::retrieveByPK($idE)->getNom(); foreach ($LOH as $OH) { $OA = $OH->getActivitatss(); $nomActivitat = $OA->getNom(); $ERRORS[] = "El dia {$D} coincideix a l'espai {$Espai} amb l'activitat '" . $nomActivitat . "'"; } } elseif (HorarisPeer::validaDiaBloqueig($D, $horaris['HorarisID'], $this->IDS)) { $ERRORS[] = "El dia {$D} hi ha una activitat que bloqueja tots els espais!"; } } } //Comprovem l'ocupació del material foreach ($EXTRES['MATERIALOUT'] as $M => $idM) { if (!MaterialPeer::isLliure($idM['material'], $this->IDS, $D, $DBDD['HoraPre'], $DBDD['HoraPost'], $horaris['HorarisID'])) { $OM = MaterialPeer::retrieveByPK($idM['material']); if ($OM instanceof Material) { $nom = $OM->toString(); } else { $nom = "n/d"; } $ERRORS[] = "El material " . $nom . " està ocupat el dia " . $D; } } } //Si no hem trobat cap error, guardem els registres d'ocupació. if (empty($ERRORS)) { HorarisPeer::save($horaris, $DBDD, $EXTRES, $idS); } return $ERRORS; }
function formLlistaPreus($OA, $FPREUS) { ?> <style> .row { width: auto; float:left; margin-left:10px; } .row_field { width:auto; } .row_title { width:auto; } .row_field input { width:auto; } </style> <div class="REQUADRE"> <div class="OPCIO_FINESTRA"><?php echo link_to(image_tag('icons/Grey/PNG/action_delete.png'), 'gestio/gActivitats?accio=PREUS&IDA=' . $IDA); ?> </div> <div class="titol"> <?php echo 'Editant els preus de l\'activitat: ' . $OA->getNom(); //Mostrem de quina activitat estem editant els preus ?> </div> <div class="TITOL">Preu horaris</div> <div class="DADES"> <?php if (sizeof($FPREUS) == 0) { echo '<TR><TD class="LINIA">Aquesta activitat no té cap horari definit.</TD></TR>'; } foreach ($FPREUS as $F) { echo '<form action="' . url_for('gestio/gActivitats') . '" method="post">'; echo input_hidden_tag('IDA', $OA->getActivitatid()); $OH = HorarisPeer::retrieveByPK($F->getObject()->getHorariId()); echo '<div style="clear:both; font-weight:bold;" class="titol" >' . $OH->getDia('d/m/Y') . ' | ' . $OH->getHorainici('H:i') . '</div>'; echo $F; echo '<div style="margin-left:20px; padding-top:20px; float:left; "> <button name="BPREUSSAVE" class="BOTO_ACTIVITAT">Actualitza</button></div>'; echo '</form>'; } ?> <div style="clear:both"> </div> </div> </div> <?php }
/** * Selects a collection of Horarisespais objects pre-filled with all related objects except EspaisExterns. * * @param Criteria $criteria * @param PropelPDO $con * @param String $join_behavior the type of joins to use, defaults to Criteria::LEFT_JOIN * @return array Array of Horarisespais objects. * @throws PropelException Any exceptions caught during processing will be * rethrown wrapped into a PropelException. */ public static function doSelectJoinAllExceptEspaisExterns(Criteria $criteria, $con = null, $join_behavior = Criteria::LEFT_JOIN) { $criteria = clone $criteria; // Set the correct dbName if it has not been overridden // $criteria->getDbName() will return the same object if not set to another value // so == check is okay and faster if ($criteria->getDbName() == Propel::getDefaultDB()) { $criteria->setDbName(self::DATABASE_NAME); } HorarisespaisPeer::addSelectColumns($criteria); $startcol2 = HorarisespaisPeer::NUM_COLUMNS - HorarisespaisPeer::NUM_LAZY_LOAD_COLUMNS; MaterialPeer::addSelectColumns($criteria); $startcol3 = $startcol2 + (MaterialPeer::NUM_COLUMNS - MaterialPeer::NUM_LAZY_LOAD_COLUMNS); EspaisPeer::addSelectColumns($criteria); $startcol4 = $startcol3 + (EspaisPeer::NUM_COLUMNS - EspaisPeer::NUM_LAZY_LOAD_COLUMNS); HorarisPeer::addSelectColumns($criteria); $startcol5 = $startcol4 + (HorarisPeer::NUM_COLUMNS - HorarisPeer::NUM_LAZY_LOAD_COLUMNS); $criteria->addJoin(HorarisespaisPeer::MATERIAL_IDMATERIAL, MaterialPeer::IDMATERIAL, $join_behavior); $criteria->addJoin(HorarisespaisPeer::ESPAIS_ESPAIID, EspaisPeer::ESPAIID, $join_behavior); $criteria->addJoin(HorarisespaisPeer::HORARIS_HORARISID, HorarisPeer::HORARISID, $join_behavior); // symfony_behaviors behavior foreach (sfMixer::getCallables(self::getMixerPreSelectHook(__FUNCTION__)) as $sf_hook) { call_user_func($sf_hook, 'BaseHorarisespaisPeer', $criteria, $con); } $stmt = BasePeer::doSelect($criteria, $con); $results = array(); while ($row = $stmt->fetch(PDO::FETCH_NUM)) { $key1 = HorarisespaisPeer::getPrimaryKeyHashFromRow($row, 0); if (null !== ($obj1 = HorarisespaisPeer::getInstanceFromPool($key1))) { // We no longer rehydrate the object, since this can cause data loss. // See http://propel.phpdb.org/trac/ticket/509 // $obj1->hydrate($row, 0, true); // rehydrate } else { $cls = HorarisespaisPeer::getOMClass(false); $obj1 = new $cls(); $obj1->hydrate($row); HorarisespaisPeer::addInstanceToPool($obj1, $key1); } // if obj1 already loaded // Add objects for joined Material rows $key2 = MaterialPeer::getPrimaryKeyHashFromRow($row, $startcol2); if ($key2 !== null) { $obj2 = MaterialPeer::getInstanceFromPool($key2); if (!$obj2) { $cls = MaterialPeer::getOMClass(false); $obj2 = new $cls(); $obj2->hydrate($row, $startcol2); MaterialPeer::addInstanceToPool($obj2, $key2); } // if $obj2 already loaded // Add the $obj1 (Horarisespais) to the collection in $obj2 (Material) $obj2->addHorarisespais($obj1); } // if joined row is not null // Add objects for joined Espais rows $key3 = EspaisPeer::getPrimaryKeyHashFromRow($row, $startcol3); if ($key3 !== null) { $obj3 = EspaisPeer::getInstanceFromPool($key3); if (!$obj3) { $cls = EspaisPeer::getOMClass(false); $obj3 = new $cls(); $obj3->hydrate($row, $startcol3); EspaisPeer::addInstanceToPool($obj3, $key3); } // if $obj3 already loaded // Add the $obj1 (Horarisespais) to the collection in $obj3 (Espais) $obj3->addHorarisespais($obj1); } // if joined row is not null // Add objects for joined Horaris rows $key4 = HorarisPeer::getPrimaryKeyHashFromRow($row, $startcol4); if ($key4 !== null) { $obj4 = HorarisPeer::getInstanceFromPool($key4); if (!$obj4) { $cls = HorarisPeer::getOMClass(false); $obj4 = new $cls(); $obj4->hydrate($row, $startcol4); HorarisPeer::addInstanceToPool($obj4, $key4); } // if $obj4 already loaded // Add the $obj1 (Horarisespais) to the collection in $obj4 (Horaris) $obj4->addHorarisespais($obj1); } // if joined row is not null $results[] = $obj1; } $stmt->closeCursor(); return $results; }
/** * Populates the object using an array. * * This is particularly useful when populating an object from one of the * request arrays (e.g. $_POST). This method goes through the column * names, checking to see whether a matching key exists in populated * array. If so the setByName() method is called for that column. * * You can specify the key type of the array by additionally passing one * of the class type constants BasePeer::TYPE_PHPNAME, BasePeer::TYPE_STUDLYPHPNAME, * BasePeer::TYPE_COLNAME, BasePeer::TYPE_FIELDNAME, BasePeer::TYPE_NUM. * The default key type is the column's phpname (e.g. 'AuthorId') * * @param array $arr An array to populate the object from. * @param string $keyType The type of keys the array uses. * @return void */ public function fromArray($arr, $keyType = BasePeer::TYPE_PHPNAME) { $keys = HorarisPeer::getFieldNames($keyType); if (array_key_exists($keys[0], $arr)) { $this->setHorarisid($arr[$keys[0]]); } if (array_key_exists($keys[1], $arr)) { $this->setActivitatsActivitatid($arr[$keys[1]]); } if (array_key_exists($keys[2], $arr)) { $this->setDia($arr[$keys[2]]); } if (array_key_exists($keys[3], $arr)) { $this->setHorainici($arr[$keys[3]]); } if (array_key_exists($keys[4], $arr)) { $this->setHorafi($arr[$keys[4]]); } if (array_key_exists($keys[5], $arr)) { $this->setHorapre($arr[$keys[5]]); } if (array_key_exists($keys[6], $arr)) { $this->setHorapost($arr[$keys[6]]); } if (array_key_exists($keys[7], $arr)) { $this->setAvis($arr[$keys[7]]); } if (array_key_exists($keys[8], $arr)) { $this->setEspectadors($arr[$keys[8]]); } if (array_key_exists($keys[9], $arr)) { $this->setPlaces($arr[$keys[9]]); } if (array_key_exists($keys[10], $arr)) { $this->setTitol($arr[$keys[10]]); } if (array_key_exists($keys[11], $arr)) { $this->setPreu($arr[$keys[11]]); } if (array_key_exists($keys[12], $arr)) { $this->setPreur($arr[$keys[12]]); } if (array_key_exists($keys[13], $arr)) { $this->setEstat($arr[$keys[13]]); } if (array_key_exists($keys[14], $arr)) { $this->setResponsable($arr[$keys[14]]); } if (array_key_exists($keys[15], $arr)) { $this->setSiteId($arr[$keys[15]]); } if (array_key_exists($keys[16], $arr)) { $this->setActiu($arr[$keys[16]]); } if (array_key_exists($keys[17], $arr)) { $this->setIsentrada($arr[$keys[17]]); } }
/** * 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; }
public static function getDataUltimaActivitat($idC, $idS) { $C = new Criteria(); $C = self::getCriteriaActiu($C, $idS); $C = ActivitatsPeer::getCriteriaActiu($C, $idS); $C->addJoin(ActivitatsPeer::ACTIVITATID, HorarisPeer::ACTIVITATS_ACTIVITATID); $C->add(ActivitatsPeer::CICLES_CICLEID, $idC); $C->addDescendingOrderByColumn(HorarisPeer::DIA); $OH = HorarisPeer::doSelectOne($C); if ($OH instanceof Horaris) { return $OH->getDia('d/m/Y'); } else { return 'n/d'; } }
/** * Get the associated Horaris object * * @param PropelPDO Optional Connection object. * @return Horaris The associated Horaris object. * @throws PropelException */ public function getHoraris(PropelPDO $con = null) { if ($this->aHoraris === null && $this->horaris_horarisid !== null) { $this->aHoraris = HorarisPeer::retrieveByPk($this->horaris_horarisid); /* The following can be used additionally to guarantee the related object contains a reference to this object. This level of coupling may, however, be undesirable since it could result in an only partially populated collection in the referenced object. $this->aHoraris->addHorarisespaiss($this); */ } return $this->aHoraris; }
/** * 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 save($HORARIS, $DBDD, $EXTRES, $idS) { //Carreguem l'horari que estem tractant i guardarem els espais que usa. $A_H = array(); $A_HE = array(); if ($HORARIS['HorarisID'] > 0) { $OH = HorarisPeer::retrieveByPK($HORARIS['HorarisID']); if ($OH instanceof Horaris) { $A_H = array($HORARIS['HorarisID']); } foreach ($OH->getHorarisespaiss() as $HE) { $A_HE[] = $HE->getIdhorarisespais(); } } //Per cada un dels dies que ha entrat, creem un horari foreach ($DBDD['DIES'] as $D) { //Carreguem algun dels horaris que estem editant i el sobreescriurem sinó li donem un número nou $idH = array_pop($A_H); $OH = !is_null($idH) ? HorarisPeer::retrieveByPK($idH) : new Horaris(); $OH->setActivitatsActivitatid($HORARIS['Activitats_ActivitatID']); $OH->setHorainici($DBDD['HoraIn']); $OH->setHorapre($DBDD['HoraPre']); $OH->setHorapost($DBDD['HoraPost']); $OH->setHorafi($DBDD['HoraFi']); $OH->setAvis($HORARIS['Avis']); $OH->setIsentrada($HORARIS['isEntrada']); $OH->setEspectadors($HORARIS['Espectadors']); $OH->setPlaces($HORARIS['Places']); $OH->setDia($D); $OH->setActiu(true); $OH->setSiteid($idS); $OH->save(); //Guardem //Si no hi ha espais, vol dir que és un espai extern. Llavors només guardarem el material. if (empty($EXTRES['ESPAISOUT'])) { $idEE = $EXTRES['ESPAIEXTERN']->getObject()->getIdespaiextern(); foreach ($EXTRES['MATERIALOUT'] as $K => $idM) { $idHE = array_pop($A_HE); $OHE = !is_null($idHE) ? HorarisespaisPeer::retrieveByPK($idHE) : new Horarisespais(); $OHE->setMaterialIdmaterial($idM['material']); $OHE->setEspaisEspaiid(null); $OHE->setHorarisHorarisid($OH->getHorarisid()); //Amb l'identificador de l'horari que hem creat $OHE->setIdespaiextern($idEE); $OHE->setActiu(true); $OHE->setSiteid($idS); $OHE->save(); } if (empty($EXTRES['MATERIALOUT'])) { $idHE = array_pop($A_HE); $OHE = !is_null($idHE) ? HorarisespaisPeer::retrieveByPK($idHE) : new Horarisespais(); $OHE->setMaterialIdmaterial(null); $OHE->setEspaisEspaiid(null); $OHE->setHorarisHorarisid($OH->getHorarisid()); //Amb l'identificador de l'horari que hem creat $OHE->setIdespaiextern($idEE); $OHE->setActiu(true); $OHE->setSiteid($idS); $OHE->save(); } //Han entrat espais i guardem amb el material corresponent } else { foreach ($EXTRES['ESPAISOUT'] as $K => $idE) { foreach ($EXTRES['MATERIALOUT'] as $K => $idM) { $idHE = array_pop($A_HE); $OHE = !is_null($idHE) ? HorarisespaisPeer::retrieveByPK($idHE) : new Horarisespais(); $OHE->setMaterialIdmaterial($idM['material']); $OHE->setEspaisEspaiid($idE); $OHE->setHorarisHorarisid($OH->getHorarisid()); //Amb l'identificador de l'horari que hem creat $OHE->setIdespaiextern(null); $OHE->setActiu(true); $OHE->setSiteid($idS); $OHE->save(); } if (empty($EXTRES['MATERIALOUT'])) { $idHE = array_pop($A_HE); $OHE = !is_null($idHE) ? HorarisespaisPeer::retrieveByPK($idHE) : new Horarisespais(); $OHE->setMaterialIdmaterial(null); $OHE->setEspaisEspaiid($idE); $OHE->setHorarisHorarisid($OH->getHorarisid()); //Amb l'identificador de l'horari que hem creat $OHE->setIdespaiextern(null); $OHE->setActiu(true); $OHE->setSiteid($idS); $OHE->save(); } } } } //Acabem d'eliminar els que sobrin if (!empty($A_H)) { foreach ($A_H as $idH) { HorarisPeer::retrieveByPK($idH)->setInactiu(); } } if (!empty($A_HE)) { foreach ($A_HE as $idHE) { HorarisespaisPeer::retrieveByPK($idHE)->setInactiu(); } } }