Ejemplo n.º 1
0
 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;
     }
 }
Ejemplo n.º 2
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();
 }
Ejemplo n.º 3
0
 public function CalculaPreu($DESCOMPTE)
 {
     return CursosPeer::CalculaPreu($this->getIdcursos(), $DESCOMPTE, $this->getSiteId());
 }
Ejemplo n.º 4
0
 /**
  * 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;
     }
 }