/** * 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; }
public function executeGActivitats(sfWebRequest $request) { $this->setLayout('gestio'); $this->IDS = $this->getUser()->getSessionPar('idS'); //Netegem cerca if ($request->getParameter('accio') == 'C') { $this->CERCA = $this->getUser()->setSessionPar('cerca', array('text' => '')); $this->PAGINA = $this->getUser()->setSessionPar('pagina', 1); $this->DATAI = $this->getUser()->setSessionPar('DATAI', time()); } //Afegit per si algú ha d'enviar algun error $this->ERROR = $request->getParameter('ERROR'); if ($this->ERROR == "HORARI_NO_EXISTEIX") { $this->MISSATGE = array(0 => "L'Horari no existeix o no s'ha trobat."); } elseif ($this->ERROR == "ACTIVITAT_NO_EXISTEIX") { $this->MISSATGE = array(0 => "La activitat no existeix o no s'ha trobat. "); } elseif ($this->ERROR == "NO_HI_HA_MES_HORARIS") { $this->MISSATGE = array(0 => "No s'ha creat cap nova activitat, perquè només conté un horari."); } $this->CERCA = $this->getUser()->ParReqSesForm($request, 'cerca', array('text' => "")); $T = time(); $this->PAGINA = $request->getParameter('PAGINA', 1); $this->DATAI = $this->getUser()->ParReqSesForm($request, 'DATAI', $T); $this->DIA = $request->getParameter('DIA', time()); $this->IDA = $request->getParameter('IDA', 0); $this->accio = $request->getParameter('accio', 'C'); $this->ACTIVITAT_NOVA = false; //Inicialitzem el formulari de cerca $this->FCerca = new CercaForm(); if (isset($this->CERCA['text'])) { $this->FCerca->bind(array('text' => $this->CERCA['text'])); } else { $this->FCerca->bind(array('text' => '')); } //Inicialitzem variables $this->MODE = array(); if ($request->isMethod('POST')) { if ($request->hasParameter('BCERCA')) { $this->accio = 'C'; $this->PAGINA = 1; } elseif ($request->hasParameter('BNOU')) { $this->accio = 'ACTIVITAT'; } elseif ($request->hasParameter('BCICLE')) { $this->accio = 'CICLE'; } elseif ($request->hasParameter('BCICLESAVE')) { $this->accio = 'CICLE_SAVE'; } elseif ($request->hasParameter('B-GUARDA-ACTIVITAT')) { $this->accio = 'ACTIVITAT_SAVE'; } elseif ($request->hasParameter('B-ESBORRA-ACTIVITAT')) { $this->accio = 'ACTIVITAT_DELETE'; } elseif ($request->hasParameter('BGENERANOTICIA')) { $this->accio = 'GENERA_NOTICIA'; } elseif ($request->hasParameter('BPREUSSAVE')) { $this->accio = 'PREUS'; } } //Quan cliquem per primer cop a qualsevol de les cerques, la pàgina es posa a 1 if ($request->getParameter('accio') == 'C') { $this->PAGINA = 1; } if ($request->getParameter('accio') == 'CD') { $this->PAGINA = 1; } if ($request->hasParameter('DATAI')) { $this->DIA = ""; } //Aquest petit bloc és per si es modifica amb un POST el que s'ha enviat per GET //$this->getUser()->setSessionPar('PAGINA',$this->PAGINA); //Guardem la pà gina per si hem fet una consulta nova $this->DATAF = mktime(0, 0, 0, date('m', $this->DATAI) + 3, date('d', $this->DATAI), date('Y', $this->DATAI)); //La data final sempre és 3 mesos superior a la inicial switch ($this->accio) { //Consulta inicial del calendari sense prèmer cap dia, només amb un factor de cerca case 'C': $this->getUser()->addLogAction('inside', 'gActivitats'); $HORARIS = HorarisPeer::getActivitats(null, $this->CERCA['text'], $this->DATAI, $this->DATAF, null, $this->IDS); if ($this->CERCA['text'] != "") { $this->ACTIVITATS = $HORARIS['ACTIVITATS']; } else { $this->ACTIVITATS = array(); } $this->CALENDARI = $HORARIS['CALENDARI']; $this->MODE['CONSULTA'] = true; $this->MODE['LLISTAT'] = true; break; break; //Consulta que em mostra les activitats quan canvio de mensualitat o any //Consulta que em mostra les activitats quan canvio de mensualitat o any case 'CC': $HORARIS = HorarisPeer::getActivitats(null, $this->CERCA['text'], $this->DATAI, $this->DATAF, null, $this->IDS); //$this->ACTIVITATS = $HORARIS['ACTIVITATS']; $this->ACTIVITATS = array(); $this->CALENDARI = $HORARIS['CALENDARI']; $this->MODE['CONSULTA'] = true; $this->MODE['LLISTAT'] = true; break; //Consulta que em mostra les activitats d'un dia seleccionat del calendari //Consulta que em mostra les activitats d'un dia seleccionat del calendari case 'CD': $HORARIS = HorarisPeer::getActivitats($this->DIA, $this->CERCA['text'], null, null, null, $this->IDS); $this->ACTIVITATS = $HORARIS['ACTIVITATS']; $this->CALENDARI = $HORARIS['CALENDARI']; $this->MODE['CONSULTA'] = true; $this->MODE['LLISTAT'] = true; break; //Entrem les activitats... que necessitem //Entrem les activitats... que necessitem case 'ACTIVITAT': $this->IDA = $request->getParameter('IDA'); //Carrego l'activitat i també les relacionades del cicle... si n'hi ha. $OA = ActivitatsPeer::retrieveByPK($this->IDA); if ($OA instanceof Activitats) { $OC = $OA->getCicles(); $idC = 0; if ($OC instanceof Cicles) { $idC = $OC->getCicleid(); } $FA = ActivitatsPeer::initialize($this->IDA, $idC, $this->IDS); //Si l'activitat té un cicle, carreguem les activitats relacionades $L_OA_REL = array(); $this->N = CiclesPeer::getActivitatsCicle($idC, $this->IDS); //Carreguem el formulari de preus $LOH = $OA->getHorarisActius($this->IDS); //Carreguem els horaris actius de l'activitat. $this->FPREUS = array(); if ($OC instanceof Cicles && $this->N < 50) { $L_OA_REL = CiclesPeer::getActivitatsCicleList($idC, $this->IDS); } $this->OC = $OC; $this->OA = $OA; $this->L_OA_REL = $L_OA_REL; $this->FA = $FA; $this->MODE['ACTIVITAT_CICLE'] = true; //Si no hi ha l'activitat, vol dir que és nova... } else { $FA = ActivitatsPeer::initialize(0, 0, $this->IDS); $L_OA_REL = array(); $this->N = 0; $this->OC = null; $this->OA = $FA->getObject(); $this->L_OA_REL = $L_OA_REL; $this->FA = $FA; $this->MODE['ACTIVITAT_CICLE'] = true; } break; //Guardem l'activitat //Guardem l'activitat case 'ACTIVITAT_SAVE': $RP = $request->getParameter('activitats'); $this->IDA = $RP['ActivitatID']; $this->IDC = $RP['Cicles_CicleID']; $this->FActivitat = ActivitatsPeer::initialize($this->IDA, $this->IDC, $this->IDS); $this->FActivitat->bind($RP); if ($this->FActivitat->isValid()) { $nova = $this->FActivitat->isNew(); $this->FActivitat->save(); $this->getUser()->addLogAction($this->accio, 'gActivitats', $this->FActivitat->getObject()); $this->IDA = $this->FActivitat->getObject()->getActivitatid(); if ($RP['ActivitatID'] > 0) { myUser::addLogTimeline('alta', 'activitats', $this->getUser()->getSessionPar('idU'), $this->IDS, $this->FActivitat->getObject()->getActivitatid()); } myUser::addLogTimeline('modificació', 'activitats', $this->getUser()->getSessionPar('idU'), $this->IDS, $this->FActivitat->getObject()->getActivitatid()); $this->redirect('gestio/gActivitats?accio=ACTIVITAT&IDA=' . $this->IDA); } else { $this->MISSATGE = "HI HA HAGUT ALGUN PROBLEMA CREANT L'ACTIVITAT."; } break; //Esborrem una activitat //Esborrem una activitat case 'ACTIVITAT_DELETE': $RP = $request->getParameter('activitats'); $this->IDA = $RP['ActivitatID']; $this->IDC = $RP['Cicles_CicleID']; $this->FActivitat = ActivitatsPeer::initialize($this->IDA, $this->IDC, $this->IDS); $OA = $this->FActivitat->getObject(); if ($OA instanceof Activitats) { $this->getUser()->addLogAction($this->accio, 'gActivitats', $OA); myUser::addLogTimeline('baixa', 'activitats', $this->getUser()->getSessionPar('idU'), $this->IDS, $RP['ActivitatID']); $OA->setInactiu(); $this->redirect('gestio/gActivitats?accio=CC'); } break; //Crida AJAX per carregar un horari //Crida AJAX per carregar un horari case 'HORARI': $idH = $request->getParameter('idH'); $idA = $request->getParameter('idA'); $OH = HorarisPeer::retrieveByPK($idH); if ($OH instanceof Horaris) { return $this->renderPartial('formHorari', array("OH" => $OH)); } else { return $this->renderPartial('formHorari', array("OH" => HorarisPeer::initialize($idH, $idA, $this->IDS)->getObject())); } break; //Crida per AJAX que emmagatzema els horaris i fa les comprovacions pertinents //Crida per AJAX que emmagatzema els horaris i fa les comprovacions pertinents case 'HORARI_SAVE': //Carreguem els paràmetres a la variable enviats per ajax. parse_str($request->getParameter('FORMULARI'), $RP); $ERRORS = array(); $IDA = $RP['horaris']['Activitats_ActivitatID']; $IDH = $RP['horaris']['HorarisID']; //Comprovem si existeix l'activitat... si no existeix li diem que primer l'han de guardar. $OA = ActivitatsPeer::retrieveByPK($IDA); //Si no podem carregar l'activitat, mostrem un error... if (!$OA instanceof Activitats) { $ERRORS['OA'] = 'ERROR: ABANS DE CREAR UN HORARI HAS DE GUARDAR L\'ACTIVITAT.'; return $this->renderText(implode('<br />', $ERRORS)); //Hem pogut carregar l'activitat relacionada i podem donar d'alta l'horari. } else { //Carreguem l'Horari que s'ha entrat... o en creem un de nou. $OH = HorarisPeer::retrieveByPK($IDH); if ($OH instanceof Horaris) { $FHorari = new HorarisForm($OHorari); } else { $FHorari = new HorarisForm(); } //Fem un bind de les dades generals per si hi ha un error $FHorari->bind($RP); //Creem la variable EXTRES $EXTRES = array('ESPAISOUT' => array(), 'MATERIALOUT' => array()); //Guardem a extres els espais que volem reservar de la nostra entitat $EXTRES['ESPAISOUT'] = $RP['espais']; //Comprovem l'existència del material i el guardem en format de save foreach ($RP['material'] as $M => $idM) { $OM = MaterialPeer::retrieveByPK($idM); if ($OM instanceof Material) { $EXTRES['MATERIALOUT'][] = array('material' => $idM, 'generic' => $OM->getMaterialgenericIdmaterialgeneric()); } } //Tractem els espais externs, i el guardem si n'hi ha algun. $EXTRES['ESPAIEXTERN'] = EspaisExternsPeer::initialize($RP['espais_externs']); if ($RP_EE['espais_externs']['Poble'] > 0) { $EXTRES['ESPAIEXTERN']->bind($RP['espais_externs']); if (!$EXTRES['ESPAIEXTERN']->isValid()) { $ERRORS['EE'] = "ERROR: HI HA ALGUN ERROR EN L'ESPAI EXTERN."; } else { $EXTRES['ESPAIEXTERN']->save(); } } //Si no hi ha cap error, passem a guardar. if (empty($ERRORS)) { $ERRORS = HorarisPeer::GuardaHorari($RP['horaris'], $EXTRES, $this->IDS); } //Si no hi ha hagut cap error, ho guardem al log com un canvi en l'horari if (empty($ERRORS)) { $this->getUser()->addLogAction('HORARI_SAVE', 'gActivitats', $FHorari->getObject()); if ($RP['horaris']['HorarisID'] > 0) { myUser::addLogTimeline('modificació', 'horaris', $this->getUser()->getSessionPar('idU'), $this->IDS, $IDA); } else { myUser::addLogTimeline('alta', 'horaris', $this->getUser()->getSessionPar('idU'), $this->IDS, $IDA); } return $this->renderText(implode("\n", $ERRORS)); //Hem d'informar que ha anat tot bé. } else { //Hem d'informar que hi ha hagut algun error return $this->renderText(implode("\n", $ERRORS)); } } break; //Funció AJAX que esborra un horari determinat. //Funció AJAX que esborra un horari determinat. case 'HORARI_DELETE': //Llegim el que s'envia per ajax. parse_str($request->getParameter('FORMULARI'), $RP); $OH = HorarisPeer::retrieveByPK($RP['horaris']['HorarisID']); if ($OH instanceof Horaris) { $this->getUser()->addLogAction($this->accio, 'gActivitats', $OH); myUser::addLogTimeline('baixa', 'horaris', $this->getUser()->getSessionPar('idU'), $this->IDS, $RP['horaris']['Activitats_ActivitatID']); $OH->setInactiu(); return $this->renderText(""); } else { return $this->renderText("ERROR: No s'ha trobat l'horari. "); } break; /* case 'DESCRIPCIO': $this->CarregaActivitats($request,false); $this->FActivitat = ActivitatsPeer::initializeDescription($this->IDA,$this->IDS); $this->MODE['DESCRIPCIO'] = true; break; */ /* case 'DESCRIPCIO': $this->CarregaActivitats($request,false); $this->FActivitat = ActivitatsPeer::initializeDescription($this->IDA,$this->IDS); $this->MODE['DESCRIPCIO'] = true; break; */ case 'DESCRIPCIO_SAVE': parse_str($request->getParameter('FORMULARI'), $RP); $RP = $RP['activitats']; $this->IDA = $RP['ActivitatID']; $this->FActivitat = ActivitatsPeer::initializeDescription($this->IDA, $this->IDS); $this->FActivitat->bind($RP); if ($this->FActivitat->isValid()) { $this->FActivitat->save(); $this->getUser()->addLogAction($this->accio, 'gActivitats', $this->FActivitat->getObject()); return $this->renderText(''); } else { return $this->renderText('ERROR: No s\'ha trobat la descripció.'); } break; case 'GENERA_NOTICIA': $RP = $request->getParameter('activitats'); $this->IDA = $RP['ActivitatID']; $ONoticia = NoticiesPeer::getNoticiaActivitat($this->IDA, $this->IDS); $this->redirect('gestio/gNoticies?accio=E&idn=' . $ONoticia->getIdnoticia()); break; case 'PREUS': parse_str($request->getParameter('FORMULARI'), $RP); $RP = $RP['entrades_preus']; $ERRORS = array(); if ($request->hasParameter('FORMULARI')) { $FEP = EntradesPreusPeer::initialize($this->IDS, $RP['horari_id']); $FEP->bind($RP); if ($FEP->isValid()) { $FEP->save(); return $this->renderText(''); } else { $A = array(); foreach ($FEP as $E) { if ($E->hasError()) { $A[] = 'ERROR a ' . $E->getName() . ' >> ' . $E->getError(); } } return $this->renderText(json_encode($A)); } } else { $IDH = $request->getParameter('idH'); $this->FEP = EntradesPreusPeer::initialize($this->IDS, $IDH); return $this->renderPartial('formPreus', array('FEP' => $this->FEP)); } break; //Des d'un horari, creem una activitat nova amb les mateixes dades. Ja està entrat l'error a dalt. //Des d'un horari, creem una activitat nova amb les mateixes dades. Ja està entrat l'error a dalt. case 'DESDOBLAR': $IDH = $request->getParameter('IDH'); $OH = HorarisPeer::retrieveByPK($IDH); if (!$OH instanceof Horaris) { $this->redirect("gestio/gActivitats?accio=ERROR_GREU&ERROR=HORARI_NO_EXISTEIX"); } //Carreguem l'activitat i en fem una de nova. $OA = ActivitatsPeer::retrieveByPK($OH->getActivitatsActivitatid()); if (!$OA instanceof Activitats) { $this->redirect("gestio/gActivitats?accio=ERROR_GREU&ERROR=ACTIVITAT_NO_EXISTEIX"); } //Comprovem que tingui algun altre horari, sinó donem error. $NH = $OA->countHorarisActius($this->IDS); if ($NH <= 1) { $this->redirect("gestio/gActivitats?accio=HORARI&IDA={$OA->getActivitatid()}&IDH={$OH->getHorarisid()}&ERROR=NO_HI_HA_MES_HORARIS"); } $NOVA_ACTIVITAT = $OA->copy(); $NOVA_ACTIVITAT->save(); $OH->setActivitatsActivitatid($NOVA_ACTIVITAT->getActivitatid()); $OH->save(); $this->redirect("gestio/gActivitats?accio=ACTIVITAT&IDA={$NOVA_ACTIVITAT->getActivitatid()}"); break; //Mostra un error greu on apareix només el missatge //Mostra un error greu on apareix només el missatge case 'ERROR_GREU': $this->MODE['ERROR_GREU'] = true; break; } }
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 }
public function getHorari() { $OH = HorarisPeer::retrieveByPK($this->getEntradesPreusHorariId()); if ($OH instanceof Horaris) { return $OH; } else { $OH = new Horaris(); } }
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); //Si estem fent una substitució, recarreguem, sinó en creem un de nou $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->setEspectadors($HORARIS['Espectadors']); $OH->setPlaces($HORARIS['Places']); $OH->setDia($D); $OH->setActiu(true); $OH->setSiteid($idS); $OH->save(); //Guardem l'Horari en si //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(); } } }
public function getHorari() { return HorarisPeer::retrieveByPK($this->getHorariId()); }
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 executeGActivitats(sfWebRequest $request) { $this->setLayout('gestio'); $this->IDS = $this->getUser()->getSessionPar('idS'); //Netegem cerca if ($request->getParameter('accio') == 'C') { $this->CERCA = $this->getUser()->setSessionPar('cerca', array('text' => '')); $this->PAGINA = $this->getUser()->setSessionPar('pagina', 1); $this->DATAI = $this->getUser()->setSessionPar('DATAI', time()); } $this->CERCA = $this->getUser()->ParReqSesForm($request, 'cerca', array('text' => "")); $T = time(); $this->PAGINA = $request->getParameter('PAGINA', 1); $this->DATAI = $this->getUser()->ParReqSesForm($request, 'DATAI', $T); $this->DIA = $request->getParameter('DIA', time()); $this->IDA = $request->getParameter('IDA', 0); $this->accio = $request->getParameter('accio', 'C'); $this->ACTIVITAT_NOVA = false; //Inicialitzem el formulari de cerca $this->FCerca = new CercaForm(); if (isset($this->CERCA['text'])) { $this->FCerca->bind(array('text' => $this->CERCA['text'])); } else { $this->FCerca->bind(array('text' => '')); } //Inicialitzem variables $this->MODE = array(); if ($request->isMethod('POST')) { if ($request->hasParameter('BCERCA')) { $this->accio = 'C'; $this->PAGINA = 1; } elseif ($request->hasParameter('BNOU')) { $this->accio = 'ACTIVITAT'; } elseif ($request->hasParameter('BCICLE')) { $this->accio = 'CICLE'; } elseif ($request->hasParameter('BCICLESAVE')) { $this->accio = 'CICLE_SAVE'; } elseif ($request->hasParameter('BACTIVITAT')) { $this->accio = 'ACTIVITAT'; } elseif ($request->hasParameter('BACTIVITATSAVE')) { $this->accio = 'ACTIVITAT_SAVE'; } elseif ($request->hasParameter('BACTIVITATDELETE')) { $this->accio = 'ACTIVITAT_DELETE'; } elseif ($request->hasParameter('BHORARI')) { $this->accio = 'HORARI'; } elseif ($request->hasParameter('BHORARISAVE')) { $this->accio = 'HORARI_SAVE'; } elseif ($request->hasParameter('BHORARIDELETE')) { $this->accio = 'HORARI_DELETE'; } elseif ($request->hasParameter('BDESCRIPCIO')) { $this->accio = 'DESCRIPCIO'; } elseif ($request->hasParameter('BDESCRIPCIOSAVE')) { $this->accio = 'DESCRIPCIO_SAVE'; } elseif ($request->hasParameter('BDESCRIPCIODELETE')) { $this->accio = 'DESCRIPCIO_DELETE'; } elseif ($request->hasParameter('BGENERANOTICIA')) { $this->accio = 'GENERA_NOTICIA'; } } //Quan cliquem per primer cop a qualsevol de les cerques, la pàgina es posa a 1 if ($request->getParameter('accio') == 'C') { $this->PAGINA = 1; } if ($request->getParameter('accio') == 'CD') { $this->PAGINA = 1; } if ($request->hasParameter('DATAI')) { $this->DIA = ""; } //Aquest petit bloc és per si es modifica amb un POST el que s'ha enviat per GET //$this->getUser()->setSessionPar('PAGINA',$this->PAGINA); //Guardem la pà gina per si hem fet una consulta nova $this->DATAF = mktime(0, 0, 0, date('m', $this->DATAI) + 3, date('d', $this->DATAI), date('Y', $this->DATAI)); //La data final sempre és 3 mesos superior a la inicial switch ($this->accio) { //Consulta inicial del calendari sense prèmer cap dia, només amb un factor de cerca case 'C': $this->getUser()->addLogAction('inside', 'gActivitats'); $HORARIS = HorarisPeer::getActivitats(null, $this->CERCA['text'], $this->DATAI, $this->DATAF, null, $this->IDS); if ($this->CERCA['text'] != "") { $this->ACTIVITATS = $HORARIS['ACTIVITATS']; } else { $this->ACTIVITATS = array(); } $this->CALENDARI = $HORARIS['CALENDARI']; $this->MODE['CONSULTA'] = true; $this->MODE['LLISTAT'] = true; break; break; //Consulta que em mostra les activitats quan canvio de mensualitat o any //Consulta que em mostra les activitats quan canvio de mensualitat o any case 'CC': $HORARIS = HorarisPeer::getActivitats(null, $this->CERCA['text'], $this->DATAI, $this->DATAF, null, $this->IDS); //$this->ACTIVITATS = $HORARIS['ACTIVITATS']; $this->ACTIVITATS = array(); $this->CALENDARI = $HORARIS['CALENDARI']; $this->MODE['CONSULTA'] = true; $this->MODE['LLISTAT'] = true; break; //Consulta que em mostra les activitats d'un dia seleccionat del calendari //Consulta que em mostra les activitats d'un dia seleccionat del calendari case 'CD': $HORARIS = HorarisPeer::getActivitats($this->DIA, $this->CERCA['text'], null, null, null, $this->IDS); $this->ACTIVITATS = $HORARIS['ACTIVITATS']; $this->CALENDARI = $HORARIS['CALENDARI']; $this->MODE['CONSULTA'] = true; $this->MODE['LLISTAT'] = true; break; //Entrem les activitats... que necessitem //Entrem les activitats... que necessitem case 'ACTIVITAT': $this->CarregaActivitats($request, $request->getParameter('form', true)); $this->MODE['ACTIVITAT_EDIT'] = true; break; case 'ACTIVITAT_NO_EDIT': $this->CarregaActivitats($request, $request->getParameter('form', true)); break; //Guardem l'activitat //Guardem l'activitat case 'ACTIVITAT_SAVE': $RP = $request->getParameter('activitats'); $this->IDA = $RP['ActivitatID']; $this->IDC = $RP['Cicles_CicleID']; $this->FActivitat = ActivitatsPeer::initialize($this->IDA, $this->IDC, $this->IDS); $this->FActivitat->bind($request->getParameter('activitats')); if ($this->FActivitat->isValid()) { $nova = $this->FActivitat->isNew(); $this->FActivitat->save(); $this->getUser()->addLogAction($this->accio, 'gActivitats', $this->FActivitat->getObject()); $this->IDA = $this->FActivitat->getObject()->getActivitatid(); if ($nova) { $this->redirect('gestio/gActivitats?accio=HORARI&IDA=' . $this->IDA . '&nou=' . $this->IDA); } else { $this->redirect('gestio/gActivitats?accio=ACTIVITAT&IDA=' . $this->IDA); } } else { $this->CarregaActivitats($request, $request->getParameter('form', true)); } break; //Esborrem una activitat //Esborrem una activitat case 'ACTIVITAT_DELETE': $RP = $request->getParameter('activitats'); $this->IDA = $RP['ActivitatID']; $this->IDC = $RP['Cicles_CicleID']; $this->FActivitat = ActivitatsPeer::initialize($this->IDA, $this->IDC, $this->IDS); $OA = $this->FActivitat->getObject(); if ($OA instanceof Activitats) { $this->getUser()->addLogAction($this->accio, 'gActivitats', $OA); $OA->setInactiu(); $this->redirect('gestio/gActivitats?accio=CC'); } break; //Entrem els horaris de les activitats //Entrem els horaris de les activitats case 'HORARI': $this->CarregaActivitats($request, false); $OActivitat = ActivitatsPeer::retrieveByPK($this->IDA); $this->HORARIS = $OActivitat->getHorarisActius($this->IDS); $this->NOMACTIVITAT = $OActivitat->getNom(); $OHorari = new Horaris(); $OHorari->setActivitatsActivitatid($this->IDA); if ($request->hasParameter('nou')) { $this->FHorari = new HorarisForm($OHorari); } $this->HORARI = $OHorari; $this->EXTRES = array('ESPAISOUT' => array(), 'MATERIALOUT' => array(), 'ESPAIEXTERN' => EspaisExternsPeer::initialize(null)); $this->getUser()->setSessionPar('IDH', 0); if ($request->hasParameter('IDH')) { $H = HorarisPeer::retrieveByPK($request->getParameter('IDH')); $this->getUser()->setSessionPar('IDH', $request->getParameter('IDH')); $this->FHorari = new HorarisForm($H); $this->HORARI = $H; $this->EXTRES['ESPAISOUT'] = $H->getArrayHorarisEspaisActiusAgrupats(); $this->EXTRES['MATERIALOUT'] = $H->getArrayHorarisEspaisMaterial(); $this->EXTRES['ESPAIEXTERN'] = $H->getEspaiExternForm(); } $this->MODE['HORARI'] = true; break; case 'HORARI_SAVE': $RP = $request->getParameter('horaris'); $this->IDA = $RP['Activitats_ActivitatID']; $this->IDH = $RP['HorarisID']; $OActivitat = ActivitatsPeer::retrieveByPK($this->IDA); $this->NOMACTIVITAT = $OActivitat->getNom(); $this->HORARIS = $OActivitat->getHorarisActius($this->IDS); $OHorari = HorarisPeer::retrieveByPK($this->IDH); if ($this->IDH == 0) { $this->FHorari = new HorarisForm(); } else { $this->FHorari = new HorarisForm($OHorari); } //Fem un bind de les dades generals per si hi ha un error $this->FHorari->bind($RP); //Creem la variable EXTRES $this->EXTRES = array('ESPAISOUT' => array(), 'MATERIALOUT' => array()); //Guardem a extres el material que volem reservar. foreach ($request->getParameter('material', array()) as $M => $idM) { $OM = MaterialPeer::retrieveByPK($idM); if ($OM instanceof Material) { $this->EXTRES['MATERIALOUT'][] = array('material' => $idM, 'generic' => $OM->getMaterialgenericIdmaterialgeneric()); } } //Guardem a extres els espais que volem reservar de la nostra entitat $this->EXTRES['ESPAISOUT'] = $request->getParameter('espais', array()); //Tractem els espais externs, si n'hi ha algun. $RPEE = $request->getParameter('espais_externs', null); $this->EXTRES['ESPAIEXTERN'] = EspaisExternsPeer::initialize($RPEE['idEspaiextern']); if ($RPEE['Poble'] > 0) { $this->EXTRES['ESPAIEXTERN']->bind($RPEE); $RET = array(); if (!$this->EXTRES['ESPAIEXTERN']->isValid()) { $RET = array('Hi ha algun error a la localització externa.'); } else { $this->EXTRES['ESPAIEXTERN']->save(); } } if (empty($RET)) { $RET = $this->GuardaHorari($request->getParameter('horaris'), $this->EXTRES, $this->IDS, $this->MISSATGE); } if (empty($RET)) { $this->getUser()->addLogAction($this->accio, 'gActivitats', $this->FHorari->getObject()); $this->MISSATGE = array(1 => 'Horari guardat correctament'); $this->redirect('gestio/gActivitats?accio=HORARI&IDA=' . $this->IDA); } else { $this->MISSATGE = $RET; } $this->CarregaActivitats($request, false); $this->MODE['HORARI'] = true; break; case 'HORARI_DELETE': $RH = $request->getParameter('horaris'); $OH = HorarisPeer::retrieveByPK($RH['HorarisID']); if ($OH instanceof Horaris) { $this->getUser()->addLogAction($this->accio, 'gActivitats', $OH); $OH->setInactiu(); } $this->redirect('gestio/gActivitats?accio=HORARI&IDA=' . $RH['Activitats_ActivitatID']); break; case 'DESCRIPCIO': $this->CarregaActivitats($request, false); $this->FActivitat = ActivitatsPeer::initializeDescription($this->IDA, $this->IDS); $this->MODE['DESCRIPCIO'] = true; break; case 'DESCRIPCIO_SAVE': $RP = $request->getParameter('activitats'); $this->IDA = $RP['ActivitatID']; $this->CarregaActivitats($request, false); $this->FActivitat = ActivitatsPeer::initializeDescription($this->IDA, $this->IDS); $this->FActivitat->bind($RP, $request->getFiles('activitats')); if ($this->FActivitat->isValid()) { $this->FActivitat->save(); $this->getUser()->addLogAction($this->accio, 'gActivitats', $this->FActivitat->getObject()); $this->redirect('gestio/gActivitats?accio=ACTIVITAT_NO_EDIT&IDA=' . $this->IDA); } $THIS->MODE['DESCRIPCIO'] = true; break; case 'GENERA_NOTICIA': $RP = $request->getParameter('activitats'); $this->IDA = $RP['ActivitatID']; $ONoticia = NoticiesPeer::getNoticiaActivitat($this->IDA, $this->IDS); $this->redirect('gestio/gNoticies?accio=E&idn=' . $ONoticia->getIdnoticia()); break; } }
/** * @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; }