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; } }
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; }