public function executeSave(sfWebRequest $request) { if ($request->isMethod('post')) { $mission_leg = MissionLegPeer::retrieveByPK($request->getParameter('id')); if (isset($mission_leg) && $mission_leg instanceof MissionLeg) { $leg_number = $request->getParameter('leg_number'); $waiver_rec = $request->getParameter('waiver_rec'); $coor_web_off = $request->getParameter('coor_web_off'); $cancel_reason = $request->getParameter('cancel_reason'); $cancel_comment = $request->getParameter('cancel_comment'); $co_pilot_wanted = $request->getParameter('cop_wanted'); $private_coor = $request->getParameter('private_coor_note'); $public_coor = $request->getParameter('public_coor_note'); if ($request->getParameter('leg_id')) { $leg_id = $request->getParameter('leg_id'); $is_leg = MissionLegPeer::getByIdNumber($mission_leg->getMissionId(), $leg_number); if (isset($is_leg) && $is_leg instanceof MissionLeg) { if ($mission_leg->getLegNumber() != $leg_number) { $this->getUser()->setFlash('success', 'Leg number ' . $leg_number . ' has already used in Leg #' . $request->getParameter('leg_id') . '!'); $this->redirect('@leg_edit?id=' . $leg_id); } } } else { $this->redirect($request->getReferer()); } $mission_leg->setLegNumber($leg_number); $mission_leg->setWaiverReceived($waiver_rec); if ($coor_web_off == 'on') { $mission_leg->setWebCoordinated(1); } else { $mission_leg->setWebCoordinated(0); } $mission_leg->setCancelled($cancel_reason); $mission_leg->setCancelComment($cancel_comment); if ($co_pilot_wanted == 'on') { $mission_leg->setCopilotWanted(1); } else { $mission_leg->setCopilotWanted(0); } if ($request->getParameter('coordinator_name') && $request->getParameter('coordinator_id')) { $coordinator = new Coordinator(); $coordinator->setMemberId($request->getParameter('coordinator_id')); if ($coordinator->save()) { /*$coordinatorPerson=$coordinator->getMember()->getPerson(); $eoordiEmail=$coordinatorPerson->getEmail(); $legNo=$mission_leg->getLegNumber(); $missionExter=$mission_leg->getMission()->getExternalId(); $legId=$missionExter."-".$legNo; //echo $legId; if($eoordiEmail){ $this->getComponent('mail', 'missionCoordinatedAdded', array('email' => $eoordiEmail, 'leg_id' => $legId, 'name' => $coordinatorPerson->getFirstName().' '.$coordinatorPerson->getLastName())); }*/ } $codinatorId = $coordinator->getId(); $mission_leg->setCoordinatorId($codinatorId); } // die(); // New add 28-02-2011 $pilot_id = $request->getParameter('pilot_id'); $copilot_id = $request->getParameter('copilot_id'); $backup_pilot_id = $request->getParameter('backup_pilot_id'); $backup_copilot_id = $request->getParameter('backup_copilot_id'); $miss_assis_id = $request->getParameter('miss_assis_id'); $backup_miss_assis_id = $request->getParameter('backup_miss_assis_id'); $pilot_aircraft_id = $request->getParameter('pilot_aircraft_id'); /// Manual add pilot if ($request->getParameter('pilot_name') && $pilot_id) { $pilotInfo = PilotPeer::retrieveByPK($pilot_id); $memberId = $pilotInfo->getMemberId(); $pilotRequester = PilotRequestPeer::getPilotByRequestersLegIdMemberId($request->getParameter('id'), $memberId); if (!$pilotRequester) { // Manual Add pilot request $pilot_request = new PilotRequest(); $pilot_request->setMemberId($memberId); $pilot_request->setLegId($request->getParameter('id')); $pilot_request->setMissionAssistantWanted(0); $pilot_request->setIfrBackupWanted(0); $pilot_request->setAccepted(1); $pilot_request->setProcessed(1); $pilot_request->setPilotStatus(0); $pilot_request->setOnHold(0); $pilot_request->setComment('Manual Assinged'); $pilot_request->setCreatedAt(date('Y-m-d H:i:s')); $pilotReqSave = $pilot_request->save(); } else { //if pilot exist pilot request will be update $pilotRequester->setAccepted(1); $pilotRequester->setProcessed(1); $pilotRequester->setPilotStatus(0); $pilotRequester->setCreatedAt(date('Y-m-d H:i:s')); $pilotReqSave = $pilotRequester->save(); } // Without Accepted pilot all pilot requesters will be decline $notAcceptedPilots = PilotRequestPeer::getByRequestersLegIdMemberId($request->getParameter('id'), $memberId); if ($notAcceptedPilots) { foreach ($notAcceptedPilots as $pilotrequester) { $pilotrequester->setAccepted(0); $pilotrequester->setProcessed(0); $pilotrequester->setPilotStatus(3); // 2 Pilot Delete 1 Pilot Reopen 3 Pilot Decline $pilotrequester->save(); // Member information $member = MemberPeer::retrieveByPK($pilotrequester->getMemberId()); // Person information $person = PersonPeer::retrieveByPK($member->getPersonId()); $frist_name = $person->getFirstName(); $last_name = $person->getLastName(); $name = $frist_name . ' ' . $last_name; $email = $person->getEmail(); // Leg information $legNo = $mission_leg->getLegNumber(); $missionExter = $mission_leg->getMission()->getExternalId(); $missionDate = $mission_leg->getMission()->getMissionDate(); //Send email who will not accepted if ($email) { $this->getComponent('mail', 'pilotRequestNotAccepted', array('email' => $email, 'name' => $name, 'externalID' => $missionExter, 'leg_number' => $legNo, 'missionDate' => $missionDate)); } } } // added pilot and send email to mission coordinator if ($pilotReqSave) { $mission_leg->setPilotId($request->getParameter('pilot_id')); $member = MemberPeer::retrieveByPK($memberId); $pilotPerson = PersonPeer::retrieveByPK($member->getPersonId()); $pilot_name = $pilotPerson->getTitle() . " " . $pilotPerson->getFirstName() . " " . $pilotPerson->getLastName(); $coordinator = CoordinatorPeer::retrieveByPK($mission_leg->getCoordinatorId()); if ($coordinator && $coordinator->getMemberId()) { $coordinatorPerson = $coordinator->getMember()->getPerson(); $coordinatorEmail = $coordinatorPerson->getEmail(); $legNo = $mission_leg->getLegNumber(); $missionExter = $mission_leg->getMission()->getExternalId(); $legId = $missionExter . "-" . $legNo; //echo $legId; if ($coordinatorEmail) { $this->getComponent('mail', 'missionPilotAdded', array('email' => $coordinatorEmail, 'leg_id' => $legId, 'pilot_name' => $pilot_name, 'name' => $coordinatorPerson->getTitle() . ' ' . $coordinatorPerson->getFirstName() . ' ' . $coordinatorPerson->getLastName())); } } } $mission_leg->setPilotId($request->getParameter('pilot_id')); } if ($copilot_id) { $mission_leg->setCopilotId($request->getParameter('copilot_id')); } if ($backup_pilot_id) { $mission_leg->setBackupPilotId($request->getParameter('backup_pilot_id')); } if ($backup_copilot_id) { $mission_leg->setBackupCopilotId($request->getParameter('backup_copilot_id')); } if ($miss_assis_id) { $mission_leg->setMissAssisId($request->getParameter('miss_assis_id')); } if ($backup_miss_assis_id) { $mission_leg->setBackupMissAssisId($request->getParameter('backup_miss_assis_id')); } if ($pilot_aircraft_id) { $mission_leg->setPilotAircraftId($request->getParameter('pilot_aircraft_id')); } // End $mission_leg->setPrivateCNote($private_coor); $mission_leg->setPublicCNote($public_coor); $mission_leg->setCancelMissionLeg(1); $mission_leg->save(); $this->getUser()->setFlash('success', 'Mission Leg #' . $request->getParameter('leg_id') . ' has edited !'); if ($request->getParameter('leg_id')) { $back = '@leg_view?id=' . $request->getParameter('leg_id'); } else { $back = $request->getReferer(); } $this->redirect($back); } } }
/** * Pilot Request = Mission Available for Pilot */ public function executeUpdate(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'); } if ($request->getParameter('id')) { $this->mission_leg = MissionLegPeer::retrieveByPK($request->getParameter('id')); $this->forward404Unless($this->mission_leg); $member = MemberPeer::retrieveByPK($this->getUser()->getMemberId()); if (!$member instanceof Member) { $this->getUser()->setFlash('warning', 'Sorry! Your permission could have been assigned. But you don\'t have member record!'); $this->redirect($request->getReferer()); } if ($member) { $pilot = $member->getPilot(); } else { $pilot = null; } $this->pilot = $pilot; if ($pilot) { $this->airport = $pilot->getAirport(); } else { $this->airport = null; } // Select Mission Assistant from pilot request $c = new Criteria(); $c->add(PilotRequestPeer::LEG_ID, $request->getParameter('id')); $c->add(PilotRequestPeer::PILOT_TYPE, "Mission Assistant"); $this->mission_assistants = PilotRequestPeer::doSelect($c); //TODO optimize //print_r($this->mission_assistants); if (isset($member)) { $this->pilot = PilotPeer::getByMemberId($member->getId()); $this->pilot_aircrafts = PilotAircraftPeer::getByMemberId($member->getId()); } $this->pre_requests = PilotRequestPeer::getByMemnerIdLegId($member->getId(), $this->mission_leg->getId()); } else { $this->getUser()->setFlash('success', 'No Mission Leg have been selected!'); } //Pilot Request if ($request->isMethod('post')) { if ($request->getParameter('other_pilot') == 1) { if ($request->getParameter('date') != null) { //die("OK"); $pilot_request = new PilotRequest(); $pilot_request->setMemberId($member->getId()); $pilot_request->setLegId($request->getParameter('id')); $pilot_request->setDate($request->getParameter('date')); $pilot_request->setPilotType($request->getParameter('pilot_type')); $pilot_request->setMissionAssistantWanted(0); $pilot_request->setIfrBackupWanted(0); $pilot_request->setAccepted(0); $pilot_request->setProcessed(0); $pilot_request->setOnHold(0); $pilot_request->setComment($request->getParameter('comment')); $pilot_request->setAircraftId($request->getParameter('aircraft')); $pilot_request->setTail($request->getParameter('tail')); $person = PersonPeer::retrieveByPK($this->getUser()->getId()); $pilot_request->setCreatedAt(date('m/d/y')); $pilot_request->save(); $mail_text = "Dear " . trim($person->getName()) . ", you have requested a mission from Angel Flight West. Your request has been sent successfully"; $this->getComponent('mail', 'missionReqCreate', array('email' => $person->getEmail(), 'name' => $person->getName(), 'subject' => 'Request Mission', 'text' => $mail_text)); $this->getUser()->setFlash('success', 'Your request has been saved on Mission Leg #' . $this->mission_leg->getId()); $this->redirect('@pilot_thanks?id=' . $request->getParameter('id')); } else { if ($request->getParameter('date') == null) { $this->date_e = 1; $this->date_other_e = 1; $this->type = $request->getParameter('pilot_type'); } } } else { if ($request->getParameter('date') != null) { //die('OK'); $pilot_request = new PilotRequest(); if (isset($member)) { $pilot_request->setMemberId($member->getId()); } $pilot_request->setLegId($request->getParameter('id')); $pilot_request->setDate($request->getParameter('date')); $pilot_request->setPilotType($request->getParameter('pilot_type')); $pilot_request->setComment($request->getParameter('comment')); $pilot_request->setProcessed(1); $pilot_request->setAircraftId($request->getParameter('aircraft')); $pilot_request->setTail($request->getParameter('tail')); if ($request->getParameter('acc_cre') == 'yes') { $pilot_request->setMissionAssistantWanted(1); $pilot_request->setMissAssisId($request->getParameter('ma_ids')); } else { $pilot_request->setMissionAssistantWanted(0); } if ($request->getParameter('IFR') == 0) { $pilot_request->setIfrBackupWanted(0); } else { $pilot_request->setIfrBackupWanted(1); } $pilot_request->setCreatedAt(date('m/d/y')); $person = PersonPeer::retrieveByPK($this->getUser()->getId()); $pilot_request->save(); $mail_text = "Dear " . trim($person->getName()) . ", you have requested a mission from Angel Flight West. Your request has been sent successfully"; $this->getComponent('mail', 'missionReqCreate', array('email' => $person->getEmail(), 'name' => $person->getName(), 'subject' => 'Request Mission', 'text' => $mail_text)); $this->getUser()->setFlash('success', 'Your request has been saved on Mission Leg #' . $this->mission_leg->getId()); $this->redirect('@pilot_thanks?id=' . $request->getParameter('id')); } else { if ($request->getParameter('date') == null) { $this->date_e = 1; $this->type = $request->getParameter('pilot_type'); } } } } }