/** * Funció que treu un excel amb els cursos seleccionats * @param Array $LCURSOS * @throws sfStopException */ public function getExcelCursos($LCURSOS) { $doc = new PHPExcel(); $fila = 1; $columna = 0; foreach ($LCURSOS as $idC) { $OC = CursosPeer::retrieveByPK($idC); foreach (CursosPeer::getMatricules($OC->getIdcursos(), $this->IDS, true, true, true) as $OM) { $OU = $OM->getUsuaris(); if ($OU instanceof Usuaris && $OM instanceof Matricules) { $doc->getActiveSheet()->setCellValueByColumnAndRow($columna + 0, $fila, $OC->getIdcursos()); $doc->getActiveSheet()->setCellValueByColumnAndRow($columna + 1, $fila, $OC->getCodi()); $doc->getActiveSheet()->setCellValueByColumnAndRow($columna + 2, $fila, $OC->getTitolcurs()); $doc->getActiveSheet()->setCellValueByColumnAndRow($columna + 3, $fila, $OU->getDni()); $doc->getActiveSheet()->setCellValueByColumnAndRow($columna + 4, $fila, $OU->getNomComplet()); $doc->getActiveSheet()->setCellValueByColumnAndRow($columna + 5, $fila, $OM->getPagat()); $doc->getActiveSheet()->setCellValueByColumnAndRow($columna + 6, $fila, $OM->getTPagamentString()); $doc->getActiveSheet()->setCellValueByColumnAndRow($columna + 7, $fila, $OM->getTreduccioString()); $doc->getActiveSheet()->setCellValueByColumnAndRow($columna + 8, $fila, $OM->getEstatString()); $doc->getActiveSheet()->setCellValueByColumnAndRow($columna + 9, $fila, (string) $OM->getCcc()); $doc->getActiveSheet()->setCellValueByColumnAndRow($columna + 10, $fila, $OM->getComentari()); $doc->getActiveSheet()->setCellValueByColumnAndRow($columna + 11, $fila, $OU->getTelefonString()); $doc->getActiveSheet()->setCellValueByColumnAndRow($columna + 12, $fila, $OU->getMobil()); $doc->getActiveSheet()->setCellValueByColumnAndRow($columna + 13, $fila, $OU->getEmail()); $doc->getActiveSheet()->setCellValueByColumnAndRow($columna + 14, $fila, $OU->getDataNaixement('d-m-Y')); $doc->getActiveSheet()->setCellValueByColumnAndRow($columna + 15, $fila, $OU->getAdreca()); $doc->getActiveSheet()->setCellValueByColumnAndRow($columna + 16, $fila, $OU->getCodipostal()); $doc->getActiveSheet()->setCellValueByColumnAndRow($columna + 17, $fila++, $OU->getPoblacioString()); } } } $nom = OptionsPeer::getString('SF_WEBSYSROOT') . 'tmp/' . $this->IDS . 'CURSOS.xlsx'; $web = OptionsPeer::getString('SF_WEBROOT') . 'tmp/' . $this->IDS . 'CURSOS.xlsx'; $objWriter = PHPExcel_IOFactory::createWriter($doc, 'Excel2007'); $objWriter->save($nom); $response = sfContext::getInstance()->getResponse(); $response->setContentType('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); $response->setHttpHeader('Content-Disposition', 'attachment; filename="Excel_Categoria.xlsx'); $response->setHttpHeader('Content-Length', filesize($nom)); $response->setContent(file_get_contents($nom, false)); $response->sendHttpHeaders(); $response->sendContent(); throw new sfStopException(); }
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' => 1)); $this->PAGINA = $this->getUser()->setSessionPar('pagina', 1); $this->redirect('gestio/gCursos?accio=CA'); } $this->CERCA = $this->getUser()->ParReqSesForm($request, 'cerca', array('text' => '', 'select' => 1)); $this->PAGINA = $this->getUser()->ParReqSesForm($request, 'PAGINA', 1); $accio = $this->getUser()->ParReqSesForm($request, 'accio', 'CA'); //Inicialitzem el formulari de cerca $this->FCerca = new CercaTextChoiceForm(); $this->FCerca->setChoice(array(1 => 'Matrícula oberta', 2 => 'Matrícula tancada')); $this->FCerca->bind($this->CERCA); //Inicialitzem variables $this->MODE = ''; if ($request->isMethod('POST')) { if ($request->hasParameter('BCERCA')) { $accio = $this->CERCA['select'] == 1 ? 'CA' : 'CI'; $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->FCurs = CursosPeer::getCopyCursByCodi($codi, $this->IDS); $this->MODE = 'EDICIO_CONTINGUT'; break; //Editem un curs que ja existeix. //Editem un curs que ja existeix. case 'EC': $this->FCurs = 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'); $this->FCurs = CursosPeer::initialize($RP['idCursos'], $this->IDS); $this->FCurs->bind($RP, $request->getFiles('cursos')); if ($this->FCurs->isValid()) { $this->FCurs->save(); $this->FCurs = CursosPeer::initialize($RP['idCursos'], $this->IDS); $this->getUser()->addLogAction($accio, 'gCursos', $this->FCurs->getObject()); $this->redirect('gestio/gCursos?accio=CA'); } $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()); $this->redirect('gestio/gCursos?accio=CA'); break; case 'CI': $this->CURSOS = CursosPeer::getCursos(CursosPeer::PASSAT, $this->PAGINA, $this->CERCA['text'], $this->IDS); $this->MODE = 'CI'; break; case 'CA': $this->CURSOS = CursosPeer::getCursos(CursosPeer::CURSACTIU, $this->PAGINA, $this->CERCA['text'], $this->IDS); $this->MODE = 'CA'; break; case 'L': $this->MATRICULES = CursosPeer::getMatricules($request->getParameter('IDC'), $this->IDS); $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; } }