/** * Performs the work of inserting or updating the row in the database. * * If the object is new, it inserts it; otherwise an update is performed. * All related objects are also updated in this method. * * @param PropelPDO $con * @return int The number of rows affected by this insert/update and any referring fk objects' save() operations. * @throws PropelException * @see save() */ protected function doSave(PropelPDO $con) { $affectedRows = 0; // initialize var to track total num of affected rows if (!$this->alreadyInSave) { $this->alreadyInSave = true; // We call the save method on the following object(s) if they // were passed to this object by their coresponding set // method. This object relates to these object(s) by a // foreign key reference. if ($this->aMission !== null) { if ($this->aMission->isModified() || $this->aMission->isNew()) { $affectedRows += $this->aMission->save($con); } $this->setMission($this->aMission); } if ($this->aMissionLeg !== null) { if ($this->aMissionLeg->isModified() || $this->aMissionLeg->isNew()) { $affectedRows += $this->aMissionLeg->save($con); } $this->setMissionLeg($this->aMissionLeg); } if ($this->isNew()) { $this->modifiedColumns[] = MissionPhotoPeer::ID; } // If this object has been modified, then save it to the database. if ($this->isModified()) { if ($this->isNew()) { $pk = MissionPhotoPeer::doInsert($this, $con); $affectedRows += 1; // we are assuming that there is only 1 row per doInsert() which // should always be true here (even though technically // BasePeer::doInsert() can insert multiple rows). $this->setId($pk); //[IMV] update autoincrement primary key $this->setNew(false); } else { $affectedRows += MissionPhotoPeer::doUpdate($this, $con); } $this->resetModified(); // [HL] After being saved an object is no longer 'modified' } $this->alreadyInSave = false; } return $affectedRows; }
public function executeAutoAddMissionsOnCamp(sfWebRequest $request) { // see if there is airport exist with this name $airport_name = $request->getParameter('airportname'); $airport = AirportPeer::getBySpecificAirportName($airport_name); // If there is no airport then insert it into airport table if (!$airport) { // @TODO Set default airport fields values $airport = new Airport(); $airport->setName($airport_name); $airport->save(); } $pass_id = $request->getParameter('passenger'); $camp_id = $request->getParameter('camp_id'); $camp_passenger = new CampPassenger(); $camp_passenger->setCampId($camp_id); $camp_passenger->setPassengerId($pass_id); if (CampPassengerPeer::doCount($camp_passenger->buildCriteria())) { $passenger = PassengerPeer::retrieveByPK($pass_id); $this->getUser()->setFlash('warning', 'Passenger "' . $passenger->getPerson()->getName() . '" has already been added!'); return $this->redirect('camp/view?id=' . $request->getParameter('camp_id')); } $camp = CampPeer::retrieveByPK($camp_id); $this->forward404Unless($camp); $note = $request->getParameter('note'); //$camp_passenger->setAirportId($camp->getAirportId ()); // Camp Location Id $camp_passenger->setNote($note); //if ($camp_passenger->save()){ //return $this->renderText($airport->getId()); //} $mission_type = MissionTypePeer::getByName('normal'); if (!$mission_type instanceof MissionType) { $mission_type = MissionTypePeer::doSelectOne(new Criteria()); $this->forward404Unless($mission_type); } $airport = AirportPeer::getBySpecificAirportName($airport_name); $camp_location = $camp->getAirport(); $itinerary = new Itinerary(); $itinerary->setCampId($camp->getId()); $itinerary->setPassengerId($pass_id); $itinerary->setDateRequested(time()); $itinerary->setApointTime('unspecified'); $itinerary->setMissionTypeId($mission_type->getId()); $itinerary->setAgencyId($camp->getAgencyId()); $itinerary->setCancelItinerary(1); $itinerary->save(); // Mission 1 $mission1 = new Mission(); $mission1->setItineraryId($itinerary->getId()); $mission1->setCampId($camp->getId()); $mission1->setCancelMission(1); $mission1->setPassengerId($pass_id); $mission1->setMissionCount(1); $mission1->setDateRequested(time()); $mission1->setExternalId($this->getLatestExternalId()); $mission1->setMissionTypeId($mission_type->getId()); $mission1->save(); $camp_passenger->setReturnAirportId(NULL); // this indicates that return airport id would be camp airport id $camp_passenger->setAirportId($airport->getId()); $camp_passenger->setMissionId($mission1->getId()); $camp_passenger->save(); $mission1_leg1 = new MissionLeg(); $mission1_leg1->setFromAirportId($airport->getId()); $mission1_leg1->setLegNumber(1); $mission1_leg1->setMissionId($mission1->getId()); if ($camp_location) { $mission1_leg1->setToAirportId($camp_location->getId()); } else { $mission1_leg1->setToAirportId(NULL); } $mission1_leg1->setCancelMissionLeg(1); $mission1_leg1->save(); // Mission 2 $mission2 = new Mission(); $mission2->setItineraryId($itinerary->getId()); $mission2->setCampId($camp->getId()); $mission2->setCancelMission(1); $mission2->setPassengerId($pass_id); $mission2->setMissionCount(2); // From treatment to hme $mission2->setDateRequested(time()); $mission2->setExternalId($this->getLatestExternalId()); $mission2->setMissionTypeId($mission_type->getId()); $mission2->save(); $camp_passenger2 = new CampPassenger(); $camp_passenger2->setCampId($camp_id); $camp_passenger2->setPassengerId($pass_id); $camp_passenger2->setMissionId($mission2->getId()); $camp_passenger2->setAirportId(NULL); // this indicates that return airport id would be camp airport id $camp_passenger2->setReturnAirportId($airport->getId()); $camp_passenger2->setNote($note); $camp_passenger2->save(); $mission2_leg2 = new MissionLeg(); if ($camp_location) { $mission2_leg2->setFromAirportId($camp_location->getId()); } else { $mission2_leg2->setFromAirportId(NULL); } $mission2_leg2->setLegNumber(1); $mission2_leg2->setMissionId($mission2->getId()); $mission2_leg2->setToAirportId($airport->getId()); $mission2_leg2->setCancelMissionLeg(1); $mission2_leg2->save(); return $this->redirect('camp/view?id=' . $camp->getId()); }
public function executeReverse(sfWebRequest $request) { $mis1 = MissionPeer::retrieveByPK($request->getParameter('miss_id')); $itine_id = $mis1->getItineraryId(); $mis2 = MissionPeer::retrieveByPK($request->getParameter('mis2_id')); $mis1_legs = MissionLegPeer::getbyDesOrderMissId($request->getParameter('miss_id')); $legnumber = 1; $comcount = 1; $aircount = 1; $groundcount = 1; foreach ($mis1_legs as $mleg) { $type = $mleg->getTransportation(); switch ($type) { case 'air_mission': $mission_leg = new MissionLeg(); $mission_leg->setMissionId($mis2->getId()); $mission_leg->setLegNumber($legnumber); $mission_leg->setFromAirportId($mleg->getToAirportId()); $mission_leg->setToAirportId($mleg->getFromAirportId()); $mission_leg->setPassOnBoard(0); $mission_leg->setTransportation('air_mission'); $mission_leg->setPrefix('air' . $aircount); $mission_leg->setCancelMissionLeg(1); $mission_leg->save(); $aircount++; break; case 'ground_mission': $mission_leg = new MissionLeg(); $mission_leg->setMissionId($mis2->getId()); $mission_leg->setLegNumber($legnumber); $mission_leg->setPassOnBoard(0); $mission_leg->setTransportation('ground_mission'); $mission_leg->setGroundOrigin($mleg->getGroundDestination()); $mission_leg->setGroundDestination($mleg->getGroundOrigin()); $mission_leg->setPrefix('g' . $groundcount); $mission_leg->setCancelMissionLeg(1); $mission_leg->save(); $groundcount++; break; case 'commercial_mission': $mission_leg = new MissionLeg(); $mission_leg->setMissionId($mis2->getId()); $mission_leg->setLegNumber($legnumber); $mission_leg->setFlightTime($mleg->getFlightTime()); //$mission_leg->setBaggageDesc($request->getParameter('baggage_desc')); //$mission_leg->setBaggageWeight($request->getParameter('baggage_weight')); $mission_leg->setAirlineId($mleg->getAirlineId()); $mission_leg->setFundId($mleg->getFundId()); $mission_leg->setConfirmCode($mleg->getConfirmCode()); $mission_leg->setFlightCost($mleg->getFlightCost()); $mission_leg->setCommOrigin($mleg->getCommDest()); $mission_leg->setCommDest($mleg->getCommOrigin()); $mission_leg->setFlightNumber($mleg->getFlightNumber()); $mission_leg->setDeparture($mleg->getDeparture()); $mission_leg->setTransportation('commercial_mission'); $mission_leg->setPrefix('com' . $comcount); $mission_leg->setCancelMissionLeg(1); $mission_leg->save(); $comcount++; break; } $legnumber++; } $this->getUser()->setFlash('success', 'Successfully reverse.'); $this->redirect('itinerary/detail?id=' . $itine_id); }
/** * missionRequests save all data into corresponding tables * CODE:mission_request_create */ public function executeSave(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'); } $miss_req_session = $this->getUser()->getAttribute('miss_req'); if (!$miss_req_session) { return $this->forward('passenger', 'step3'); } //set Requester Person $req_person = new Person(); $req_person->setFirstName($miss_req_session->getReqFirstname()); $req_person->setLastName($miss_req_session->getReqLastname()); $req_person->setAddress1($miss_req_session->getReqAddress1()); $req_person->setAddress2($miss_req_session->getReqAddress2()); $req_person->setCity($miss_req_session->getReqCity()); $req_person->setCounty($miss_req_session->getReqCounty()); $req_person->setState($miss_req_session->getReqState()); $req_person->setCountry($miss_req_session->getReqCountry()); $req_person->setZipcode($miss_req_session->getReqZipcode()); $req_person->setEmail($miss_req_session->getReqEmail()); $req_person->setSecondaryEmail($miss_req_session->getReqSecondaryEmail()); $req_person->setPagerEmail($miss_req_session->getReqPagerEmail()); $req_person->setDayPhone($miss_req_session->getReqDayPhone()); $req_person->setDayComment($miss_req_session->getReqDayComment()); $req_person->setEveningPhone($miss_req_session->getReqEvePhone()); $req_person->setEveningComment($miss_req_session->getReqEveComment()); $req_person->setMobilePhone($miss_req_session->getReqMobilePhone()); $req_person->setMobileComment($miss_req_session->getReqMobileComment()); $req_person->setPagerPhone($miss_req_session->getReqPagerPhone()); $req_person->setPagerComment($miss_req_session->getReqPagerComment()); $req_person->setOtherPhone($miss_req_session->getReqOtherPhone()); $req_person->setOtherComment($miss_req_session->getReqOtherComment()); $req_person->save(); //end of Requester Person // set Requester Agency $agency = AgencyPeer::getByNamePhone(trim($miss_req_session->getAgencyName())); if ($agency) { # nothing } else { $agency = new Agency(); $agency->setName(trim($miss_req_session->getAgencyName())); $agency->save(); } //set Requester $requester = new Requester(); $requester->setPersonId($req_person->getId()); $requester->setAgencyId($agency->getId()); //$requester->setDischarge($miss_req_session->getReqDischarge()); $requester->save(); if (isset($miss_req_session->passenger_id)) { $passenger = PassengerPeer::retrieveByPK($miss_req_session->passenger_id); if (!$passenger instanceof Passenger) { $passenger = new Passenger(); } } else { $passenger = new Passenger(); } if ($passenger->isNew()) { $person = new Person(); } else { $person = $passenger->getPerson(); } //set Person to Passenger $person->setTitle($miss_req_session->getPassTitle()); $person->setFirstName($miss_req_session->getPassFirstName()); $person->setLastName($miss_req_session->getPassLastName()); $person->setGender($miss_req_session->getPassGender()); $person->setAddress1($miss_req_session->getPassAddress1()); $person->setAddress2($miss_req_session->getPassAddress2()); $person->setCity($miss_req_session->getPassCity()); $person->setState($miss_req_session->getPassState()); $person->setZipcode($miss_req_session->getPassZipcode()); $person->setCountry($miss_req_session->getPassCountry()); $person->setEmail($miss_req_session->getPassEmail()); $person->setDayPhone($miss_req_session->getPassDayPhone()); $person->setDayComment($miss_req_session->getPassDayComment()); $person->setEveningPhone($miss_req_session->getPassEvePhone()); $person->setEveningComment($miss_req_session->getPassEveComment()); $person->setMobilePhone($miss_req_session->getPassMobilePhone()); $person->setMobileComment($miss_req_session->getPassMobileComment()); $person->setPagerPhone($miss_req_session->getPassPagerPhone()); $person->setPagerComment($miss_req_session->getPassPagerComment()); $person->setOtherPhone($miss_req_session->getPassOtherPhone()); $person->setOtherComment($miss_req_session->getPassOtherComment()); $person->save(); //set Passenger $passenger->setPersonId($person->getId()); $passenger->setPassengerTypeId($miss_req_session->getPassType()); $passenger->setDateOfBirth($miss_req_session->getPassDateOfBirth()); $passenger->setIllness($miss_req_session->getIllness()); $passenger->setFinancial($miss_req_session->getFinancial()); $passenger->setPublicConsiderations($miss_req_session->getPassPublicCons()); $passenger->setPrivateConsiderations($miss_req_session->getPassPrivateCons()); $passenger->setReleasingPhysician($miss_req_session->getReleasingPhysician()); $passenger->setReleasingPhone($miss_req_session->getReleasePhone()); $passenger->setReleasingFax1($miss_req_session->getReleaseFax()); $passenger->setReleasingFax1Comment($miss_req_session->getReleaseFaxComment()); $passenger->setLodgingName($miss_req_session->getLodgingName()); $passenger->setLodgingPhone($miss_req_session->getLodgingPhone()); $passenger->setLodgingPhoneComment($miss_req_session->getLodgingPhoneComment()); $passenger->setFacilityName($miss_req_session->getFacilityName()); $passenger->setFacilityPhone($miss_req_session->getFacilityPhone()); $passenger->setFacilityPhoneComment($miss_req_session->getFacilityPhoneComment()); $passenger->setReleasingEmail($miss_req_session->getReleaseEmail()); $passenger->setTreatingPhysician($miss_req_session->getTreatingPhysician()); $passenger->setTreatingPhone($miss_req_session->getTreatingPhone()); $passenger->setTreatingFax1($miss_req_session->getTreatingFax()); $passenger->setTreatingFax1Comment($miss_req_session->getTreatingFaxComment()); $passenger->setTreatingEmail($miss_req_session->getTreatingEmail()); $passenger->setLanguageSpoken($miss_req_session->getPassLanguage()); $passenger->setBestContactMethod($miss_req_session->getBestContact()); $passenger->setEmergencyContactName($miss_req_session->getEmergencyName()); $passenger->setEmergencyContactPrimaryPhone($miss_req_session->getEmergencyPhone1()); $passenger->setEmergencyContactPrimaryComment($miss_req_session->getEmergencyPhone1Comment()); $passenger->setEmergencyContactSecondaryPhone($miss_req_session->getEmergencyPhone2()); $passenger->setEmergencyContactSecondaryComment($miss_req_session->getEmergencyPhone2Comment()); $passenger->setNeedMedicalRelease($miss_req_session->getPassMedical()); $passenger->save(); //set Companions if ($passenger && $miss_req_session->getCom1Name()) { $person = new Person(); $names[] = split(" ", $miss_req_session->getCom1Name()); //echo var_dump($names); die(); $person->setFirstName($names[0][0]); $person->setLastName($names[0][1]); $person->setDayPhone($miss_req_session->getCom1Phone()); $person->setDayComment($miss_req_session->getCom1Comment()); $person->save(); $companion = new Companion(); $companion->setPassengerId($passenger->getId()); $companion->setName($miss_req_session->getCom1Name()); $companion->setRelationship($miss_req_session->getCom1Relationship()); $companion->setDateOfBirth($miss_req_session->getCom1DateOfBirth()); $companion->setWeight($miss_req_session->getCom1Weigth()); $companion->setCompanionPhone($miss_req_session->getCom1Phone()); $companion->setCompanionPhoneComment($miss_req_session->getCom1Comment()); $companion->setPersonId($person->getId()); $companion->save(); } if ($passenger && $miss_req_session->getCom2Name()) { $person = new Person(); $names[] = split(" ", $miss_req_session->getCom2Name()); //echo var_dump($names); die(); $person->setFirstName($names[0][0]); $person->setLastName($names[0][1]); $person->setDayPhone($miss_req_session->getCom2Phone()); $person->setDayComment($miss_req_session->getCom2Comment()); $person->save(); $companion = new Companion(); $companion->setPassengerId($passenger->getId()); $companion->setName($miss_req_session->getCom2Name()); $companion->setRelationship($miss_req_session->getCom2Relationship()); $companion->setDateOfBirth($miss_req_session->getCom2DateOfBirth()); $companion->setWeight($miss_req_session->getCom2Weigth()); $companion->setCompanionPhone($miss_req_session->getCom2Phone()); $companion->setCompanionPhoneComment($miss_req_session->getCom2Comment()); $companion->setPersonId($person->getId()); $companion->save(); } if ($passenger && $miss_req_session->getCom3Name()) { $person = new Person(); $names[] = split(" ", $miss_req_session->getCom3Name()); //echo var_dump($names); die(); $person->setFirstName($names[0][0]); $person->setLastName($names[0][1]); $person->setDayPhone($miss_req_session->getCom3Phone()); $person->setDayComment($miss_req_session->getCom3Comment()); $person->save(); $companion = new Companion(); $companion->setPassengerId($passenger->getId()); $companion->setName($miss_req_session->getCom3Name()); $companion->setRelationship($miss_req_session->getCom3Relationship()); $companion->setDateOfBirth($miss_req_session->getCom3DateOfBirth()); $companion->setWeight($miss_req_session->getCom3Weigth()); $companion->setCompanionPhone($miss_req_session->getCom3Phone()); $companion->setCompanionPhoneComment($miss_req_session->getCom3Comment()); $companion->setPersonId($person->getId()); $companion->save(); } if ($passenger && $miss_req_session->getCom4Name()) { $person = new Person(); $names[] = split(" ", $miss_req_session->getCom4Name()); //echo var_dump($names); die(); $person->setFirstName($names[0][0]); $person->setLastName($names[0][1]); $person->setDayPhone($miss_req_session->getCom4Phone()); $person->setDayComment($miss_req_session->getCom4Comment()); $person->save(); $companion = new Companion(); $companion->setPassengerId($passenger->getId()); $companion->setName($miss_req_session->getCom4Name()); $companion->setRelationship($miss_req_session->getCom4Relationship()); $companion->setDateOfBirth($miss_req_session->getCom4DateOfBirth()); $companion->setWeight($miss_req_session->getCom4Weigth()); $companion->setCompanionPhone($miss_req_session->getCom4Phone()); $companion->setCompanionPhoneComment($miss_req_session->getCom4Comment()); $companion->setPersonId($person->getId()); $companion->save(); } if ($passenger && $miss_req_session->getCom5Name()) { $person = new Person(); $names[] = split(" ", $miss_req_session->getCom5Name()); //echo var_dump($names); die(); $person->setFirstName($names[0][0]); $person->setLastName($names[0][1]); $person->setDayPhone($miss_req_session->getCom5Phone()); $person->setDayComment($miss_req_session->getCom5Comment()); $person->save(); $companion = new Companion(); $companion->setPassengerId($passenger->getId()); $companion->setName($miss_req_session->getCom5Name()); $companion->setRelationship($miss_req_session->getCom5Relationship()); $companion->setDateOfBirth($miss_req_session->getCom5DateOfBirth()); $companion->setWeight($miss_req_session->getCom5Weigth()); $companion->setCompanionPhone($miss_req_session->getCom5Phone()); $companion->setCompanionPhoneComment($miss_req_session->getCom5Comment()); $companion->setPersonId($person->getId()); $companion->save(); } //set Itinerary $itinerary = ItineraryPeer::getByMissReqId($miss_req_session->getId()); if (!$itinerary) { $new_itinerary = new Itinerary(); $new_itinerary->setDateRequested(date('m/d/Y')); $new_itinerary->setMissionRequestId($miss_req_session->getId()); $new_itinerary->setMissionTypeId($miss_req_session->getMissionRequestTypeId()); $new_itinerary->setApointTime($miss_req_session->getApptDate()); $new_itinerary->setPassengerId($passenger->getId()); $new_itinerary->setRequesterId($requester->getId()); $new_itinerary->setFacility($miss_req_session->getFacilityName()); $new_itinerary->setLodging($miss_req_session->getLodgingName()); $new_itinerary->setOrginCity($miss_req_session->getOrginCity()); $new_itinerary->setOrginState($miss_req_session->getOrginState()); $new_itinerary->setDestCity($miss_req_session->getDestCity()); $new_itinerary->setDestState($miss_req_session->getDestState()); $new_itinerary->setWaiverNeed(0); $new_itinerary->setNeedMedicalRelease($miss_req_session->getPassMedical()); $new_itinerary->setComment($miss_req_session->getComment()); $new_itinerary->setAgencyId($agency->getId()); $new_itinerary->save(); } //set default Mission to Mission table //get Passenger //$passenger = PassengerPeer::getByPersonId($person->getId()); $misson = new Mission(); $misson->setRequestId($miss_req_session->getId()); $misson->setItineraryId($new_itinerary->getId()); $misson->setMissionTypeId($miss_req_session->getMissionRequestTypeId()); $misson->setDateRequested($miss_req_session->getRequesterDate()); if ($passenger) { $misson->setPassengerId($passenger->getId()); } if ($requester) { $misson->setRequesterId($requester->getId()); } if ($agency) { $misson->setAgencyId($agency->getId()); } // Farazi Mission 1 externa ID $c = new Criteria(); $c->add(MissionPeer::EXTERNAL_ID, NULL, Criteria::ISNOTNULL); $c->addDescendingOrderByColumn(MissionPeer::ID); $external_mission = MissionPeer::doSelectOne($c); $external_id = $external_mission->getExternalId(); $currentExternalId = $external_id + 1; $misson->setExternalId($currentExternalId); $misson->setApptDate($miss_req_session->getApptDate()); $misson->setFlightTime($miss_req_session->getFlightTime()); $misson->setMissionDate($miss_req_session->getMissionDate()); $misson->setMissionCount(1); $misson->save(); $missLeg = new MissionLeg(); $missLeg->setMissionId($misson->getId()); $missLeg->setLegNumber(1); if ($miss_req_session->getOrginState() && $miss_req_session->getOrginZipcode()) { //echo $miss_req_session->getOrginState().'-'.$miss_req_session->getOrginZipcode();die(); $fromairport = AirportPeer::getAirportByStateAndZipcode($miss_req_session->getOrginState(), $miss_req_session->getOrginZipcode()); if ($fromairport) { $missLeg->setFromAirportId($fromairport->getId()); } } if ($miss_req_session->getDestState() && $miss_req_session->getDestZipcode()) { //echo $miss_req_session->getDestState().'--'.$miss_req_session->getDestZipcode();die(); $toairport = AirportPeer::getAirportByStateAndZipcode($miss_req_session->getDestState(), $miss_req_session->getDestZipcode()); if ($toairport) { $missLeg->setToAirportId($toairport->getId()); } } //echo "oder";die(); $missLeg->setPassOnBoard(0); $missLeg->setWebCoordinated(0); $missLeg->setTransportation('air_mission'); $missLeg->save(); //end set Mission $this->getUser()->setFlash('success', 'New mission has successfully created!'); $miss_req_session->setProcessedDate(time()); $miss_req_session->save(); $this->getUser()->setAttribute('miss_req', null); //$this->redirect('miss_req'); //$this->getUser()->setFlash('success',$success); //$request->getParameter('back') $this->redirect('/itinerary/detail/' . $new_itinerary->getId()); }
private function processForm(sfWebRequest $request, MissionReportForm $form, MissionLeg $mission_leg) { $form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName())); if ($form->isValid()) { $mission_report = $form->save(); //if($request->getFiles())$form->getObject()->save(); $mission_leg->setMissionReportId($mission_report->getId()); $mission_leg->save(); $this->getUser()->setFlash('success', 'Mission Report have successfully saved!'); if ($this->getUser()->hasCredential(array('Administrator', 'Staff', 'Pilot', 'Coordinator', 'Volunteer'), false) == true) { return $this->redirect('mission_report/review'); } $this->redirect('mission_report/index'); } }
public function executeReverse(sfWebRequest $request) { #TODO #security if ($request->getParameter('id')) { $mission_leg = MissionLegPeer::retrieveByPK($request->getParameter('id')); $mission = MissionPeer::retrieveByPK($mission_leg->getMissionId()); if (isset($mission) && $mission->getItineraryId()) { $iti = $mission->getItinerary(); } if ($mission_leg->getTransportation() == 'air_mission') { if ($mission_leg->getReverseFrom() == $mission_leg->getId()) { //Non reversed leg $orgin = $mission_leg->getFromAirportId(); $dest = $mission_leg->getToAirportId(); $miss_id = $mission_leg->getMissionId(); $leg_id = $mission_leg->getId(); $mission_leg->setReverseFrom($mission_leg->getId()); $mission_leg->save(); $mission_leg = new MissionLeg(); $mission_leg->setMissionId($miss_id); $mission_leg->setReverseFrom($leg_id); $mission_leg->setLegNumber(MissionLegPeer::getMaxLegNumber($miss_id) + 1); $mission_leg->setFromAirportId($dest); $mission_leg->setToAirportId($orgin); $mission_leg->setTransportation('air_mission'); $mission_leg->save(); $this->getUser()->setFlash('success', 'Mission #' . $mission->getId() . '\'s legs have reversed.'); $this->redirect('@itinerary_detail?id=' . $iti->getId()); } } elseif ($mission_leg->getTransportation() == 'ground_mission') { if ($mission_leg->getGroundOrigin() && $mission_leg->getGroundDestination()) { //Reversed by type which saved : like patient..lodging.. if ($mission_leg->getGroundOrigin() == 'patient' && $mission_leg->getGroundDestination() == 'lodging') { $parent = $mission_leg->getGroundOrigin(); $lodging = $mission_leg->getGroundDestination(); $miss_id = $mission_leg->getMissionId(); $leg_id = $mission_leg->getId(); $mission_leg = new MissionLeg(); $mission_leg->setMissionId($miss_id); $mission_leg->setLegNumber(MissionLegPeer::getMaxLegNumber($miss_id) + 1); $mission_leg->setGroundOrigin($lodging); $mission_leg->setGroundDestination($parent); $mission_leg->setTransportation('ground_mission'); $mission_leg->setReverseFrom($leg_id); $mission_leg->save(); } if ($mission_leg->getGroundOrigin() == 'lodging' && $mission_leg->getGroundDestination() == 'facility') { $facility = $mission_leg->getGroundDestination(); $lodging = $mission_leg->getGroundOrigin(); $miss_id = $mission_leg->getMissionId(); $leg_id = $mission_leg->getId(); $mission_leg = new MissionLeg(); $mission_leg->setMissionId($miss_id); $mission_leg->setLegNumber(MissionLegPeer::getMaxLegNumber($miss_id) + 1); $mission_leg->setGroundDestination($lodging); $mission_leg->setGroundOrigin($facility); $mission_leg->setTransportation('ground_mission'); $mission_leg->setReverseFrom($leg_id); $mission_leg->save(); } $this->getUser()->setFlash('success', 'Missoin #' . $mission->getId() . '\'s legs have reversed.'); $this->redirect('@itinerary_detail?id=' . $iti->getId()); } } if ($mission_leg->getMissionId()) { $mission = MissionPeer::retrieveByPK($mission_leg->getMissionId()); } } }