예제 #1
0
 public function executeGPersonal(sfWebRequest $request)
 {
     $this->setLayout('gestio');
     //Inicialitzem variables
     $this->IDU = $request->getParameter('IDU', $this->getUser()->getSessionPar('idU'));
     $this->IDS = $request->getParameter('IDS', $this->getUser()->getSessionPar('idS'));
     $this->DIA = $request->getParameter('DIA', time());
     $this->IDP = $request->getParameter('IDP');
     $this->OP = PersonalPeer::retrieveByPK($this->IDP);
     if (!$this->OP instanceof Personal) {
         $this->OP = new Personal();
         $this->OP->setIdusuari($this->IDU);
         $this->OP->setIddata(date('Y-m-d', $this->DIA));
         $this->OP->setSiteid($this->IDS);
         $this->OP->setText('Escriu la informació de l\'acció... ');
     }
     $this->DATAI = $this->getUser()->ParReqSesForm($request, 'DATAI', time());
     $this->CALENDARI = PersonalPeer::getHoraris($this->DATAI, $this->IDS);
     $accio = $request->getParameter('accio', 'INICIAL');
     switch ($accio) {
         //Quan entrem a la pàgina sense clicar cap dia i mostrem el calendari.
         case 'INICIAL':
             //D'entrada no cal fer res, perquè ja ho hem inicialitzat tot
             $this->DADES_DIA = PersonalPeer::getDadesUpdates($this->DIA, $this->IDU, $this->IDS);
             break;
             //Accedim directament a una acció
         //Accedim directament a una acció
         case 'ACCES_DIRECTE_ACCIO':
             //D'entrada no cal fer res, perquè ja ho hem inicialitzat tot
             $this->DADES_DIA = PersonalPeer::getDadesUpdates($this->DIA, $this->IDU, $this->IDS);
             $this->ACCIO = "DIRECTE";
             $OP = PersonalPeer::retrieveByPK($request->getParameter('IDP'));
             if ($OP instanceof Personal) {
                 $this->OP = $OP;
             }
             break;
             //Hem clicat un dia
         //Hem clicat un dia
         case 'AJAX_CLICK_DIA':
             $dades_dia = PersonalPeer::getDadesUpdates($this->DIA, $this->IDU, $this->IDS);
             return $this->renderPartial('formPersonal', array('IDS' => $this->IDS, 'IDU' => $this->IDU, 'DIA' => $this->DIA, 'DADES_DIA' => $dades_dia, 'DATAI' => $this->DATAI, 'CALENDARI' => $this->CALENDARI));
             break;
             //Fem click al botó per editar una acció.
         //Fem click al botó per editar una acció.
         case 'AJAX_EDITA_ACCIO':
             return $this->renderPartial('formPersonalFormulari', array('OP' => $this->OP, 'IDS' => $this->IDS, 'IDU' => $this->IDU, 'DIA' => $this->DIA, 'DATAI' => $this->DATAI, 'CALENDARI' => $this->CALENDARI));
             break;
             //Tornem de l'edició d'una acció sense canvis
         //Tornem de l'edició d'una acció sense canvis
         case 'AJAX_TORNA':
             $dades_dia = PersonalPeer::getDadesUpdates($this->DIA, $this->IDU, $this->IDS);
             return $this->renderPartial('formPersonal', array('OP' => $this->OP, 'IDS' => $this->IDS, 'IDU' => $this->IDU, 'DIA' => $this->DIA, 'DADES_DIA' => $dades_dia, 'DATAI' => $this->DATAI, 'CALENDARI' => $this->CALENDARI));
             break;
             //Quan guardem una edició d'una acció.
         //Quan guardem una edició d'una acció.
         case 'AJAX_GUARDA_ACCIO':
             $FIDP = $request->getParameter('FIDP');
             $FIDU = $request->getParameter('FIDU');
             $FIDT = $request->getParameter('FIDT');
             $FDIES = explode(',', $request->getParameter('FDIA'));
             $FTEXT = $request->getParameter('FTEXT');
             $FDFI = $request->getParameter('FDFI');
             $DATES = array();
             $RESULTAT = array();
             $OK = 1;
             //Si hem entrat a editar una acció i hi hem posat més d'una data, esborrem el que estavem editant i creem els nous
             if (sizeof($FDIES) > 1 && $FIDP > 0) {
                 $OP = PersonalPeer::retrieveByPK($FIDP);
                 if ($OP instanceof Personal) {
                     $OP->setUsuariupdateid($this->IDU);
                     $OP->setActiu(false);
                     $OP->setDatabaixa(date('Y-m-d', time()));
                     $OP->save();
                 }
                 //Hem entrat un IDP i només una data.
             } elseif ($FIDP > 0 && sizeof($FDIES) == 1) {
                 $OK = PersonalPeer::doSave($FIDP, $FDIES[0], $FIDU, $FIDT, $FTEXT, $this->IDU, $this->IDS, $FDFI) && $OK;
                 //Hem entrat una nova acció
             } else {
                 //Crearem una nova acció per cada dia que hem entrat.
                 foreach ($FDIES as $DIA) {
                     $OK = PersonalPeer::doSave($FIDP, $DIA, $FIDU, $FIDT, $FTEXT, $this->IDU, $this->IDS, $FDFI) && $OK;
                 }
             }
             //Retornem al llistat inicial
             $this->CALENDARI = PersonalPeer::getHoraris($this->DATAI, $this->IDS);
             return $this->renderPartial('formPersonal', array('OP' => $this->OP, 'IDS' => $this->IDS, 'IDU' => $this->IDU, 'DIA' => $this->DIA, 'DADES_DIA' => $dades_dia, 'DATAI' => $this->DATAI, 'CALENDARI' => $this->CALENDARI));
             break;
             //Esborrem una acció determinada
         //Esborrem una acció determinada
         case 'AJAX_ESBORRA_ACCIO':
             $FIDP = $request->getParameter('FIDP');
             $OP = PersonalPeer::retrieveByPK($FIDP);
             if ($OP instanceof Personal) {
                 $OP->setUsuariupdateid($this->IDU);
                 $OP->setDatabaixa(date('Y-m-d', time()));
                 $OP->setActiu(false);
                 $OP->save();
             }
             $this->CALENDARI = PersonalPeer::getHoraris($this->DATAI, $this->IDS);
             return $this->renderPartial('formPersonal', array('OP' => $this->OP, 'IDS' => $this->IDS, 'IDU' => $this->IDU, 'DIA' => $this->DIA, 'DADES_DIA' => $dades_dia, 'DATAI' => $this->DATAI, 'CALENDARI' => $this->CALENDARI));
             break;
     }
 }
예제 #2
0
 private function GPersonal_LoadDadesDia()
 {
     //Editem un dia, i podem esborrar un canvi o bé afegir-ne un de nou.
     $this->DADES_DIA_USUARI = PersonalPeer::getDadesUpdates($this->DATE, $this->IDU, $this->IDS);
     $this->DIA = $this->DATE;
 }