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; } }
public function executeGPersonal(sfWebRequest $request) { $this->setLayout('gestio'); $this->IDS = $this->getUser()->getSessionPar('idS'); $this->CALENDARI = array(); $this->ERROR = array(); $this->USUARI = $this->getUser()->getSessionPar('idU'); //Identificador de línia $this->IDP = $request->getParameter('IDPERSONAL'); //Data i usuari a qui se li aplica l'assignació $this->DATE = $this->getUser()->ParReqSesForm($request, 'DATE', time()); $this->IDU = $this->getUser()->ParReqSesForm($request, 'IDU', time()); //Data del calendari $this->DATAI = $this->getUser()->ParReqSesForm($request, 'DATAI', time()); $accio = $request->getParameter('accio'); if ($request->hasParameter('BSAVE')) { $accio = "SAVE_CHANGE"; } if ($request->hasParameter('BDELETE')) { $accio = "DELETE_CHANGE"; } $this->CALENDARI = PersonalPeer::getHoraris($this->DATAI, $this->IDS); //Sempre carreguem el calendari //Cliquem un dia i apareix el llistat //Veiem la descripció switch ($accio) { case 'CC': $this->getUser()->addLogAction('inside', 'gPersonal'); break; case 'EDIT_DATE': $this->GPersonal_LoadDadesDia(); break; case 'NEW_CHANGE': $this->GPersonal_LoadDadesDia(); $this->FPERSONAL = PersonalPeer::initialize($this->USUARI, $this->DATE, $this->IDU, null, $this->IDS); break; case 'EDIT_CHANGE': $this->GPersonal_LoadDadesDia(); $this->FPERSONAL = PersonalPeer::initialize($this->USUARI, $this->DATE, $this->IDU, $this->IDP, $this->IDS); break; case 'SAVE_CHANGE': $RP = $request->getParameter('personal'); list($year, $month, $day) = explode("-", $RP['idData']); $idP = $RP['idPersonal']; $idU = $RP['idUsuari']; $idD = mktime(0, 0, 0, $month, $day, $year); $this->FPERSONAL = PersonalPeer::initialize($this->USUARI, $idD, $idU, $idP, $this->IDS); $this->FPERSONAL->bind($RP); $this->IDP = $this->FPERSONAL->getObject()->getIdpersonal(); $this->IDU = $idU; $this->DATE = $idD; if ($this->FPERSONAL->isValid()) { $this->FPERSONAL->save(); $this->getUser()->addLogAction($accio, 'gPersonal', $this->FPERSONAL->getObject()); $this->redirect('gestio/gPersonal?accio=EDIT_DATE&DATE=' . $idD . '&IDU=' . $idU); } else { $this->ERROR[] = "Hi ha algun problema amb el formulari."; } $this->GPersonal_LoadDadesDia(); break; case 'DELETE_CHANGE': $RP = $request->getParameter('personal'); list($year, $month, $day) = explode("-", $RP['idData']); $idP = $RP['idPersonal']; $idU = $RP['idUsuari']; $idD = mktime(0, 0, 0, $month, $day, $year); $OP = PersonalPeer::retrieveByPK($RP['idPersonal']); $OP->setDatabaixa(date('Y-m-d', time())); $OP->setUsuariupdateid($this->USUARI); $OP->setActiu(false); $OP->save(); $this->getUser()->addLogAction($accio, 'gPersonal', $OP); $this->redirect('gestio/gPersonal?accio=EDIT_DATE&DATE=' . $idD . '&IDU=' . $idU); break; } }