Пример #1
0
 protected function processStep3Check(sfWebRequest $request)
 {
     $default_airport = AirportPeer::getByIdent(sfConfig::get('app_default_airport_ident'));
     $this->forward404Unless($default_airport);
     $app = $this->application_temp;
     $person = $this->person;
     if (!$person instanceof Person) {
         $person = new Person();
     }
     /* @var $app ApplicationTemp */
     /* @var $person Person */
     // Person
     $tmp_arr = $app->toArray(BasePeer::TYPE_FIELDNAME);
     $tmp_arr['evening_phone'] = $tmp_arr['eve_phone'];
     $tmp_arr['evening_comment'] = $tmp_arr['eve_comment'];
     unset($tmp_arr['id']);
     $person->fromArray($tmp_arr, BasePeer::TYPE_FIELDNAME);
     $person->save();
     // Member
     $member = MemberPeer::retrieveByPK($app->getMemberId());
     if (!$member instanceof Member) {
         $member = new Member();
     }
     $member->setActive(1);
     $member->setCoPilot($app->getApplicantCopilot());
     $member->setContact('By Email');
     $member->setDateOfBirth($app->getDateOfBirth());
     $member->setDriversLicenseState($app->getDriversLicenseState());
     $member->setDriversLicenseNumber($app->getDriversLicenseNumber());
     $member->setEmergencyContactName($app->getEmergencyContactName());
     $member->setEmergencyContactPhone($app->getEmergencyContactPhone());
     $member->setFlightStatus($app->getApplicantPilot() ? 'Verify Orientation' : 'Non-pilot');
     //$member->setJoinDate(time());
     $member->setLanguages($app->getLanguagesSpoken());
     //Farazi
     //$member->setMasterMemberId($app->getMasterMemberId());
     // Get Last renewal date
     $this->member = MemberPeer::retrieveByPK($app->getMemberId());
     $lastRenewalDate = strtotime($this->member->getRenewalDate());
     $member->setMemberClassId($app->getMemberClassId());
     $member->setPersonId($person->getId());
     $member->setRenewedDate(time());
     ///Farazi Renewal Date From Memberclass
     if ($app->getMemberClassId()) {
         $memclass = MemberClassPeer::retrieveByPK($app->getMemberClassId());
         $renewal_period = $memclass->getRenewalPeriod();
         $renewalTime = strtotime('+' . $renewal_period . ' month', $lastRenewalDate);
         //echo $renewalTime;
         $member->setRenewalDate($renewalTime);
         //$member->setRenewalDate(strtotime('+'.$renewal_period.' month'));
     }
     // Farazi End
     //$member->setRenewalDate(strtotime('+1 year'));
     $member->setSpouseName($app->getSpouseFirstName() . ' ' . $app->getSpouseLastName());
     $member->setWeight($app->getWeight());
     $member->setWingId($app->getWingId());
     $member->save();
     // Pilot
     if ($app->getApplicantPilot()) {
         $pilot = $member->getPilot();
         if (!$pilot instanceof Pilot) {
             $pilot = new Pilot();
         }
         if ($pilot->isNew()) {
             // remove aircrafts
             foreach ($member->getPilotAircrafts() as $p_a) {
                 PilotAircraftPeer::doDelete($p_a);
             }
         }
         $pilot->setMemberId($member->getId());
         $airport = AirportPeer::getByIdent($app->getHomeBase());
         if (!$airport instanceof Airport) {
             $airport = $default_airport;
         }
         $pilot->setPrimaryAirportId($airport->getId());
         $pilot->setTotalHours($app->getTotalHours());
         $pilot->setLicenseType('Private');
         foreach (sfConfig::get('app_pilot_license_types') as $key => $val) {
             if (stripos($app->getRatings(), $key) !== false) {
                 $pilot->setLicenseType($key);
             }
         }
         $pilot->setIfr(stripos($app->getRatings(), 'ifr') !== false ? 1 : 0);
         $pilot->setMultiEngine(stripos($app->getRatings(), 'multi') !== false ? 1 : 0);
         $pilot->setSeInstructor('No');
         // @see ApplicationForm
         foreach (sfConfig::get('app_pilot_se_instructor') as $key => $val) {
             if (stripos($app->getRatings(), $key) !== false) {
                 $pilot->setSeInstructor($key);
             }
         }
         $pilot->setMeInstructor($pilot->getSeInstructor());
         $pilot->save();
         // Availability
         $availability = $member->getAvailability();
         if (!$availability instanceof Availability) {
             $availability = new Availability();
         }
         $availability->setMemberId($member->getId());
         $availability->setNotAvailable(0);
         $availability->setNoWeekday($app->getAvailabilityWeekdays() == 0);
         $availability->setNoNight($app->getAvailabilityWeeknights() == 0);
         $availability->setLastMinute($app->getAvailabilityLastMinute());
         $availability->setAsMissionMssistant($app->getAvailabilityCopilot());
         $availability->setNoWeekend($app->getAvailabilityWeekends() == 0);
         $availability->save();
         //Farazi
         //Delete all aircrafts
         $pilot_aircrafts = PilotAircraftPeer::getByMemberId($member->getId());
         foreach ($pilot_aircrafts as $pilot_aircraft) {
             $pilot_aircraft->delete();
         }
         // Primary aircraft
         if ($app->getAircraftPrimaryId() && ($aircraft = AircraftPeer::retrieveByPK($app->getAircraftPrimaryId()))) {
             $pilot_aircraft = new PilotAircraft();
             $pilot_aircraft->setMemberId($member->getId());
             $pilot_aircraft->setAircraftId($aircraft->getId());
             $pilot_aircraft->setNNumber($app->getAircraftPrimaryNNumber());
             $pilot_aircraft->setOwn($app->getAircraftPrimaryOwn());
             $pilot_aircraft->setSeats($app->getAircraftPrimarySeats());
             $pilot_aircraft->setKnownIce($app->getAircraftPrimaryIce());
             $pilot_aircraft->save();
         }
         // Secondary aircraft
         if ($app->getAircraftSecondaryId() && ($aircraft = AircraftPeer::retrieveByPK($app->getAircraftSecondaryId()))) {
             $pilot_aircraft = new PilotAircraft();
             $pilot_aircraft->setMemberId($member->getId());
             $pilot_aircraft->setAircraftId($aircraft->getId());
             $pilot_aircraft->setNNumber($app->getAircraftSecondaryNNumber());
             $pilot_aircraft->setOwn($app->getAircraftSecondaryOwn());
             $pilot_aircraft->setSeats($app->getAircraftSecondarySeats());
             $pilot_aircraft->setKnownIce($app->getAircraftSecondaryIce());
             $pilot_aircraft->save();
         }
         // Third aircraft
         if ($app->getAircraftThirdId() && ($aircraft = AircraftPeer::retrieveByPK($app->getAircraftThirdId()))) {
             $pilot_aircraft = new PilotAircraft();
             $pilot_aircraft->setMemberId($member->getId());
             $pilot_aircraft->setAircraftId($aircraft->getId());
             $pilot_aircraft->setNNumber($app->getAircraftThirdNNumber());
             $pilot_aircraft->setOwn($app->getAircraftThirdOwn());
             $pilot_aircraft->setSeats($app->getAircraftThirdSeats());
             $pilot_aircraft->setKnownIce($app->getAircraftThirdIce());
             $pilot_aircraft->save();
         }
     }
     // Application_temp
     $app->setPersonId($person->getId());
     $app->setMemberId($member->getId());
     $app->setProcessedDate(time());
     $app->save();
     // Application
     $tmp_arr = $app->toArray(BasePeer::TYPE_FIELDNAME);
     $tmp_arr['date'] = $tmp_arr['application_date'];
     $tmp_arr['company'] = $tmp_arr['company_name'];
     foreach (sfConfig::get('app_pilot_license_types') as $key => $val) {
         if (stripos($tmp_arr['ratings'], $key) !== false) {
             $tmp_arr['license_type'] = $key;
         }
     }
     $tmp_arr['ifr'] = stripos($tmp_arr['ratings'], 'ifr') !== false ? 1 : 0;
     $tmp_arr['multi_engine'] = stripos($tmp_arr['ratings'], 'multi') !== false ? 1 : 0;
     $tmp_arr['se_instructor'] = 'No';
     // @see ApplicationForm
     foreach (sfConfig::get('app_pilot_se_instructor') as $key => $val) {
         if (stripos($tmp_arr['ratings'], $key) !== false) {
             $tmp_arr['se_instructor'] = $key;
         }
     }
     $tmp_arr['me_instructor'] = $tmp_arr['se_instructor'];
     $tmp_arr['other_ratings'] = $tmp_arr['ratings'];
     $tmp_arr['fbo'] = $tmp_arr['fbo_name'];
     $tmp_arr['member_meetings'] = 0;
     $tmp_arr['executive_board'] = 0;
     $tmp_arr['dues_amount_paid'] = $tmp_arr['dues_amount_paid'] ? $tmp_arr['dues_amount_paid'] : 0;
     $tmp_arr['donation_amount_paid'] = $tmp_arr['donation_amount_paid'] ? $tmp_arr['donation_amount_paid'] : 0;
     unset($tmp_arr['id']);
     $application = new Application();
     $application->fromArray($tmp_arr, BasePeer::TYPE_FIELDNAME);
     $application->save();
     $this->getUser()->setFlash('success', 'Membership renewal completed successfully.');
     //$this->redirect('renewal/processComplete?id='.$member->getId());
     $this->redirect('renewal/processStep3?id=' . $this->application_temp->getId());
     //$this->redirect('renewal/index?id='.$member->getId());
 }
