function Entrades_LlistaActivitats($LLISTAT_ACTIVITATS, $P) { ?> <div class="REQUADRE"> <div class="TITOL">Activitats amb reserva d'entrades</div> <div class="DADIV"> <div class="titol" style=" width:250px; "> Nom activitat </div> <div class="titol" style=" text-align:right; width:100px; "> Data </div> <div class="titol" style=" text-align:right; width:100px; "> Hora </div> <div class="titol" style=" text-align:right; width:100px; "> Reserves </div> <div class="titol" style=" text-align:right; width:50px; "> Llistat </div> <?php if (sizeof($LLISTAT_ACTIVITATS) == 0) { echo '<div>No hi ha cap més activitat amb reserva per internet.</div>'; } else { foreach ($LLISTAT_ACTIVITATS as $idA => $D) { try { $NE = EntradesReservaPeer::countEntradesActivitatConf($idA); echo '<div class="col" style="width:250px; clear:both;">' . link_to($D['nom'], 'gestio/gActivitats?accio=ACTIVITAT&IDA=' . $idA) . '</div>'; echo '<div class="col" style="text-align:right; width:100px;">' . $D['dia'] . '</div>'; echo '<div class="col" style="text-align:right; width:100px;">' . $D['hora'] . '</div>'; echo '<div class="col" style="text-align:right; width:100px;">' . $NE . '/' . $D['places'] . '</div>'; echo '<div class="col" style="text-align:right; width:50px;">' . link_to(image_tag('template/user.png', array('style' => 'height:13px;')) . '<span>Llistat de persones que han fet una reserva.</span>', 'gestio/gEntrades?accio=LR&IDA=' . $idA, array('class' => 'tt2')) . '</div>'; } catch (Exception $e) { } } } ?> </div> <div style="clear: both;"> </div> <?php if ($P > 1) { echo link_to('<-- Veure activitats anteriors', 'gestio/gEntrades?P=' . ($P - 1)); } if (sizeof($LLISTAT_ACTIVITATS) == 20) { echo " "; if (sizeof($LLISTAT_ACTIVITATS) > 0) { echo link_to('Veure activitats següents -->', 'gestio/gEntrades?P=' . ($P + 1)); } } ?> </div> <?php }
/** * 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 = EntradesReservaPeer::getFieldNames($keyType); if (array_key_exists($keys[0], $arr)) { $this->setIdentrada($arr[$keys[0]]); } if (array_key_exists($keys[1], $arr)) { $this->setEntradesPreusHorariId($arr[$keys[1]]); } if (array_key_exists($keys[2], $arr)) { $this->setUsuariId($arr[$keys[2]]); } if (array_key_exists($keys[3], $arr)) { $this->setNomReserva($arr[$keys[3]]); } if (array_key_exists($keys[4], $arr)) { $this->setEmailReserva($arr[$keys[4]]); } if (array_key_exists($keys[5], $arr)) { $this->setTelefonReserva($arr[$keys[5]]); } if (array_key_exists($keys[6], $arr)) { $this->setQuantitat($arr[$keys[6]]); } if (array_key_exists($keys[7], $arr)) { $this->setPagat($arr[$keys[7]]); } if (array_key_exists($keys[8], $arr)) { $this->setData($arr[$keys[8]]); } if (array_key_exists($keys[9], $arr)) { $this->setEstat($arr[$keys[9]]); } if (array_key_exists($keys[10], $arr)) { $this->setTipusPagament($arr[$keys[10]]); } if (array_key_exists($keys[11], $arr)) { $this->setActiu($arr[$keys[11]]); } if (array_key_exists($keys[12], $arr)) { $this->setSiteId($arr[$keys[12]]); } if (array_key_exists($keys[13], $arr)) { $this->setDescompte($arr[$keys[13]]); } if (array_key_exists($keys[14], $arr)) { $this->setTpvOperacio($arr[$keys[14]]); } if (array_key_exists($keys[15], $arr)) { $this->setTpvOrder($arr[$keys[15]]); } if (array_key_exists($keys[16], $arr)) { $this->setComentari($arr[$keys[16]]); } }
/** * 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(EntradesReservaPeer::DATABASE_NAME, Propel::CONNECTION_READ); } $objs = null; if (empty($pks)) { $objs = array(); } else { $criteria = new Criteria(EntradesReservaPeer::DATABASE_NAME); $criteria->add(EntradesReservaPeer::IDENTRADA, $pks, Criteria::IN); $objs = EntradesReservaPeer::doSelect($criteria, $con); } return $objs; }
/** * Funció que permet gestionar la venta d'entrades * * */ public function executeGEntrades(sfWebRequest $request) { $this->setLayout('gestio'); $this->IDS = $this->getUser()->getSessionPar('idS'); $this->P = $this->getUser()->ParReqSesForm($request, 'P', 1); $this->URL = $this->getController()->genUrl('gestio/ajaxUsuaris', true); $accio = $request->getParameter('accio', 'LH'); //Treiem el llistat d'activitats amb les entrades venudes i tmabé els seus horaris si n'hi ha. Aquí només visualitzem... si hem de modificar clicquem un enllaç cap al calendari. switch ($accio) { //Llista els que han reservat case 'LR': $this->MODE = 'LLISTA_ENTRADES'; $this->LLISTAT_ENTRADES = EntradesReservaPeer::getEntradesVenudes($request->getParameter('IDA'), $request->getParameter('IDH'), true); $this->LLISTAT_ENTRADES_ANULADES = EntradesReservaPeer::getEntradesNoComptades($request->getParameter('IDA'), $request->getParameter('IDH')); break; //Anul·la la reserva //Anul·la la reserva case 'AR': $IDR = $request->getParameter('IDR'); $IDA = 0; try { $OR = EntradesReservaPeer::retrieveByPK($IDR); $OR->setEstat(EntradesReservaPeer::ESTAT_ENTRADA_ANULADA); $OR->save(); $IDH = $OR->getEntradesPreusHorariId(); } catch (Exception $e) { } $this->MODE = 'LLISTA_ENTRADES'; $this->redirect('gestio/gEntrades?accio=LR&IDH=' . $IDH); break; //Compra o reserva d'una entrada //Compra o reserva d'una entrada case 'VE': $this->MODE = 'EDITA_ENTRADA'; //Comprem una entrada o guardem una modificació. if ($request->hasParameter('BRESERVASAVE')) { $RS = $request->getParameter('entrades_reserva'); $this->FReserva = EntradesReservaPeer::initialize($this->IDS, $this->URL, $RS['idEntrada'], $RS['entrades_preus_horari_id']); $this->FReserva->bind($RS); if ($this->FReserva->isValid()) { try { $is_new = $this->FReserva->isNew(); $RET = $this->FReserva->saveMy(); $OER = $RET['OER']; //Si hem pagat amb targeta switch ($RET['status']) { //Hem fet una actualització de l'entrada case 0: $this->redirect('gestio/gEntrades?accio=LR&IDH=' . $OER->getEntradesPreusHorariId()); break; //Compra en metàl·lic o targeta //Compra en metàl·lic o targeta case 1: $this->redirect('gestio/gEntrades?accio=OK&code=FACT&Ds_MerchantData=' . $OER->getIdentrada()); break; //Reserva d'entrada ok //Reserva d'entrada ok case 2: $this->redirect('gestio/gEntrades?accio=OK&code=FACT&Ds_MerchantData=' . $OER->getIdentrada()); break; //Pagament amb TPV //Pagament amb TPV case 3: if ($is_new) { $this->TPV = MatriculesPeer::getTPV($OER->getPagat(), $OER->getNomUsuari(), $OER->getIdentrada(), $OER->getSiteId(), false, true); $this->URL = OptionsPeer::getString('TPV_URL', $OER->getSiteId()); $this->setLayout('blank'); $this->setTemplate('pagament'); } break; //En llista d'espera //En llista d'espera case 4: $this->redirect('gestio/gEntrades?accio=OK&code=LLISTA_ESPERA&Ds_MerchantData=' . $OER->getIdentrada()); break; //Domiciliació //Domiciliació case 5: $this->redirect('gestio/gEntrades?accio=OK&code=DOMICILIACIO&Ds_MerchantData=' . $OER->getIdentrada()); break; } } catch (Exception $e) { $this->MISSATGE = $e->getMessage(); } } } else { $IDR = $request->getParameter('IDR', 0); $IDH = $request->getParameter('IDH', 0); $this->FReserva = EntradesReservaPeer::initialize($this->IDS, $this->URL, $IDR, $IDH, 0); } break; //Un cop hem fet una compra d'una entrada, hem de mostrar aquesta pantalla. //Un cop hem fet una compra d'una entrada, hem de mostrar aquesta pantalla. case 'OK': $this->idER = $request->getParameter('Ds_MerchantData', 0); $OER = EntradesReservaPeer::retrieveByPK($this->idER); if ($OER instanceof EntradesReserva) { switch ($request->getParameter('code')) { case 'FACT': $this->MISSATGE = "ENTRADA_METALIC"; break; case 'LLISTA_ESPERA': $this->MISSATGE = "ENTRADA_LLISTA_ESPERA"; break; case 'DOMICILIACIO': $this->MISSATGE = "ENTRADA_DOMICILIACIO"; break; case 'TPV': $this->MISSATGE = "ENTRADA_OK"; break; } $email = $OER->getEmail(); $MailEnt = EntradesReservaPeer::DocReservaEntrades($OER, $OER->getSiteId()); if ($email != "") { $this->sendMail($from, $email, $subject, $MailEnt); } $this->sendMail($from, OptionsPeer::getString('MAIL_ADMIN', $idS), $subject, $MailEnt); } else { $this->MISSATGE = "ENTRADA_NO_TROBADA"; } $this->MODE = 'MISSATGE'; break; case 'KO': $this->MISSATGE = "PROBLEMA_PAGANT"; $this->MODE = 'MISSATGE'; break; case 'PRINT': $idER = $request->getParameter('idER'); $OER = EntradesReservaPeer::retrieveByPK($idER); $HTML = EntradesReservaPeer::DocReservaEntrades($OER, $this->IDS); myUser::Html2PDF($HTML); throw new sfStopException(); break; case 'PRINT_LLISTAT': $HTML = EntradesReservaPeer::DocLlistatEntrades($request->getParameter('IDH'), $request->getParameter('IDA'), $this->IDS); myUser::Html2PDF($HTML); throw new sfStopException(); break; //Llisto els horaris que disposen d'entrades //Llisto els horaris que disposen d'entrades default: //Agafo els horaris que tenen entrades a la venta i els ordeno per data $this->LLISTAT_ENTRADES_PREUS = EntradesPreusPeer::getActivitatsAmbEntrades($this->IDS, $this->P); $this->MODE = "LLISTA_ACTIVITATS"; break; } }
public function getEstatString() { return EntradesReservaPeer::getEstatToString($this->getEstat()); }
/** * 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 = EntradesReservaPeer::getFieldNames($keyType); if (array_key_exists($keys[0], $arr)) { $this->setEntradesReservaId($arr[$keys[0]]); } if (array_key_exists($keys[1], $arr)) { $this->setUsuariId($arr[$keys[1]]); } if (array_key_exists($keys[2], $arr)) { $this->setActivitatsId($arr[$keys[2]]); } if (array_key_exists($keys[3], $arr)) { $this->setQuantes($arr[$keys[3]]); } if (array_key_exists($keys[4], $arr)) { $this->setData($arr[$keys[4]]); } if (array_key_exists($keys[5], $arr)) { $this->setEstat($arr[$keys[5]]); } if (array_key_exists($keys[6], $arr)) { $this->setActiu($arr[$keys[6]]); } if (array_key_exists($keys[7], $arr)) { $this->setSiteId($arr[$keys[7]]); } }
/** * Retorna si una activitat ja no t� m�s entrades a la venta. * */ public function getIsPle() { return EntradesReservaPeer::countEntradesActivitatConf($this->getActivitatid()) >= $this->getPlaces(); }
public function executeUsuaris(sfWebRequest $request) { $accio = $request->getParameter('accio', 'inici'); $this->IDU = $this->getUser()->getSessionPar('idU'); $this->IDS = SitesPeer::HOSPICI_ID; $this->SECCIO = ""; switch ($accio) { case 'inici': $this->SECCIO = 'INICI'; break; //Modificació de les dades de l'usuari. //Modificació de les dades de l'usuari. case 'update': $RS = $request->getParameter('usuaris'); if ($RS['UsuariID'] == $this->IDU) { $FU = UsuarisPeer::initialize($this->IDU, $this->IDS, false, true); $FU->bind($RS); if ($FU->isValid()) { $FU->save(); $this->MISSATGE = "OK"; } } case 'compra_entrada': //Des de l'Hospici només es pot reservar una entrada. Més endavant s'haurà d'abonar l'import. $RS = $request->getParameter('entrades'); $OER = EntradesReservaPeer::initialize()->getObject(); //Si no existeix una compra per aquest usuari, la fem, altrament, no fem res. if (!EntradesReservaPeer::ExisteixenEntradesComprades($this->IDU, $RS['idH'])) { $OER->setUsuariid($this->IDU); $OER->setHorarisid($RS['idH']); $OER->setQuantes($RS['num']); $OER->setData(date('Y-m-d H:i', time())); $OER->setEstat(0); $OER->setActiu(true); $OER->save(); } $this->SECCIO = 'COMPRA_ENTRADA'; break; case 'anula_entrada': $RS = $request->getParameter('idER'); $OER = EntradesReservaPeer::retrieveByPK($RS); $idu = $OER->getUsuariid(); $act = $OER->getActiu(); if ($idu == $this->IDU && $act) { $OER->setEstat(EntradesReservaPeer::ANULADA); $OER->save(); } $this->SECCIO = 'COMPRA_ENTRADA'; break; } $this->setLayout('hospici'); //Si ja hi hem fet operacions... carreguem l'actual, sinó en fem un de nou. if (isset($FU) && $FU instanceof UsuarisForm) { $this->FUsuari = $FU; } else { $this->FUsuari = UsuarisPeer::initialize($this->IDU, $this->IDS, false, true); } $this->LMatricules = MatriculesPeer::h_getMatriculesUsuari($this->IDU); $this->LReserves = ReservaespaisPeer::h_getReservesUsuaris($this->IDU, $this->IDS); $this->LEntrades = EntradesReservaPeer::getEntradesUsuari($this->IDU); // $this->LMissatges = MissatgesPeer::getMissatgesUsuari(); }
public function executeUsuaris(sfWebRequest $request) { $this->setLayout('hospici'); $accio = $request->getParameter('accio', 'inici'); $this->IDU = $this->getUser()->getSessionPar('idU'); $this->IDS = SitesPeer::HOSPICI_ID; $this->SECCIO = ""; switch ($accio) { case 'inici': $this->SECCIO = 'INICI'; break; //Modificació de les dades de l'usuari. //Modificació de les dades de l'usuari. case 'update': $RS = $request->getParameter('usuaris'); if ($RS['UsuariID'] == $this->IDU) { $FU = UsuarisPeer::initialize($this->IDU, $this->IDS, false, true); $FU->bind($RS); if ($FU->isValid()) { $FU->save(); $this->MISSATGE1 = "OK"; } } $this->SECCIO = 'USUARI'; break; //Usuari que compra o reserva una entrada //Usuari que compra o reserva una entrada case 'compra_entrada': //Des de l'Hospici només es pot reservar una entrada. Més endavant s'haurà d'abonar l'import. $RS = $request->getParameter('entrades'); $OER = EntradesReservaPeer::initialize()->getObject(); $OA = ActivitatsPeer::retrieveByPK($RS['idA']); $idS = 0; if ($OA instanceof Activitats) { $idS = $OA->getSiteid(); } $this->MISSATGE2 = 'OK'; try { //Si no existeix una compra per aquest usuari, la fem, altrament, no fem res. if (!EntradesReservaPeer::ExisteixenEntradesComprades($this->IDU, $RS['idA'])) { //Falta mirar si hi ha entrades disponibles. $OER->setUsuariid($this->IDU); $OER->setActivitatsid($RS['idA']); $OER->setQuantes($RS['num']); $OER->setData(date('Y-m-d H:i', time())); $OER->setEstat(EntradesReservaPeer::CONFIRMADA); $OER->setActiu(true); $OER->setSiteid($idS); $OER->save(); UsuarisPeer::addSite($this->IDU, $idS); } else { $this->MISSATGE2 = 'ENTRADA_REPE'; } } catch (Exception $e) { $this->MISSATGE2 = 'ERROR'; } $this->SECCIO = 'COMPRA_ENTRADA'; break; //Usuari que anul·la una entrada prèviament reservada //Usuari que anul·la una entrada prèviament reservada case 'anula_entrada': $RS = $request->getParameter('idER'); $OER = EntradesReservaPeer::retrieveByPK($RS); $idu = $OER->getUsuariid(); $act = $OER->getActiu(); if ($idu == $this->IDU && $act) { $OER->setEstat(EntradesReservaPeer::ANULADA); $OER->save(); } $this->SECCIO = 'COMPRA_ENTRADA'; break; //Nova matrícula a un curs //Nova matrícula a un curs case 'nova_matricula': //Capturem el codi del curs i el codi del descompte $idC = $request->getParameter('idC'); $idD = $request->getParameter('idD'); $OC = CursosPeer::retrieveByPK($idC); //Si el curs és correcte if ($OC instanceof Cursos) { //Generem la matícula en procés. $OM = MatriculesPeer::saveNewMatricula($this->IDU, $idC, 0, 'Matrícula hospici', $idD); $this->SECCIO = 'MATRICULA'; if ($OM instanceof Matricules) { if ($OM->getEstat() == MatriculesPeer::EN_ESPERA) { //El curs en qüestió ja està ple. Mostrem el llistat però el missatge de "en espera" $this->MISSATGE3 = 'ESPERA'; } elseif ($OM->getEstat() == MatriculesPeer::EN_PROCES) { //La matrícula s'ha de cobrar amb targeta, només. try { //Carreguem les dades de l'usuari que està fent la matrícula $OU = UsuarisPeer::retrieveByPK($this->IDU); //Carreguem el TPV $this->TPV = MatriculesPeer::getTPV(CursosPeer::CalculaPreu($idC, $idD, $OC->getSiteId()), $OU->getNomComplet(), $OM->getIdmatricules(), $this->IDS, true); } catch (Exception $e) { $this->MISSATGE3 = 'KO'; /* Faltarà enviar un missatge de mail */ } $this->URL = OptionsPeer::getString('TPV_URL', $OC->getSiteId()); $this->setLayout('blanc'); $this->setTemplate('pagament'); } else { //Tot correcte. Mostrem el llistat de matrícules i el missatge que ha anat bé. $this->MISSATGE3 = "OK"; } } else { if ($OM == 1) { $this->MISSATGE3 = "JA_EXISTEIX"; } else { $this->MISSATGE3 = "KO"; } } } else { $this->MISSATGE3 = "CURS_NO_EXISTEIX"; } break; //S'ha matriculat correctament i TPV ok //S'ha matriculat correctament i TPV ok case 'matricula_OK': $this->MISSATGE3 = "OK"; $this->SECCIO = 'MATRICULA'; break; //No s'ha matriculat correctament o error a TPV //No s'ha matriculat correctament o error a TPV case 'matricula_KO': $this->MISSATGE3 = "KO"; $this->SECCIO = 'MATRICULA'; break; //Gestió del que retorna el TPV //Gestió del que retorna el TPV case 'GET_TPV': //Comprovem que vingui la crida per POST i que la resposta sigui 0000. Tot OK. //if( $request->getParameter('Ds_Response') == '0000' ) if ($request->isMethod() == 'POST' && $request->getParameter('Ds_Response') == '0000') { $idM = $request->getParameter('Ds_MerchantData', null); $OM = MatriculesPeer::retrieveByPK($idM); if ($OM instanceof Matricules) { $from = OptionsPeer::getString('MAIL_FROM', $OM->getSiteId()); //Un cop sabem que la matrícula existeix, comprovem la signatura i si és correcta, marquem com a pagat. if (MatriculesPeer::valTPV($request->getParameter('Ds_Amount'), $request->getParameter('Ds_Order'), $request->getParameter('Ds_MerchantCode'), $request->getParameter('Ds_Currency'), $request->getParameter('Ds_Response'), $request->getParameter('Ds_Signature'), OptionsPeer::getString('TPV_PASSWORD', $OM->getSiteid()))) { $MailMat = MatriculesPeer::MailMatricula($OM, $OM->getSiteid()); $subject = 'Hospici :: Nova matrícula'; $OM->setEstat(MatriculesPeer::ACCEPTAT_PAGAT); $OM->setTpvOperacio($request->getParameter('Ds_AuthorisationCode')); $OM->setTpvOrder($request->getParameter('Ds_Order')); $OM->save(); $this->sendMail($from, $OM->getUsuaris()->getEmail(), $subject, $MailMat); $this->sendMail($from, '*****@*****.**', $subject, $MailMat); } else { $this->sendMail($from, '*****@*****.**', 'HASH ERRONI', $idM); } } else { $this->sendMail('*****@*****.**', '*****@*****.**', 'CODI MATRÍCULA ERRONI', $idM); } } break; //Mostra totes les reserves que s'han fet //Mostra totes les reserves que s'han fet case 'llista_reserves': $this->SECCIO = 'RESERVA'; $this->MISSATGE4 = $request->getParameter('estat', null); break; //Editem una reserva prèviament feta //Editem una reserva prèviament feta case 'edita_reserva': $this->SECCIO = "RESERVA"; $OR = ReservaespaisPeer::retrieveByPK($request->getParameter('idR')); if ($OR instanceof Reservaespais) { $this->FReserva = new HospiciReservesForm($OR, array('IDS' => $OR->getSiteid())); $this->OPCIONS = 'VISUALITZA'; } else { $this->redirect('@hospici_llista_reserves'); } break; //Creem una nova reserva, i mostrem el formulari //Creem una nova reserva, i mostrem el formulari case 'nova_reserva': $idE = $request->getParameter('idE'); $OE = EspaisPeer::retrieveByPK($idE); $this->SECCIO = 'RESERVA'; if ($OE instanceof Espais) { $this->FReserva = ReservaespaisPeer::initializeHospici(null, $OE->getSiteid(), $OE->getEspaiid(), $this->getUser()->getSessionPar('idU')); } else { $this->MISSATGE4 = "ERROR_ESPAI"; } break; //Guardem la nova reserva //Guardem la nova reserva case 'save_nova_reserva': $RP = $request->getParameter('reservaespais'); $idU = $this->getUser()->getSessionPar('idU'); $this->SECCIO = 'RESERVA'; $this->FReserva = ReservaespaisPeer::initializeHospici(null, $RP['site_id'], null, $idU); $this->FReserva->bind($RP); if ($this->FReserva->isValid()) { //Guardem la reserva $this->FReserva->save(); //Enviem mails per informar que s'ha fet una nova reserva d'espais a secretaria $from = OptionsPeer::getString('MAIL_FROM', $RP['site_id']); $to = OptionsPeer::getString('MAIL_SECRETARIA', $RP['site_id']); $sub = "Hospici | Nova reserva d'espai"; $miss = "S'ha sol·licitat una nova reserva d'espai amb el codi {$RP['ReservaEspaiID']}"; $this->sendMail($from, $to, $sub, $miss); //Vinculem l'usuari amb el site corresponent UsuarisPeer::addSite($idU, $RP['site_id']); $this->redirect('@hospici_llista_reserves?estat=OK'); } else { $this->MISSATGE4 = 'ERROR_SAVE'; } break; //Alta d'un nou formulari //Alta d'un nou formulari case 'alta_formulari': $RP = $request->getParameter('formulari'); $idU = $this->getUser()->getSessionPar('idU'); $OF = FormularisRespostesPeer::initialize($RP['idF'], $idU, serialize($RP)); $OF->save(); //Enviem mails per informar que s'ha fet una nova reserva d'espais a secretaria $from = OptionsPeer::getString('MAIL_FROM', $OF->getSiteid()); $to = OptionsPeer::getString('MAIL_ADMIN', $OF->getSiteid()); $sub = "Hospici | Nou formulari enviat"; $miss = "S'ha enviat la següent informació amb una reserva d'espai.<br/><br />Dades:<br /><br /> "; foreach ($RP as $K => $V) { $miss .= $K . ': ' . $V . '<br/>'; } $this->sendMail($from, $to, $sub, $miss); $this->sendMail($from, '*****@*****.**', $sub, $miss); //Vinculem l'usuari amb el site corresponent UsuarisPeer::addSite($idU, $OF->getSiteid()); $this->MISSATGE6 = 'ALTA_OK'; $this->SECCIO = "FORMULARIS"; break; //Capturem el que ens arriba del mail de condicions. //Capturem el que ens arriba del mail de condicions. case 'condicions': $this->SECCIO = 'RESERVA'; $RP = $request->getParameter('reservaespais'); $idU = $this->getUser()->getSessionPar('idU'); $OR = ReservaespaisPeer::retrieveByPK($request->getParameter('idR')); if ($OR instanceof Reservaespais) { if ($request->hasParameter('B_ACCEPTO')) { $OR->setEstat(ReservaespaisPeer::ACCEPTADA); $OR->setDataacceptaciocondicions(date('Y-m-d', time())); $OR->save(); $this->redirect('@hospici_llista_reserves?estat=RESERVA_ACCEPTADA'); } elseif ($request->hasParameter('B_NO_ACCEPTO')) { $OR->setEstat(ReservaespaisPeer::ANULADA); $OR->setDataacceptaciocondicions(date('Y-m-d', time())); $OR->save(); $this->redirect('@hospici_llista_reserves?estat=RESERVA_ANULADA'); } else { $this->redirect('@hospici_llista_reserves?estat=ERROR_TECNIC'); } } else { $this->redirect('@hospici_llista_reserves?estat=ERROR_TECNIC'); } break; } //Si ja hi hem fet operacions... carreguem l'actual, sinó en fem un de nou. if (isset($FU) && $FU instanceof UsuarisForm) { $this->FUsuari = $FU; } else { $this->FUsuari = UsuarisPeer::initialize($this->IDU, $this->IDS, false, true); } $this->LMatricules = MatriculesPeer::h_getMatriculesUsuari($this->IDU); $this->LReserves = ReservaespaisPeer::h_getReservesUsuaris($this->IDU, $this->IDS); $this->LEntrades = EntradesReservaPeer::getEntradesUsuari($this->IDU); $this->LFormularis = FormularisRespostesPeer::getFormularisUsuari($this->IDU); // $this->LMissatges = MissatgesPeer::getMissatgesUsuari(); }
public function countEntradesVenudes() { $C = new Criteria(); $C->add(EntradesReservaPeer::ENTRADES_PREUS_HORARI_ID, $this->getHorariid()); $C = EntradesReservaPeer::criteriaEntradesOK($C); $RES = 0; foreach (EntradesReservaPeer::doSelect($C) as $OER) { $RES += $OER->getQuantitat(); } return $RES; }
/** * Retorna un array ( status, OER ); * */ public function saveMy() { $RET = array('OER' => null, 'status' => null); //Aquest guardar, no guarda l'objecte en sí, sinó que crida un mètode per igualar-lo amb l'hospici. $this->updateObject(); $RET['OER'] = $this->getObject(); //Mirem que hagi entrat o bé el nom d'usuari o bé el codi. if ($RET['OER']->getNomReserva() == "" && is_null($RET['OER']->getUsuariId())) { throw new Exception("Selecciona un usuari de l'Hospici o bé entra el seu nom."); } //Si hem entrat el codi d'usuari, guardem la info amb les dades de l'usuari. if (!is_null($RET['OER']->getUsuariId())) { $OU = UsuarisPeer::retrieveByPK($RET['OER']->getUsuariId()); if ($OU instanceof Usuaris) { $RET['OER']->setNomReserva($OU->getNomComplet()); $RET['OER']->setEmailReserva($OU->getEmail()); $RET['OER']->setTelefonReserva($OU->getTelefonString()); } else { throw new Exception('L\'usuari seleccionat, no s\'ha trobat a la base de dades.'); } } elseif ($RET['OER']->getNomReserva() != "") { //No cal fer res, perquè se suposa que les dades ja s'han entrat correctament i quan guardem quedarà guardada. } else { throw new Exception('Hi ha algun problema amb el nom o codi d\'usuari.'); } //D'entrada és correcte, així que si l'entrada és nova, fem la compra. if ($this->isNew()) { //Si és nou, fem la nova compra $RET = EntradesReservaPeer::setCompraEntrada($RET['OER']); switch ($RET['status']) { case -1: throw new Exception('Hi ha hagut algun problema buscant l\'horari. Informeu-ne a informatica@casadecultura.org'); break; case -2: throw new Exception('Hi ha hagut algun problema buscant l\'activitat. Informeu-ne a informatica@casadecultura.org'); break; case -3: throw new Exception('Hi ha hagut algun problema buscant el preu. Informeu-ne a informatica@casadecultura.org'); break; case -4: throw new Exception('Aquest usuari ja ha comprat una entrada per aquest espectacle.'); break; case -5: throw new Exception('Aquesta activitat ja no té entrades disponibles o no en queden prous de lliures.'); break; case -6: throw new Exception('Error de TPV.'); break; case -7: throw new Exception('El número d\'entrades comprades ha de ser superior a 0.'); break; } } else { $RET['status'] = 0; //Marquem l'status a 0 perquè no és nou... només és una modificació } //Si no hi ha cap error, guardem. if ($RET['status'] >= 0) { $RET['OER']->save(); } return $RET; }
public function executeGEntrades(sfWebRequest $request) { $this->setLayout('gestio'); $this->IDS = $this->getUser()->getSessionPar('idS'); $this->P = $this->getUser()->ParReqSesForm($request, 'P', 1); $accio = $request->getParameter('accio', 'LH'); switch ($accio) { //Edita una reserva case 'ER': $this->getUser()->addLogAction('inside', 'gEntrades'); $this->MODE = "EDITA_RESERVA"; try { $this->FReserva = EntradesReservaPeer::initialize($request->getParameter('IDR')); } catch (Exception $e) { echo $e; } break; //Llista els que han reservat //Llista els que han reservat case 'LR': $IDA = $request->getParameter('IDA'); $this->MODE = 'LLISTA_ENTRADES'; $this->LLISTAT_ENTRADES = EntradesReservaPeer::getEntradesActivitat($IDA); break; //Anul·la la reserva //Anul·la la reserva case 'AR': $IDR = $request->getParameter('IDR'); $IDA = 0; try { $OR = EntradesReservaPeer::retrieveByPK($IDR); $OR->setInactiu(); $IDA = $OR->getActivitatsid(); } catch (Exception $e) { } $this->MODE = 'LLISTA_ENTRADES'; $this->redirect('gestio/gReserves?accio=LR&IDA=' . $IDA); break; //Llisto els horaris que disposen d'entrades //Llisto els horaris que disposen d'entrades default: //Agafo els horaris que tenen entrades a la venta i els ordeno per data $this->LLISTAT_ACTIVITATS = ActivitatsPeer::cercaActivitatsVenta($this->P, $this->IDS); $this->MODE = "LLISTA_ACTIVITATS"; break; } }
public function executeUsuaris(sfWebRequest $request) { $this->setLayout('hospici'); $accio = $request->getParameter('accio', 'inici'); $this->IDU = $this->getUser()->getSessionPar('idU'); $this->IDS = SitesPeer::HOSPICI_ID; $this->SECCIO = ""; switch ($accio) { case 'inici': $this->SECCIO = 'INICI'; break; //Modificació de les dades de l'usuari. //Modificació de les dades de l'usuari. case 'update': $RS = $request->getParameter('usuaris'); if ($RS['UsuariID'] == $this->IDU) { $FU = UsuarisPeer::initialize($this->IDU, $this->IDS, false, true); $FU->bind($RS); if ($FU->isValid()) { $FU->save(); myUser::addLogTimeline('modificacio', 'Usuari (Hospici)', $FU->getObject()->getUsuariId(), 0, $FU->getObject()->getUsuariId()); $this->MISSATGE1 = "OK"; } } $this->SECCIO = 'USUARI'; break; //Imprimeix el full de pagament en cas que existeixi. //Imprimeix el full de pagament en cas que existeixi. case 'printFactura': $OER = EntradesReservaPeer::retrieveByPK($request->getParameter('idER')); if (!is_null($OER)) { $HTML = EntradesReservaPeer::DocReservaEntrades($OER, $OER->getSiteid()); myUser::Html2PDF($HTML); throw new sfStopException(); } //Imprimim el comprovant d'entrada. break; //Usuari que compra o reserva una entrada /* case 'compra_entrada': $RA = $request->getParameter('entrades',array()); $IDH = $RA['idH']; $NEntrades = (int)$RA['num']; $Descompte = (int)$RA['descomptes']; $TPagament = (int)$RA['tipus_pagament']; $OH = HorarisPeer::retrieveByPK($IDH); //Inicialitzem la reserva i fem el pagament $OER = EntradesReservaPeer::initialize( $OH->getSiteid() , '' , null , $IDH , $this->IDU , $NEntrades , $Descompte , $TPagament )->getObject(); //Comprem o reservem l'entrada $RET = EntradesReservaPeer::setCompraEntrada( $OER ); switch( $RET['status'] ){ //(OH incorrecte) case -1: $this->MISSATGE2 = "HORARI_INCORRECTE"; break; //(OA incorrecte) case -2: $this->MISSATGE2 = "ACTIVITAT_INCORRECTE"; break; //(OEP incorrecte) case -3: $this->MISSATGE2 = "PREU_INCORRECTE"; break; //(Repe) case -4: $this->MISSATGE2 = "ENTRADA_REPE"; break; //(Exhaurides) case -5: $this->MISSATGE2 = "NO_QUEDEN_PROU_ENTRADES"; break; //(Error TPV) case -6: $this->MISSATGE2 = "ERROR_TPV"; break; //(Es volen comprar 0 entrades) case -7: $this->MISSATGE2 = "ERROR_MINIM_ENTRADES"; break; //(Compra metàl·lic o codi de barres OK) case 1: $this->MISSATGE2 = "COMPRA_OK"; $this->IDER = $RET['OER']->getIdentrada(); break; //(Reserva d\'entrada OK) case 2: $this->MISSATGE2 = "RESERVA_OK"; $this->IDER = $RET['OER']->getIdentrada(); break; //(Pagament amb TPV) case 3: $NOM = UsuarisPeer::retrieveByPK( $RET['OER']->getUsuariid() )->getNomComplet(); $PREU_TOTAL = $RET['OER']->getPagat() * $RET['OER']->getQuantitat(); $this->TPV = MatriculesPeer::getTPV( $PREU_TOTAL , $NOM , $RET['OER']->getIdEntrada() , $RET['OER']->getSiteid() , true , true ); $this->URL = OptionsPeer::getString('TPV_URL',$RET['OER']->getSiteId()); $this->setLayout('blanc'); $this->setTemplate('pagament'); break; //(En llista d'espera) case 4: $this->MISSATGE2 = "LLISTA_ESPERA_OK"; break; //(Pagament amb domiciliació) || Aquest encara s'ha d'aplicar correctament. case 5: $this->MISSATGE2 = "DOMICILIACIO_OK"; break; } $this->SECCIO = 'COMPRA_ENTRADA'; break; //Usuari que anul·la una entrada prèviament reservada case 'anula_entrada': $RS = $request->getParameter('idER'); $OER = EntradesReservaPeer::retrieveByPK($RS); $idu = $OER->getUsuariid(); $act = $OER->getActiu(); if($idu == $this->IDU && $act): $OER->setEstat(EntradesReservaPeer::ANULADA); $OER->save(); endif; $this->SECCIO = 'COMPRA_ENTRADA'; break; */ //Nova matrícula a un curs //Usuari que compra o reserva una entrada /* case 'compra_entrada': $RA = $request->getParameter('entrades',array()); $IDH = $RA['idH']; $NEntrades = (int)$RA['num']; $Descompte = (int)$RA['descomptes']; $TPagament = (int)$RA['tipus_pagament']; $OH = HorarisPeer::retrieveByPK($IDH); //Inicialitzem la reserva i fem el pagament $OER = EntradesReservaPeer::initialize( $OH->getSiteid() , '' , null , $IDH , $this->IDU , $NEntrades , $Descompte , $TPagament )->getObject(); //Comprem o reservem l'entrada $RET = EntradesReservaPeer::setCompraEntrada( $OER ); switch( $RET['status'] ){ //(OH incorrecte) case -1: $this->MISSATGE2 = "HORARI_INCORRECTE"; break; //(OA incorrecte) case -2: $this->MISSATGE2 = "ACTIVITAT_INCORRECTE"; break; //(OEP incorrecte) case -3: $this->MISSATGE2 = "PREU_INCORRECTE"; break; //(Repe) case -4: $this->MISSATGE2 = "ENTRADA_REPE"; break; //(Exhaurides) case -5: $this->MISSATGE2 = "NO_QUEDEN_PROU_ENTRADES"; break; //(Error TPV) case -6: $this->MISSATGE2 = "ERROR_TPV"; break; //(Es volen comprar 0 entrades) case -7: $this->MISSATGE2 = "ERROR_MINIM_ENTRADES"; break; //(Compra metàl·lic o codi de barres OK) case 1: $this->MISSATGE2 = "COMPRA_OK"; $this->IDER = $RET['OER']->getIdentrada(); break; //(Reserva d\'entrada OK) case 2: $this->MISSATGE2 = "RESERVA_OK"; $this->IDER = $RET['OER']->getIdentrada(); break; //(Pagament amb TPV) case 3: $NOM = UsuarisPeer::retrieveByPK( $RET['OER']->getUsuariid() )->getNomComplet(); $PREU_TOTAL = $RET['OER']->getPagat() * $RET['OER']->getQuantitat(); $this->TPV = MatriculesPeer::getTPV( $PREU_TOTAL , $NOM , $RET['OER']->getIdEntrada() , $RET['OER']->getSiteid() , true , true ); $this->URL = OptionsPeer::getString('TPV_URL',$RET['OER']->getSiteId()); $this->setLayout('blanc'); $this->setTemplate('pagament'); break; //(En llista d'espera) case 4: $this->MISSATGE2 = "LLISTA_ESPERA_OK"; break; //(Pagament amb domiciliació) || Aquest encara s'ha d'aplicar correctament. case 5: $this->MISSATGE2 = "DOMICILIACIO_OK"; break; } $this->SECCIO = 'COMPRA_ENTRADA'; break; //Usuari que anul·la una entrada prèviament reservada case 'anula_entrada': $RS = $request->getParameter('idER'); $OER = EntradesReservaPeer::retrieveByPK($RS); $idu = $OER->getUsuariid(); $act = $OER->getActiu(); if($idu == $this->IDU && $act): $OER->setEstat(EntradesReservaPeer::ANULADA); $OER->save(); endif; $this->SECCIO = 'COMPRA_ENTRADA'; break; */ //Nova matrícula a un curs case 'nova_matricula': //Gestionem el pagament d'una matrícula. $RP = $request->getParameter('matricula'); $idU = $this->getUser()->getSessionPar('idU'); $idC = $RP['idC']; $idD = $RP['idD']; $idP = $RP['idP']; $CCC = $RP['iban'] . $RP['ccc1'] . $RP['ccc2'] . $RP['ccc3'] . $RP['ccc4']; $titular = $RP['titular']; $tutor_dni = $RP['dni_tutor']; $tutor_nom = $RP['nom_tutor']; $RET = MatriculesPeer::saveNewMatricula($idU, $idC, "Hospici", $idD, $idP); $AVISOS = $RET['AVISOS']; $this->SECCIO = 'MATRICULA'; $this->getUser()->addLogAction('SAVE_MATRICULA', 'gMatricules', $RET['OM']->getIdmatricules()); //Si la matrícula surt amb algun error greu, redireccionem i mostrem un missatge. $this->redirectIf(array_key_exists('ERR_USUARI', $AVISOS), 'web/cursos?accio=detall_curs&idC=' . $idC . '&mis=ERR_USUARI'); $this->redirectIf(array_key_exists('ERR_CURS', $AVISOS), 'web/cursos?accio=detall_curs&idC=' . $idC . '&mis=ERR_CURS'); $this->redirectIf(array_key_exists('ERR_JA_TE_UNA_MATRICULA', $AVISOS), 'web/cursos?accio=detall_curs&idC=' . $idC . '&mis=ERR_JA_TE_UNA_MATRICULA'); //Si la matrícula surt amb un error o OK normal, mostrem el missatge. if (array_key_exists('CURS_PLE', $AVISOS)) { $this->MISSATGE3 = "CURS_PLE"; } elseif (array_key_exists('CURS_PLE_LLISTA_ESPERA', $AVISOS)) { $this->MISSATGE3 = "CURS_PLE_LLISTA_ESPERA"; } elseif (array_key_exists('RESERVA_OK', $AVISOS)) { $this->MISSATGE3 = "OK"; } elseif (array_key_exists('MATRICULA_METALIC_OK', $AVISOS)) { $this->MISSATGE3 = 'OK'; } elseif (array_key_exists('MATRICULA_DOMICILIACIO_OK', $AVISOS)) { $this->MISSATGE3 = 'OK'; } elseif (array_key_exists('MATRICULA_CODI_BARRES', $AVISOS)) { $this->MISSATGE3 = 'OK'; } //Si la matrícula es paga amb TPV posem les dades per a fer el pagament. if (array_key_exists('PAGAMENT_TPV', $AVISOS)) { $NOM = UsuarisPeer::retrieveByPK($RET['OM']->getUsuarisUsuariid())->getNomComplet(); $this->TPV = MatriculesPeer::getTPV($RET['OM']->getPagat(), $NOM, $RET['OM']->getIdmatricules(), $RET['OM']->getSiteid(), true); $this->URL = OptionsPeer::getString('TPV_URL', $RET['OM']->getSiteId()); $this->setLayout('blanc'); $this->setTemplate('pagament'); } //Si el pagament és amb domiciliació, hem d'afegir el compte corrent i després el podrem donar per validada. if (array_key_exists('MATRICULA_DOMICILIACIO_OK', $AVISOS)) { //Consultem el curs per saber el Siteid $OC = CursosPeer::retrieveByPK($idC); //Afegim el compte corrent $ODB = DadesBancariesPeer::addCCC($CCC, $OC->getSiteId(), $idU, "", $titular); $RET['OM']->setIddadesbancaries($ODB->getIddada()); $RET['OM']->save(); } //Si tenim dades del tutor, les guardem. if (!empty($tutor_dni) || !empty($tutor_nom)) { $RET['OM']->setTutordni($tutor_dni); $RET['OM']->setTutornom($tutor_nom); $RET['OM']->save(); } if (empty($this->MISSATGE3)) { $this->MISSATGE3 = "KO"; } //Si no hi ha cap error i no és un pagament amb targeta, marquem com a matrícula feta if ($this->MISSATGE3 == 'OK' && !array_key_exists('PAGAMENT_TPV', $AVISOS)) { myUser::addLogTimeline('alta', 'Matricules (Hospici)', $RET['OM']->getUsuarisUsuariid(), $RET['OM']->getSiteId(), $RET['OM']->getIdmatricules()); } break; //S'ha matriculat correctament i TPV ok //S'ha matriculat correctament i TPV ok case 'matricula_OK': $this->MISSATGE3 = "OK"; $this->SECCIO = 'MATRICULA'; break; //No s'ha matriculat correctament o error a TPV //No s'ha matriculat correctament o error a TPV case 'matricula_KO': $this->MISSATGE3 = "KO"; $this->SECCIO = 'MATRICULA'; break; //Mostra totes les reserves que s'han fet //Mostra totes les reserves que s'han fet case 'llista_reserves': $this->SECCIO = 'RESERVA'; $this->MISSATGE4 = $request->getParameter('estat', null); break; //Editem una reserva prèviament feta //Editem una reserva prèviament feta case 'edita_reserva': $this->SECCIO = "RESERVA"; $OR = ReservaespaisPeer::retrieveByPK($request->getParameter('idR')); if ($OR instanceof Reservaespais) { $this->FReserva = new HospiciReservesForm($OR, array('IDS' => $OR->getSiteid())); $this->OPCIONS = 'VISUALITZA'; } else { $this->redirect('@hospici_llista_reserves'); } break; //Creem una nova reserva, i mostrem el formulari //Creem una nova reserva, i mostrem el formulari case 'nova_reserva': $idE = $request->getParameter('idE'); $OE = EspaisPeer::retrieveByPK($idE); $this->SECCIO = 'RESERVA'; if ($OE instanceof Espais) { $this->FReserva = ReservaespaisPeer::initializeHospici(null, $OE->getSiteid(), $OE->getEspaiid(), $this->getUser()->getSessionPar('idU')); } else { $this->MISSATGE4 = "ERROR_ESPAI"; } break; //Guardem la nova reserva //Guardem la nova reserva case 'save_nova_reserva': $RP = $request->getParameter('reservaespais'); $EP = $request->getParameter('extres'); $idU = $this->getUser()->getSessionPar('idU'); $this->SECCIO = 'RESERVA'; $this->FReserva = ReservaespaisPeer::initializeHospici(null, $RP['site_id'], null, $idU); $this->FReserva->bind($RP); if ($this->FReserva->isValid()) { //Guardem la reserva $this->FReserva->save(); $ORE = $this->FReserva->getObject(); //A partir d'aquí guardem camps extres que surten del formulari $ORE->setHasDifusio($EP['sidifu']); $ORE->setWebDescripcio($EP['descweb']); $ORE->save(); $Img = $request->getFiles('img'); $Pdf = $request->getFiles('pdf'); $nom_img_final = getcwd() . '/uploads/arxius/' . 'RE-' . $ORE->getReservaespaiid() . '-IMG-' . $Img['name']; $nom_pdf_final = getcwd() . '/uploads/arxius/' . 'RE-' . $ORE->getReservaespaiid() . '-PDF-' . $Pdf['name']; move_uploaded_file($Img['tmp_name'], $nom_img_final); move_uploaded_file($Pdf['tmp_name'], $nom_pdf_final); //Finalitzem l'emmagatzematge $idReserva = $this->FReserva->getObject()->getReservaespaiid(); //Enviem mails per informar que s'ha fet una nova reserva d'espais a secretaria $from = OptionsPeer::getString('MAIL_FROM', $RP['site_id']); $to = OptionsPeer::getString('MAIL_SECRETARIA', $RP['site_id']); $sub = "Hospici | Nova reserva d'espai"; $miss = "S'ha sol·licitat una nova reserva d'espai amb el codi {$idReserva}"; $this->sendMail($from, $to, $sub, $miss); //Guardem el registre al timeline myUser::addLogTimeline('alta', 'Reserva (Hospici)', $idU, $RP['site_id'], $this->FReserva->getObject()->getReservaespaiid()); //Vinculem l'usuari amb el site corresponent UsuarisPeer::addSite($idU, $RP['site_id']); $this->redirect('@hospici_llista_reserves?estat=OK'); } else { $this->MISSATGE4 = 'ERROR_SAVE'; } break; //Alta d'un nou formulari //Alta d'un nou formulari case 'alta_formulari': $RP = $request->getParameter('formulari'); $idU = $this->getUser()->getSessionPar('idU'); $OF = FormularisRespostesPeer::initialize($RP['idF'], $idU, serialize($RP)); $OF->save(); //Enviem mails per informar que s'ha fet una nova reserva d'espais a secretaria $from = OptionsPeer::getString('MAIL_FROM', $OF->getSiteid()); $to = OptionsPeer::getString('MAIL_ADMIN', $OF->getSiteid()); $sub = "Hospici | Nou formulari enviat"; $miss = "S'ha enviat la següent informació amb una reserva d'espai.<br/><br />Dades:<br /><br /> "; foreach ($RP as $K => $V) { $miss .= $K . ': ' . $V . '<br/>'; } $this->sendMail($from, $to, $sub, $miss); $this->sendMail($from, '*****@*****.**', $sub, $miss); //Vinculem l'usuari amb el site corresponent UsuarisPeer::addSite($idU, $OF->getSiteid()); $this->MISSATGE6 = 'ALTA_OK'; $this->SECCIO = "FORMULARIS"; break; //Capturem si accepta o no accepta les condicions des del seu usuari. //Capturem si accepta o no accepta les condicions des del seu usuari. case 'condicions': $this->SECCIO = 'RESERVA'; $RP = $request->getParameter('reservaespais'); $idU = $this->getUser()->getSessionPar('idU'); $OR = ReservaespaisPeer::retrieveByPK($request->getParameter('idR')); if ($OR instanceof Reservaespais) { if ($request->hasParameter('B_ACCEPTO')) { $OR->setEstat(ReservaespaisPeer::ACCEPTADA); $OR->setDataacceptaciocondicions(date('Y-m-d', time())); $OR->save(); myUser::addLogTimeline('acceptada', 'Reserva (Hospici)', $idU, $OR->getSiteId(), $OR->getReservaespaiid()); //Enviem un mail a secretaria informant de l'acceptació de les condicions $this->sendMail(OptionsPeer::getString('MAIL_FROM', $OR->getSiteid()), OptionsPeer::getString('MAIL_SECRETARIA', $OR->getSiteid()), "RESERVA " . $OR->getCodi() . " ACCEPTADA", "Les condicions per a la reserva amb codi " . $OR->getCodi() . " organitzada per " . $OR->getOrganitzadors() . " han estat <b>ACCEPTADES</b>. <br /> Per poder accedir-hi podeu clicar el següent <a href=\"http://www.casadecultura.cat/gestio/gReserves/accio/E/IDR/" . $OR->getReservaespaiid() . "\">enllaç</a> havent entrat prèviament a la intranet."); $this->redirect('@hospici_llista_reserves?estat=RESERVA_ACCEPTADA'); } elseif ($request->hasParameter('B_NO_ACCEPTO')) { $OR->setEstat(ReservaespaisPeer::ANULADA); $OR->setDataacceptaciocondicions(date('Y-m-d', time())); $OR->save(); myUser::addLogTimeline('no_acceptada', 'Reserva (Hospici)', $idU, $OR->getSiteId(), $OR->getReservaespaiid()); //Enviem un mail a secretaria informant del rebuig de les condicions $this->sendMail(OptionsPeer::getString('MAIL_FROM', $OR->getSiteid()), OptionsPeer::getString('MAIL_SECRETARIA', $OR->getSiteid()), "RESERVA " . $OR->getCodi() . " REBUTJADA", "Les condicions per a la reserva amb codi " . $OR->getCodi() . " organitzada per " . $OR->getOrganitzadors() . " han estat <b>REBUTJADES</b>. <br /> Per poder accedir-hi podeu clicar el següent <a href=\"http://www.casadecultura.cat/gestio/gReserves/accio/E/IDR/" . $OR->getReservaespaiid() . "\">enllaç</a> havent entrat prèviament a la intranet."); $this->redirect('@hospici_llista_reserves?estat=RESERVA_ANULADA'); } else { $this->redirect('@hospici_llista_reserves?estat=ERROR_TECNIC'); } } else { $this->redirect('@hospici_llista_reserves?estat=ERROR_TECNIC'); } break; } //Si ja hi hem fet operacions... carreguem l'actual, sinó en fem un de nou. if (isset($FU) && $FU instanceof UsuarisForm) { $this->FUsuari = $FU; } else { $this->FUsuari = UsuarisPeer::initialize($this->IDU, $this->IDS, false, true); } $this->LMatricules = MatriculesPeer::h_getMatriculesUsuari($this->IDU); $this->LReserves = ReservaespaisPeer::h_getReservesUsuaris($this->IDU, $this->IDS); //$this->LEntrades = EntradesReservaPeer::getEntradesUsuari($this->IDU); $this->LFormularis = FormularisRespostesPeer::getFormularisUsuari($this->IDU); $file = fopen(OptionsPeer::getString('SF_WEBSYSROOT', 1) . 'documents/Notes-1.csv', "r"); $RET = array(); $FIRST = true; $DNI = $this->FUsuari->getObject()->getDni(); if ($file) { while (($data = fgetcsv($file, 0, ";", '"')) !== FALSE) { if (!$FIRST && strtoupper($DNI) == strtoupper($data[4])) { $RET[] = array_map("utf8_encode", $data); } $FIRST = false; } fclose($file); $this->LResultats = $RET; } else { $this->LResultats = array(); } }
/** * @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; }