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); }
public function executeReverse(sfWebRequest $request) { #TODO #security if ($request->getParameter('id')) { $mission_leg = MissionLegPeer::retrieveByPK($request->getParameter('id')); $mission = MissionPeer::retrieveByPK($mission_leg->getMissionId()); if (isset($mission) && $mission->getItineraryId()) { $iti = $mission->getItinerary(); } if ($mission_leg->getTransportation() == 'air_mission') { if ($mission_leg->getReverseFrom() == $mission_leg->getId()) { //Non reversed leg $orgin = $mission_leg->getFromAirportId(); $dest = $mission_leg->getToAirportId(); $miss_id = $mission_leg->getMissionId(); $leg_id = $mission_leg->getId(); $mission_leg->setReverseFrom($mission_leg->getId()); $mission_leg->save(); $mission_leg = new MissionLeg(); $mission_leg->setMissionId($miss_id); $mission_leg->setReverseFrom($leg_id); $mission_leg->setLegNumber(MissionLegPeer::getMaxLegNumber($miss_id) + 1); $mission_leg->setFromAirportId($dest); $mission_leg->setToAirportId($orgin); $mission_leg->setTransportation('air_mission'); $mission_leg->save(); $this->getUser()->setFlash('success', 'Mission #' . $mission->getId() . '\'s legs have reversed.'); $this->redirect('@itinerary_detail?id=' . $iti->getId()); } } elseif ($mission_leg->getTransportation() == 'ground_mission') { if ($mission_leg->getGroundOrigin() && $mission_leg->getGroundDestination()) { //Reversed by type which saved : like patient..lodging.. if ($mission_leg->getGroundOrigin() == 'patient' && $mission_leg->getGroundDestination() == 'lodging') { $parent = $mission_leg->getGroundOrigin(); $lodging = $mission_leg->getGroundDestination(); $miss_id = $mission_leg->getMissionId(); $leg_id = $mission_leg->getId(); $mission_leg = new MissionLeg(); $mission_leg->setMissionId($miss_id); $mission_leg->setLegNumber(MissionLegPeer::getMaxLegNumber($miss_id) + 1); $mission_leg->setGroundOrigin($lodging); $mission_leg->setGroundDestination($parent); $mission_leg->setTransportation('ground_mission'); $mission_leg->setReverseFrom($leg_id); $mission_leg->save(); } if ($mission_leg->getGroundOrigin() == 'lodging' && $mission_leg->getGroundDestination() == 'facility') { $facility = $mission_leg->getGroundDestination(); $lodging = $mission_leg->getGroundOrigin(); $miss_id = $mission_leg->getMissionId(); $leg_id = $mission_leg->getId(); $mission_leg = new MissionLeg(); $mission_leg->setMissionId($miss_id); $mission_leg->setLegNumber(MissionLegPeer::getMaxLegNumber($miss_id) + 1); $mission_leg->setGroundDestination($lodging); $mission_leg->setGroundOrigin($facility); $mission_leg->setTransportation('ground_mission'); $mission_leg->setReverseFrom($leg_id); $mission_leg->save(); } $this->getUser()->setFlash('success', 'Missoin #' . $mission->getId() . '\'s legs have reversed.'); $this->redirect('@itinerary_detail?id=' . $iti->getId()); } } if ($mission_leg->getMissionId()) { $mission = MissionPeer::retrieveByPK($mission_leg->getMissionId()); } } }