Пример #2
0
 /**
  * Show Itinerary details
  * CODE: itinerary_view
  */
 public function executeDetail(sfWebRequest $request)
 {
     #Security
     if (!$this->getUser()->hasCredential(array('Administrator', 'Staff', 'Pilot', 'Coordinator', 'Volunteer'), false)) {
         $this->getUser()->setFlash("warning", 'You don\'t have permission to access this url ' . $request->getReferer());
         $this->redirect('dashboard/index');
     }
     $this->orginset = '';
     $this->destset = '';
     $this->orgintset = '';
     $this->desttset = '';
     if ($request->getParameter('add_passengers')) {
         $this->group_camp_id = $request->getParameter('add_passengers');
     }
     $this->mission;
     $this->mission2;
     $mission;
     $mission2;
     $this->ground_addr_sel = sfConfig::get('app_ground_address_type', array());
     $this->errors = array();
     $this->errors2 = array();
     if ($request->getParameter('id')) {
         $this->itinerary = ItineraryPeer::retrieveByPK($request->getParameter('id'));
         $this->back = $request->getReferer();
         //echo $this->itinerary->getId();
         if (strstr($this->back, '/mission/view')) {
             $this->frommission = 1;
         } else {
             $this->frommission = 0;
         }
         $this->mis = MissionPeer::getMissionByItineraryId($this->itinerary->getId(), 1);
         $mission = $this->mis;
         /*echo "<pre>";
           print_r($this->mis);
           echo "</pre>";
           die("ok");
           */
         $this->mission = $mission;
         //print_r($mission);      exit ();
         ///Show leges
         if (isset($mission)) {
             $this->mis_legs = MissionLegPeer::getbyMissId($mission->getId());
         }
         //echo "<pre>";
         //print_r($this->mis_legs);
         //echo $this->itinerary->getId();
         $this->mis2 = MissionPeer::getMissionByItineraryId($this->itinerary->getId(), 2);
         /*
         echo "<pre>";
         print_r($this->mis2);
         echo "</pre>";
         die("ok");
         */
         $mission2 = $this->mis2;
         $this->mission2 = $mission2;
         $this->ground_addresses = array('patient' => '', 'facility' => '', 'lodging' => '', 'airport' => '');
         $pass;
         $this->personnew;
         if ($this->itinerary) {
             $this->ground_addresses['lodging'] = $this->ground_addresses['facility'] = $this->itinerary->getDestCity() . ', ' . $this->itinerary->getDestState();
             $pass = PassengerPeer::retrieveByPK($this->itinerary->getPassengerId());
             $this->personnew = PersonPeer::retrieveByPK($pass->getPersonId());
         }
         if ($pass) {
             $this->ground_addresses['lodging'] = $pass->getLodgingName() . ' ' . $this->ground_addresses['lodging'];
             $this->ground_addresses['facility'] = $pass->getFacilityName() . ' ' . $this->ground_addresses['facility'];
             $this->ground_addresses['patient'] = $this->personnew->getAddress1() . ' ' . $this->personnew->getAddress2() . ' ' . $this->personnew->getCity() . ', ' . $this->personnew->getState() . ' ' . $this->personnew->getZipcode();
             $this->ground_addresses['airport'] = $this->personnew->getAddress1() . ' ' . $this->personnew->getAddress2() . ' ' . $this->personnew->getCity() . ', ' . $this->personnew->getState() . ' ' . $this->personnew->getZipcode();
         }
     }
     if ($request->isMethod('post')) {
         if ($request->getParameter('com')) {
             if ($request->getParameter('com') == 1) {
                 $mission->setComment($request->getParameter('mis_comment'));
                 $mission->save();
             } elseif ($request->getParameter('com') == 2) {
                 $mission2->setComment($request->getParameter('mist_comment'));
                 $mission2->save();
             }
             $this->getUser()->setFlash('success', 'Comment successfully saved.');
         } else {
             if ($request->getParameter('misstsave') == 1) {
                 switch ($request->getParameter('transportation')) {
                     case 'air_mission':
                         $origin_airports = (array) $request->getParameter('origint_idents');
                         $dest_airports = (array) $request->getParameter('destinationt_idents');
                         $idents = $dest_airports;
                         $tmp_arr = array();
                         foreach ($origin_airports as $i => $ident) {
                             $idents[] = $ident;
                             $v = $ident . ' to ' . $dest_airports[$i];
                             if (in_array($v, $tmp_arr)) {
                                 $this->errors2[] = 'Leg ' . $v . ' appeared more than one';
                             } else {
                                 $tmp_arr[] = $v;
                             }
                             if ($dest_airports[$i] == $ident) {
                                 $this->errors2[] = 'Leg ' . $ident . ' to ' . $dest_airports[$i] . ' is invalid';
                             }
                         }
                         $idents = array_unique($idents);
                         $c = new Criteria();
                         $c->add(AirportPeer::IDENT, $idents, Criteria::IN);
                         if (count($idents) != AirportPeer::doCount($c)) {
                             $this->errors2[] = 'Some airport idents are invalid';
                         }
                         break;
                     case 'ground_mission':
                         $origin = $request->getParameter('groundt_origin');
                         $destination = $request->getParameter('groundt_destination');
                         $orgintset = $request->getParameter('orgintset');
                         $desttset = $request->getParameter('desttset');
                         $this->desttset = $desttset;
                         $this->orgintset = $orgintset;
                         if (empty($destination) && empty($desttset)) {
                             $this->errors2[] = 'Please specify destination address';
                         }
                         if (empty($origin) && empty($orgintset)) {
                             $this->errors2[] = 'Please specify origin address';
                         } elseif ($destination == $origin && $destination != '') {
                             $this->errors2[] = 'Origin and Destination addresses conflict';
                         }
                         break;
                     case 'commercial_mission':
                         $mission_date = $request->getParameter('mission_date');
                         if (empty($mission_date)) {
                             $this->errors2[] = 'Mission date is required';
                         }
                         if ($v = $request->getParameter('airline_id')) {
                             $custom = $request->getParameter('airline_custom');
                             if ($v == 'other') {
                                 if (empty($custom)) {
                                     $this->errors2[] = 'Please type a new airline name!';
                                 }
                             } else {
                                 $airline = AirlinePeer::retrieveByPK($v = $request->getParameter('airline_id'));
                                 if (!$airline instanceof Airline) {
                                     $this->errors2[] = 'Please select airline!';
                                 }
                             }
                         } else {
                             $this->errors2[] = 'Please select airline!';
                         }
                         break;
                     default:
                         $this->errors2[] = 'Please select Transportation Type';
                 }
                 if (count($this->errors2)) {
                     # error in form
                     switch ($request->getParameter('transportation')) {
                         case 'air_mission':
                             $this->origin_idents = $origin_airports;
                             $this->dest_idents = $dest_airports;
                             break;
                         case 'ground_mission':
                             break;
                         case 'commercial_mission':
                             break;
                     }
                     $this->erer = 2;
                 } else {
                     $missioncount = MissionLegPeer::getMaxLegNumber($mission2->getId());
                     switch ($request->getParameter('transportation')) {
                         case 'air_mission':
                             $aircount = MissionLegPeer::getCountbyMissIdAndType($mission2->getId(), 'air_mission');
                             for ($i = 0; $i < sizeof($origin_airports); $i++) {
                                 $airport_o = AirportPeer::getByIdent($origin_airports[$i]);
                                 $airport_d = AirportPeer::getByIdent($dest_airports[$i]);
                                 $missioncount++;
                                 $aircount++;
                                 $mission_leg = new MissionLeg();
                                 $mission_leg->setMissionId($mission2->getId());
                                 $mission_leg->setLegNumber($missioncount);
                                 $mission_leg->setFromAirportId($airport_o->getId());
                                 $mission_leg->setToAirportId($airport_d->getId());
                                 $mission_leg->setPrefix('air' . $aircount);
                                 //$mission_leg->setBaggageWeight($request->getParameter('baggage_weight'));
                                 //$mission_leg->setBaggageDesc($request->getParameter('baggage_desc'));
                                 $mission_leg->setPassOnBoard(0);
                                 $mission_leg->setTransportation('air_mission');
                                 $mission_leg->setCancelMissionLeg(1);
                                 $mission_leg->save();
                             }
                             $this->getUser()->setFlash('success', 'Mission and Leg #' . $mission_leg->getMissionId() . '-' . $mission_leg->getLegNumber() . ' has successfully created!');
                             return $this->redirect('/itinerary/detail/' . $this->itinerary->getId());
                             break;
                         case 'ground_mission':
                             $groundcount = MissionLegPeer::getCountbyMissIdAndType($mission2->getId(), 'ground_mission');
                             $mission_leg = new MissionLeg();
                             $orgintsetsave = $request->getParameter('groundt_origin');
                             if (empty($orgintsetsave)) {
                                 $orgintsetsave = $request->getParameter('orgintset');
                             }
                             $desttsetsave = $request->getParameter('groundt_destination');
                             if (empty($desttsetsave)) {
                                 $desttsetsave = $request->getParameter('desttset');
                             }
                             $groundcount++;
                             $sas = $missioncount + 1;
                             $mission_leg->setMissionId($mission2->getId());
                             $mission_leg->setLegNumber($sas);
                             $mission_leg->setPassOnBoard(0);
                             $mission_leg->setTransportation('ground_mission');
                             $mission_leg->setGroundOrigin($orgintsetsave);
                             $mission_leg->setGroundDestination($desttsetsave);
                             $mission_leg->setPrefix('g' . $groundcount);
                             $mission_leg->setCancelMissionLeg(1);
                             $mission_leg->save();
                             $this->getUser()->setFlash('success', 'Mission and Leg #' . $mission_leg->getMissionId() . '-' . $mission_leg->getLegNumber() . ' has successfully created!');
                             return $this->redirect('/itinerary/detail/' . $this->itinerary->getId());
                             break;
                         case 'commercial_mission':
                             $comcount = MissionLegPeer::getCountbyMissIdAndType($mission2->getId(), 'commercial_mission');
                             $flight_time = $request->getParameter('flight_time');
                             if (empty($flight_time['hour']) || empty($flight_time['minute'])) {
                                 $flight_time = null;
                             }
                             $airline_id = $request->getParameter('airline_id');
                             if ($airline_id == 'other') {
                                 $airline = new Airline();
                                 $airline->setName($request->getParameter('airline_custom'));
                                 $airline->save();
                             } else {
                                 $airline = AirlinePeer::retrieveByPK($airline_id);
                                 $this->forward404Unless($airline);
                             }
                             $origins = $request->getParameter('origin');
                             $destinations = $request->getParameter('destination');
                             $flight_numbers = $request->getParameter('flight_number');
                             $departures = $request->getParameter('departure');
                             $arrivals = $request->getParameter('arrival');
                             $mission->setFlightTime($flight_time['hour'] . ':' . $flight_time['minute'] . ' ' . $flight_time['period']);
                             $missioncount++;
                             $n_leg = $missioncount;
                             foreach ($origins as $i => $origin) {
                                 if (empty($origin) || empty($destinations[$i])) {
                                     continue;
                                 }
                                 $mission_leg = new MissionLeg();
                                 $comcount++;
                                 $mission_leg->setMissionId($mission2->getId());
                                 $mission_leg->setLegNumber($n_leg++);
                                 $mission_leg->setFlightTime($flight_time ? strtotime($flight_time['hour'] . ':' . $flight_time['minute'] . ' ' . $flight_time['period']) : null);
                                 //$mission_leg->setBaggageDesc($request->getParameter('baggage_desc'));
                                 //$mission_leg->setBaggageWeight($request->getParameter('baggage_weight'));
                                 $mission_leg->setAirlineId($airline->getId());
                                 $mission_leg->setFundId($request->getParameter('fund_id'));
                                 $mission_leg->setConfirmCode($request->getParameter('confirm_code'));
                                 $mission_leg->setFlightCost($request->getParameter('flight_cost'));
                                 $mission_leg->setCommOrigin($origin);
                                 $mission_leg->setCommDest($destinations[$i]);
                                 $mission_leg->setFlightNumber($flight_numbers[$i]);
                                 $v = $departures[$i];
                                 if (empty($v['hour']) || empty($v['minute'])) {
                                     $v = null;
                                 }
                                 $mission_leg->setDeparture($v ? strtotime($v['hour'] . ':' . $v['minute'] . ' ' . $v['period']) : null);
                                 $v = $arrivals[$i];
                                 if (empty($v['hour']) || empty($v['minute'])) {
                                     $v = null;
                                 }
                                 $mission_leg->setDeparture($v ? strtotime($v['hour'] . ':' . $v['minute'] . ' ' . $v['period']) : null);
                                 $mission_leg->setTransportation('commercial_mission');
                                 $mission_leg->setPrefix('com' . $comcount);
                                 $mission_leg->setCancelMissionLeg(1);
                                 $mission_leg->save();
                                 $this->getUser()->setFlash('success', 'Mission and Leg #' . $mission_leg->getMissionId() . '-' . $mission_leg->getLegNumber() . ' has successfully created!');
                                 return $this->redirect('/itinerary/detail/' . $this->itinerary->getId());
                             }
                             break;
                     }
                 }
             } else {
                 switch ($request->getParameter('transportation')) {
                     case 'air_mission':
                         $origin_airports = (array) $request->getParameter('origin_idents');
                         $dest_airports = (array) $request->getParameter('destination_idents');
                         $idents = $dest_airports;
                         $tmp_arr = array();
                         foreach ($origin_airports as $i => $ident) {
                             $idents[] = $ident;
                             $v = $ident . ' to ' . $dest_airports[$i];
                             if (in_array($v, $tmp_arr)) {
                                 $this->errors[] = 'Leg ' . $v . ' appeared more than one';
                             } else {
                                 $tmp_arr[] = $v;
                             }
                             if ($dest_airports[$i] == $ident) {
                                 $this->errors[] = 'Leg ' . $ident . ' to ' . $dest_airports[$i] . ' is invalid';
                             }
                         }
                         $idents = array_unique($idents);
                         $c = new Criteria();
                         $c->add(AirportPeer::IDENT, $idents, Criteria::IN);
                         if (count($idents) != AirportPeer::doCount($c)) {
                             $this->errors[] = 'Some airport idents are invalid';
                         }
                         break;
                     case 'ground_mission':
                         $origin = $request->getParameter('ground_origin');
                         $destination = $request->getParameter('ground_destination');
                         //echo $destination; die();
                         $orginset = $request->getParameter('orginset');
                         $destset = $request->getParameter('destset');
                         $this->destset = $destset;
                         $this->orginset = $orginset;
                         if (empty($destination) && empty($destset)) {
                             $this->errors[] = 'Please specify destination address';
                         }
                         if (empty($origin) && empty($orginset)) {
                             $this->errors[] = 'Please specify origin address';
                         } elseif ($destination == $origin && $destination != '') {
                             $this->errors[] = 'Origin and Destination addresses conflict';
                         }
                         break;
                     case 'commercial_mission':
                         $mission_date = $request->getParameter('mission_date');
                         if (empty($mission_date)) {
                             $this->errors[] = 'Mission date is required';
                         }
                         if ($v = $request->getParameter('airline_id')) {
                             $custom = $request->getParameter('airline_custom');
                             if ($v == 'other') {
                                 if (empty($custom)) {
                                     $this->errors[] = 'Please type a new airline name!';
                                 }
                             } else {
                                 $airline = AirlinePeer::retrieveByPK($v = $request->getParameter('airline_id'));
                                 if (!$airline instanceof Airline) {
                                     $this->errors[] = 'Please select airline!';
                                 }
                             }
                         } else {
                             $this->errors[] = 'Please select airline!';
                         }
                         break;
                     default:
                         $this->errors[] = 'Please select Transportation Type';
                 }
                 if (count($this->errors)) {
                     # error in form
                     switch ($request->getParameter('transportation')) {
                         case 'air_mission':
                             $this->origin_idents = $origin_airports;
                             $this->dest_idents = $dest_airports;
                             break;
                         case 'ground_mission':
                             break;
                         case 'commercial_mission':
                             break;
                     }
                 } else {
                     $missioncount = MissionLegPeer::getMaxLegNumber($mission->getId());
                     switch ($request->getParameter('transportation')) {
                         case 'air_mission':
                             $aircount = MissionLegPeer::getCountbyMissIdAndType($mission->getId(), 'air_mission');
                             for ($i = 0; $i < sizeof($origin_airports); $i++) {
                                 $airport_o = AirportPeer::getByIdent($origin_airports[$i]);
                                 $airport_d = AirportPeer::getByIdent($dest_airports[$i]);
                                 $missioncount++;
                                 $aircount++;
                                 $mission_leg = new MissionLeg();
                                 $mission_leg->setMissionId($mission->getId());
                                 $mission_leg->setLegNumber($missioncount);
                                 $mission_leg->setFromAirportId($airport_o->getId());
                                 $mission_leg->setToAirportId($airport_d->getId());
                                 $mission_leg->setPrefix('air' . $aircount);
                                 //$mission_leg->setBaggageWeight($request->getParameter('baggage_weight'));
                                 //$mission_leg->setBaggageDesc($request->getParameter('baggage_desc'));
                                 $mission_leg->setPassOnBoard(0);
                                 $mission_leg->setTransportation('air_mission');
                                 $mission_leg->setCancelMissionLeg(1);
                                 $mission_leg->save();
                             }
                             $this->getUser()->setFlash('success', 'Mission and Leg #' . $mission_leg->getMissionId() . '-' . $mission_leg->getLegNumber() . ' has successfully created!');
                             return $this->redirect('/itinerary/detail/' . $this->itinerary->getId());
                             break;
                         case 'ground_mission':
                             $groundcount = MissionLegPeer::getCountbyMissIdAndType($mission->getId(), 'ground_mission');
                             $mission_leg = new MissionLeg();
                             $orginsetsave = $request->getParameter('ground_origin');
                             if (empty($orginsetsave)) {
                                 $orginsetsave = $request->getParameter('orginset');
                             }
                             $destsetsave = $request->getParameter('ground_destination');
                             if (empty($destsetsave)) {
                                 $destsetsave = $request->getParameter('destset');
                             }
                             $groundcount++;
                             $missioncount++;
                             $sa = $missioncount;
                             $mission_leg->setMissionId($mission->getId());
                             $mission_leg->setLegNumber($sa);
                             $mission_leg->setPassOnBoard(0);
                             $mission_leg->setTransportation('ground_mission');
                             $mission_leg->setGroundOrigin($orginsetsave);
                             $mission_leg->setGroundDestination($destsetsave);
                             $mission_leg->setPrefix('g' . $groundcount);
                             $mission_leg->setCancelMissionLeg(1);
                             $mission_leg->save();
                             $this->getUser()->setFlash('success', 'Mission and Leg #' . $mission_leg->getMissionId() . '-' . $mission_leg->getLegNumber() . ' has successfully created!');
                             return $this->redirect('/itinerary/detail/' . $this->itinerary->getId());
                             break;
                         case 'commercial_mission':
                             $comcount = MissionLegPeer::getCountbyMissIdAndType($mission->getId(), 'commercial_mission');
                             $flight_time = $request->getParameter('flight_time');
                             if (empty($flight_time['hour']) || empty($flight_time['minute'])) {
                                 $flight_time = null;
                             }
                             $airline_id = $request->getParameter('airline_id');
                             if ($airline_id == 'other') {
                                 $airline = new Airline();
                                 $airline->setName($request->getParameter('airline_custom'));
                                 $airline->save();
                             } else {
                                 $airline = AirlinePeer::retrieveByPK($airline_id);
                                 $this->forward404Unless($airline);
                             }
                             $origins = $request->getParameter('origin');
                             $destinations = $request->getParameter('destination');
                             $flight_numbers = $request->getParameter('flight_number');
                             $departures = $request->getParameter('departure');
                             $arrivals = $request->getParameter('arrival');
                             $mission->setFlightTime($flight_time['hour'] . ':' . $flight_time['minute'] . ' ' . $flight_time['period']);
                             $missioncount++;
                             $n_leg = $missioncount;
                             foreach ($origins as $i => $origin) {
                                 if (empty($origin) || empty($destinations[$i])) {
                                     continue;
                                 }
                                 $mission_leg = new MissionLeg();
                                 $comcount++;
                                 $mission_leg->setMissionId($mission->getId());
                                 $mission_leg->setLegNumber($n_leg++);
                                 $mission_leg->setFlightTime($flight_time ? strtotime($flight_time['hour'] . ':' . $flight_time['minute'] . ' ' . $flight_time['period']) : null);
                                 $mission_leg->setBaggageDesc($request->getParameter('baggage_desc'));
                                 $mission_leg->setBaggageWeight($request->getParameter('baggage_weight'));
                                 $mission_leg->setAirlineId($airline->getId());
                                 $mission_leg->setFundId($request->getParameter('fund_id'));
                                 $mission_leg->setConfirmCode($request->getParameter('confirm_code'));
                                 $mission_leg->setFlightCost($request->getParameter('flight_cost'));
                                 $mission_leg->setCommOrigin($origin);
                                 $mission_leg->setCommDest($destinations[$i]);
                                 $mission_leg->setFlightNumber($flight_numbers[$i]);
                                 $v = $departures[$i];
                                 if (empty($v['hour']) || empty($v['minute'])) {
                                     $v = null;
                                 }
                                 $mission_leg->setDeparture($v ? strtotime($v['hour'] . ':' . $v['minute'] . ' ' . $v['period']) : null);
                                 $v = $arrivals[$i];
                                 if (empty($v['hour']) || empty($v['minute'])) {
                                     $v = null;
                                 }
                                 $mission_leg->setDeparture($v ? strtotime($v['hour'] . ':' . $v['minute'] . ' ' . $v['period']) : null);
                                 $mission_leg->setTransportation('commercial_mission');
                                 $mission_leg->setPrefix('com' . $comcount);
                                 $mission_leg->setCancelMissionLeg(1);
                                 $mission_leg->save();
                                 $this->getUser()->setFlash('success', 'Mission and Leg #' . $mission_leg->getMissionId() . '-' . $mission_leg->getLegNumber() . ' has successfully created!');
                                 return $this->redirect('/itinerary/detail/' . $this->itinerary->getId());
                             }
                             break;
                     }
                 }
             }
         }
     }
     if ($request->getParameter('id')) {
         //$this->itinerary = ItineraryPeer::retrieveByPK($request->getParameter('id'));
         //$this->mis  = MissionPeer::getMissionByItineraryId($this->itinerary->getId(), 'Home');
         //$mission = $this->mis;
         if (isset($mission)) {
             $this->mis_comment = $mission->getComment();
         }
         //$this->mis_legs = MissionLegPeer::getbyMissId($mission->getId());
         if ($mission2) {
             $this->mis2_legs = MissionLegPeer::getbyMissId($mission2->getId());
             $this->mist_comment = $mission2->getComment();
         }
         $this->date_widget = new widgetFormDate(array('format_date' => array('js' => 'mm/dd/yy', 'php' => 'm/d/Y')), array('class' => 'text'));
         $this->time_widget = new widgetFormTime();
         $this->airport_list = AirportPeer::getMappable();
         $this->ground_addresses = $this->getGroundAddresses();
         $this->airlines = AirlinePeer::doSelect(new Criteria());
         $this->funds = FundPeer::doSelect(new Criteria());
         $this->miss_ids = array();
         $c = 0;
         $count = 0;
         $count2 = 0;
         if (isset($this->itinerary)) {
             $this->missions = MissionPeer::getByItiId($this->itinerary->getId());
             if (isset($this->missions)) {
                 foreach ($this->missions as $mi) {
                     $this->miss_ids[$c] = $mi->getId();
                     $legs = MissionLegPeer::getbyMissId($mi->getId());
                 }
             }
         }
         $this->title = '#' . $this->itinerary->getId() . ' Itinerary Details';
     }
 }
