public function executeUGestio(sfWebRequest $request) { $this->setLayout('gestio'); $this->accio = $request->getParameter('accio', 'C'); $this->IDU = $this->getUser()->getSessionPar('idU'); $this->IDS = $this->getUser()->getSessionPar('idS'); $this->DEFAULT = false; $this->MISSATGE = ""; $this->ERROR = ""; //Consultem tota la info de l'usuari. $this->FDADES = UsuarisPeer::initialize($this->IDU, $this->IDS, false, true); $this->LRESERVES = ReservaespaisPeer::getReservesUsuaris($this->IDU, $this->IDS); $this->LMATRICULES = MatriculesPeer::getMatriculesUsuari($this->IDU, $this->IDS); $this->LENTITATS = new SitesSelectForm(null, array('idU' => $this->IDU)); //Agafem el codi de facebook de l'usuari $this->FBI = UsuarisPeer::getUserFbCode($this->getUser()->getSessionPar('idU')); $this->PARS = array(); $this->PARS = myUser::f_FbAuth(false, $this->getController()->genUrl('@fb_user_link', true)); //Carreguem les dades del facebook. if ($request->hasParameter('BGESTIONAUSUARI')) { $this->accio = 'GESTIONA_USUARI'; } if ($request->hasParameter('BGUARDAUSUARI')) { $this->accio = 'GUARDA_USUARI'; } if ($request->hasParameter('BMATRICULA')) { $this->accio = 'MATRICULA'; } if ($request->hasParameter('BGESTIONAMATRICULES')) { $this->accio = 'GESTIONA_MATRICULES'; } if ($request->hasParameter('BGESTIONARESERVES')) { $this->accio = 'GESTIONA_RESERVES'; } if ($request->hasParameter('BGUARDARESERVA')) { $this->accio = 'GUARDA_RESERVA'; } if ($request->hasParameter('BACCEPTACONDICIONSRESERVA')) { $this->accio = 'ACCEPTA_CONDICIONS_RESERVA'; } if ($request->hasParameter('BANULACONDICIONSRESERVA')) { $this->accio = 'ANULA_CONDICIONS_RESERVA'; } if ($request->hasParameter('BGUARDACANVIENTITAT')) { $this->accio = 'GUARDA_CANVI_ENTITAT'; } switch ($this->accio) { case 'GESTIONA_USUARI': $this->FUSUARI = UsuarisPeer::initialize($this->IDU, $this->IDS, false, true); break; case 'GUARDA_USUARI': $RP = $request->getParameter('usuaris'); $this->FUSUARI = UsuarisPeer::initialize($RP['UsuariID'], $RP['site_id'], false, true); $this->FUSUARI->bind($RP); if ($this->FUSUARI->isValid()) { $this->getUser()->addLogAction($this->accio, 'uGestio', $this->FUSUARI->getObject(), $RS); $this->FUSUARI->save(); $OU = $this->FUSUARI->getObject(); UsuarisPeer::addSite($this->IDU, $this->IDS); $this->MISSATGE = array('Usuari guardat correctament.'); } else { $this->MISSATGE = array('Hi ha algun error al formulari.<br />Revisa els camps, si us plau.'); } break; //Pas 1: Mostrem els cursos als que es pot matricular //Pas 1: Mostrem els cursos als que es pot matricular case 'GESTIONA_MATRICULES': $this->getUser()->addLogAction($this->accio, 'uGestio'); $this->LCURSOS = CursosPeer::getCursos(CursosPeer::CURSACTIU, 1, "", $this->IDS); //Retorna la data d'inici de matrícula segons si és antic alumne o no. ' $this->DATA_INICI = UsuarisPeer::initialize($this->IDU, $this->IDS, false, false)->getObject()->getDataIniciMatricula(); break; //Pas 2: Hem escollit un curs i passem la validació a TPV //Pas 2: Hem escollit un curs i passem la validació a TPV case 'MATRICULA': //Agafem el curs que s'ha seleccionat $D = $request->getParameter('D'); //Si no s'ha seleccionat cap curs, tornem a la mateixa pàgina de GESTIONA_MATRICULES if (!isset($D['CURS']) || empty($D['CURS'])) { $this->redirect('gestio/uGestio?accio=GESTIONA_MATRICULES'); } //Passem els paràmetres a variables $idC = $D['CURS']; $idDescompte = $D['DESCOMPTE']; //Carreguem les dades de l'usuari que està fent la matrícula $USUARI = UsuarisPeer::retrieveByPK($this->getUser()->getSessionPar('idU')); //Carreguem els dades de la matrícula per guardar-la abans del pagament $this->DADES_MATRICULA = array(); $this->DADES_MATRICULA['DNI'] = $USUARI->getDni(); $this->DADES_MATRICULA['NOM'] = $USUARI->getNomComplet(); $this->DADES_MATRICULA['IDU'] = $USUARI->getUsuariid(); $this->DADES_MATRICULA['MODALITAT'] = MatriculesPeer::PAGAMENT_TARGETA; $this->DADES_MATRICULA['DESCOMPTE'] = $idDescompte; $this->DADES_MATRICULA['DATA'] = date('Y-m-d H:i', time()); $this->DADES_MATRICULA['COMENTARI'] = "MATRÍCULA INTERNET"; //Apliquem els descomptes i gratuït si ja està el grup ple $this->DADES_MATRICULA['PREU'] = CursosPeer::CalculaPreu($idC, $idDescompte, $this->IDS); $this->DADES_MATRICULA['CURS'] = $idC; $this->ISPLE = CursosPeer::isPle($idC, $this->IDS); //Retorna id de matrícula $matricules = $this->guardaMatricula($this->DADES_MATRICULA, 0, $this->IDS); //Si l'usuari no està vinculat, el vinculem amb el centre UsuarisPeer::addSite($this->IDU, $this->IDS); //Carreguem el TPV $this->TPV = MatriculesPeer::getTPV($this->DADES_MATRICULA['PREU'], $this->DADES_MATRICULA['NOM'], $matricules, $this->IDS); break; //Pas 3: Acabem la matrícula i guardem els canvis //Pas 3: Acabem la matrícula i guardem els canvis case 'FI_MATRICULA': //Hem vinculat l'usuari al pas anterior quan guardem la matrícula $this->MISS = ""; $this->TITOL = "Matrícules"; if ($request->hasParameter('OK')) { $this->MISS = "Matrícula realitzada correctament."; } else { $this->MISS = "Hi ha hagut algun problema realitzant la matrícula. <br />Si us plau posi's en contacte amb informatica@casadecultura.org o bé trucant al telèfon 972.20.20.13."; } break; case 'GESTIONA_RESERVES': $this->IDR = $request->getParameter('idR', 0); $this->FRESERVA = ReservaespaisPeer::initialize($this->IDR, $this->IDS, $this->IDU, true); break; case 'GUARDA_RESERVA': $PR = $request->getParameter('reservaespais'); $this->FRESERVA = ReservaespaisPeer::initialize($PR['ReservaEspaiID'], $this->IDS, $this->IDU, true); $this->FRESERVA->bind($PR); if ($this->FRESERVA->isValid()) { $this->FRESERVA->save(); $OO = $this->FRESERVA->getObject(); $FROM = OptionsPeer::getString('MAIL_FROM', $this->IDS); $SEC = OptionsPeer::getString('MAIL_SECRETARIA', $this->IDS); $this->sendMail($FROM, '*****@*****.**', 'HOSPICI :: NOVA RESERVA ESPAI', ReservaespaisPeer::sendMailNovaReserva($OO), array()); $this->sendMail($FROM, $SEC, 'HOSPICI :: NOVA RESERVA ESPAI', ReservaespaisPeer::sendMailNovaReserva($OO), array()); $this->MISSATGE = array(1); } else { // $this->sendMail($FROM , '*****@*****.**','HOSPICI :: ERROR AL FORMULARI RESERVA D\'ESPAIS',print_r($this->FRESERVA)); $this->MISSATGE = array('Hi ha hagut algun problema enviant la sol·licitud.'); } //Vinculem l'usuari que ha intentat fer una reserva UsuarisPeer::addSite($this->IDU, $this->IDS); break; case 'GESTIONA_CANVI_ENTITAT': $this->FENTITATS = new SitesSelectForm(null, array('idU' => $this->IDU)); break; case 'GUARDA_CANVI_ENTITAT': $PR = $request->getParameter('sites'); if ($PR['site_id_my'] > 0) { $this->getUser()->setSessionPar('idS', $PR['site_id_my']); $this->redirect('gestio/uGestio?accio='); } elseif ($PR['site_id'] > 0) { $this->getUser()->setSessionPar('idS', $PR['site_id']); $this->redirect('gestio/uGestio?accio='); } break; case 'ACCEPTA_CONDICIONS_RESERVA': $PR = $request->getParameter('reservaespais'); $OR = ReservaespaisPeer::initialize($PR['ReservaEspaiID'], $this->IDS, $this->IDU, true)->getObject(); $PARA = Encript::Encripta(serialize(array('formulari' => 'Reserva_Espais_Mail_Accepta_Condicions', 'id' => $OR->getReservaespaiid()))); $this->redirect('gestio/uFormularis?PAR=' . $PARA); break; case 'ANULA_CONDICIONS_RESERVA': $PR = $request->getParameter('reservaespais'); $OR = ReservaespaisPeer::initialize($PR['ReservaEspaiID'], $this->IDS, $this->IDU, true)->getObject(); $PARR = Encript::Encripta(serialize(array('formulari' => 'Reserva_Espais_Mail_Rebutja_Condicions', 'id' => $OR->getReservaespaiid()))); $this->redirect('gestio/uFormularis?PAR=' . $PARR); break; //Vincula l'usuari del facebook //Vincula l'usuari del facebook case 'FB_LINK': $idU = $this->getUser()->getSessionPar('idU'); $OU = UsuarisPeer::retrieveByPK($idU); $FB_ID = $this->PARS['user']['id']; //Mirem si el número de facebook està associat a un altre usuari. Si és així, no fem res però emetem error. $OUF = UsuarisPeer::getUserFromFacebook($FB_ID); if ($OUF instanceof Usuaris) { $this->ERROR = 'El compte de facebook actual està vinculat a un altre usuari. <br />Si us plau comuniqui-ho a informatica@casadecultura.org o bé entri al seu usuari de facebook i torni-ho a provar.'; } elseif ($OU instanceof Usuaris) { $OU->setFacebookid($this->PARS['user']['id']); $OU->save(); } $this->FBI = UsuarisPeer::getUserFbCode($this->getUser()->getSessionPar('idU')); $this->DEFAULT = true; break; //Desvincula l'usuari del facebook //Desvincula l'usuari del facebook case 'FB_UNLINK': $idU = $this->getUser()->getSessionPar('idU'); $OU = UsuarisPeer::retrieveByPK($idU); $OU->setFacebookid(NULL); $OU->save(); $this->FBI = UsuarisPeer::getUserFbCode($this->getUser()->getSessionPar('idU')); $this->DEFAULT = true; break; default: $this->DEFAULT = true; } }