예제 #1
0
 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);
 }
예제 #2
0
 /**
  * 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;
 }
예제 #3
0
 /**
  * 
  * @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;
 }
예제 #4
0
 public function getHorari()
 {
     $OH = HorarisPeer::retrieveByPK($this->getEntradesPreusHorariId());
     if ($OH instanceof Horaris) {
         return $OH;
     } else {
         $OH = new Horaris();
     }
 }
예제 #5
0
 public function getHorarisActius($idS)
 {
     $C = new Criteria();
     $C = HorarisPeer::getCriteriaActiu($C, $idS);
     $C->addAscendingOrderByColumn(HorarisPeer::DIA);
     return $this->getHorariss($C);
 }
예제 #6
0
 /**
  * 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;
 }
예제 #8
0
 /**
  * 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);
 }
예제 #9
0
 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;
     }
 }
예제 #10
0
 /**
  * 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;
 }
예제 #11
0
 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);
 }
예제 #12
0
 public function getHorari()
 {
     return HorarisPeer::retrieveByPK($this->getHorariId());
 }
예제 #13
0
 /**
  * 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;
 }
예제 #14
0
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 
}
예제 #15
0
파일: Horaris.php 프로젝트: nagiro/intra
 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);
 }
예제 #16
0
 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;
 }
예제 #17
0
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">&nbsp;</div>                                                                                  	    			
        	</div>    	                          
	</div>
<?php 
}
예제 #18
0
 /**
  * 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;
 }
예제 #19
0
 /**
  * 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]]);
     }
 }
예제 #20
0
 /**
  * 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;
 }
예제 #21
0
파일: CiclesPeer.php 프로젝트: nagiro/intra
 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';
     }
 }
예제 #22
0
 /**
  * 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;
 }
예제 #23
0
 /**
  * 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;
 }
예제 #24
0
 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();
         }
     }
 }