Пример #3
0
 /**
  * Searches for camps
  * CODE:camp_create
  */
 public function executeUpdate(sfWebRequest $request)
 {
     if (!$this->getUser()->hasCredential(array('Administrator', 'Staff', 'Coordinator'), false)) {
         $this->getUser()->setFlash("warning", 'You don\'t have permission to access this url ' . $request->getReferer());
         $this->redirect('dashboard/index');
     }
     sfContext::getInstance()->getConfiguration()->loadHelpers('Partial');
     $this->agencies = AgencyPeer::getForSelectParent();
     $this->agency = trim($this->getRequestParameter('agency', '*')) == '' ? '*' : trim($this->getRequestParameter('agency', '*'));
     $this->airport = trim($this->getRequestParameter('airport', '*')) == '' ? '*' : trim($this->getRequestParameter('airport', '*'));
     $this->airports = AirportPeer::doSelect(new Criteria());
     if ($request->getParameter('id')) {
         $camp = CampPeer::retrieveByPK($request->getParameter('id'));
         $this->forward404Unless($camp);
         if (isset($camp)) {
             if ($camp->getAgencyId()) {
                 $agency = AgencyPeer::retrieveByPK($camp->getAgencyId());
                 if (isset($agency)) {
                     $this->agency_id = $agency->getId();
                 }
             }
             if ($camp->getAirportId()) {
                 $airport = AirportPeer::retrieveByPK($camp->getAirportId());
                 if (isset($airport)) {
                     $this->airport_id = $airport->getId();
                 }
             }
         }
         $this->title = 'Edit camp';
         $success = 'Camp information has been successfully changed!';
         slot('nav_menu', array('mission_coord', ''));
     } else {
         $camp = new Camp();
         if ($request->getParameter('agency_id')) {
             $this->agency_id = $request->getParameter('agency_id');
         }
         $this->title = 'Add new camp';
         $success = 'Camp information has been successfully created!';
         slot('nav_menu', array('mission_coord', 'add-camp'));
     }
     //Agency PopUp Form
     $agency = new Agency();
     $this->form_a = new AgencyForm($agency);
     $this->a_referer = $request->getReferer();
     //Aiport PopUp Form
     $airport = new Airport();
     $this->form_airport = new AirportForm($airport);
     $this->airport_referer = $request->getReferer();
     $this->form = new CampForm($camp);
     if ($request->isMethod('post')) {
         $this->referer = $request->getParameter('referer');
         $this->form->bind($request->getParameter('camp'));
         $ma = '';
         foreach ($this->form as $pass_key => $pass_data) {
             $ma .= $pass_data . '|';
         }
         if ($this->form->isValid() && $request->getParameter('agency') != null) {
             if ($request->getParameter('agency')) {
                 $agency = AgencyPeer::getByName($request->getParameter('agency'));
             }
             if (isset($agency) && $agency instanceof Agency) {
                 $camp->setAgencyId($agency->getId());
             }
             //$aId = $camp->getAirportId();
             //$aInd = $request->getParameter('airport');
             $airport = AirportPeer::getByIdent($request->getParameter('airport'));
             /*if(!empty($aId)){
                 if(!empty($aInd)){
                     $camp->setAirportId($airport->getId());
                 }
                 else{
                     $camp->setAirportId($aId);
                 }
               }else{
                 if($airport) $camp->setAirportId($airport->getId());
               }*/
             /*if($request->getParameter('airport')){
                 $camp->setAirportId(null);
               }else{
                 $airport = AirportPeer::getByIdent($request->getParameter('airport'));
                 if(isset($airport) instanceof Airport){
                   $camp->setAirportId($airport->getId());
                 }
               }*/
             //$camp->setAirport($request->getParameter('airport_name'));
             $camp->setAirport($airport);
             $camp->setSession($this->form->getValue('session'));
             $camp->setCampName($this->form->getValue('camp_name'));
             $camp->setArrivalDate($this->form->getValue('arrival_date'));
             $camp->setDepartureDate($this->form->getValue('departure_date'));
             $camp->setArrivalComment($this->form->getValue('arrival_comment'));
             $camp->setDepartureComment($this->form->getValue('departure_comment'));
             $camp->setComment($this->form->getValue('comment'));
             if ($camp->isNew()) {
                 $content = $this->getUser()->getName() . ' added new Camp: ' . $camp->getCampName();
                 ActivityPeer::log($content);
             }
             $camp->save();
             $this->getUser()->setFlash('success', $success);
             if ($this->form->isNew()) {
                 $this->redirect('camp/view?id=' . $camp->getId());
             } else {
                 $this->redirect('camp/index?showlist=true');
             }
             //add passengers to camp then create new mission, legs
             //missions assocated with camps that will be a group mission
         } else {
             if ($request->getParameter('agency_id') == null) {
                 $this->getUser()->setFlash('warning', 'Please choose Agency!');
             }
         }
     } else {
         # Set referer URL
         $this->referer = $request->getReferer() ? $request->getReferer() : '@camp';
         //echo $this->referer;      exit ();
     }
     $this->camp = $camp;
 }
