public function executeValidate(sfWebRequest $request) { $id = $request->getParameter('id'); if ($id) { $this->forward404Unless($reservation = Doctrine::getTable('Reservation')->find(array($id)), sprintf('Object reservation does not exist (%s).', $id)); } $d = array(); $d['designation'] = $request->getParameter('designation'); $d['description'] = $request->getParameter('description'); $d['type'] = $request->getParameter('type'); if ($d['type'] == "") { $d['type'] = "group"; } $d['public_designation'] = ''; $d['public_description'] = ''; $d['public'] = $request->getParameter('public') ? 1 : 0; if ($d['public']) { $d['public_designation'] = $request->getParameter('public_designation'); $d['public_description'] = $request->getParameter('public_description'); } switch ($d['type']) { case 'group': $d['type_id'] = $request->getParameter('type_group'); break; case 'event': $d['type_id'] = $request->getParameter('type_event'); break; default: $d['type_id'] = $request->getParameter('type_user'); break; } // create group if new reservation if ($d['type_id'] == "" && $d['type'] == "group") { $g = new Groups(); $g->setName($d['designation']); $g->save(); $d['type_id'] = $g->getId(); } if ($id) { $this->update('Reservation', $d, $id); } else { //$this->insert('Reservation', $d); $r = new Reservation(); $r->setDesignation($d['designation']); $r->setDescription($d['description']); $r->setType($d['type']); $r->setTypeId($d['type_id']); $r->setPublic($d['public']); $r->setPublicDesignation($d['public_designation']); $r->setPublicDescription($d['public_description']); $r->save(); $request->setParameter('id', $r->getId()); } $this->startdate = $request->getParameter('startdate'); $this->stopdate = $request->getParameter('stopdate'); if (!$request->getParameter('ajax')) { $this->redirect('reservation/list'); } else { if ($id) { $this->executeAjaxDetailedReservation($request); } else { $this->executeAjaxAddPeriod($request); } } }