private function processFilterForm(sfWebRequest $request) { //if user requests first time, then check if user has saved filters if (!$request->getParameter('filter')) { $this->has_filters = UserFilterPeer::getByPersonId($this->getUser()->getId()); //here set all values if ($this->has_filters) { $params['origin'] = $this->has_filters->getOrgin(); $params['dest'] = $this->has_filters->getDest(); $params['date_range1'] = $this->has_filters->getDateRange1(); $params['date_range2'] = $this->has_filters->getDateRange2(); $params['filled'] = $this->has_filters->getFilled(); $params['open'] = $this->has_filters->getOpen(); //needs by $params['needs_pilot'] = $this->has_filters->getIsPilot(); $params['co_pilot'] = $this->has_filters->getIsMa(); $params['ifr'] = $this->has_filters->getIfrBackup(); $params['ignore_availability'] = $this->has_filters->getAvailability(); //days $weekdays = array(); $weekdays[0] = $this->has_filters->getDay1(); $weekdays[1] = $this->has_filters->getDay2(); $weekdays[2] = $this->has_filters->getDay3(); $weekdays[3] = $this->has_filters->getDay4(); $weekdays[4] = $this->has_filters->getDay5(); $weekdays[5] = $this->has_filters->getDay6(); $weekdays[6] = $this->has_filters->getDay7(); $params['weekdays'] = $weekdays; $params['max_pass'] = $this->has_filters->getMaxPassenger(); $params['max_weight'] = $this->has_filters->getMaxWeight(); $params['max_distance'] = $this->has_filters->getMaxDistance(); $params['min_efficiency'] = $this->has_filters->getMaxEffciency(); $params['wing_id'] = $this->has_filters->getWing(); $params['airport_ident'] = $this->has_filters->getIdent(); $params['city'] = $this->has_filters->getCity(); $params['zipcode'] = $this->has_filters->getZipcode(); $params['state'] = $this->has_filters->getState(); $arr = array(); //if saved filters, get selected mission types if ($this->has_filters) { $s = $this->has_filters->getUserFilterMissionTypess(); if (sizeof($s) > 0) { foreach ($s as $ru) { if ($this->has_filters) { $arr[] = $ru->getMissionTypeId(); } else { $arr[] = $ru->getId(); } } } $params['selected_types'] = $arr; } } } else { $params = $this->getUser()->getAttribute('staff_available', array(), 'person'); } //mission types selected by default $arr = array(); if (sizeof($this->mission_types) > 0) { foreach ($this->mission_types as $ru) { $arr[] = $ru->getId(); } } if (!isset($params['sort_by'])) { $params['sort_by'] = 1; } if (!isset($params['date_range1'])) { $params['date_range1'] = null; } if (!isset($params['date_range2'])) { $params['date_range2'] = null; } if (!isset($params['weekdays'])) { $params['weekdays'] = array(1, 1, 1, 1, 1, 1, 1); } if (!isset($params['wing_id'])) { $params['wing_id'] = null; } if (!isset($params['airport_ident'])) { $params['airport_ident'] = null; } if (!isset($params['city'])) { $params['city'] = null; } if (!isset($params['state'])) { $params['state'] = null; } if (!isset($params['zipcode'])) { $params['zipcode'] = null; } if (!isset($params['origin'])) { $params['origin'] = 1; } if (!isset($params['dest'])) { $params['dest'] = 1; } if (!isset($params['needs_pilot'])) { $params['needs_pilot'] = null; } if (!isset($params['co_pilot'])) { $params['co_pilot'] = null; } if (!isset($params['ifr'])) { $params['ifr'] = null; } if (!isset($params['selected_types'])) { $params['selected_types'] = $arr; } if (!isset($params['filled'])) { $params['filled'] = null; } if (!isset($params['open'])) { $params['open'] = null; } if (!isset($params['max_pass'])) { $params['max_pass'] = null; } if (!isset($params['max_weight'])) { $params['max_weight'] = null; } if (!isset($params['max_distance'])) { $params['max_distance'] = null; } if (!isset($params['min_efficiency'])) { $params['min_efficiency'] = 85; } if (!isset($params['ignore_availability'])) { $params['ignore_availability'] = null; } if (!isset($params['member_id'])) { $params['member_id'] = null; } if ($this->hasRequestParameter('sort_by')) { $params['sort_by'] = $this->getRequestParameter('sort_by'); } if ($request->getParameter('filter') && $request->getParameter('filter') == 1) { $params['date_range1'] = $request->getParameter('date_range1'); $params['date_range2'] = $request->getParameter('date_range2'); $params['weekdays'] = $request->getParameter('weekdays', array(1, 1, 1, 1, 1, 1, 1)); $params['wing_id'] = $request->getParameter('wing_id'); $params['airport_ident'] = $request->getParameter('airport_ident'); $params['city'] = $request->getParameter('city'); $params['state'] = $request->getParameter('state'); $params['zipcode'] = $request->getParameter('zipcode'); $params['origin'] = $request->getParameter('origin'); $params['dest'] = $request->getParameter('dest'); $params['needs_pilot'] = $request->getParameter('needs_pilot'); $params['co_pilot'] = $request->getParameter('co_pilot'); $params['ifr'] = $request->getParameter('ifr'); $params['selected_types'] = $request->getParameter('selected_types[]', $arr); $params['filled'] = $request->getParameter('filled'); $params['open'] = $request->getParameter('open'); $params['max_pass'] = $request->getParameter('max_pass'); $params['max_weight'] = $request->getParameter('max_weight'); $params['max_distance'] = $request->getParameter('max_distance'); $params['min_efficiency'] = $request->getParameter('min_efficiency'); $params['ignore_availability'] = $request->getParameter('ignore_availability'); $params['member_id'] = $request->getParameter('member_id'); } $this->page = $request->getParameter('page', 1); $this->max = sfConfig::get('app_max_mission_available_per_pager', 10); $this->sort_by = $params['sort_by']; $this->date_range1 = $params['date_range1']; $this->date_range2 = $params['date_range2']; $this->weekdays = $params['weekdays']; $this->wing_id = $params['wing_id']; $this->ident = $params['airport_ident']; $this->city = $params['city']; $this->state = $params['state']; $this->zip = $params['zipcode']; $this->origin = $params['origin']; $this->dest = $params['dest']; $this->needs_pilot = $params['needs_pilot']; $this->co_pilot = $params['co_pilot']; $this->ifr = $params['ifr']; $this->selected_types = $params['selected_types']; $this->filled = $params['filled']; $this->open = $params['open']; $this->max_pass = $params['max_pass']; $this->max_weight = $params['max_weight']; $this->max_distance = $params['max_distance']; $this->min_efficiency = $params['min_efficiency']; // Default efficiency $this->ignore_availability = $params['ignore_availability']; $this->member_id = $params['member_id']; $this->getUser()->setAttribute('staff_available', $params, 'person'); $this->error_min_eff = false; if (isset($this->min_efficiency) && $this->min_efficiency != null && !($this->min_efficiency >= 1 && $this->min_efficiency <= 100)) { $this->error_min_eff = true; } }
/** * Display list of available missions for Staff members */ public function executeStaffAvailable(sfWebRequest $request) { $this->getUser()->setFlash("warning", 'This link not available url ' . $request->getUri()); $this->redirect('dashboard/index'); 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'); } $person = PersonPeer::retrieveByPK($this->getUser()->getId()); $this->date_range1 = ''; $this->date_range2 = ''; $this->date_widget = new widgetFormDate(array('format_date' => array('js' => 'mm/dd/yy', 'php' => 'm/d/Y')), array('class' => 'text')); $this->wings = WingPeer::getForSelectParentNew(); $this->states = sfConfig::get('app_short_states'); $this->has_filters = UserFilterPeer::getByPersonId($person->getId()); if (isset($this->has_filters) && $this->has_filters instanceof UserFilter) { $this->f_person_id = $this->has_filters->getId(); } $this->mission_legs = MissionLegPeer::doSelect(new Criteria()); #get Missions Pilot may interested $this->missions = MissionPeer::getByMayInterested(); //$this->mission_types = MissionTypePeer::doSelect(new Criteria()); $this->miss_pre = array(); $this->miss_array = array(); $this->miss_ids = array(); $count_pre = 0; $count = 0; $check = 0; foreach ($this->mission_legs as $leg) { $this->miss_ids[$leg->getMissionId()] = $leg->getMissionId(); } foreach ($this->mission_legs as $leg) { if ($this->miss_ids[$leg->getMissionId()] == $leg->getMissionId()) { $this->miss_array[$leg->getMissionId()] = $leg->getMissionId(); $count++; } } // if($pilot->getPrimaryAirportId() == null && isset($pilot)){ // $this->getUser()->setFlash('success','Pilot has not confirm Primary Airport!!'); // $this->redirect('@pilot_view?id='.$pilot->getId()); // } // $this->getUser()->setFlash('success','You are not Pilot yet!'); // $this->redirect($request->getReferer()); }