예제 #1
0
 /**
  * Edit Pilot's aircraft(s) from
  * CODE: pilot_aircraft_create
  */
 public function executeEditGroupAircraft(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('actions')) {
         $this->ids = $request->getParameter('actions');
     }
     if ($request->isMethod('post')) {
         $pilot_a_ids = $request->getParameter('all_pilot_ids');
         $air_ids = $request->getParameter('all_air_ids');
         if (count($air_ids)) {
             foreach ($air_ids as $id) {
                 if ($id) {
                     $aircraft = AircraftPeer::retrieveByPK($id);
                     if ($request->getParameter('make' . $id)) {
                         $aircraft->setMake($request->getParameter('make' . $id));
                     }
                     if ($request->getParameter('model' . $id)) {
                         $aircraft->setModel($request->getParameter('model' . $id));
                     }
                     if ($request->getParameter('tail' . $id)) {
                         $aircraft->setTail($request->getParameter('tail' . $id));
                     }
                     $aircraft->save();
                 }
             }
         }
         if (count($pilot_a_ids)) {
             foreach ($pilot_a_ids as $id) {
                 $pilot_aircraft = PilotAircraftPeer::retrieveByPK($id);
                 if (isset($pilot_aircraft) && $pilot_aircraft instanceof PilotAircraft) {
                     if ($request->getParameter('own' . $id)) {
                         if ($request->getParameter('own' . $id) == 'on') {
                             $pilot_aircraft->setOwn(1);
                         } else {
                             $pilot_aircraft->setOwn(0);
                         }
                     }
                     if ($request->getParameter('is_primary')) {
                         $p_aircraft = PilotAircraftPeer::retrieveByPK($request->getParameter('is_primary'));
                         $already_has_primary = PilotAircraftPeer::getHasPrimary();
                         if (isset($p_aircraft) && $p_aircraft instanceof PilotAircraft) {
                             if (count($already_has_primary)) {
                                 foreach ($already_has_primary as $air) {
                                     if ($air->getPrimary() != null) {
                                         $id_is = $air;
                                     }
                                 }
                                 if ($id_is->getId() != $p_aircraft->getId()) {
                                     $p_aircraft->setPrimary(1);
                                     $id_is->setPrimary(0);
                                     $p_aircraft->save();
                                     $id_is->save();
                                 }
                             } else {
                                 $p_aircraft->setPrimary(1);
                                 $p_aircraft->save();
                             }
                         }
                     }
                     if ($request->getParameter('n_number' . $id)) {
                         $pilot_aircraft->setNNumber($request->getParameter('n_number' . $id));
                     }
                     if ($request->getParameter('seats' . $id)) {
                         $pilot_aircraft->setSeats($request->getParameter('seats' . $id));
                     }
                     if ($request->getParameter('known' . $id)) {
                         if ($request->getParameter('own' . $id) == 'on') {
                             $pilot_aircraft->setKnownIce(1);
                         } else {
                             $pilot_aircraft->setKnownIce(0);
                         }
                     }
                     $pilot_aircraft->save();
                 }
             }
             $this->redirect('account_pilot');
         }
     }
 }