public function executeGReserves(sfWebRequest $request) { $this->setLayout('gestio'); $this->IDS = $this->getUser()->getSessionPar('idS'); //Netegem cerca if ($request->getParameter('accio') == 'C') { $this->CERCA = $this->getUser()->setSessionPar('cerca', array('text' => '', 'select' => '1', 'select2' => date('Y', time()))); $this->PAGINA = $this->getUser()->setSessionPar('pagina', 1); } $PAGINA = $this->getUser()->ParReqSesForm($request, 'P', 1); $this->CERCA = $this->getUser()->ParReqSesForm($request, 'cerca', array('text' => '', 'select' => '1', 'select2' => date('Y', time()))); if (sizeof($this->CERCA) > 3) { $this->CERCA = array('text' => '', 'select' => '0', 'select2' => date('Y', time())); } //Inicialitzem el formulari de cerca $this->FCerca = new CercaTextChoiceForm(array(), array('desplegables' => 2)); //$RET = ReservaespaisPeer::selectEstat(); $RET[1] = 'Per tractar'; $RET[0] = 'Tractades'; $RET[-1] = 'Totes les reserves'; $this->FCerca->setChoice($RET); //Definim els anys... $this->FCerca->setChoice2(ReservaEspaisPeer::getArraySearch($this->IDS)); //Carreguem els valors guardats $this->FCerca->bind($this->CERCA); //Inicialitzem variables $this->MODE = array('CONSULTA' => true, 'NOU' => false, 'EDICIO' => false); if ($request->isMethod('POST') || $request->isMethod('GET')) { $accio = $request->getParameter('accio'); if ($request->hasParameter('BCERCA')) { $accio = 'C'; } if ($request->hasParameter('BNOU')) { $accio = 'N'; } if ($request->hasParameter('BSAVE')) { $accio = 'S'; } if ($request->hasParameter('BDELETE')) { $accio = 'D'; } if ($request->hasParameter('SEND_RESOLUTION')) { $accio = "SR"; } } switch ($accio) { case 'N': $this->FReserva = ReservaespaisPeer::initialize(0, $this->IDS); $this->MODE['NOU'] = true; break; case 'E': $this->FReserva = ReservaespaisPeer::initialize($request->getParameter('IDR'), $this->IDS); $this->MODE['EDICIO'] = true; break; case 'S': if ($this->saveReservaEspais($request, $accio)) { $this->redirect('gestio/gReserves?accio=C'); } $this->MODE['EDICIO'] = true; break; case 'D': $OR = ReservaespaisPeer::initialize($this->IDR, $this->IDS)->getObject(); $OR->setEstat(ReservaespaisPeer::ESBORRADA); $OR->save(); $this->getUser()->addLogAction($accio, 'gReserves', $OR); break; case 'C': $this->getUser()->addLogAction('inside', 'gReserves'); break; //Guardo el formulari amb els canvis i envio un correu amb les condicions. //Guardo el formulari amb els canvis i envio un correu amb les condicions. case 'SR': $RP = $request->getParameter('reservaespais'); $this->FReserva = ReservaespaisPeer::initialize($RP['ReservaEspaiID'], $this->IDS); $this->FReserva->bind($RP); if ($this->FReserva->isValid()) { $this->FReserva->save(); $OR = $this->FReserva->getObject(); //El poso en pendent de confirmació per mail o web $OR->setEstat(ReservaespaisPeer::PENDENT_CONFIRMACIO); $OR->save(); //Generem i enviem el mail amb les condicions $this->SendMailReservaEspais($OR, $this->IDS); //Guardem l'acció $this->getUser()->addLogAction($accio, 'gReserves', $this->FReserva); } else { $this->MODE['EDICIO'] = true; } break; } $this->RESERVES = ReservaespaisPeer::getReservesSelect($this->CERCA['text'], $this->CERCA['select'], $this->CERCA['select2'], $PAGINA, $this->IDS); //print_r($this->RESERVES); }