public function executeReverse(sfWebRequest $request) { $mis1 = MissionPeer::retrieveByPK($request->getParameter('miss_id')); $itine_id = $mis1->getItineraryId(); $mis2 = MissionPeer::retrieveByPK($request->getParameter('mis2_id')); $mis1_legs = MissionLegPeer::getbyDesOrderMissId($request->getParameter('miss_id')); $legnumber = 1; $comcount = 1; $aircount = 1; $groundcount = 1; foreach ($mis1_legs as $mleg) { $type = $mleg->getTransportation(); switch ($type) { case 'air_mission': $mission_leg = new MissionLeg(); $mission_leg->setMissionId($mis2->getId()); $mission_leg->setLegNumber($legnumber); $mission_leg->setFromAirportId($mleg->getToAirportId()); $mission_leg->setToAirportId($mleg->getFromAirportId()); $mission_leg->setPassOnBoard(0); $mission_leg->setTransportation('air_mission'); $mission_leg->setPrefix('air' . $aircount); $mission_leg->setCancelMissionLeg(1); $mission_leg->save(); $aircount++; break; case 'ground_mission': $mission_leg = new MissionLeg(); $mission_leg->setMissionId($mis2->getId()); $mission_leg->setLegNumber($legnumber); $mission_leg->setPassOnBoard(0); $mission_leg->setTransportation('ground_mission'); $mission_leg->setGroundOrigin($mleg->getGroundDestination()); $mission_leg->setGroundDestination($mleg->getGroundOrigin()); $mission_leg->setPrefix('g' . $groundcount); $mission_leg->setCancelMissionLeg(1); $mission_leg->save(); $groundcount++; break; case 'commercial_mission': $mission_leg = new MissionLeg(); $mission_leg->setMissionId($mis2->getId()); $mission_leg->setLegNumber($legnumber); $mission_leg->setFlightTime($mleg->getFlightTime()); //$mission_leg->setBaggageDesc($request->getParameter('baggage_desc')); //$mission_leg->setBaggageWeight($request->getParameter('baggage_weight')); $mission_leg->setAirlineId($mleg->getAirlineId()); $mission_leg->setFundId($mleg->getFundId()); $mission_leg->setConfirmCode($mleg->getConfirmCode()); $mission_leg->setFlightCost($mleg->getFlightCost()); $mission_leg->setCommOrigin($mleg->getCommDest()); $mission_leg->setCommDest($mleg->getCommOrigin()); $mission_leg->setFlightNumber($mleg->getFlightNumber()); $mission_leg->setDeparture($mleg->getDeparture()); $mission_leg->setTransportation('commercial_mission'); $mission_leg->setPrefix('com' . $comcount); $mission_leg->setCancelMissionLeg(1); $mission_leg->save(); $comcount++; break; } $legnumber++; } $this->getUser()->setFlash('success', 'Successfully reverse.'); $this->redirect('itinerary/detail?id=' . $itine_id); }