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