Пример #1
0
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;">&nbsp;</div>
  		         
        <?php 
    if ($P > 1) {
        echo link_to('<-- Veure activitats anteriors', 'gestio/gEntrades?P=' . ($P - 1));
    }
    if (sizeof($LLISTAT_ACTIVITATS) == 20) {
        echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
        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;
 }
Пример #4
0
 /**
  * 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;
     }
 }
Пример #5
0
 public function getEstatString()
 {
     return EntradesReservaPeer::getEstatToString($this->getEstat());
 }
Пример #6
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 = 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]]);
     }
 }
Пример #7
0
 /**
  * Retorna si una activitat ja no t� m�s entrades a la venta. 
  * */
 public function getIsPle()
 {
     return EntradesReservaPeer::countEntradesActivitatConf($this->getActivitatid()) >= $this->getPlaces();
 }
Пример #8
0
 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();
 }
Пример #9
0
 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();
 }
Пример #10
0
 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;
 }
Пример #12
0
 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;
     }
 }
Пример #13
0
 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;
 }