예제 #1
0
 public static function ph_EstatCurs($AUTH, $OC, $url, $CURSOS_MATRICULATS)
 {
     $AUTEN = isset($AUTH) && $AUTH > 0;
     $TNReserva = $OC->getIsEntrada() == CursosPeer::HOSPICI_NO_RESERVA;
     $TReserva = $OC->getIsEntrada() == CursosPeer::HOSPICI_RESERVA;
     $TReservaT = $OC->getIsEntrada() == CursosPeer::HOSPICI_RESERVA_TARGETA;
     $HiHaPlaces = $OC->isPle();
     $datai = $OC->getDatainmatricula('U');
     $JaMat = isset($CURSOS_MATRICULATS[$OC->getIdcursos()]);
     $url = url_for('@hospici_detall_curs?idC=' . $OC->getIdcursos() . '&titol=' . $OC->getNomForUrl());
     $idS = $OC->getSiteId();
     $OS = SitesPeer::retrieveByPK($idS);
     $nom = $OS->getNom();
     $email = $OS->getEmailString();
     $tel = $OS->getTelefonString();
     $MatAntIdi = CursosPeer::IsAnticAlumne($OC->getIdcursos(), $CURSOS_MATRICULATS);
     $dataiA = mktime(0, 0, 0, 9, 12, 2011);
     $RET = "";
     //Si la data d'inici de matrícula és inferior a la d'avui, mostrem que encara no s'han iniciat les matrícules
     $avui = time();
     //Si no està autentificat
     if (!$AUTEN) {
         return "NO_AUTENTIFICAT";
         //Ja està autentificat
     } else {
         //Ja ha estat matriculat
         if ($JaMat) {
             $OM = MatriculesPeer::retrieveByPK($CURSOS_MATRICULATS[$OC->getIdcursos()]);
             if ($OM instanceof Matricules) {
                 //Si l'usuari ja està matriculat, doncs li marquem
                 if (MatriculesPeer::ACCEPTAT_NO_PAGAT == $OM->getEstat() || MatriculesPeer::ACCEPTAT_PAGAT == $OM->getEstat()) {
                     return "MATRICULAT";
                     //L'usuari està en espera'
                 } elseif (MatriculesPeer::EN_ESPERA == $OM->getEstat()) {
                     return "EN_ESPERA";
                 }
             } else {
                 return "ANULADA";
             }
             //No està matriculat
         } else {
             //No queden places
             if (!$HiHaPlaces) {
                 return "NO_HI_PLACES";
                 //No hi ha reserva en línia
             } elseif ($TNReserva) {
                 return "NO_HI_HA_RESERVA_LINIA";
                 //Encara no es pot matricular i és alumne antic d'idiomes
             } elseif ($MatAntIdi && $avui < $dataiA) {
                 return "ABANS_PERIODE_MATRICULA_AA_IDIOMES";
                 //Encara no es pot matricular i no és un alumne antic d'idiomes o el curs no és d'idiomes
             } elseif (!$MatAntIdi && $avui < $datai) {
                 return "ABANS_PERIODE_MATRICULA";
                 //Es pot matricular
             } elseif ($TReserva || $TReservaT) {
                 return "POT_MATRICULAR";
             }
         }
     }
 }
예제 #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();
 }
