public function executeAutoAddMissionsOnCamp(sfWebRequest $request) { // see if there is airport exist with this name $airport_name = $request->getParameter('airportname'); $airport = AirportPeer::getBySpecificAirportName($airport_name); // If there is no airport then insert it into airport table if (!$airport) { // @TODO Set default airport fields values $airport = new Airport(); $airport->setName($airport_name); $airport->save(); } $pass_id = $request->getParameter('passenger'); $camp_id = $request->getParameter('camp_id'); $camp_passenger = new CampPassenger(); $camp_passenger->setCampId($camp_id); $camp_passenger->setPassengerId($pass_id); if (CampPassengerPeer::doCount($camp_passenger->buildCriteria())) { $passenger = PassengerPeer::retrieveByPK($pass_id); $this->getUser()->setFlash('warning', 'Passenger "' . $passenger->getPerson()->getName() . '" has already been added!'); return $this->redirect('camp/view?id=' . $request->getParameter('camp_id')); } $camp = CampPeer::retrieveByPK($camp_id); $this->forward404Unless($camp); $note = $request->getParameter('note'); //$camp_passenger->setAirportId($camp->getAirportId ()); // Camp Location Id $camp_passenger->setNote($note); //if ($camp_passenger->save()){ //return $this->renderText($airport->getId()); //} $mission_type = MissionTypePeer::getByName('normal'); if (!$mission_type instanceof MissionType) { $mission_type = MissionTypePeer::doSelectOne(new Criteria()); $this->forward404Unless($mission_type); } $airport = AirportPeer::getBySpecificAirportName($airport_name); $camp_location = $camp->getAirport(); $itinerary = new Itinerary(); $itinerary->setCampId($camp->getId()); $itinerary->setPassengerId($pass_id); $itinerary->setDateRequested(time()); $itinerary->setApointTime('unspecified'); $itinerary->setMissionTypeId($mission_type->getId()); $itinerary->setAgencyId($camp->getAgencyId()); $itinerary->setCancelItinerary(1); $itinerary->save(); // Mission 1 $mission1 = new Mission(); $mission1->setItineraryId($itinerary->getId()); $mission1->setCampId($camp->getId()); $mission1->setCancelMission(1); $mission1->setPassengerId($pass_id); $mission1->setMissionCount(1); $mission1->setDateRequested(time()); $mission1->setExternalId($this->getLatestExternalId()); $mission1->setMissionTypeId($mission_type->getId()); $mission1->save(); $camp_passenger->setReturnAirportId(NULL); // this indicates that return airport id would be camp airport id $camp_passenger->setAirportId($airport->getId()); $camp_passenger->setMissionId($mission1->getId()); $camp_passenger->save(); $mission1_leg1 = new MissionLeg(); $mission1_leg1->setFromAirportId($airport->getId()); $mission1_leg1->setLegNumber(1); $mission1_leg1->setMissionId($mission1->getId()); if ($camp_location) { $mission1_leg1->setToAirportId($camp_location->getId()); } else { $mission1_leg1->setToAirportId(NULL); } $mission1_leg1->setCancelMissionLeg(1); $mission1_leg1->save(); // Mission 2 $mission2 = new Mission(); $mission2->setItineraryId($itinerary->getId()); $mission2->setCampId($camp->getId()); $mission2->setCancelMission(1); $mission2->setPassengerId($pass_id); $mission2->setMissionCount(2); // From treatment to hme $mission2->setDateRequested(time()); $mission2->setExternalId($this->getLatestExternalId()); $mission2->setMissionTypeId($mission_type->getId()); $mission2->save(); $camp_passenger2 = new CampPassenger(); $camp_passenger2->setCampId($camp_id); $camp_passenger2->setPassengerId($pass_id); $camp_passenger2->setMissionId($mission2->getId()); $camp_passenger2->setAirportId(NULL); // this indicates that return airport id would be camp airport id $camp_passenger2->setReturnAirportId($airport->getId()); $camp_passenger2->setNote($note); $camp_passenger2->save(); $mission2_leg2 = new MissionLeg(); if ($camp_location) { $mission2_leg2->setFromAirportId($camp_location->getId()); } else { $mission2_leg2->setFromAirportId(NULL); } $mission2_leg2->setLegNumber(1); $mission2_leg2->setMissionId($mission2->getId()); $mission2_leg2->setToAirportId($airport->getId()); $mission2_leg2->setCancelMissionLeg(1); $mission2_leg2->save(); return $this->redirect('camp/view?id=' . $camp->getId()); }
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); }