Пример #4
0
 /**
  * Add or edit fbo 
  * CODE:fbo_create
  */
 public function executeFboUpdate(sfWebRequest $request)
 {
     # security
     if (!$this->getUser()->hasCredential(array('Administrator', 'Staff', 'Coordinator', 'Volunteer'), false)) {
         $this->getUser()->setFlash("warning", 'You don\'t have permission to access this url ' . $request->getReferer());
         $this->redirect('dashboard/index');
     }
     //$this->airports="";
     sfContext::getInstance()->getConfiguration()->loadHelpers('Partial');
     $this->airport = trim($this->getRequestParameter('airport', '*')) == '' ? '*' : trim($this->getRequestParameter('airport', '*'));
     if ($request->getParameter('leg')) {
         $this->leg_id = $request->getParameter('leg');
     }
     if ($request->getParameter('id')) {
         $this->fbo = FboPeer::retrieveByPK($request->getParameter('id'));
         $this->forward404Unless($this->fbo);
         $this->title = 'Edit Fbo';
         $success = 'FBO information has successfully edited!';
         slot('nav_menu', array('reference', ''));
         if ($this->fbo->getAirportId()) {
             $this->airport_id = $this->fbo->getAirportId();
         }
         $this->airports = AirportPeer::doSelect(new Criteria());
     } else {
         $this->fbo = new Fbo();
         $this->title = 'Add Fbo';
         $success = 'FBO information has successfully created!';
         slot('nav_menu', array('reference', 'add-fbo'));
     }
     //Aiport PopUp Form
     $airport = new Airport();
     $this->form_airport = new AirportForm($airport);
     $this->airport_referer = $request->getReferer();
     $this->form = new FboForm($this->fbo);
     if ($request->isMethod('post')) {
         $this->referer = $request->getParameter('referer');
         $this->form->bind($request->getParameter('fbo'));
         if ($this->form->isValid() && $request->getParameter('airport') && $this->form->getValue('name')) {
             if ($request->getParameter('airport')) {
                 $airport = AirportPeer::getByIdent($request->getParameter('airport'));
             }
             if (isset($airport) && $airport instanceof Airport) {
                 $this->fbo->setAirportId($airport->getId());
             }
             $this->fbo->setName($this->form->getValue('name'));
             $this->fbo->setAddress($this->form->getValue('address'));
             $this->fbo->setVoicePhone($this->form->getValue('voice_phone'));
             $this->fbo->setFaxPhone($this->form->getValue('fax_phone'));
             $this->fbo->setDiscountAmount($this->form->getValue('discount_amount'));
             if ($this->form->getValue('fuel_discount') == null || $this->form->getValue('discount_amount') == 0) {
                 $this->fbo->setFuelDiscount(0);
             } else {
                 $this->fbo->setFuelDiscount($this->form->getValue('fuel_discount'));
             }
             if ($this->fbo->isNew()) {
                 $ext = '';
                 if (isset($airport) && $airport instanceof Airport) {
                     $ext = ' for ' . $airport->getIdent();
                 }
                 $content = $this->getUser()->getName() . ' added new FBO' . $ext . ': ' . $this->fbo->getName();
                 ActivityPeer::log($content);
             }
             $this->fbo->save();
             $this->getUser()->setFlash('success', $success);
             $back = '@fbo';
             if ($request->getParameter('leg_id')) {
                 $set_leg = MissionLegPeer::retrieveByPK($request->getParameter('leg_id'));
                 if (isset($set_leg) && $set_leg instanceof MissionLeg) {
                     $set_leg->setFboId($this->fbo->getId());
                     $set_leg->save();
                 }
                 $back = '@leg_edit?id=' . $request->getParameter('leg_id');
             }
             $this->redirect($back);
         } else {
             if ($request->getParameter('airport') == NULL) {
                 $this->errairport = 1;
             }
             if ($request->getParameter('airport') == NULL && $this->form->getValue('name')) {
                 $this->getUser()->setFlash('error', 'Please Provide An Airport Name!');
             } else {
                 if ($request->getParameter('airport') && $this->form->getValue('name') == NULL) {
                     $this->getUser()->setFlash('error', 'Please Provide A Name!');
                 } else {
                     $this->getUser()->setFlash('error', 'Please Provide Airport and Name!');
                 }
             }
         }
     } else {
         # Set referer URL
         $this->referer = $request->getReferer() ? $request->getReferer() : '@fbo';
     }
     $this->fbo = $this->fbo;
 }