예제 #3
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(2 => 'Alumnes', 3 => 'Matrícula'));
     $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')) {
             switch ($this->CERCA['select']) {
                 case 2:
                     $accio = 'CA';
                     break;
                 case 3:
                     $accio = 'CM';
                     break;
             }
             $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';
         } elseif ($request->hasParameter('BSAVEMATRICULA')) {
             $accio = 'SAVE_NEW_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) {
         // Iniciem una nova matrícula
         case 'NU':
             $this->IDM = $request->getParameter('IDM', null);
             $this->CURSOS = MatriculesPeer::getCursosMatriculacio($this->IDS);
             $this->MODE = 'MAT_USUARI';
             break;
             //Consultem els usuaris disponibles
         //Consultem els usuaris disponibles
         case 'AJAX_USUARIS':
             $RET = UsuarisPeer::cercaTotsCampsSelect($request->getParameter('q'), $request->getParameter('lim'), $this->IDS);
             return $this->renderText(json_encode($RET));
             break;
         case 'AJAX_GET_CURSOS':
             $IDU = $request->getParameter('IDU', null);
             return $this->renderPartial('matriculesLlistatCursos', array('IDU' => $IDU, 'CURSOS' => MatriculesPeer::getCursosMatriculacio($this->IDS)));
             break;
             //Carreguem les dades de pagament de la matrícula
         //Carreguem les dades de pagament de la matrícula
         case 'AJAX_EXTRES':
             $OC = CursosPeer::retrieveByPK($request->getParameter('IDC'));
             $IDU = $request->getParameter('IDU');
             //Si no hem trobat el curs, retornem un error
             if (!$OC instanceof Cursos) {
                 return $this->renderPartial('matricules', array("OC" => new Cursos(), "RET" => array(), "ERROR" => "ERROR: El curs no s'ha trobat."));
                 //Treiem les dades extres que s'han d'entrar
             } else {
                 $MostraPreu = !$OC->isPle();
                 return $this->renderPartial('matricules', array("IDU" => $IDU, "OC" => $OC, "RET" => $OC->getDescomptesArray($MostraPreu), "ERROR" => ""));
             }
             break;
             //Guardem les dades de la matrícula i carreguem les dades de pagament o bé redireccionem cap a OK.
         //Guardem les dades de la matrícula i carreguem les dades de pagament o bé redireccionem cap a OK.
         case 'SAVE_NEW_MATRICULA':
             //La matrícula pot ser amb pagament de targeta de crèdit o bé en metàl·lic.
             $RS = $request->getParameter('matricules');
             $RET = MatriculesPeer::saveNewMatricula($RS['idU'], $RS['idC'], "", $RS['descompte'], $RS['mode_pagament'], $RS['idDadesBancaries']);
             $AVISOS = $RET['AVISOS'];
             //Si la matrícula surt amb algun estat que no sigui tpv, fem la redirecció i mostrem el missatge.
             if (array_key_exists('ERR_USUARI', $AVISOS)) {
                 $this->redirect('gestio/gMatricules?accio=PAGAMENT&IDM=0&MISSATGE=ERR_USUARI');
             } elseif (array_key_exists('ERR_CURS', $AVISOS)) {
                 $this->redirect('gestio/gMatricules?accio=PAGAMENT&IDM=0&MISSATGE=ERR_CURS');
             } elseif (array_key_exists('ERR_JA_TE_UNA_MATRICULA', $AVISOS)) {
                 $this->redirect('gestio/gMatricules?accio=PAGAMENT&IDM=0&MISSATGE=ERR_JA_TE_UNA_MATRICULA');
             } elseif (array_key_exists('CURS_PLE', $AVISOS)) {
                 $this->redirect('gestio/gMatricules?accio=PAGAMENT&IDM=' . $RET['OM']->getIdmatricules() . '&MISSATGE=CURS_PLE');
             } elseif (array_key_exists('CURS_PLE_LLISTA_ESPERA', $AVISOS)) {
                 $this->redirect('gestio/gMatricules?accio=PAGAMENT&IDM=' . $RET['OM']->getIdmatricules() . '&MISSATGE=CURS_PLE_LLISTA_ESPERA');
             } elseif (array_key_exists('RESERVA_OK', $AVISOS)) {
                 $this->redirect('gestio/gMatricules?accio=PAGAMENT&IDM=' . $RET['OM']->getIdmatricules() . '&MISSATGE=RESERVA_OK');
             } elseif (array_key_exists('MATRICULA_METALIC_OK', $AVISOS)) {
                 $this->redirect('gestio/gMatricules?accio=PAGAMENT&IDM=' . $RET['OM']->getIdmatricules() . '&MISSATGE=MATRICULA_METALIC_OK');
             } elseif (array_key_exists('MATRICULA_DOMICILIACIO_OK', $AVISOS)) {
                 $this->redirect('gestio/gMatricules?accio=PAGAMENT&IDM=' . $RET['OM']->getIdmatricules() . '&MISSATGE=MATRICULA_DOMICILIACIO_OK');
             } elseif (array_key_exists('MATRICULA_CODI_BARRES', $AVISOS)) {
                 $this->redirect('gestio/gMatricules?accio=PAGAMENT&IDM=' . $RET['OM']->getIdmatricules() . '&MISSATGE=MATRICULA_METALIC_OK');
             } elseif (array_key_exists('ERR_CURS_RESTRINGIT', $AVISOS)) {
                 $this->redirect('gestio/gMatricules?accio=PAGAMENT&IDM=0&MISSATGE=ERR_CURS_RESTRINGIT');
             }
             //La matrícula es paga amb TPV
             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(), false);
                 $this->URL = OptionsPeer::getString('TPV_URL', $RET['OM']->getSiteId());
                 $this->setLayout('blank');
                 $this->setTemplate('pagament');
             }
             break;
             //Entenem que hem fet un pagament correcte i mostrem pantalla de finalització.
         //Entenem que hem fet un pagament correcte i mostrem pantalla de finalització.
         case 'PAGAMENT':
             $this->IDM = $request->getParameter('IDM');
             $this->OM = MatriculesPeer::retrieveByPK($this->IDM);
             $this->MISSATGE = $request->getParameter('MISSATGE');
             $this->MODE = 'PAGAMENT';
             $this->getUser()->addLogAction($accio, 'gMatricules', $this->IDM);
             myUser::addLogTimeline('alta', 'matricules', $this->getUser()->getSessionPar('idU'), $this->IDS, $this->IDM);
             break;
             //Si hem fet un pagament amb targeta, anem a la següent pantalla. El TPV serà l'encarregat de donar-li l'estat oportú.
         //Si hem fet un pagament amb targeta, anem a la següent pantalla. El TPV serà l'encarregat de donar-li l'estat oportú.
         case 'OK':
             $RedSys = new sha256();
             $decode = $RedSys->decodeMerchantParameters($request->getParameter('Ds_MerchantParameters'));
             $RedSys->stringToArray($decode);
             $parametres = $RedSys->vars_pay;
             $this->IDM = $parametres['Ds_MerchantData'];
             if ($this->IDM > 0) {
                 $this->MISSATGE = "PAGAMENT_TPV";
             } else {
                 $this->MISSATGE = "PAGAMENT_TPV_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);
             myUser::addLogTimeline('baixa', 'matricules', $this->getUser()->getSessionPar('idU'), $this->IDS, $RM['idMatricules']);
             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());
                 myUser::addLogTimeline('modificació', 'matricules', $this->getUser()->getSessionPar('idU'), $this->IDS, $RS['idMatricules']);
                 $this->redirect('gestio/gMatricules?accio=CA');
             }
             $this->MODE = 'EDICIO';
             break;
             //Cerquem alumnes
         //Cerquem alumnes
         case 'CA':
             if (empty($this->CERCA['text'])) {
                 $this->ALUMNES = MatriculesPeer::cercaAlumnes('....', $this->PAGINA, $this->IDS);
             } else {
                 $this->ALUMNES = MatriculesPeer::cercaAlumnes($this->CERCA['text'], $this->PAGINA, $this->IDS);
             }
             $this->SELECT = 2;
             $this->MODE = 'CONSULTA';
             break;
             //Cerquem per matrícula
         //Cerquem per matrícula
         case 'CM':
             $C = new Criteria();
             $C->add(MatriculesPeer::IDMATRICULES, $this->CERCA['text']);
             $this->MATRICULES = MatriculesPeer::doSelect($C);
             $this->MODE = 'LMATRICULES';
             break;
         case 'LMA':
             $this->MATRICULES = MatriculesPeer::getMatriculesUsuari($request->getParameter('IDA'), $this->IDS);
             $this->MODE = 'LMATRICULES';
             break;
             //Imprimeix la baixa d'una matrícula
         //Imprimeix la baixa d'una matrícula
         case 'PB':
             $IDM = $request->getParameter('IDM');
             $OM = MatriculesPeer::retrieveByPK($IDM);
             $OU = $OM->getUsuaris();
             $OC = $OM->getCursos();
             $doc = new sfTinyDoc();
             $url_prop = OptionsPeer::getString('SF_WEBSYSROOT', $this->IDS) . 'documents/FullBaixa' . $this->IDS . '.docx';
             $url_gen = OptionsPeer::getString('SF_WEBSYSROOT', $this->IDS) . 'documents/FullBaixaGen.docx';
             if (file_exists($url_prop)) {
                 $doc->createFrom($url_prop);
             } else {
                 $doc->createFrom($url_gen);
             }
             $doc->loadXml('word/document.xml');
             $mat = 'MAT' . $OM->getIdmatricules();
             $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('data_baixa', $OM->getDataBaixa('d/m/Y'));
             $doc->saveXml();
             $doc->close();
             $doc->sendResponse();
             $doc->remove();
             throw new sfStopException();
             break;
         case 'PRINT_PAGAMENT':
             $idM = $request->getParameter('IDM');
             $OM = MatriculesPeer::retrieveByPK($idM);
             $HTML = MatriculesPeer::DocMatriculaPagamentCaixer($OM, $this->IDS);
             myUser::Html2PDF($HTML);
             throw new sfStopException();
             break;
         case 'C':
             $this->getUser()->addLogAction('inside', 'gMatricules');
             break;
     }
 }
