public function executeAddLeg(sfWebRequest $request) { $camp = CampPeer::retrieveByPK($request->getParameter('id')); $this->forward404Unless($camp); if ($camp) { $mission_type = MissionTypePeer::getByName('normal'); } if (!$mission_type instanceof MissionType) { $mission_type = MissionTypePeer::doSelectOne(new Criteria()); $this->forward404Unless($mission_type); } $itinerary = new Itinerary(); $itinerary->setCampId($camp->getId()); $itinerary->setPassengerId($request->getParameter('passenger_id')); $existing = ItineraryPeer::doSelectOne($itinerary->buildCriteria()); if ($existing) { $itinerary = $existing; } else { $itinerary->setDateRequested(time()); $itinerary->setApointTime('unspecified'); $itinerary->setMissionTypeId($mission_type->getId()); $itinerary->setAgencyId($camp->getAgencyId()); $itinerary->save(); } $this->redirect('mission/update?id=' . $itinerary->getId()); }