Пример #5
0
 protected function processStep3Check(sfWebRequest $request)
 {
     $default_airport = AirportPeer::getByIdent(sfConfig::get('app_default_airport_ident'));
     $this->forward404Unless($default_airport);
     $app = $this->application_temp;
     $person = $this->person;
     if (!$person instanceof Person) {
         $person = new Person();
     }
     /* @var $app ApplicationTemp */
     /* @var $person Person */
     // Person
     $tmp_arr = $app->toArray(BasePeer::TYPE_FIELDNAME);
     $tmp_arr['evening_phone'] = $tmp_arr['eve_phone'];
     $tmp_arr['evening_comment'] = $tmp_arr['eve_comment'];
     unset($tmp_arr['id']);
     $person->fromArray($tmp_arr, BasePeer::TYPE_FIELDNAME);
     $person->save();
     // Member
     $member = MemberPeer::getByPersonId($person->getId());
     if (!$member instanceof Member) {
         $member = new Member();
     }
     // Generate external id using last member is and external id
     $c = new Criteria();
     $c->add(MemberPeer::EXTERNAL_ID, NULL, Criteria::ISNOTNULL);
     $c->addDescendingOrderByColumn(MemberPeer::ID);
     $external_member = MemberPeer::doSelectOne($c);
     $external_id = $external_member->getExternalId();
     $currentExternalId = $external_id + 1;
     //print_r($external_id);
     //print_r($currentExternalId);
     $member->setActive(1);
     $member->setCoPilot($app->getApplicantCopilot());
     $member->setContact('By Email');
     $member->setDateOfBirth($app->getDateOfBirth());
     $member->setDriversLicenseState($app->getDriversLicenseState());
     $member->setDriversLicenseNumber($app->getDriversLicenseNumber());
     $member->setEmergencyContactName($app->getEmergencyContactName());
     $member->setEmergencyContactPhone($app->getEmergencyContactPhone());
     $member->setFlightStatus($app->getApplicantPilot() ? 'Verify Orientation' : 'Non-pilot');
     $member->setJoinDate(time());
     $member->setLanguages($app->getLanguagesSpoken());
     //$member->setMasterMemberId($app->getMasterMemberId());
     $member->setMemberClassId($app->getMemberClassId());
     $member->setPersonId($person->getId());
     $member->setRenewedDate(time());
     $member->setRenewalDate(strtotime('+1 year'));
     $member->setSpouseName($app->getSpouseFirstName() . ' ' . $app->getSpouseLastName());
     //external_id generate
     $member->setExternalId($currentExternalId);
     $member->setWingId($app->getWingId());
     $member->save();
     // Pilot
     if ($app->getApplicantPilot()) {
         $pilot = new Pilot();
         $pilot->setMemberId($member->getId());
         $airport = AirportPeer::getByIdent($app->getHomeBase());
         if (!$airport instanceof Airport) {
             $airport = $default_airport;
         }
         $pilot->setPrimaryAirportId($airport->getId());
         $pilot->setTotalHours($app->getTotalHours());
         $pilot->setLicenseType('Private');
         foreach (sfConfig::get('app_pilot_license_types') as $key => $val) {
             if (stripos($app->getRatings(), $key) !== false) {
                 $pilot->setLicenseType($key);
             }
         }
         $pilot->setIfr(stripos($app->getRatings(), 'ifr') !== false ? 1 : 0);
         $pilot->setMultiEngine(stripos($app->getRatings(), 'multi') !== false ? 1 : 0);
         $pilot->setSeInstructor('No');
         // @see ApplicationForm
         foreach (sfConfig::get('app_pilot_se_instructor') as $key => $val) {
             if (stripos($app->getRatings(), $key) !== false) {
                 $pilot->setSeInstructor($key);
             }
         }
         $pilot->setMeInstructor($pilot->getSeInstructor());
         $pilot->save();
         // Availability
         $availability = new Availability();
         $availability->setMemberId($member->getId());
         $availability->setNotAvailable(0);
         $availability->setNoWeekday($app->getAvailabilityWeekdays() == 0);
         $availability->setNoNight($app->getAvailabilityWeeknights() == 0);
         $availability->setLastMinute($app->getAvailabilityLastMinute());
         $availability->setAsMissionMssistant($app->getAvailabilityCopilot());
         $availability->setNoWeekend($app->getAvailabilityWeekends() == 0);
         try {
             $availability->save();
         } catch (Exception $e) {
         }
         // Primary aircraft
         if ($app->getAircraftPrimaryId() && ($aircraft = AircraftPeer::retrieveByPK($app->getAircraftPrimaryId()))) {
             $pilot_aircraft = new PilotAircraft();
             $pilot_aircraft->setMemberId($member->getId());
             $pilot_aircraft->setAircraftId($aircraft->getId());
             $pilot_aircraft->setNNumber($app->getAircraftPrimaryNNumber());
             $pilot_aircraft->setOwn($app->getAircraftPrimaryOwn());
             $pilot_aircraft->setSeats($app->getAircraftPrimarySeats());
             $pilot_aircraft->setKnownIce($app->getAircraftPrimaryIce());
             $pilot_aircraft->save();
         }
         // Secondary aircraft
         if ($app->getAircraftSecondaryId() && ($aircraft = AircraftPeer::retrieveByPK($app->getAircraftSecondaryId()))) {
             $pilot_aircraft = new PilotAircraft();
             $pilot_aircraft->setMemberId($member->getId());
             $pilot_aircraft->setAircraftId($aircraft->getId());
             $pilot_aircraft->setNNumber($app->getAircraftSecondaryNNumber());
             $pilot_aircraft->setOwn($app->getAircraftSecondaryOwn());
             $pilot_aircraft->setSeats($app->getAircraftSecondarySeats());
             $pilot_aircraft->setKnownIce($app->getAircraftSecondaryIce());
             $pilot_aircraft->save();
         }
         // Third aircraft
         if ($app->getAircraftThirdId() && ($aircraft = AircraftPeer::retrieveByPK($app->getAircraftThirdId()))) {
             $pilot_aircraft = new PilotAircraft();
             $pilot_aircraft->setMemberId($member->getId());
             $pilot_aircraft->setAircraftId($aircraft->getId());
             $pilot_aircraft->setNNumber($app->getAircraftThirdNNumber());
             $pilot_aircraft->setOwn($app->getAircraftThirdOwn());
             $pilot_aircraft->setSeats($app->getAircraftThirdSeats());
             $pilot_aircraft->setKnownIce($app->getAircraftThirdIce());
             $pilot_aircraft->save();
         }
     }
     // Application_temp
     $app->setPersonId($person->getId());
     $app->setMemberId($member->getId());
     $app->setProcessedDate(time());
     $app->save();
     // Application
     $tmp_arr = $app->toArray(BasePeer::TYPE_FIELDNAME);
     $tmp_arr['date'] = $tmp_arr['application_date'];
     $tmp_arr['company'] = $tmp_arr['company_name'];
     foreach (sfConfig::get('app_pilot_license_types') as $key => $val) {
         if (stripos($tmp_arr['ratings'], $key) !== false) {
             $tmp_arr['license_type'] = $key;
         }
     }
     $tmp_arr['ifr'] = stripos($tmp_arr['ratings'], 'ifr') !== false ? 1 : 0;
     $tmp_arr['multi_engine'] = stripos($tmp_arr['ratings'], 'multi') !== false ? 1 : 0;
     $tmp_arr['se_instructor'] = 'No';
     // @see ApplicationForm
     foreach (sfConfig::get('app_pilot_se_instructor') as $key => $val) {
         if (stripos($tmp_arr['ratings'], $key) !== false) {
             $tmp_arr['se_instructor'] = $key;
         }
     }
     $tmp_arr['me_instructor'] = $tmp_arr['se_instructor'];
     $tmp_arr['other_ratings'] = $tmp_arr['ratings'];
     $tmp_arr['fbo'] = $tmp_arr['fbo_name'];
     $tmp_arr['member_meetings'] = 0;
     $tmp_arr['executive_board'] = 0;
     $tmp_arr['dues_amount_paid'] = $tmp_arr['dues_amount_paid'] ? $tmp_arr['dues_amount_paid'] : 0;
     unset($tmp_arr['id']);
     $application = new Application();
     $application->fromArray($tmp_arr, BasePeer::TYPE_FIELDNAME);
     $application->save();
     $where = $request->getParameter('step3_redirect');
     //Ziyed  save default role for new member
     $appTemp = $this->application_temp;
     if ($appTemp->getPersonId()) {
         $person_role = new PersonRole();
         $person_role->setPersonId($appTemp->getPersonId());
         if ($appTemp->getApplicantPilot() == 1) {
             $person_role->setRoleId(27);
         } else {
             $person_role->setRoleId(31);
         }
         $person_role->save();
     }
     //Ziyed end save
     if ($where == 1) {
         $this->redirect('@member_view?id=' . $member->getId());
     } else {
         /*
                     if ($application->getEmail()) {
                         # send email failure to payment
                         $this->getComponent('mail', 'memberApplicationProcessed', array('email' => $application->getEmail(),'member_id'=>$member->getId(), 'name' => $application->getFirstName() . ' ' . $application->getLastName()));
         
                     }*/
         $this->redirect('pending_member/processComplete?id=' . $member->getId());
     }
 }