예제 #4
0
 public static function ph_EstatCurs($AUTH, $OC, $url, $CURSOS_MATRICULATS, $IDU)
 {
     //L'usuari està autentificat?
     $AUTEN = isset($AUTH) && $AUTH > 0;
     //Queden places al curs?
     $HiHaPlaces = !$OC->isPle();
     //És antic alumne
     $IsAnticAlumne = MatriculesPeer::isAnticAlumneArray(substr($OC->getCodi(), 0, 3), $CURSOS_MATRICULATS);
     //Quan comença?
     $datai = $OC->getDatainmatricula('U');
     //La matrícula està activa
     $isActiu = $OC->getIsactiu();
     //L'alumne ja està matriculat?
     $JaMat = isset($CURSOS_MATRICULATS[$OC->getIdcursos()]);
     //Hi ha llista d'espera?
     $LLE = $OC->getIsLlistaEspera(false);
     //Si puc accedir al curs, ok. Sinó marco com a restringit
     if (!$OC->getIsRestringit()) {
         $Rest = true;
     } elseif (CursosPeer::getRestrictedNotes($IDU, $OC->getIdCursos())) {
         $Rest = true;
     } else {
         $Rest = false;
     }
     $url = url_for('@hospici_detall_curs?idC=' . $OC->getIdcursos() . '&titol=' . $OC->getNomForUrl());
     $idS = $OC->getSiteId();
     $OS = SitesPeer::retrieveByPK($idS);
     $nom = $OS->getNom();
     $email = $OS->getEmailString();
     $tel = $OS->getTelefonString();
     $MatAntIdi = CursosPeer::IsAnticAlumne($OC->getIdcursos(), $CURSOS_MATRICULATS);
     $dataiA = mktime(0, 0, 0, 9, 12, 2011);
     $RET = "";
     //Si la data d'inici de matrícula és inferior a la d'avui, mostrem que encara no s'han iniciat les matrícules
     $avui = time();
     //Si no està autentificat
     if (!$AUTEN) {
         return "NO_AUTENTIFICAT";
         //Ja està autentificat
     } else {
         //Ja ha estat matriculat
         if ($JaMat) {
             //Seleccionem la matrícula del curs que volem veure l'estat
             $OM = MatriculesPeer::retrieveByPK($CURSOS_MATRICULATS[$OC->getIdcursos()]);
             if ($OM instanceof Matricules) {
                 //Si l'usuari ja està matriculat, doncs li marquem
                 if (MatriculesPeer::ACCEPTAT_NO_PAGAT == $OM->getEstat() || MatriculesPeer::ACCEPTAT_PAGAT == $OM->getEstat()) {
                     return "MATRICULAT";
                     //L'usuari està en espera
                 } elseif (MatriculesPeer::EN_ESPERA == $OM->getEstat()) {
                     return "EN_ESPERA";
                     //L'usuari està en espera'
                 } elseif (MatriculesPeer::RESERVAT == $OM->getEstat()) {
                     return "RESERVAT";
                 }
             } else {
                 return "ANULADA";
             }
             //No està matriculat
         } else {
             //El curs està restringit
             if (!$Rest) {
                 return "CURS_RESTRINGIT";
                 //No queden places
             } elseif (!$HiHaPlaces) {
                 //No queden places però hi ha possibilitat de llista d'espera
                 if ($LLE) {
                     return "LLISTA_ESPERA";
                 } else {
                     return "NO_HI_PLACES";
                 }
                 //Si no hi ha cap tipus de pagament extern, vol dir que no hi ha reserva en línia.
             } elseif (in_array(TipusPeer::PAGAMENT_CAP, $OC->getPagamentextern()) > 0) {
                 return "NO_HI_HA_RESERVA_LINIA";
                 //Encara no ha iniciat el període de matrícules.
             } elseif ($avui < $datai || date('d', $avui) == date('d', $datai) && date('m', $avui) == date('m', $datai) && date('H') < 9) {
                 return "ABANS_PERIODE_MATRICULA";
                 // Si ja som dins el període de matrícules, mirem si el curs està o no actiu.
             } elseif (!$isActiu) {
                 return "CURS_INACTIU";
                 //Si la data és inferior a la data d'inici de matrícula per a nous alumnes, ho indiquem.
             } elseif (!$IsAnticAlumne) {
                 return "ANTIC_ALUMNE";
                 //Si no és cap de les anteriors, pot matricular-se.
             } else {
                 return "POT_MATRICULAR";
             }
         }
     }
 }
