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;"> </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(); } }