Пример #6
0
 /**
  * Mission Leg Edit
  * CODE: mission_leg_create
  */
 public function executeUpdate(sfWebRequest $request)
 {
     #Security
     if (!$this->getUser()->hasCredential(array('Administrator', 'Staff', 'Coordinator'), false)) {
         $this->getUser()->setFlash("warning", 'You don\'t have permission to access this url ' . $request->getReferer());
         $this->redirect('dashboard/index');
     }
     $this->errors = array();
     // for validation
     $this->orig_set = '';
     $this->dest_set = '';
     if ($request->getParameter('id')) {
         $this->title = 'Edit Mission Leg';
         $this->leg = MissionLegPeer::retrieveByPK($request->getParameter('id'));
         if ($this->leg->getFromAirportId()) {
             $this->fromAirport = $this->leg->getAirportRelatedByFromAirportId();
         }
         if ($this->leg->getToAirportId()) {
             $this->toAirport = $this->leg->getAirportRelatedBytoAirportId();
         }
         if ($this->leg->getCoordinatorId()) {
             $this->coordinator = CoordinatorPeer::retrieveByPK($this->leg->getCoordinatorId());
         }
         //print_r($this->coordinator);
         if ($this->leg->getFboId()) {
             $this->fbo = FboPeer::retrieveByPK($this->leg->getFboId());
             $this->fbo_address = $this->leg->getFboId();
         }
         if ($this->leg->getBackupPilotId()) {
             $this->backup_pilot = PilotPeer::retrieveByPK($this->leg->getBackupPilotId());
             if (isset($this->backup_pilot) && $this->backup_pilot instanceof Pilot) {
                 $this->bp_person = $this->backup_pilot->getMember()->getPerson();
             }
         }
         if ($this->leg->getBackupCopilotId()) {
             $this->backup_co_pilot = PilotPeer::retrieveByPK($this->leg->getBackupCopilotId());
             if (isset($this->backup_co_pilot) && $this->backup_co_pilot instanceof Pilot) {
                 $this->bp_co_person = $this->backup_co_pilot->getMember()->getPerson();
             }
         }
         if ($this->leg->getWaiverReceived()) {
             $this->waiver_rec = $this->leg->getWaiverReceived();
         } else {
             $this->waiver_rec = '';
         }
         if ($this->leg->getFboAddressNew()) {
             $this->new_fbo_address = $this->leg->getFboAddressNew();
         } else {
             $this->new_fbo_address = '';
         }
         $this->date_widget = new widgetFormDate(array('format_date' => array('js' => 'mm/dd/yy', 'php' => 'm/d/Y')), array('class' => 'text'));
         $this->forward404Unless($this->leg);
         $this->mission = $this->leg->getMission();
         $this->passenger = $this->mission->getPassenger();
         $this->person = $this->passenger->getPerson();
         $this->member = MemberPeer::getByPersonId($this->person->getId());
         /*echo "<pre>";
           print_r($this->member );
           */
         /*
          if(isset($this->member) && $this->member instanceof Member){
          $this->pilot = PilotPeer::getByMemberId($this->member->getId());
          }
          /*
          if(isset($this->leg) && $this->leg instanceof MissionLeg){
          $this->pilot = PilotPeer::retrieveByPK($this->leg->getPilotId());
          }
         *
         */
         if (isset($this->leg) && $this->leg instanceof MissionLeg) {
             if ($this->leg->getPilotId()) {
                 $this->pilot = PilotPeer::retrieveByPK($this->leg->getPilotId());
                 $this->pilot_member = MemberPeer::retrieveByPK($this->pilot->getMemberId());
                 $this->copilot = PilotPeer::retrieveByPK($this->leg->getCoPilotId());
                 //echo "<pre>";
                 //print_r($this->mission_assistant);
                 $this->back_up_mission_assistant = PilotPeer::retrieveByPK($this->leg->getBackupMissAssisId());
             }
             if ($this->leg->getMissAssisId()) {
                 $this->mission_assistant = PilotPeer::getByMemberId($this->leg->getMissAssisId());
             }
         }
         //echo "<pre>";
         //print_r($this->pilot_member);
         $is_pilot_requested = PilotRequestPeer::getByLegId($this->leg->getId());
         if (isset($is_pilot_requested) && $is_pilot_requested instanceof PilotRequest) {
             $this->p_req = $is_pilot_requested;
         }
         /*
          echo "<pre>";
          print_r($this->person->getId());
          die();
         */
         $this->forward404Unless($this->mission);
         $mission_id = $this->mission->getId();
     } else {
         $this->title = 'Add Mission Leg';
         $this->leg = new MissionLeg();
         $mission_id = $request->hasParameter('mis') ? $request->getParameter('mis') : $request->getParameter('mission_id');
         $this->mission = MissionPeer::retrieveByPK($mission_id);
         $this->forward404Unless($this->mission);
     }
     if ($request->isMethod('post')) {
         if ($request->getParameter('transportation') == 'air_mission') {
             # AIR MISSION
             if ($request->getParameter('orgin_airport')) {
                 $o_airport = AirportPeer::getByIdent($request->getParameter('orgin_airport'));
                 if (!$o_airport instanceof Airport) {
                     $this->errors[] = 'Origin airport not found in database';
                 }
             } else {
                 $this->errors[] = 'Please specify origin airport';
             }
             if ($request->getParameter('dest_airport')) {
                 $d_airport = AirportPeer::getByIdent($request->getParameter('dest_airport'));
                 if (!$d_airport instanceof Airport) {
                     $this->errors[] = 'Destination airport not found in database';
                 }
             } else {
                 $this->errors[] = 'Please specify destination airport';
             }
             if (count($this->errors) == 0) {
                 $mission_leg = $this->leg;
                 $mission_leg->setMissionId($mission_id);
                 $mission_leg->setCancelled($request->getParameter('cancelled'));
                 if ($mission_leg->isNew()) {
                     $mission_leg->setLegNumber(MissionLegPeer::getMaxLegNumber($mission_id) + 1);
                 }
                 $mission_leg->setFromAirportId($o_airport->getId());
                 $mission_leg->setToAirportId($d_airport->getId());
                 $o_air = AirportPeer::retrieveByPK($o_airport->getId());
                 $d_air = AirportPeer::retrieveByPK($d_airport->getId());
                 $distances = MissionLegPeer::getDistance($o_air->getIdent(), $d_air->getIdent());
                 //$mission_leg->setBaggageWeight($request->getParameter('baggage_weight'));
                 //$mission_leg->setBaggageDesc($request->getParameter('baggage_desc'));
                 $mission_leg->setPassOnBoard(0);
                 $mission_leg->setTransportation('air_mission');
                 $mission_leg->save();
                 $id = $mission_leg->getId();
                 $leg = MissionLegPeer::retrieveByPK($id);
                 $leg->setReverseFrom($id);
                 $leg->save();
             }
         } elseif ($request->getParameter('transportation') == 'ground_mission') {
             # GROUND MISSION
             $origin = $request->getParameter('ground_origin');
             $destination = $request->getParameter('ground_destination');
             $orgintset = $request->getParameter('orig_set');
             $desttset = $request->getParameter('dest_set');
             $fbo_address = $request->getParameter('fbo_address');
             $this->orig_set = $orgintset;
             $this->dest_set = $desttset;
             $this->fbo_address = $fbo_address;
             if (empty($destination) && empty($desttset)) {
                 $this->errors[] = 'Please specify destination address';
             }
             if (empty($origin) && empty($orgintset)) {
                 $this->errors[] = 'Please specify origin address';
             } elseif ($destination == $origin && $destination != '') {
                 $this->errors[] = 'Origin and Destination addresses conflict';
             }
             if (empty($fbo_address)) {
                 $this->errors[] = 'Please specify FBO name';
             }
             if (count($this->errors) == 0) {
                 $mission_leg = $this->leg;
                 $mission_leg->setMissionId($mission_id);
                 if ($mission_leg->isNew()) {
                     $mission_leg->setLegNumber(MissionLegPeer::getMaxLegNumber($mission_id) + 1);
                 }
                 $mission_leg->setPassOnBoard(0);
                 $mission_leg->setTransportation('ground_mission');
                 //get addresses by type
                 $p = $this->passenger = $this->mission->getPassenger();
                 if ($p instanceof Passenger) {
                     $this->person = $p->getPerson();
                 }
                 $this->ground_addresses = array('patient' => '', 'facility' => '', 'lodging' => '');
                 $orgintsetsave = $request->getParameter('ground_origin');
                 if (empty($orgintsetsave)) {
                     $orgintsetsave = $request->getParameter('orig_set');
                 }
                 $desttsetsave = $request->getParameter('ground_destination');
                 if (empty($desttsetsave)) {
                     $desttsetsave = $request->getParameter('dest_set');
                 }
                 $mission_leg->setGroundOrigin($orgintsetsave);
                 $mission_leg->setGroundDestination($desttsetsave);
                 $mission_leg->setFboId($fbo_address);
                 //ziyed
                 $fbo_address_new = $request->getParameter('fbo_address_new');
                 $mission_leg->setFboAddressNew($fbo_address_new);
                 //end ziyed
                 $mission_leg->save();
                 $id = $mission_leg->getId();
                 $leg = MissionLegPeer::retrieveByPK($id);
                 $leg->setReverseFrom($id);
                 $leg->save();
             }
         } elseif ($request->getParameter('transportation') == 'commercial_mission') {
             # COMMERCIAL MISSION
             $airline_id = $request->getParameter('airline_id');
             if ($airline_id) {
                 $custom = $request->getParameter('airline_custom');
                 if ($airline_id == 'other') {
                     if (empty($custom)) {
                         $this->errors[] = 'Please type a new airline name!';
                     }
                 } else {
                     $airline = AirlinePeer::retrieveByPK($airline_id = $request->getParameter('airline_id'));
                     if (!$airline instanceof Airline) {
                         $this->errors[] = 'Please select airline!';
                     }
                 }
             } else {
                 $this->errors[] = 'Please select airline!';
             }
             $origin = $request->getParameter('origin');
             $destination = $request->getParameter('destination');
             if (empty($origin)) {
                 $this->errors[] = 'Please specify origin';
             }
             if (empty($destination)) {
                 $this->errors[] = 'Please specify destination';
             }
             if (count($this->errors) == 0) {
                 $flight_time = $request->getParameter('flight_time');
                 if (empty($flight_time['hour']) || empty($flight_time['minute'])) {
                     $flight_time = null;
                 }
                 $airline_id = $request->getParameter('airline_id');
                 if ($airline_id == 'other') {
                     $airline = new Airline();
                     $airline->setName($request->getParameter('airline_custom'));
                     $airline->save();
                 } else {
                     $airline = AirlinePeer::retrieveByPK($airline_id);
                     $this->forward404Unless($airline);
                 }
                 $flight_number = $request->getParameter('flight_number');
                 $departure = $request->getParameter('departure');
                 $arrival = $request->getParameter('arrival');
                 $mission_leg = $this->leg;
                 $mission_leg->setMissionId($this->mission->getId());
                 if ($mission_leg->isNew()) {
                     $mission_leg->setLegNumber(MissionLegPeer::getMaxLegNumber($mission_id) + 1);
                 }
                 $mission_leg->setFlightTime($flight_time ? strtotime($flight_time['hour'] . ':' . $flight_time['minute'] . ' ' . $flight_time['period']) : null);
                 //$mission_leg->setBaggageDesc($request->getParameter('baggage_desc'));
                 //$mission_leg->setBaggageWeight($request->getParameter('baggage_weight'));
                 $mission_leg->setAirlineId($airline->getId());
                 $mission_leg->setFundId($request->getParameter('fund_id'));
                 $mission_leg->setConfirmCode($request->getParameter('confirm_code'));
                 $mission_leg->setFlightCost($request->getParameter('flight_cost'));
                 $mission_leg->setCommOrigin($origin);
                 $mission_leg->setCommDest($destination);
                 $mission_leg->setFlightNumber($flight_number);
                 $v = $departure;
                 if (empty($v[0]['hour']) || empty($v[0]['minute'])) {
                     $v = null;
                 }
                 $mission_leg->setDeparture($v ? strtotime($v[0]['hour'] . ':' . $v[0]['minute'] . ' ' . $v[0]['period']) : null);
                 $v = $arrival;
                 if (empty($v[0]['hour']) || empty($v[0]['minute'])) {
                     $v = null;
                 }
                 $mission_leg->setArrival($v ? strtotime($v[0]['hour'] . ':' . $v[0]['minute'] . ' ' . $v[0]['period']) : null);
                 $mission_leg->setTransportation('commercial_mission');
                 $mission_leg->save();
             }
         } else {
             $this->forward404();
         }
         if (count($this->errors) == 0) {
             $this->getUser()->setFlash('success', 'New Mission leg has successfully created!');
             if ($request->getParameter('add_another')) {
                 $this->redirect('@leg_create?mis=' . $this->mission->getId());
             } else {
                 $this->redirect('@mission_view?id=' . $this->mission->getId());
             }
         }
     }
     $this->date_widget = new widgetFormDate(array('format_date' => array('js' => 'mm/dd/yy', 'php' => 'm/d/Y')), array('class' => 'text'));
     //echo '<pre>';print_r($this->date_widget);
     $this->time_widget = new widgetFormTime();
     $this->airport_list = AirportPeer::getMappable();
     $this->airlines = AirlinePeer::doSelect(new Criteria());
     $this->funds = FundPeer::doSelect(new Criteria());
     $p = $this->passenger = $this->mission->getPassenger();
     if ($p instanceof Passenger) {
         $this->person = $p->getPerson();
     } else {
         unset($this->passenger);
     }
     $this->itinerary = $this->mission->getItinerary();
     //echo '<pre>';print_r($this->itinerary);
     // Pre-define addresses for ground missions
     $this->ground_addresses = array('patient' => '', 'facility' => '', 'lodging' => '', 'airport' => '');
     $this->ground_addr_sel = sfConfig::get('app_ground_address_type', array());
     if ($this->itinerary) {
         $this->ground_addresses['lodging'] = $this->ground_addresses['facility'] = $this->itinerary->getDestCity() . ', ' . $this->itinerary->getDestState();
     }
     if ($this->passenger) {
         $this->ground_addresses['lodging'] = $this->passenger->getLodgingName() . ' ' . $this->ground_addresses['lodging'];
         $this->ground_addresses['facility'] = $this->passenger->getFacilityName() . ' ' . $this->ground_addresses['facility'];
         $this->ground_addresses['patient'] = $this->person->getAddress1() . ' ' . $this->person->getAddress2() . ' ' . $this->person->getCity() . ', ' . $this->person->getState() . ' ' . $this->person->getZipcode();
     }
 }