예제 #5
0
 /**
  * Funció que amb una resposta del TPV la valida i retorna els camps
  * @param $Ds_Merchant_Amount
  * @param $Ds_Merchant_Order
  * @param $Ds_Merchant_MerchantCode
  * @param $Ds_Merchant_Currency
  * @param $MerchantSignature
  * @param $password
  * @return boolean  
  * */
 public static function valTPV($Ds_SignatureVersion, $Ds_MerchantParameters, $Ds_Signature, $IDS)
 {
     //Creem objecte
     $RedSys = new sha256();
     //Descodifiquem i passem a array els paràmetres
     $decode = $RedSys->decodeMerchantParameters($Ds_MerchantParameters);
     $RedSys->stringToArray($decode);
     $parametres = $RedSys->vars_pay;
     $parametres['Error'] = 0;
     //Carreguem la id de matrícula i comencem el procés
     $idM = $parametres['Ds_MerchantData'];
     $OM = MatriculesPeer::retrieveByPK($idM);
     if ($OM instanceof Matricules) {
         $signatura_rebuda = $Ds_Signature;
         $signatura_generada = $RedSys->createMerchantSignatureNotif(OptionsPeer::getString('TPV_PASSWORD', $OM->getSiteid()), $Ds_MerchantParameters);
         //Si la signatura és correcta i no ha donat error, marquem la matrícula com a pagada
         if ($signatura_rebuda != $signatura_generada) {
             $parametres['Error'] = "SIGNATURA";
         } elseif ($parametres['Ds_Response'] != '0000') {
             $parametres['Error'] = "RESPONSE";
         } else {
             $preu = strval($parametres['Ds_Amount']) / 100;
             $OM->setEstat(MatriculesPeer::ACCEPTAT_PAGAT);
             $OM->setTpvOperacio($parametres['Ds_AuthorisationCode']);
             $OM->setTpvOrder($parametres['Ds_Order']);
             $OM->setPagat($preu);
             $OM->save();
             $parametres['OM'] = $OM;
         }
     } else {
         $parametres['Error'] = 'MATRICULA';
     }
     return $parametres;
 }
