public function saveCampPassengerList($con = null) { if (!$this->isValid()) { throw $this->getErrorSchema(); } if (!isset($this->widgetSchema['camp_passenger_list'])) { // somebody has unset this widget return; } if (is_null($con)) { $con = $this->getConnection(); } $c = new Criteria(); $c->add(CampPassengerPeer::PASSENGER_ID, $this->object->getPrimaryKey()); CampPassengerPeer::doDelete($c, $con); $values = $this->getValue('camp_passenger_list'); if (is_array($values)) { foreach ($values as $value) { $obj = new CampPassenger(); $obj->setPassengerId($this->object->getPrimaryKey()); $obj->setCampId($value); $obj->save(); } } }
public function executeAutoRemoveMissionsOnCamp(sfWebRequest $request) { $passenger_id = $request->getParameter('passenger'); $airport_id = $request->getParameter('airport_id'); $camp_id = $request->getParameter('camp'); $mission_id = $request->getParameter('mission_id'); $camp = CampPeer::retrieveByPK($camp_id); $camp_airport_id = $camp->getAirportId(); // To airport id for first mission $from = $request->getParameter('from'); // indicates what should be removed, home to treatement or treatement to home mission? $c = new Criteria(); $c->add(MissionPeer::PASSENGER_ID, $passenger_id); $c->add(MissionPeer::CAMP_ID, $camp_id); $c->add(MissionPeer::ID, $mission_id); $mission = MissionPeer::doSelectOne($c); $itinerary_id = $mission->getItineraryId(); $mission->setCancelMission(0); // Make it hide from public $mission->save(); $itinerary = ItineraryPeer::retrieveByPK($itinerary_id); $itinerary->setCancelItinerary(0); $itinerary->save(); /*foreach($missions as $mission){ $mission_ids[] = $mission->getId(); $itinerary_id = $mission->getItineraryId(); $mission->setCancelMission(0); // Make it hide from public $mission->save(); }*/ //$this->_setAutoLegCancelled($camp_airport_id, $airport_id, $mission_ids[0], 'come'); //$this->_setAutoLegCancelled($camp_airport_id, $airport_id, $mission_ids[1], 'return'); $this->_setAutoLegCancelled($camp_airport_id, $airport_id, $mission->getId(), $from); $c->clear(); $c->add(CampPassengerPeer::CAMP_ID, $camp_id); $c->add(CampPassengerPeer::PASSENGER_ID, $passenger_id); if ($from == 'source') { $c->add(CampPassengerPeer::AIRPORT_ID, $airport_id); } else { $c->add(CampPassengerPeer::RETURN_AIRPORT_ID, $airport_id); } CampPassengerPeer::doDelete($c); return $this->redirect('camp/view?id=' . $camp_id); }
/** * Removes this object from datastore and sets delete attribute. * * @param PropelPDO $con * @return void * @throws PropelException * @see BaseObject::setDeleted() * @see BaseObject::isDeleted() */ public function delete(PropelPDO $con = null) { foreach (sfMixer::getCallables('BaseCampPassenger:delete:pre') as $callable) { $ret = call_user_func($callable, $this, $con); if ($ret) { return; } } if ($this->isDeleted()) { throw new PropelException("This object has already been deleted."); } if ($con === null) { $con = Propel::getConnection(CampPassengerPeer::DATABASE_NAME, Propel::CONNECTION_WRITE); } $con->beginTransaction(); try { CampPassengerPeer::doDelete($this, $con); $this->setDeleted(true); $con->commit(); } catch (PropelException $e) { $con->rollBack(); throw $e; } foreach (sfMixer::getCallables('BaseCampPassenger:delete:post') as $callable) { call_user_func($callable, $this, $con); } }