Пример #7
0
 /**
  * Add/edit a pilot
  * CODE: pilot_create
  */
 public function executeUpdate(sfWebRequest $request)
 {
     if (!$this->getUser()->hasCredential(array('Administrator', 'Staff', 'Pilot', 'Coordinator', 'Volunteer'), false)) {
         $this->getUser()->setFlash("warning", 'You don\'t have permission to access this url ' . $request->getReferer());
         $this->redirect('dashboard/index');
     }
     if ($request->getParameter('member_id')) {
         $this->member = MemberPeer::retrieveByPK($request->getParameter('member_id'));
         $pilot = new Pilot();
         $this->title = 'Add Pilot';
     }
     if ($request->getParameter('id')) {
         $pilot = PilotPeer::retrieveByPK($request->getParameter('id'));
         $this->forward404Unless($pilot);
         ///ziyed////
         $this->url = $request->getReferer();
         if (strstr($this->url, '/pilot/mopAdd')) {
             $this->title = 'Add mop pilot';
             $success = 'MOP information has been successfully added!';
         } else {
             $this->title = 'Edit pilot';
             $success = 'Pilot information has been successfully changed!';
             $this->current_region = $pilot->getMopRegionsServed();
             $this->mopservedby = $pilot->getMopServedBy();
         }
         ////end//////
         $this->member = MemberPeer::retrieveByPK($pilot->getMemberId());
         if ($pilot->getPrimaryAirportId()) {
             $this->airport_id = $pilot->getPrimaryAirportId();
         }
         $this->airports = AirportPeer::doSelect(new Criteria());
     } else {
         $pilot = new Pilot();
         $this->title = 'Add Pilot';
         $success = 'Pilot information has been successfully created!';
     }
     $this->airport = trim($this->getRequestParameter('airport', '*')) == '' ? '*' : trim($this->getRequestParameter('airport', '*'));
     if ($request->getParameter('leg')) {
         $this->leg_id = $request->getParameter('leg');
     }
     if ($request->getParameter('back')) {
         $this->backup = $request->getParameter('back');
     }
     if ($request->getParameter('co')) {
         $this->backup_co = $request->getParameter('co');
     }
     if ($request->getParameter('member')) {
         $this->member = MemberPeer::retrieveByPK($request->getParameter('member'));
     }
     $this->form = new PilotForm($pilot);
     $this->pilot = $pilot;
     $this->back = $request->getReferer();
     ///////////////////Update ///////////
     if ($request->isMethod('post')) {
         $this->referer = $request->getReferer();
         $this->form->bind($request->getParameter('pilo'));
         if ($this->form->isValid() && $this->form->getValue('license_type')) {
             if ($request->getParameter('member_id')) {
                 $pilot->setMemberId($request->getParameter('member_id'));
             }
             //TODO:Set Member Flight status to command pilot
             $set_member = MemberPeer::retrieveByPK($request->getParameter('member_id'));
             if ($set_member) {
                 $set_member->setFlightStatus('Command pilot');
                 $set_member->save();
             }
             if ($request->getParameter('airport') != null) {
                 $airport = AirportPeer::getByIdent($request->getParameter('airport'));
                 if (isset($airport) && $airport instanceof Airport) {
                     $pilot->setPrimaryAirportId($airport->getId());
                 }
             } else {
                 $pilot->setPrimaryAirportId(null);
                 $member = MemberPeer::retrieveByPK($request->getParameter('member_id'));
                 $member->setFlightStatus('Non-pilot');
                 $member->save();
             }
             $pilot->setSecondaryHomeBases($this->form->getValue('secondary_home_bases'));
             $pilot->setTotalHours($this->form->getValue('total_hours'));
             $pilot->setLicenseType($this->form->getValue('license_type'));
             if ($this->form->getValue('ifr') == null) {
                 $pilot->setIfr(0);
             } else {
                 $pilot->setIfr($this->form->getValue('ifr'));
             }
             if ($this->form->getValue('multi_engine') == null) {
                 $pilot->setMultiEngine(0);
             } else {
                 $pilot->setMultiEngine($this->form->getValue('multi_engine'));
             }
             $pilot->setSeInstructor($this->form->getValue('se_instructor'));
             $pilot->setMeInstructor($this->form->getValue('me_instructor'));
             $pilot->setOtherRatings($this->form->getValue('other_ratings'));
             $pilot->setInsuranceReceived($this->form->getValue('insurance_received'));
             //ziyed task
             $pilot->setOrientedDate($this->form->getValue('oriented_date'));
             $pilot->setMopOrientedDate($this->form->getValue('mop_oriented_date'));
             if ($request->getParameter('pilot_name')) {
                 $pilot->setMopServedBy($request->getParameter('pilot_name'));
             } else {
                 $pilot->setMopServedBy(NULL);
             }
             // $pilot->setMopRegionsServed($request->getParameter('mop_regions_served'));
             if ($request->getParameter('mop_regions_served')) {
                 $pilot->setMopRegionsServed($request->getParameter('mop_regions_served'));
             } else {
                 $a = null;
                 $pilot->setMopRegionsServed($a);
             }
             //$pilot->setOrientedMemberId($this->form->getValue('oriented_member_id'));
             //$pilot->setOrientedMemberId($this->form->getValue('mop_oriented_member_id'));
             //$pilot->setMopQualifications($this->form->getValue('mop_qualifications'));
             $pilot->setHseats($this->form->getValue('hseats'));
             if ($this->form->getValue('transplant') == 1) {
                 $pilot->setTransplant(1);
             } else {
                 $pilot->setTransplant(0);
             }
             $pilot->save();
             $this->getUser()->setFlash('success', $success);
             $last = $request->getParameter('back');
             $back_url = 'pilot';
             if (strstr($last, 'member/view')) {
                 $back_url = '@member_view?id=' . $request->getParameter('member_id');
             } elseif (strstr($last, 'pilot/view')) {
                 $back_url = '@pilot_view?id=' . $pilot->getId();
             } elseif (strstr($last, 'pilot/edit')) {
                 $back_url = '@pilot_view?id=' . $pilot->getId();
             } elseif (strstr($last, 'pilot/mopAdd')) {
                 $back_url = '/pilot/mopAdd';
             }
             if ($request->getParameter('leg_id')) {
                 $back_url = '@leg_edit?id=' . $request->getParameter('leg_id');
             }
             if ($request->getParameter('leg_id')) {
                 if ($request->getParameter('leg_id') && !$request->getParameter('backup')) {
                     $set_leg = MissionLegPeer::retrieveByPK($request->getParameter('leg_id'));
                     if (isset($set_leg) && $set_leg instanceof MissionLeg) {
                         $set_leg->setPilotId($pilot->getId());
                         $set_leg->save();
                         $this->getUser()->setFlash('success', 'Mission Leg #' . $set_leg->getId() . ' \\s Pilot has been set!');
                     }
                     $back_url = '@leg_edit?id=' . $request->getParameter('leg_id');
                 }
             }
             if ($request->getParameter('leg_id')) {
                 if ($request->getParameter('leg_id') && $request->getParameter('backup')) {
                     $set_leg = MissionLegPeer::retrieveByPK($request->getParameter('leg_id'));
                     if (isset($set_leg) && $set_leg instanceof MissionLeg) {
                         $set_leg->setBackupPilotId($pilot->getId());
                         $set_leg->save();
                         $this->getUser()->setFlash('success', 'Mission Leg #' . $set_leg->getId() . ' \\s Backup Pilot has been set!');
                     }
                     $back_url = '@leg_edit?id=' . $request->getParameter('leg_id');
                 }
             }
             if ($request->getParameter('leg_id')) {
                 if ($request->getParameter('leg_id') && $request->getParameter('backup_co')) {
                     $set_leg = MissionLegPeer::retrieveByPK($request->getParameter('leg_id'));
                     if (isset($set_leg) && $set_leg instanceof MissionLeg) {
                         $set_leg->setBackupCopilotId($request->getParameter('member_id'));
                         $set_leg->save();
                         $this->getUser()->setFlash('success', 'Mission Leg #' . $set_leg->getId() . ' \\s Backup Co-Pilot has been set!');
                     }
                     $back_url = '@leg_edit?id=' . $request->getParameter('leg_id');
                 }
             }
             return $this->redirect($back_url);
         } else {
             if (!$request->getParameter('id')) {
                 $info = 'Please confirm License type and choose Member !';
             } else {
                 $info = 'Please confirm License type !';
             }
             $this->getUser()->setFlash('success', $info);
         }
     } else {
         # Set referer URL
         $this->referer = $request->getReferer() ? $request->getReferer() : '@pilot';
     }
     $this->pilot = $pilot;
 }
