Ejemplo n.º 1
0
 /**
  * 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();
 }
Ejemplo n.º 2
0
 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;
     }
 }