예제 #6
0
 public static function initialize($idM, $idS, $selUsuari = false, $URL_AJAX_USER = null)
 {
     $OM = MatriculesPeer::retrieveByPK($idM);
     if ($OM instanceof Matricules) {
         return new MatriculesForm($OM);
     } else {
         $OM = new Matricules();
         $OM->setDatainscripcio(date('Y-m-d H:i', time()));
         $OM->setSiteId($idS);
         $OM->setActiu(true);
         if ($selUsuari) {
             return new MatriculesUsuariForm($OM, array('IDS' => $idS));
         } else {
             return new MatriculesForm($OM, array('IDS' => $idS));
         }
     }
 }
예제 #7
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;
     }
 }
예제 #8
0
 /**
  * Funció que mostra matrícules al llistat d'alumnes
  * */
 function mostraMatricules($NOM, $MATRICULES, $OC, $ESTAT, $is_alumne)
 {
     $RET = "";
     $RET .= ' <div id="' . $NOM . '">';
     $RET .= ' <table width="100%" cellspacing="0" class="LLISTAT">';
     if ($is_alumne) {
         $OU = MatriculesPeer::retrieveByPK(end($MATRICULES)->getIdmatricules())->getUsuaris();
         $RET .= ' <tr><td class="TITOL" colspan="4">' . $OU->getNomComplet() . '</td></tr>';
     } else {
         $RET .= ' <tr><td class="TITOL" colspan="4">' . $OC->getCodi() . ' - ' . $OC->getTitolcurs() . '</td></tr>';
     }
     $RET .= ' <tr><td colspan="4"><br /></td></tr>';
     $i = 1;
     foreach ($MATRICULES as $OM) {
         $C = $OM->getCursos();
         $U = $OM->getUsuaris();
         $ODB = DadesBancariesPeer::retrieveByPK($OM->getIddadesbancaries());
         $TEXT_REDUCCIO = "";
         if (!$OM->hasDescompte()) {
             $PREU = $OM->getPagat();
         } else {
             $PREU = $OM->getPagat();
             $TEXT_REDUCCIO = ' |R';
         }
         if ($OM->getEstat() == $ESTAT) {
             $nom = ucwords(mb_strtolower($U->getNomComplet(), 'UTF-8'));
             $RET .= '<tr>';
             if ($is_alumne) {
                 $RET .= '<td width="60%"> <strong>' . link_to($C->getTitolcurs(), 'gestio/gMatricules?accio=E&IDM=' . $OM->getIdmatricules()) . '</strong> (' . $C->getCodi() . ')   <br /> <span style="padding-left:19px; color:#888;"> ' . $U->getEmail() . ' - ' . $U->getTelefonString() . ' </span></td>';
             } else {
                 $RET .= '<td width="60%">' . str_pad($i++, 2, '0', STR_PAD_LEFT) . ' <strong>' . link_to($nom, 'gestio/gMatricules?accio=E&IDM=' . $OM->getIdmatricules()) . '</strong> (' . $U->getDni() . ')  <br /> <span style="padding-left:19px; color:#888;"> ' . $U->getEmail() . ' - ' . $U->getTelefonString() . ' </span></td>';
             }
             $RET .= '<td width="20%">' . $OM->getDatainscripcio('d-m-Y H:i') . '</td>';
             $RET .= '<td width="10%">' . $OM->getPagat() . '€' . ($OM->hasDescompte() ? '|R' : '') . '</td>';
             $RET .= '<td width="10%">' . link_to(image_tag('/images/template/page_white_edit.png') . '<span>Edita la matrícula</span>', 'gestio/gMatricules?accio=E&IDM=' . $OM->getIdmatricules(), array('class' => 'tt2')) . ' ' . link_to(image_tag('/images/template/page_white_get.png') . '<span>Imprimeix matrícula</span>', 'gestio/gMatricules?accio=PRINT_PAGAMENT&IDM=' . $OM->getIdmatricules(), array('class' => 'tt2')) . ' ';
             $RET .= $OM->getDatabaixa('Y-m-d') > 0 ? link_to(image_tag('/images/template/page_white_put.png') . '<span>Imprimeix baixa</span>', 'gestio/gMatricules?accio=PB&IDM=' . $OM->getIdmatricules(), array('class' => 'tt2')) . ' ' : ' ';
             $RET .= $OM->getComentari() != "Hospici" && $OM->getComentari() != "" ? '<a href="#" class="tt2">' . image_tag('/images/template/blog.png') . '<span>' . $OM->getComentari() . '</span></a>' : ' ';
             $RET .= '</td>';
             $RET .= '</tr>';
         }
     }
     $RET .= ' </table></div>';
     return $RET;
 }