Пример #8
0
 /**
  * Request a group Missions 
  * CODE:mission_request_group_create
  */
 public function executeRequestGroupMission(sfWebRequest $request)
 {
     #security
     if (!$this->getUser()->hasCredential(array('Administrator', 'Staff', 'Pilot', 'Coordinator', 'Volunteer'), false)) {
         $this->getUser()->setFlash("warning", 'You don\'t have permission to access this url ' . $request->getReferer());
         $this->redirect('dashboard/index');
     }
     $camp = CampPeer::retrieveByPK($request->getParameter('id'));
     if (isset($camp) && $camp instanceof Camp) {
         $this->camp_id = $camp->getId();
         $missions = MissionPeer::getByCampId($camp->getId());
     }
     $this->dates = array();
     $this->home_base = null;
     $this->number_of_seats = null;
     $this->total_carry = null;
     $this->multi_pick = null;
     $this->date_choice = null;
     $this->comment = null;
     $this->request_as = null;
     $this->acc_cre = null;
     $this->pilot_ma = null;
     $this->IFR = null;
     $this->aircraft = null;
     $this->tail = null;
     $this->other_pilot = null;
     $miss_dates = array();
     //$appt_dates = array();
     //$count = 0;
     //$count2 = 0;
     foreach ($missions as $mission) {
         if ($mission->getMissionDate()) {
             $miss_dates[$mission->getMissionDate('m/d/Y')] = $mission->getMissionDate();
             //$count++;
             //it may change
             $this->mission_date = $mission->getMissionDate();
             $this->appt_date = $mission->getApptDate();
             //
         }
         /*
               if($mission->getApptDate()){
                 $appt_dates[$count2] = $mission->getApptDate();
                 $count2++;
               }*/
         $miss_id = $mission->getId();
     }
     $this->mission_dates = array();
     $this->mission_dates = $miss_dates;
     if (isset($miss_id)) {
         $legs = MissionLegPeer::getbyMissId($miss_id);
         $this->mission = MissionPeer::retrieveByPK($miss_id);
         foreach ($legs as $leg) {
             if ($leg->getToAirportId()) {
                 $this->leg = $leg;
                 $airport = AirportPeer::retrieveByPK($leg->getToAirportId());
                 if (isset($airport) && $airport instanceof Airport) {
                     $this->destination_airport = $airport;
                 }
             }
         }
     }
     /*
     if(isset($miss_dates[$count-1])){
       $this->mission_date = $miss_dates[$count-1];
     }
     if(isset($appt_dates[$count2-1])){
       $this->appt_date = $appt_dates[$count2-1];
     }
     */
     //$this->mission_leg = MissionLegPeer::retrieveByPK($request->getParameter('id'));
     $member = MemberPeer::getByPersonId($this->getUser()->getId());
     if (isset($member)) {
         $this->pilot = PilotPeer::getByMemberId($member->getId());
         $this->pilot_aircrafts = PilotAircraftPeer::getByMemberId($member->getId());
         $this->pre_requests = PilotRequestPeer::getByMemnerIdLegIdCamp($member->getId(), $this->leg->getId());
     }
     if ($request->isMethod('post')) {
         if ($request->getParameter('id')) {
             //set post variables
             $this->dates = $request->getParameter('dates[]', array());
             $this->home_base = $request->getParameter('home_base');
             $this->number_of_seats = $request->getParameter('number_of_seats');
             $this->total_carry = $request->getParameter('total_carry');
             $this->multi_pick = $request->getParameter('multi_pick');
             $this->date_choice = $request->getParameter('date_choice');
             $this->comment = $request->getParameter('comment');
             $this->request_as = $request->getParameter('request_as');
             $this->acc_cre = $request->getParameter('acc_cre');
             $this->pilot_ma = $request->getParameter('pilot_ma');
             $this->IFR = $request->getParameter('IFR');
             $this->aircraft = $request->getParameter('aircraft');
             $this->tail = $request->getParameter('tail');
             $this->other_pilot = $request->getParameter('other_pilot');
             if (count($this->dates) > 0 && $request->getParameter('home_base') && $request->getParameter('number_of_seats') && $request->getParameter('total_carry')) {
                 //check if this pilot requested this camp already?
                 $c = $has_requested = PilotRequestPeer::getByMemberIdCampId($member->getId(), $request->getParameter('camp_id'));
                 if (!$has_requested) {
                     $pilot_request = new PilotRequest();
                     if ($member) {
                         $pilot_request->setMemberId($member->getId());
                     }
                     $pilot_request->setGroupCampId($request->getParameter('camp_id'));
                     if ($request->getParameter('home_base')) {
                         $airport_hb = AirportPeer::getByIdent($request->getParameter('home_base'));
                         if (isset($airport_hb) && $airport_hb instanceof Airport) {
                             $pilot_request->setHomeBase($airport_hb->getIdent());
                         } else {
                             $this->getUser()->setFlash('warning', 'Home Base is not found!');
                             $this->redirect($request->getReferer());
                         }
                     }
                     if ($request->getParameter('number_of_seats')) {
                         if (is_integer((int) $request->getParameter('number_of_seats'))) {
                             $pilot_request->setNumberSeats((int) $request->getParameter('number_of_seats'));
                         } else {
                             $this->getUser()->setFlash('warning', 'Number of seats is in wrong format!');
                             $this->redirect($request->getReferer());
                         }
                     }
                     if ($request->getParameter('total_carry')) {
                         if (is_int((int) $request->getParameter('total_carry'))) {
                             $pilot_request->setTotalWeight((int) $request->getParameter('total_carry'));
                         } else {
                             $this->getUser()->setFlash('success', 'Total of carry value is in wrong format!');
                             $this->redirect($request->getReferer());
                         }
                     }
                     $pilot_request->setMultiplePick($request->getParameter('multi_pick'));
                     $pilot_request->save();
                     if (count($this->dates) > 0) {
                         #check is has Pilot Date
                         //$has_pilot_date = PilotDatePeer::getByMemberId($member->getId());
                         for ($y = 0; $y < count($this->dates); $y++) {
                             $pilot_date = new PilotDate();
                             $pilot_date->setMemberId($member->getId());
                             $pilot_date->setDate($this->dates[$y]);
                             $pilot_date->setPilotRequestId($pilot_request->getId());
                             $pilot_date->save();
                         }
                     }
                     if (count($this->dates) == 0) {
                         $pilot_request->setDate($this->dates[0]);
                     }
                     $pilot_request->setNumberDateAssign($request->getParameter('date_choice', 1));
                     $pilot_request->setPilotType($request->getParameter('request_as'));
                     $pilot_request->setComment($request->getParameter('comment'));
                     $pilot_request->setAircraftId($request->getParameter('aircraft'));
                     $pilot_request->setTail($request->getParameter('tail'));
                     //check pilot_type
                     if ($request->getParameter('other_pilot') == 1) {
                         ////mission assistant,earth angel
                         $pilot_request->setMissionAssistantWanted(0);
                         $pilot_request->setIfrBackupWanted(0);
                         $pilot_request->setAccepted(0);
                         $pilot_request->setProcessed(0);
                         $pilot_request->setOnHold(0);
                     } else {
                         ////command pilot
                         $pilot_request->setProcessed(1);
                         if ($request->getParameter('acc_cre') == 1) {
                             $pilot_request->setMissionAssistantWanted(0);
                             #set pilot as mission assistant
                             if ($member->getPerson()) {
                                 $pilot_request->setMissionAssistantName($member->getPerson()->getLastName() . ' ' . $member->getPerson()->getFirstName());
                             }
                         } else {
                             $pilot_request->setMissionAssistantWanted(0);
                             #set pilot's mission assistant as mission assistant
                             if ($request->getParameter('pilot_ma')) {
                                 $pilot_request->setMissionAssistantName($request->getParameter('pilot_ma'));
                             }
                         }
                         if ($request->getParameter('IFR') == 0) {
                             $pilot_request->setIfrBackupWanted(0);
                         } else {
                             $pilot_request->setIfrBackupWanted(1);
                         }
                     }
                     $pilot_request->setCreatedAt(date('m/d/y'));
                     $pilot_request->save();
                     $this->getUser()->setFlash('success', 'Your request has been saved on Camp ID#' . $request->getParameter('camp_id'));
                     //            $this->redirect('@pilot_thanks?id='.$request->getParameter('id'));
                 } else {
                     $this->getUser()->setFlash('success', 'You have already requested this Camp Mission!');
                     //            $this->redirect('@pilot_thanks?id='.$request->getParameter('id'));
                 }
             } else {
                 if (count($this->dates) < 1) {
                     $this->date_other_e = 1;
                     $this->type = $request->getParameter('request_as');
                 }
                 if (!$request->getParameter('home_base')) {
                     $this->home = 1;
                 }
                 if (!$request->getParameter('number_of_seats')) {
                     $this->number_of = 1;
                 }
                 if (!$request->getParameter('total_carry')) {
                     $this->carry = 1;
                 }
             }
         }
     }
 }