public function executeGCursos(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' => CursosPeer::CURSACTIU, 'select2' => -1, 'select3' => -1));
         $this->PAGINA = $this->getUser()->setSessionPar('pagina', 1);
         $this->redirect('gestio/gCursos?accio=CA');
     }
     $this->CERCA = $this->getUser()->ParReqSesForm($request, 'cerca', array('text' => '', 'select' => CursosPeer::CURSACTIU, 'select2' => -1, 'select3' => -1));
     $this->PAGINA = $this->getUser()->ParReqSesForm($request, 'PAGINA', 1);
     $accio = $this->getUser()->ParReqSesForm($request, 'accio', 'CA');
     //Carrego les dates
     $this->FCerca = new CercaTextChoiceForm(array(), array('desplegables' => 3));
     $this->FCerca->setChoice(array(-1 => "Tots", CursosPeer::CURSACTIU => 'Actius', CursosPeer::PASSAT => 'Inactius'));
     $this->FCerca->setChoice2(array(-1 => 'Del mes...') + CursosPeer::getSelectCercaData($this->IDS));
     $this->FCerca->setChoice3(array(-1 => 'Al mes...') + CursosPeer::getSelectCercaData($this->IDS));
     $this->FCerca->bind($this->CERCA);
     //Inicialitzem variables
     $this->MODE = '';
     if ($request->isMethod('POST')) {
         if ($request->hasParameter('BCERCA')) {
             $accio = 'CA';
             $this->PAGINA = 1;
         } elseif ($request->hasParameter('BNOU')) {
             $accio = 'NC';
         } elseif ($request->hasParameter('BSAVECODICURS')) {
             $accio = 'SC';
         } elseif ($request->hasParameter('BSAVE')) {
             $accio = 'SCC';
         } elseif ($request->hasParameter('BDELETE')) {
             $accio = 'D';
         } elseif ($request->hasParameter('BGENERAACTIVITAT')) {
             $accio = 'GA';
         }
     }
     //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) {
         //Entrem un curs nou. Agafarem el codi per fer-ne un duplicat o bé un codi nou.
         case 'NC':
             $this->getUser()->setSessionPar('IDC', null);
             $OCurs = new Cursos();
             $this->FCursCodi = new CursosCodiForm($OCurs, array('IDS' => $this->IDS));
             $this->MODE = 'NOU';
             break;
             //Si el codi existeix, carrego les dades, altrament només guardo.
         //Si el codi existeix, carrego les dades, altrament només guardo.
         case 'SC':
             $RP = $request->getParameter('cursos_codi');
             $codi = $RP['CodiT'] != "" ? $RP['CodiT'] : $RP['Codi'];
             $this->OC = CursosPeer::getCopyCursByCodi($codi, $this->IDS);
             $this->FOC = new CursosForm($this->OC);
             $this->MODE = 'EDICIO_CONTINGUT';
             break;
             //Editem un curs que ja existeix.
         //Editem un curs que ja existeix.
         case 'EC':
             $this->FOC = CursosPeer::initialize($request->getParameter('IDC'), $this->IDS);
             $this->MODE = 'EDICIO_CONTINGUT';
             break;
             //Guarda el contingut del curs
         //Guarda el contingut del curs
         case 'SCC':
             $RP = $request->getParameter('cursos', 0);
             $this->FOC = CursosPeer::initialize($RP['idCursos'], $this->IDS);
             $this->FOC->bind($RP);
             if ($this->FOC->isValid()) {
                 $this->FOC->save();
                 $this->redirect('gestio/gCursos?accio=CA');
                 $this->getUser()->addLogAction($accio, 'gCursos', $OC->getIdcursos());
                 if ($this->FOC->isNew()) {
                     myUser::addLogTimeline('alta', 'cursos', $this->getUser()->getSessionPar('idU'), $this->IDS, $this->FOC->getObject()->getIdcursos());
                 } else {
                     myUser::addLogTimeline('modificació', 'cursos', $this->getUser()->getSessionPar('idU'), $this->IDS, $this->FOC->getObject()->getIdcursos());
                 }
             } else {
                 //Retornem un formulari
             }
             $this->MODE = 'EDICIO_CONTINGUT';
             break;
             //Esborra un curs
         //Esborra un curs
         case 'D':
             $RP = $request->getParameter('cursos');
             $this->FCurs = CursosPeer::initialize($RP['idCursos'], $this->IDS);
             $this->FCurs->getObject()->setActiu(false)->save();
             $this->getUser()->addLogAction($accio, 'gCursos', $this->FCurs->getObject());
             myUser::addLogTimeline('baixa', 'cursos', $this->getUser()->getSessionPar('idU'), $this->IDS, $RP['idCursos']);
             $this->redirect('gestio/gCursos?accio=CA');
             break;
         case 'CA':
             $this->CURSOS = CursosPeer::getCursos($this->CERCA['select'], $this->PAGINA, $this->CERCA['text'], $this->IDS, false, $this->CERCA['select2'] . '-01', $this->CERCA['select3'] . '-31');
             $this->MODE = 'CA';
             break;
         case 'L':
             $this->MATRICULES = CursosPeer::getMatricules($request->getParameter('IDC'), $this->IDS, true, true, true);
             $this->IDC = $request->getParameter('IDC');
             $this->MODE = 'LLISTAT_ALUMNES';
             break;
         case 'C':
             $this->getUser()->addLogAction('inside', 'gCursos');
             break;
             //Edita una activitat relacionada amb un curs. Si no en té cap l'afegeix. '
         //Edita una activitat relacionada amb un curs. Si no en té cap l'afegeix. '
         case 'GA':
             //Mirem si ja té activitat. Si la té la recupera i sinó la crea.
             $RP = $request->getParameter('cursos');
             $this->FCurs = CursosPeer::initialize($RP['idCursos'], $this->IDS);
             if ($this->FCurs->isNew()) {
                 //Si el curs és nou, vol dir que l'hem de guardar.
                 $this->FCurs->bind($RP);
                 if ($this->FCurs->isValid()) {
                     $this->FCurs->save();
                     $this->getUser()->addLogAction($accio, 'gCursos', $this->FCurs->getObject());
                 }
             }
             //Un cop guardat el curs, recupero l'activitat relacionada amb el curs
             $OA = $this->FCurs->getObject()->getActivitatVinculada();
             $this->redirect('gestio/gActivitats?accio=ACTIVITAT&IDA=' . $OA->getActivitatid());
             break;
             //Imprimeix un llistat dels alumnes del curs
         //Imprimeix un llistat dels alumnes del curs
         case 'IMPR_LLISTAT_ALUMNES_CURS':
             $IDC = $request->getParameter('IDC');
             $OC = CursosPeer::retrieveByPK($IDC);
             //Si no existeix el curs, marxem, i sinó carreguem els alumnes.
             if (!$OC instanceof Cursos) {
                 $this->redirect('gestio/gCursos?accio=CC');
             }
             $LMAT = CursosPeer::getMatricules($IDC, $OC->getSiteid(), false, false);
             //Mirem si existeix un patró per nosaltres
             $doc = new sfTinyDoc();
             $url_prop = OptionsPeer::getString('SF_WEBSYSROOT', $this->IDS) . 'documents/LlistatAlumnesCursos' . $OC->getSiteid() . '.docx';
             $url_gen = OptionsPeer::getString('SF_WEBSYSROOT', $this->IDS) . 'documents/LlistatAlumnesCursosGen.docx';
             if (file_exists($url_prop)) {
                 $doc->createFrom($url_prop);
             } else {
                 $doc->createFrom($url_gen);
             }
             //Comença la càrrega de la informació
             $alumnes = array();
             $i = 1;
             $j = 1;
             //Posem els pagats
             $alumnes[$i++]['nom'] = "---- ALUMNES PAGATS ----";
             foreach ($LMAT as $OM) {
                 if ($OM->getEstat() == MatriculesPeer::ACCEPTAT_PAGAT) {
                     $alumnes[$i++]['nom'] = ucwords(mb_strtolower($j++ . '. ' . $OM->getUsuaris()->getNomComplet(), 'UTF-8'));
                 }
             }
             //Posem els no pagats
             $alumnes[$i++]['nom'] = "---- ALUMNES NO PAGATS ----";
             foreach ($LMAT as $OM) {
                 if ($OM->getEstat() == MatriculesPeer::ACCEPTAT_NO_PAGAT) {
                     $alumnes[$i++]['nom'] = ucwords(mb_strtolower($j++ . '. ' . $OM->getUsuaris()->getNomComplet(), 'UTF-8'));
                 }
             }
             //Posem els reservats
             $alumnes[$i++]['nom'] = "---- ALUMNES RESERVATS ----";
             foreach ($LMAT as $OM) {
                 if ($OM->getEstat() == MatriculesPeer::RESERVAT) {
                     $alumnes[$i++]['nom'] = ucwords(mb_strtolower($j++ . '. ' . $OM->getUsuaris()->getNomComplet(), 'UTF-8'));
                 }
             }
             $doc->loadXml('word/document.xml');
             $doc->mergeXmlField('curs', $OC->getCodi() . ' ' . $OC->getTitolcurs());
             $doc->mergeXmlField('datallistat', date('d/m/Y', time()));
             $doc->mergeXmlBlock('lalumnes', $alumnes);
             $doc->saveXml();
             $doc->close();
             $doc->sendResponse();
             $doc->remove();
             throw new sfStopException();
             break;
         case 'EXCEL_ALL_CURSOS':
             $this->getExcelCursos();
             break;
         case 'FITXER_N19':
             $aeb19 = new AEB19Writter('.');
             //Número de compte de l'entitat que genera els rebuts.
             $cuenta = explode('-', OptionsPeer::getString('N19_CCC', $this->IDS));
             //CIF de la nostra entitat.
             $cif = OptionsPeer::getString('N19_CIF', $this->IDS);
             //Nom de la nostra entitat
             $empresa = OptionsPeer::getString('N19_NOM_EMPRESA', $this->IDS);
             //Assignem els noms del presentador
             //El codi del presentador s'ha de presentar a la dreta així que ho fem manualment.
             $aeb19->insertarCampo('codigo_presentador', str_pad($cif, 12, '0', STR_PAD_RIGHT));
             $aeb19->insertarCampo('fecha_fichero', date('dmy'));
             $aeb19->insertarCampo('nombre_presentador', $empresa);
             $aeb19->insertarCampo('entidad_receptora', $cuenta[0]);
             $aeb19->insertarCampo('oficina_presentador', $cuenta[1]);
             //La data del càrrec, que serà després de dos dies.
             $fechaCargo = date('dmy', strtotime('+2 day'));
             //Assignem els camps de l'ordenant i guardem el registre.
             $aeb19->insertarCampo('codigo_ordenante', str_pad($cif, 12, '0', STR_PAD_RIGHT));
             $aeb19->insertarCampo('fecha_cargo', $fechaCargo);
             $aeb19->insertarCampo('nombre_ordenante', $empresa);
             $aeb19->insertarCampo('cuenta_abono_ordenante', implode('', $cuenta));
             $aeb19->guardarRegistro('ordenante');
             //Establim el codi de l'ordenant pels registres obligatoris.
             $aeb19->insertarCampo('ordenante_domiciliacion', str_pad($cif, 12, '0', STR_PAD_RIGHT));
             //Carreguem els cursos actius i només tractarem els que tinguin domiciliació.
             $LOC = CursosPeer::getCursos(CursosPeer::CURSACTIU, 1, "", $this->IDS, false, null, null);
             foreach ($LOC as $OC) {
                 if ($OC->getIsentrada() == CursosPeer::TIPUS_PAGAMENT_DOMICILIACIO) {
                     foreach (CursosPeer::getMatricules($OC->getIdcursos(), $this->IDS, false, false) as $OM) {
                         $OU = $OM->getUsuaris();
                         $ODB = DadesBancariesPeer::retrieveByPK($OM->getIddadesbancaries());
                         $idFact = $OM->getIdmatricules();
                         if ($OU instanceof Usuaris && $OM instanceof Matricules && $ODB instanceof DadesBancaries) {
                             //l'IVA que aplicarem a la factura
                             $iva = 0.0;
                             $pagat = $OM->getPagat();
                             //L'Import de l'IVA
                             $importeIva = round($i * $iva, 2);
                             //Total de la factura amb IVA inclòs
                             $totalFactura = $pagat + $importeIva;
                             //Con el codigo_referencia_domiciliacion podremos referenciar la domiciliación
                             $aeb19->insertarCampo('codigo_referencia_domiciliacion', "fra-{$idFact}");
                             //Cliente al que le domiciliamos
                             $aeb19->insertarCampo('nombre_cliente_domiciliacion', $ODB->getTitular());
                             //Cuenta del cliente en la que se domiciliará la factura
                             $aeb19->insertarCampo('cuenta_adeudo_cliente', $ODB->getCcc());
                             //El importe de la domiciliación (tiene que ser en céntimos de euro y con el IVA aplicado)
                             $aeb19->insertarCampo('importe_domiciliacion', $totalFactura * 100);
                             //Código para asociar la devolución en caso de que ocurra
                             $aeb19->insertarCampo('codigo_devolucion_domiciliacion', $OM->getIdmatricules());
                             //Código interno para saber a qué corresponde la domiciliación
                             $aeb19->insertarCampo('codigo_referencia_interna', "fra-{$idFact}");
                             //Preparamos los conceptos de la domiciliación, en un array
                             //Disponemos de 80 caracteres por línea (elemento del array). Más caracteres serán cortados
                             //El índice 8 y 9 contendrían el sexto registro opcional, que es distinto a los demás
                             $conceptosDom = array();
                             //Los dos primeros índices serán el primer registro opcional
                             $conceptosDom[] = str_pad("Pagament matrícula {$idFact}", 40, ' ', STR_PAD_RIGHT) . str_pad(" del curs {$OC->getCodi()}", 40, ' ', STR_PAD_RIGHT);
                             //$conceptosDom[] = str_pad('', 40, ' ', STR_PAD_RIGHT) . str_pad("", 40, ' ', STR_PAD_RIGHT);
                             //Los dos segundos índices serán el segundo registro opcional
                             //$conceptosDom[] = str_pad( $ODB->getTitular() , 40, ' ', STR_PAD_RIGHT);
                             //$conceptosDom[] = str_pad('', 40, ' ', STR_PAD_RIGHT) . 'Base imposable:' . str_pad(number_format($pagat, 2, ',', '.') . ' EUR', 25, ' ', STR_PAD_LEFT);
                             //Los dos terceros índices serán el tercer registro opcional
                             //$conceptosDom[] = str_pad('', 40, ' ', STR_PAD_RIGHT).
                             //   'IVA ' . str_pad(number_format($iva * 100, 2, ',', '.'), 2, '0', STR_PAD_LEFT) . '%:'.
                             //   str_pad(number_format($importeIva, 2, ',', '.') . ' EUR', 29, ' ', STR_PAD_LEFT);
                             //$conceptosDom[] = str_pad('', 40, ' ', STR_PAD_RIGHT).
                             //    'Total:' . str_pad(number_format($totalFactura, 2, ',', '.') . ' EUR', 34, ' ', STR_PAD_LEFT);
                             //Añadimos la domiciliación
                             $aeb19->guardarRegistro('domiciliacion', $conceptosDom);
                         } else {
                             if (!$OU instanceof Usuaris) {
                                 $RET[$idFact][] = "Matrícula {$idFact} incorrecte. Usuari no trobat.";
                             }
                             if (!$OM instanceof Matricules) {
                                 $RET[$idFact][] = "Matrícula {$idFact} incorrecte. Matrícula no trobada.";
                             }
                             if (!$ODB instanceof DadesBancaries) {
                                 $RET[$idFact][] = "Matrícula {$idFact} incorrecte. Compte corrent no trobat.";
                             }
                         }
                     }
                 }
             }
             $nom = OptionsPeer::getString('SF_WEBSYSROOT') . 'tmp/' . $this->IDS . 'REBUTS.txt';
             fwrite(fopen($nom, 'w'), $aeb19->construirArchivo());
             $response = sfContext::getInstance()->getResponse();
             $response->setContentType('text/plain');
             $response->setHttpHeader('Content-Disposition', 'attachment; filename="Rebuts_Domiciliacio.txt');
             $response->setHttpHeader('Content-Length', filesize($nom));
             $response->setContent(file_get_contents($nom, false));
             $response->sendHttpHeaders();
             $response->sendContent();
             throw new sfStopException();
             break;
         case 'ACCIO_MULTIPLE':
             $SUBACCIO = $request->getParameter('select_accions_cursos');
             $LCURSOS = $request->getParameter('curs_sel');
             $PAR1 = $request->getParameter('par1');
             switch ($SUBACCIO) {
                 case 'excel':
                     $this->getExcelCursos($LCURSOS);
                     $this->MODE = 'CA';
                     break;
                 case 'clone':
                     foreach ($LCURSOS as $K => $idC) {
                         CursosPeer::getCopyCurs($idC);
                     }
                     $this->MODE = 'CA';
                     break;
                 case 'doInactiu':
                     foreach ($LCURSOS as $K => $idC) {
                         $OC = CursosPeer::retrieveByPK($idC);
                         if ($OC instanceof Cursos) {
                             $OC->setIsactiu(false)->save();
                         }
                     }
                     $this->MODE = 'CA';
                     break;
                 case 'doActiu':
                     foreach ($LCURSOS as $K => $idC) {
                         $OC = CursosPeer::retrieveByPK($idC);
                         if ($OC instanceof Cursos) {
                             $OC->setIsactiu(true)->save();
                         }
                     }
                     $this->MODE = 'CA';
                     break;
                 case 'doBaixa':
                     foreach ($LCURSOS as $K => $idC) {
                         $OC = CursosPeer::retrieveByPK($idC);
                         if ($OC instanceof Cursos) {
                             $OC->setInactiu();
                         }
                     }
                     $this->MODE = 'CA';
                     break;
                 case 'crearCursFromCicle':
                     $OC = CursosPeer::getCursFromCicle($PAR1);
                     $this->FOC = new CursosForm($OC);
                     $this->MODE = 'EDICIO_CONTINGUT';
                     break;
             }
             $this->CURSOS = CursosPeer::getCursos($this->CERCA['select'], $this->PAGINA, $this->CERCA['text'], $this->IDS, false, $this->CERCA['select2'] . '-01', $this->CERCA['select3'] . '-31');
             break;
     }
 }
 public function getCcc()
 {
     $ODB = DadesBancariesPeer::retrieveByPK($this->getIddadesbancaries());
     if ($ODB instanceof DadesBancaries) {
         return $ODB->getCcc();
     } else {
         return "";
     }
 }
 public function setup()
 {
     $A_Years = array();
     $avui = date('Y', time());
     for ($year = $avui - 10; $year < $avui + 10; $year++) {
         $A_Years[$year] = $year;
     }
     $IDU = $this->getObject()->getUsuarisUsuariid();
     $this->setWidgets(array('idMatricules' => new sfWidgetFormInputHidden(), 'Usuaris_UsuariID' => new sfWidgetFormInputHidden(), 'Cursos_idCursos' => new sfWidgetFormChoice(array('choices' => CursosPeer::getSelectCursosMatriculaInterna($this->getOption('IDS'), $this->getObject()->getCursosidcursos()))), 'Estat' => new sfWidgetFormChoice(array('choices' => MatriculesPeer::getEstatsSelect())), 'DataInscripcio' => new sfWidgetFormDateTime(array('date' => array('format' => '%day%/%month%/%year%'))), 'Data_pagament' => new sfWidgetFormJQueryDate(array('format' => '%day%/%month%/%year%', 'years' => $A_Years), array()), 'data_baixa' => new sfWidgetFormDate(array('format' => '%day%/%month%/%year%')), 'Pagat' => new sfWidgetFormInputText(), 'tReduccio' => new sfWidgetFormChoice(array('choices' => DescomptesPeer::getDescomptesCursArray($this->getOption('IDC'), true))), 'tPagament' => new sfWidgetFormChoice(array('choices' => TipusPeer::getTipusPagamentInternArray())), 'idDadesBancaries' => new sfWidgetFormChoice(array('choices' => DadesBancariesPeer::getSelectBySelect(DadesBancariesPeer::getDadesUsuari($IDU), false, true))), 'Comentari' => new sfWidgetFormTextarea()));
     $this->setValidators(array('idMatricules' => new sfValidatorPropelChoice(array('model' => 'Matricules', 'column' => 'idMatricules', 'required' => false)), 'Usuaris_UsuariID' => new sfValidatorPropelChoice(array('model' => 'Usuaris', 'column' => 'UsuariID')), 'Cursos_idCursos' => new sfValidatorPropelChoice(array('model' => 'Cursos', 'column' => 'idCursos')), 'Estat' => new sfValidatorInteger(array('required' => false)), 'Comentari' => new sfValidatorString(array('required' => false)), 'DataInscripcio' => new sfValidatorDateTime(array('required' => false)), 'data_baixa' => new sfValidatorDateTime(array('required' => false)), 'Data_pagament' => new sfValidatorDateTime(array('required' => false)), 'Pagat' => new sfValidatorNumber(array('required' => false)), 'tReduccio' => new sfValidatorInteger(), 'tPagament' => new sfValidatorInteger(), 'idDadesBancaries' => new sfValidatorInteger(array('required' => false))));
     $this->widgetSchema->setLabels(array('Cursos_idCursos' => 'Curs: ', 'Estat' => 'Estat: ', 'Comentari' => 'Comentari: ', 'DataInscripcio' => 'Data d\'inscripció: ', 'data_baixa' => 'Data de baixa: ', 'Data_pagament' => 'Data de pagament: ', 'Descompte' => 'Te descompte? ', 'tReduccio' => 'Te reducció? ', 'tPagament' => 'Com ha pagat? ', 'idDadesBancaries' => 'CCC'));
     $this->widgetSchema->setNameFormat('matricules[%s]');
     $this->errorSchema = new sfValidatorErrorSchema($this->validatorSchema);
 }
 /**
  * Populates the object using an array.
  *
  * This is particularly useful when populating an object from one of the
  * request arrays (e.g. $_POST).  This method goes through the column
  * names, checking to see whether a matching key exists in populated
  * array. If so the setByName() method is called for that column.
  *
  * You can specify the key type of the array by additionally passing one
  * of the class type constants BasePeer::TYPE_PHPNAME, BasePeer::TYPE_STUDLYPHPNAME,
  * BasePeer::TYPE_COLNAME, BasePeer::TYPE_FIELDNAME, BasePeer::TYPE_NUM.
  * The default key type is the column's phpname (e.g. 'AuthorId')
  *
  * @param      array  $arr     An array to populate the object from.
  * @param      string $keyType The type of keys the array uses.
  * @return     void
  */
 public function fromArray($arr, $keyType = BasePeer::TYPE_PHPNAME)
 {
     $keys = DadesBancariesPeer::getFieldNames($keyType);
     if (array_key_exists($keys[0], $arr)) {
         $this->setIddada($arr[$keys[0]]);
     }
     if (array_key_exists($keys[1], $arr)) {
         $this->setIdusuari($arr[$keys[1]]);
     }
     if (array_key_exists($keys[2], $arr)) {
         $this->setTitular($arr[$keys[2]]);
     }
     if (array_key_exists($keys[3], $arr)) {
         $this->setNif($arr[$keys[3]]);
     }
     if (array_key_exists($keys[4], $arr)) {
         $this->setEntitat($arr[$keys[4]]);
     }
     if (array_key_exists($keys[5], $arr)) {
         $this->setPoblacio($arr[$keys[5]]);
     }
     if (array_key_exists($keys[6], $arr)) {
         $this->setCcc($arr[$keys[6]]);
     }
     if (array_key_exists($keys[7], $arr)) {
         $this->setActiu($arr[$keys[7]]);
     }
     if (array_key_exists($keys[8], $arr)) {
         $this->setSiteId($arr[$keys[8]]);
     }
 }
 public static function initialize($idD, $idU, $idS)
 {
     $ODB = DadesBancariesPeer::retrieveByPK($idD);
     if (!$ODB instanceof DadesBancaries) {
         $ODB = new DadesBancaries();
         $ODB->setIdusuari($idU);
         $ODB->setSiteId($idS);
         $ODB->setActiu(true);
     }
     return new DadesBancariesForm($ODB, array('IDS' => $idS, 'IDU' => $idU));
 }
 /**
  * Retrieve multiple objects by pkey.
  *
  * @param      array $pks List of primary keys
  * @param      PropelPDO $con the connection to use
  * @throws     PropelException Any exceptions caught during processing will be
  *		 rethrown wrapped into a PropelException.
  */
 public static function retrieveByPKs($pks, PropelPDO $con = null)
 {
     if ($con === null) {
         $con = Propel::getConnection(DadesBancariesPeer::DATABASE_NAME, Propel::CONNECTION_READ);
     }
     $objs = null;
     if (empty($pks)) {
         $objs = array();
     } else {
         $criteria = new Criteria(DadesBancariesPeer::DATABASE_NAME);
         $criteria->add(DadesBancariesPeer::IDDADA, $pks, Criteria::IN);
         $objs = DadesBancariesPeer::doSelect($criteria, $con);
     }
     return $objs;
 }
                <?php 
        } else {
            ?>
                    <div style="float: left;"><?php 
            echo select_tag('matricules[mode_pagament]', options_for_select($OC->getSelectPagaments(true)), array('style' => 'width:300px'));
            ?>
</div>
                <?php 
        }
        ?>
            </div>
            <div id="domiciliacio" style="display:none; float: left; clear:both; margin-top:5px;">
                <div style="float: left; width:150px;"><b>Escull compte corrent: </b></div>
                <div style="float: left;">                    
                    <?php 
        echo select_tag('matricules[idDadesBancaries]', options_for_select(DadesBancariesPeer::getSelectBySelect(DadesBancariesPeer::getDadesUsuari($IDU))), array('style' => 'width:300px'));
        ?>
                    <?php 
        echo '<br />' . link_to('Crea un compte corrent nou', 'gestio/gUsuaris?PAGINA=1&id_usuari=' . $IDU . '&accio=CCC');
        ?>
                </div>
            </div>                            
            
            <!-- Botons -->
            
            <div style="float: left; clear:both; margin-top:30px; ">
                <div style="float: left; width:100px;">&nbsp;</div>
                                                                            
                <div style="float: left;">
                    <button class="BOTO_ACTIVITAT" name="BSAVEMATRICULA">FINALITZA LA MATRICULA</button>
                </div>
 /**
  * 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;
 }
 public function executeUsuaris(sfWebRequest $request)
 {
     $this->setLayout('hospici');
     $accio = $request->getParameter('accio', 'inici');
     $this->IDU = $this->getUser()->getSessionPar('idU');
     $this->IDS = SitesPeer::HOSPICI_ID;
     $this->SECCIO = "";
     switch ($accio) {
         case 'inici':
             $this->SECCIO = 'INICI';
             break;
             //Modificació de les dades de l'usuari.
         //Modificació de les dades de l'usuari.
         case 'update':
             $RS = $request->getParameter('usuaris');
             if ($RS['UsuariID'] == $this->IDU) {
                 $FU = UsuarisPeer::initialize($this->IDU, $this->IDS, false, true);
                 $FU->bind($RS);
                 if ($FU->isValid()) {
                     $FU->save();
                     myUser::addLogTimeline('modificacio', 'Usuari (Hospici)', $FU->getObject()->getUsuariId(), 0, $FU->getObject()->getUsuariId());
                     $this->MISSATGE1 = "OK";
                 }
             }
             $this->SECCIO = 'USUARI';
             break;
             //Imprimeix el full de pagament en cas que existeixi.
         //Imprimeix el full de pagament en cas que existeixi.
         case 'printFactura':
             $OER = EntradesReservaPeer::retrieveByPK($request->getParameter('idER'));
             if (!is_null($OER)) {
                 $HTML = EntradesReservaPeer::DocReservaEntrades($OER, $OER->getSiteid());
                 myUser::Html2PDF($HTML);
                 throw new sfStopException();
             }
             //Imprimim el comprovant d'entrada.
             break;
             //Usuari que compra o reserva una entrada
             /*        case 'compra_entrada':            
                         $RA = $request->getParameter('entrades',array());
                                                               
                         $IDH = $RA['idH'];
                         $NEntrades = (int)$RA['num'];
                         $Descompte = (int)$RA['descomptes'];            
                         $TPagament = (int)$RA['tipus_pagament'];
                         
                         $OH = HorarisPeer::retrieveByPK($IDH);
                         
                         //Inicialitzem la reserva i fem el pagament
                         $OER = EntradesReservaPeer::initialize( $OH->getSiteid() , '' , null , $IDH , $this->IDU , $NEntrades , $Descompte , $TPagament )->getObject();
             
                         //Comprem o reservem l'entrada
                         $RET = EntradesReservaPeer::setCompraEntrada( $OER );
                         
                         switch( $RET['status'] ){
                             
                             //(OH incorrecte)
                             case -1:    $this->MISSATGE2 = "HORARI_INCORRECTE";         break;                
                             
                             //(OA incorrecte)
                             case -2:    $this->MISSATGE2 = "ACTIVITAT_INCORRECTE";      break;                
                             
                             //(OEP incorrecte)                
                             case -3:    $this->MISSATGE2 = "PREU_INCORRECTE";           break;                
                             
                             //(Repe)
                             case -4:    $this->MISSATGE2 = "ENTRADA_REPE";              break;                
                             
                             //(Exhaurides)
                             case -5:    $this->MISSATGE2 = "NO_QUEDEN_PROU_ENTRADES";   break;                
                             
                             //(Error TPV)
                             case -6:    $this->MISSATGE2 = "ERROR_TPV";                 break;                
                             
                             //(Es volen comprar 0 entrades)
                             case -7:    $this->MISSATGE2 = "ERROR_MINIM_ENTRADES";      break;                
                             
                             //(Compra metàl·lic o codi de barres OK)
                             case 1:     
                                 $this->MISSATGE2 = "COMPRA_OK";
                                 $this->IDER = $RET['OER']->getIdentrada();                 
                             break;
                                             
                             //(Reserva d\'entrada OK)
                             case 2:     
                                 $this->MISSATGE2 = "RESERVA_OK";                
                                 $this->IDER = $RET['OER']->getIdentrada();
                             break;
                                             
                             //(Pagament amb TPV)
                             case 3:                    
                                 $NOM  = UsuarisPeer::retrieveByPK( $RET['OER']->getUsuariid() )->getNomComplet();
                                 $PREU_TOTAL = $RET['OER']->getPagat() * $RET['OER']->getQuantitat(); 
                     			$this->TPV = MatriculesPeer::getTPV( $PREU_TOTAL , $NOM , $RET['OER']->getIdEntrada() , $RET['OER']->getSiteid() , true , true );
                                 $this->URL = OptionsPeer::getString('TPV_URL',$RET['OER']->getSiteId());                    
                                 $this->setLayout('blanc');
                                 $this->setTemplate('pagament'); 
                             break;
                                             
                             //(En llista d'espera)
                             case 4:     $this->MISSATGE2 = "LLISTA_ESPERA_OK";          break;
                                             
                             //(Pagament amb domiciliació) || Aquest encara s'ha d'aplicar correctament.
                             case 5:     $this->MISSATGE2 = "DOMICILIACIO_OK";           break;
                             
                         }   
                                     
                         $this->SECCIO = 'COMPRA_ENTRADA';
                                                             
                     break;
                     
                     //Usuari que anul·la una entrada prèviament reservada
                     case 'anula_entrada':            
                         $RS = $request->getParameter('idER');
                         $OER = EntradesReservaPeer::retrieveByPK($RS);
                         $idu = $OER->getUsuariid();
                         $act = $OER->getActiu();
                         
                         if($idu == $this->IDU && $act):
                             $OER->setEstat(EntradesReservaPeer::ANULADA);
                             $OER->save();
                         endif;                        
                                                 
                         $this->SECCIO = 'COMPRA_ENTRADA';
                                                             
                     break;        
             */
             //Nova matrícula a un curs
         //Usuari que compra o reserva una entrada
         /*        case 'compra_entrada':            
                     $RA = $request->getParameter('entrades',array());
                                                           
                     $IDH = $RA['idH'];
                     $NEntrades = (int)$RA['num'];
                     $Descompte = (int)$RA['descomptes'];            
                     $TPagament = (int)$RA['tipus_pagament'];
                     
                     $OH = HorarisPeer::retrieveByPK($IDH);
                     
                     //Inicialitzem la reserva i fem el pagament
                     $OER = EntradesReservaPeer::initialize( $OH->getSiteid() , '' , null , $IDH , $this->IDU , $NEntrades , $Descompte , $TPagament )->getObject();
         
                     //Comprem o reservem l'entrada
                     $RET = EntradesReservaPeer::setCompraEntrada( $OER );
                     
                     switch( $RET['status'] ){
                         
                         //(OH incorrecte)
                         case -1:    $this->MISSATGE2 = "HORARI_INCORRECTE";         break;                
                         
                         //(OA incorrecte)
                         case -2:    $this->MISSATGE2 = "ACTIVITAT_INCORRECTE";      break;                
                         
                         //(OEP incorrecte)                
                         case -3:    $this->MISSATGE2 = "PREU_INCORRECTE";           break;                
                         
                         //(Repe)
                         case -4:    $this->MISSATGE2 = "ENTRADA_REPE";              break;                
                         
                         //(Exhaurides)
                         case -5:    $this->MISSATGE2 = "NO_QUEDEN_PROU_ENTRADES";   break;                
                         
                         //(Error TPV)
                         case -6:    $this->MISSATGE2 = "ERROR_TPV";                 break;                
                         
                         //(Es volen comprar 0 entrades)
                         case -7:    $this->MISSATGE2 = "ERROR_MINIM_ENTRADES";      break;                
                         
                         //(Compra metàl·lic o codi de barres OK)
                         case 1:     
                             $this->MISSATGE2 = "COMPRA_OK";
                             $this->IDER = $RET['OER']->getIdentrada();                 
                         break;
                                         
                         //(Reserva d\'entrada OK)
                         case 2:     
                             $this->MISSATGE2 = "RESERVA_OK";                
                             $this->IDER = $RET['OER']->getIdentrada();
                         break;
                                         
                         //(Pagament amb TPV)
                         case 3:                    
                             $NOM  = UsuarisPeer::retrieveByPK( $RET['OER']->getUsuariid() )->getNomComplet();
                             $PREU_TOTAL = $RET['OER']->getPagat() * $RET['OER']->getQuantitat(); 
                 			$this->TPV = MatriculesPeer::getTPV( $PREU_TOTAL , $NOM , $RET['OER']->getIdEntrada() , $RET['OER']->getSiteid() , true , true );
                             $this->URL = OptionsPeer::getString('TPV_URL',$RET['OER']->getSiteId());                    
                             $this->setLayout('blanc');
                             $this->setTemplate('pagament'); 
                         break;
                                         
                         //(En llista d'espera)
                         case 4:     $this->MISSATGE2 = "LLISTA_ESPERA_OK";          break;
                                         
                         //(Pagament amb domiciliació) || Aquest encara s'ha d'aplicar correctament.
                         case 5:     $this->MISSATGE2 = "DOMICILIACIO_OK";           break;
                         
                     }   
                                 
                     $this->SECCIO = 'COMPRA_ENTRADA';
                                                         
                 break;
                 
                 //Usuari que anul·la una entrada prèviament reservada
                 case 'anula_entrada':            
                     $RS = $request->getParameter('idER');
                     $OER = EntradesReservaPeer::retrieveByPK($RS);
                     $idu = $OER->getUsuariid();
                     $act = $OER->getActiu();
                     
                     if($idu == $this->IDU && $act):
                         $OER->setEstat(EntradesReservaPeer::ANULADA);
                         $OER->save();
                     endif;                        
                                             
                     $this->SECCIO = 'COMPRA_ENTRADA';
                                                         
                 break;        
         */
         //Nova matrícula a un curs
         case 'nova_matricula':
             //Gestionem el pagament d'una matrícula.
             $RP = $request->getParameter('matricula');
             $idU = $this->getUser()->getSessionPar('idU');
             $idC = $RP['idC'];
             $idD = $RP['idD'];
             $idP = $RP['idP'];
             $CCC = $RP['iban'] . $RP['ccc1'] . $RP['ccc2'] . $RP['ccc3'] . $RP['ccc4'];
             $titular = $RP['titular'];
             $tutor_dni = $RP['dni_tutor'];
             $tutor_nom = $RP['nom_tutor'];
             $RET = MatriculesPeer::saveNewMatricula($idU, $idC, "Hospici", $idD, $idP);
             $AVISOS = $RET['AVISOS'];
             $this->SECCIO = 'MATRICULA';
             $this->getUser()->addLogAction('SAVE_MATRICULA', 'gMatricules', $RET['OM']->getIdmatricules());
             //Si la matrícula surt amb algun error greu, redireccionem i mostrem un missatge.
             $this->redirectIf(array_key_exists('ERR_USUARI', $AVISOS), 'web/cursos?accio=detall_curs&idC=' . $idC . '&mis=ERR_USUARI');
             $this->redirectIf(array_key_exists('ERR_CURS', $AVISOS), 'web/cursos?accio=detall_curs&idC=' . $idC . '&mis=ERR_CURS');
             $this->redirectIf(array_key_exists('ERR_JA_TE_UNA_MATRICULA', $AVISOS), 'web/cursos?accio=detall_curs&idC=' . $idC . '&mis=ERR_JA_TE_UNA_MATRICULA');
             //Si la matrícula surt amb un error o OK normal, mostrem el missatge.
             if (array_key_exists('CURS_PLE', $AVISOS)) {
                 $this->MISSATGE3 = "CURS_PLE";
             } elseif (array_key_exists('CURS_PLE_LLISTA_ESPERA', $AVISOS)) {
                 $this->MISSATGE3 = "CURS_PLE_LLISTA_ESPERA";
             } elseif (array_key_exists('RESERVA_OK', $AVISOS)) {
                 $this->MISSATGE3 = "OK";
             } elseif (array_key_exists('MATRICULA_METALIC_OK', $AVISOS)) {
                 $this->MISSATGE3 = 'OK';
             } elseif (array_key_exists('MATRICULA_DOMICILIACIO_OK', $AVISOS)) {
                 $this->MISSATGE3 = 'OK';
             } elseif (array_key_exists('MATRICULA_CODI_BARRES', $AVISOS)) {
                 $this->MISSATGE3 = 'OK';
             }
             //Si la matrícula es paga amb TPV posem les dades per a fer el pagament.
             if (array_key_exists('PAGAMENT_TPV', $AVISOS)) {
                 $NOM = UsuarisPeer::retrieveByPK($RET['OM']->getUsuarisUsuariid())->getNomComplet();
                 $this->TPV = MatriculesPeer::getTPV($RET['OM']->getPagat(), $NOM, $RET['OM']->getIdmatricules(), $RET['OM']->getSiteid(), true);
                 $this->URL = OptionsPeer::getString('TPV_URL', $RET['OM']->getSiteId());
                 $this->setLayout('blanc');
                 $this->setTemplate('pagament');
             }
             //Si el pagament és amb domiciliació, hem d'afegir el compte corrent i després el podrem donar per validada.
             if (array_key_exists('MATRICULA_DOMICILIACIO_OK', $AVISOS)) {
                 //Consultem el curs per saber el Siteid
                 $OC = CursosPeer::retrieveByPK($idC);
                 //Afegim el compte corrent
                 $ODB = DadesBancariesPeer::addCCC($CCC, $OC->getSiteId(), $idU, "", $titular);
                 $RET['OM']->setIddadesbancaries($ODB->getIddada());
                 $RET['OM']->save();
             }
             //Si tenim dades del tutor, les guardem.
             if (!empty($tutor_dni) || !empty($tutor_nom)) {
                 $RET['OM']->setTutordni($tutor_dni);
                 $RET['OM']->setTutornom($tutor_nom);
                 $RET['OM']->save();
             }
             if (empty($this->MISSATGE3)) {
                 $this->MISSATGE3 = "KO";
             }
             //Si no hi ha cap error i no és un pagament amb targeta, marquem com a matrícula feta
             if ($this->MISSATGE3 == 'OK' && !array_key_exists('PAGAMENT_TPV', $AVISOS)) {
                 myUser::addLogTimeline('alta', 'Matricules (Hospici)', $RET['OM']->getUsuarisUsuariid(), $RET['OM']->getSiteId(), $RET['OM']->getIdmatricules());
             }
             break;
             //S'ha matriculat correctament i TPV ok
         //S'ha matriculat correctament i TPV ok
         case 'matricula_OK':
             $this->MISSATGE3 = "OK";
             $this->SECCIO = 'MATRICULA';
             break;
             //No s'ha matriculat correctament o error a TPV
         //No s'ha matriculat correctament o error a TPV
         case 'matricula_KO':
             $this->MISSATGE3 = "KO";
             $this->SECCIO = 'MATRICULA';
             break;
             //Mostra totes les reserves que s'han fet
         //Mostra totes les reserves que s'han fet
         case 'llista_reserves':
             $this->SECCIO = 'RESERVA';
             $this->MISSATGE4 = $request->getParameter('estat', null);
             break;
             //Editem una reserva prèviament feta
         //Editem una reserva prèviament feta
         case 'edita_reserva':
             $this->SECCIO = "RESERVA";
             $OR = ReservaespaisPeer::retrieveByPK($request->getParameter('idR'));
             if ($OR instanceof Reservaespais) {
                 $this->FReserva = new HospiciReservesForm($OR, array('IDS' => $OR->getSiteid()));
                 $this->OPCIONS = 'VISUALITZA';
             } else {
                 $this->redirect('@hospici_llista_reserves');
             }
             break;
             //Creem una nova reserva, i mostrem el formulari
         //Creem una nova reserva, i mostrem el formulari
         case 'nova_reserva':
             $idE = $request->getParameter('idE');
             $OE = EspaisPeer::retrieveByPK($idE);
             $this->SECCIO = 'RESERVA';
             if ($OE instanceof Espais) {
                 $this->FReserva = ReservaespaisPeer::initializeHospici(null, $OE->getSiteid(), $OE->getEspaiid(), $this->getUser()->getSessionPar('idU'));
             } else {
                 $this->MISSATGE4 = "ERROR_ESPAI";
             }
             break;
             //Guardem la nova reserva
         //Guardem la nova reserva
         case 'save_nova_reserva':
             $RP = $request->getParameter('reservaespais');
             $EP = $request->getParameter('extres');
             $idU = $this->getUser()->getSessionPar('idU');
             $this->SECCIO = 'RESERVA';
             $this->FReserva = ReservaespaisPeer::initializeHospici(null, $RP['site_id'], null, $idU);
             $this->FReserva->bind($RP);
             if ($this->FReserva->isValid()) {
                 //Guardem la reserva
                 $this->FReserva->save();
                 $ORE = $this->FReserva->getObject();
                 //A partir d'aquí guardem camps extres que surten del formulari
                 $ORE->setHasDifusio($EP['sidifu']);
                 $ORE->setWebDescripcio($EP['descweb']);
                 $ORE->save();
                 $Img = $request->getFiles('img');
                 $Pdf = $request->getFiles('pdf');
                 $nom_img_final = getcwd() . '/uploads/arxius/' . 'RE-' . $ORE->getReservaespaiid() . '-IMG-' . $Img['name'];
                 $nom_pdf_final = getcwd() . '/uploads/arxius/' . 'RE-' . $ORE->getReservaespaiid() . '-PDF-' . $Pdf['name'];
                 move_uploaded_file($Img['tmp_name'], $nom_img_final);
                 move_uploaded_file($Pdf['tmp_name'], $nom_pdf_final);
                 //Finalitzem l'emmagatzematge
                 $idReserva = $this->FReserva->getObject()->getReservaespaiid();
                 //Enviem mails per informar que s'ha fet una nova reserva d'espais a secretaria
                 $from = OptionsPeer::getString('MAIL_FROM', $RP['site_id']);
                 $to = OptionsPeer::getString('MAIL_SECRETARIA', $RP['site_id']);
                 $sub = "Hospici | Nova reserva d'espai";
                 $miss = "S'ha sol·licitat una nova reserva d'espai amb el codi {$idReserva}";
                 $this->sendMail($from, $to, $sub, $miss);
                 //Guardem el registre al timeline
                 myUser::addLogTimeline('alta', 'Reserva (Hospici)', $idU, $RP['site_id'], $this->FReserva->getObject()->getReservaespaiid());
                 //Vinculem l'usuari amb el site corresponent
                 UsuarisPeer::addSite($idU, $RP['site_id']);
                 $this->redirect('@hospici_llista_reserves?estat=OK');
             } else {
                 $this->MISSATGE4 = 'ERROR_SAVE';
             }
             break;
             //Alta d'un nou formulari
         //Alta d'un nou formulari
         case 'alta_formulari':
             $RP = $request->getParameter('formulari');
             $idU = $this->getUser()->getSessionPar('idU');
             $OF = FormularisRespostesPeer::initialize($RP['idF'], $idU, serialize($RP));
             $OF->save();
             //Enviem mails per informar que s'ha fet una nova reserva d'espais a secretaria
             $from = OptionsPeer::getString('MAIL_FROM', $OF->getSiteid());
             $to = OptionsPeer::getString('MAIL_ADMIN', $OF->getSiteid());
             $sub = "Hospici | Nou formulari enviat";
             $miss = "S'ha enviat la següent informació amb una reserva d'espai.<br/><br />Dades:<br /><br /> ";
             foreach ($RP as $K => $V) {
                 $miss .= $K . ': ' . $V . '<br/>';
             }
             $this->sendMail($from, $to, $sub, $miss);
             $this->sendMail($from, '*****@*****.**', $sub, $miss);
             //Vinculem l'usuari amb el site corresponent
             UsuarisPeer::addSite($idU, $OF->getSiteid());
             $this->MISSATGE6 = 'ALTA_OK';
             $this->SECCIO = "FORMULARIS";
             break;
             //Capturem si accepta o no accepta les condicions des del seu usuari.
         //Capturem si accepta o no accepta les condicions des del seu usuari.
         case 'condicions':
             $this->SECCIO = 'RESERVA';
             $RP = $request->getParameter('reservaespais');
             $idU = $this->getUser()->getSessionPar('idU');
             $OR = ReservaespaisPeer::retrieveByPK($request->getParameter('idR'));
             if ($OR instanceof Reservaespais) {
                 if ($request->hasParameter('B_ACCEPTO')) {
                     $OR->setEstat(ReservaespaisPeer::ACCEPTADA);
                     $OR->setDataacceptaciocondicions(date('Y-m-d', time()));
                     $OR->save();
                     myUser::addLogTimeline('acceptada', 'Reserva (Hospici)', $idU, $OR->getSiteId(), $OR->getReservaespaiid());
                     //Enviem un mail a secretaria informant de l'acceptació de les condicions
                     $this->sendMail(OptionsPeer::getString('MAIL_FROM', $OR->getSiteid()), OptionsPeer::getString('MAIL_SECRETARIA', $OR->getSiteid()), "RESERVA " . $OR->getCodi() . " ACCEPTADA", "Les condicions per a la reserva amb codi " . $OR->getCodi() . " organitzada per " . $OR->getOrganitzadors() . " han estat <b>ACCEPTADES</b>. <br /> Per poder accedir-hi podeu clicar el següent <a href=\"http://www.casadecultura.cat/gestio/gReserves/accio/E/IDR/" . $OR->getReservaespaiid() . "\">enllaç</a> havent entrat prèviament a la intranet.");
                     $this->redirect('@hospici_llista_reserves?estat=RESERVA_ACCEPTADA');
                 } elseif ($request->hasParameter('B_NO_ACCEPTO')) {
                     $OR->setEstat(ReservaespaisPeer::ANULADA);
                     $OR->setDataacceptaciocondicions(date('Y-m-d', time()));
                     $OR->save();
                     myUser::addLogTimeline('no_acceptada', 'Reserva (Hospici)', $idU, $OR->getSiteId(), $OR->getReservaespaiid());
                     //Enviem un mail a secretaria informant del rebuig de les condicions
                     $this->sendMail(OptionsPeer::getString('MAIL_FROM', $OR->getSiteid()), OptionsPeer::getString('MAIL_SECRETARIA', $OR->getSiteid()), "RESERVA " . $OR->getCodi() . " REBUTJADA", "Les condicions per a la reserva amb codi " . $OR->getCodi() . " organitzada per " . $OR->getOrganitzadors() . " han estat <b>REBUTJADES</b>. <br /> Per poder accedir-hi podeu clicar el següent <a href=\"http://www.casadecultura.cat/gestio/gReserves/accio/E/IDR/" . $OR->getReservaespaiid() . "\">enllaç</a> havent entrat prèviament a la intranet.");
                     $this->redirect('@hospici_llista_reserves?estat=RESERVA_ANULADA');
                 } else {
                     $this->redirect('@hospici_llista_reserves?estat=ERROR_TECNIC');
                 }
             } else {
                 $this->redirect('@hospici_llista_reserves?estat=ERROR_TECNIC');
             }
             break;
     }
     //Si ja hi hem fet operacions... carreguem l'actual, sinó en fem un de nou.
     if (isset($FU) && $FU instanceof UsuarisForm) {
         $this->FUsuari = $FU;
     } else {
         $this->FUsuari = UsuarisPeer::initialize($this->IDU, $this->IDS, false, true);
     }
     $this->LMatricules = MatriculesPeer::h_getMatriculesUsuari($this->IDU);
     $this->LReserves = ReservaespaisPeer::h_getReservesUsuaris($this->IDU, $this->IDS);
     //$this->LEntrades = EntradesReservaPeer::getEntradesUsuari($this->IDU);
     $this->LFormularis = FormularisRespostesPeer::getFormularisUsuari($this->IDU);
     $file = fopen(OptionsPeer::getString('SF_WEBSYSROOT', 1) . 'documents/Notes-1.csv', "r");
     $RET = array();
     $FIRST = true;
     $DNI = $this->FUsuari->getObject()->getDni();
     if ($file) {
         while (($data = fgetcsv($file, 0, ";", '"')) !== FALSE) {
             if (!$FIRST && strtoupper($DNI) == strtoupper($data[4])) {
                 $RET[] = array_map("utf8_encode", $data);
             }
             $FIRST = false;
         }
         fclose($file);
         $this->LResultats = $RET;
     } else {
         $this->LResultats = array();
     }
 }