예제 #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
 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;
     }
 }