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; } }
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 CalculaPreu($DESCOMPTE) { return CursosPeer::CalculaPreu($this->getIdcursos(), $DESCOMPTE, $this->getSiteId()); }
/** * Matrícules * */ public function executeGMatricules(sfWebRequest $request) { $this->setLayout('gestio'); $this->IDS = $this->getUser()->getSessionPar('idS'); //Netegem cerca if ($request->getParameter('accio') == 'C') { $this->CERCA = $this->getUser()->setSessionPar('cerca', array('text' => '', 'select' => 2)); $this->PAGINA = $this->getUser()->setSessionPar('pagina', 1); $this->redirect('gestio/gMatricules?accio=CA'); } $this->CERCA = $this->getUser()->ParReqSesForm($request, 'cerca', array('text' => "", 'select' => 2)); $this->PAGINA = $this->getUser()->ParReqSesForm($request, 'PAGINA', 1); $accio = $this->getUser()->ParReqSesForm($request, 'accio', 'CA'); //Inicialitzem el formulari de cerca $this->FCerca = new CercaTextChoiceForm(); $this->FCerca->setChoice(array(1 => 'Cursos', 2 => 'Alumnes')); $this->FCerca->bind($this->CERCA); //Inicialitzem variables $this->MODE = array('CONSULTA' => false, 'NOU' => false, 'EDICIO' => false, 'LMATRICULES' => false, 'VERIFICA' => false); if ($request->isMethod('POST')) { if ($request->hasParameter('BCERCA')) { $accio = $this->CERCA['select'] == 2 ? 'CA' : 'CC'; $this->PAGINA = 1; } elseif ($request->hasParameter('BNOU')) { $accio = 'NU'; } elseif ($request->hasParameter('BSAVENEWUSER')) { $accio = 'SAVE_NEW_USER'; } elseif ($request->hasParameter('BSELCURS')) { $accio = 'SNU'; } elseif ($request->hasParameter('BSAVECURS')) { $accio = 'SAVE_CURS'; } elseif ($request->hasParameter('BPAGAMENT')) { $accio = 'PAGAMENT'; } elseif ($request->hasParameter('BSUBMIT')) { $accio = 'S'; } elseif ($request->hasParameter('BDELETE')) { $accio = 'D'; } elseif ($request->hasParameter('BSAVE')) { $accio = 'SAVE_MATRICULA'; } } //Aquest petit bloc és per si es modifica amb un POST el que s'ha enviat per GET $this->getUser()->setSessionPar('accio', $accio); $this->getUser()->setSessionPar('PAGINA', $this->PAGINA); //Guardem la pà gina per si hem fet una consulta nova switch ($accio) { //Crea un usuari nou per poder seguir fent la matrícula case 'ADD_USER': $this->FUsuari = UsuarisPeer::initialize(0, $this->IDS, true, false); $this->MODE = 'MAT_NOU_USUARI'; break; //Guarda el nou usuari //Guarda el nou usuari case 'SAVE_NEW_USER': $RU = $request->getParameter('usuaris'); $this->FUsuari = UsuarisPeer::initialize(0, $this->IDS, true, false); $this->FUsuari->bind($RU); if ($this->FUsuari->isValid()) { $this->FUsuari->save(); $this->getUser()->addLogAction($accio, 'gMatricules', $this->FUsuari->getObject()); $this->redirect('gestio/gMatricules?accio=NU'); } $this->MODE = 'MAT_NOU_USUARI'; break; // Nova matrícula // Nova matrícula case 'NU': $this->IDM = $request->getParameter('IDM', null); $this->FMatricula = MatriculesPeer::initialize($this->IDM, $this->IDS, true); $this->MODE = 'MAT_USUARI'; break; case 'AJAX_USUARIS': $RET = UsuarisPeer::cercaTotsCampsSelect($request->getParameter('q'), $request->getParameter('lim'), $this->IDS); return $this->renderText(json_encode($RET)); break; //Comprovem les dades que hem entrat de l'usuari //Comprovem les dades que hem entrat de l'usuari case 'SNU': $RM = $request->getParameter('matricules_usuari'); $this->FMatricula = MatriculesPeer::initialize(0, $this->IDS, true); $this->FMatricula->bind($RM); if ($this->FMatricula->isValid()) { $this->FMatricula->save(); $this->getUser()->addLogAction($accio, 'gMatricules', $this->FMatricula->getObject()); //Si tot OK, iniciem l'elecció del curs $this->IDM = $this->FMatricula->getObject()->getIdmatricules(); $this->CURSOS = MatriculesPeer::getCursosMatriculacio($this->IDS); $this->MODE = 'NOU'; } else { $this->MODE = 'MAT_USUARI'; } break; //Guardem la matrícula al curs que hem escollit //Guardem la matrícula al curs que hem escollit case 'SAVE_CURS': $this->IDM = $request->getParameter('IDM'); //L'hem enviat ocult $this->IDC = $request->getParameter('IDC'); $this->FMatricula = MatriculesPeer::initialize($this->IDM, $this->IDS, false); $OMatricula = $this->FMatricula->getObject(); $OMatricula->setCursosIdcursos($this->IDC); $OMatricula->setDatainscripcio(date('Y-m-d H:i', time())); $Preu = CursosPeer::CalculaPreu($OMatricula->getCursosIdcursos(), $OMatricula->getTreduccio(), $this->IDS); $OMatricula->setEstat(MatriculesPeer::EN_PROCES); $OMatricula->setPagat($Preu); $OMatricula->save(); $this->getUser()->addLogAction($accio, 'gMatricules', $OMatricula); $this->redirect('gestio/gMatricules?accio=FP&IDM=' . $this->IDM); break; //Mostra la prematrícula i carreguem les dades del pagament //Mostra la prematrícula i carreguem les dades del pagament case 'FP': $this->FMatricula = MatriculesPeer::initialize($request->getParameter('IDM'), $this->IDS); $this->MATRICULA = $this->FMatricula->getObject(); $this->IDM = $this->MATRICULA->getIdmatricules(); $PREU = CursosPeer::CalculaTotalPreus(array($this->MATRICULA->getCursosIdcursos()), $this->MATRICULA->getTreduccio(), $this->IDS); $NOM = UsuarisPeer::retrieveByPK($this->MATRICULA->getUsuarisUsuariid())->getNomComplet(); $this->CURS_PLE = CursosPeer::isPle($this->MATRICULA->getCursosIdcursos(), $this->IDS); //Passem si el curs es ple $MATRICULA = $this->MATRICULA->getIdmatricules(); $this->TPV = MatriculesPeer::getTPV($PREU, $NOM, $MATRICULA, $this->IDS, false); $this->MODE = 'VALIDACIO_CURS'; break; //Entenem que hem fet un pagament a caixa i mostrem missatge de finalització. //Entenem que hem fet un pagament a caixa i mostrem missatge de finalització. case 'PAGAMENT': $this->IDM = $request->getParameter('IDM'); $this->OM = MatriculesPeer::retrieveByPK($this->IDM); if (MatriculesPeer::setMatriculaPagada($this->OM)) { if ($this->OM instanceof Matricules && $this->IDM > 0) { $this->MISSATGE = "OK"; } else { $this->MISSATGE = "KO"; } $this->getUser()->addLogAction($accio, 'gMatricules', $this->MATRICULA); $this->MODE = 'PAGAMENT'; $this->SendMailMatricula($this->OM, $this->IDS); } break; //Si hem fet un pagament amb targeta, anem a la següent pantalla. //Si hem fet un pagament amb targeta, anem a la següent pantalla. case 'OK': $this->IDM = $request->getParameter('Ds_MerchantData', 0); if ($request->hasParameter('OK') && $this->IDM > 0) { $this->MISSATGE = "OK"; } else { $this->MISSATGE = "KO"; } $this->MODE = 'PAGAMENT'; break; //Esborra una matrícula //Esborra una matrícula case 'D': $RM = $request->getParameter('matricules'); $OM = MatriculesPeer::retrieveByPK($RM['idMatricules']); $OM->setActiu(false); $OM->save(); $this->getUser()->addLogAction($accio, 'gMatricules', $OM); break; //Edita una matrícula //Edita una matrícula case 'E': $this->IDM = $request->getParameter('IDM'); $this->FMATRICULA = MatriculesPeer::initialize($this->IDM, $this->IDS); $this->MODE = 'EDICIO'; break; //Guardem una matrícula modificada //Guardem una matrícula modificada case 'SAVE_MATRICULA': $RS = $request->getParameter('matricules'); $this->FMATRICULA = MatriculesPeer::initialize($RS['idMatricules'], $this->IDS); $this->FMATRICULA->bind($RS); if ($this->FMATRICULA->isValid()) { $this->FMATRICULA->save(); $this->getUser()->addLogAction($accio, 'gMatricules', $this->FMATRICULA->getObject()); $this->redirect('gestio/gMatricules?accio=CA'); } $this->MODE = 'EDICIO'; break; case 'CA': $this->ALUMNES = MatriculesPeer::cercaAlumnes($this->CERCA['text'], $this->PAGINA, $this->IDS); $this->SELECT = 2; $this->MODE = 'CONSULTA'; break; case 'CC': $this->CURSOS = MatriculesPeer::cercaCursos($this->CERCA['text'], $this->PAGINA, $this->IDS); $this->SELECT = 1; $this->MODE = 'CONSULTA'; break; case 'LMA': $this->MATRICULES = MatriculesPeer::getMatriculesUsuari($request->getParameter('IDA'), $this->IDS); $this->MODE = 'LMATRICULES'; break; case 'LMC': $this->MATRICULES = MatriculesPeer::getMatriculesCurs($request->getParameter('IDC'), $this->IDS); $this->MODE = 'LMATRICULES'; break; case 'P': $IDP = $request->getParameter('IDP'); $OM = MatriculesPeer::retrieveByPK($IDP); $OU = $OM->getUsuaris(); $OC = $OM->getCursos(); $doc = new sfTinyDoc(); if ($OM->getSiteid() > 1) { $doc->createFrom(OptionsPeer::getString('SF_WEBSYSROOT') . 'web/images/matricules/gMatriculesGenSuccess.docx'); } else { $doc->createFrom(array('extension' => 'docx')); } $doc->loadXml('word/document.xml'); $mat = 'MAT' . $OM->getIdmatricules(); $doc->mergeXmlField('factura', $mat); $doc->mergeXmlField('client', $OU->getDni()); $doc->mergeXmlField('data', $OM->getDatainscripcio('d/m/Y')); $doc->mergeXmlField('nom', $OU->getNomComplet()); $doc->mergeXmlField('telèfon', $OU->getTelefonString()); $doc->mergeXmlField('identificador', $OU->getDni()); $doc->mergeXmlField('carrer', $OU->getAdreca()); $doc->mergeXmlField('poble', $OU->getPoblacioString()); $doc->mergeXmlField('postal', $OU->getCodipostal()); $doc->mergeXmlField('concepte', $OC->getCodi() . ' - ' . $OC->getTitolcurs()); $doc->mergeXmlField('preu', $OM->getPagat()); $doc->mergeXmlField('quantitat', '1'); $doc->mergeXmlField('import', $OM->getPagat()); $doc->mergeXmlField('base', $OM->getPagat()); $doc->mergeXmlField('iva', '0%'); $doc->mergeXmlField('total', $OM->getPagat()); $doc->mergeXmlField('dia', $OC->getDatainici('d/m/Y')); $doc->mergeXmlField('horari', $OC->getHoraris()); $doc->saveXml(); $doc->close(); $doc->sendResponse(); $doc->remove(); throw new sfStopException(); break; case 'C': $this->getUser()->addLogAction('inside', 'gMatricules'); break; } }