Exemplo n.º 1
0
 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());
 }
Exemplo n.º 2
0
 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);
 }