/** * Add or edit Itinerary * CODE: itinerary_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->current_facility = ""; $this->current_lodging = ""; $this->current_facility_city = ""; $this->current_facility_state = ""; $this->current_facility_phone = ""; $this->current_facility_phone_comment = ""; $this->current_lodging_city = ""; $this->current_lodging_state = ""; $this->current_lodging_phone = ""; $this->current_lodging_phone_comment = ""; $this->mis2bn = false; $this->passenger_a = trim($this->getRequestParameter('passenger_a', '*')) == '' ? '*' : trim($this->getRequestParameter('passenger_a', '*')); $this->facility = trim($this->getRequestParameter('facility', '*')) == '' ? '*' : trim($this->getRequestParameter('facility', '*')); $this->lodging = trim($this->getRequestParameter('lodging', '*')) == '' ? '*' : trim($this->getRequestParameter('lodging', '*')); $this->requester_p = trim($this->getRequestParameter('requester_p', '*')) == '' ? '*' : trim($this->getRequestParameter('requester_p', '*')); $this->person_a = trim($this->getRequestParameter('person_a', '*')) == '' ? '*' : trim($this->getRequestParameter('person_a', '*')); $this->person_a_req = trim($this->getRequestParameter('person_a_req', '*')) == '' ? '*' : trim($this->getRequestParameter('person_a_req', '*')); $this->agency = trim($this->getRequestParameter('agency', '*')) == '' ? '*' : trim($this->getRequestParameter('agency', '*')); $this->hour = $request->getParameter('hour'); $this->minut = $request->getParameter('minut'); $this->b_weight = ""; $this->b_type = ""; $this->b_desc = ""; if ($request->getParameter('id')) { $itine = ItineraryPeer::retrieveByPk($request->getParameter('id')); $mis = MissionPeer::getMissionByItineraryId($request->getParameter('id'), 1); $mis2 = MissionPeer::getMissionByItineraryId($request->getParameter('id'), 2); if (isset($mis)) { $this->b_weight = $mis->getBWeight(); } if (isset($mis)) { $this->b_type = $mis->getBType(); } if (isset($mis)) { $this->b_desc = $mis->getBDesc(); } if ($mis2) { $this->mis2bn = true; } else { $mis2 = new Mission(); } //$pp = $itine->getPassenger(); if (isset($itine)) { $this->passenger_name = $itine->getPassenger()->getPerson()->getName(); $this->current_pass_id = $itine->getPassengerId(); $this->current_facility = $itine->getPassenger()->getFacilityName(); $this->current_lodging = $itine->getPassenger()->getLodgingName(); $this->companions = $itine->getPassenger()->getCompanions(); $this->selected_companions = array(); foreach ($mis->getMissionCompanions() as $mis_comp) { $this->selected_companions[] = $mis_comp->getCompanionId(); } //print_r($this->selected_companions); } $this->title = 'Edit Itinerary'; $success = 'Itinerary has been succesfuly edited!'; $editpassengerfac = PassengerDestPeer::getFacilityByPassengerId($this->current_pass_id, $this->current_facility); $editpassengerlod = PassengerDestPeer::getLodgingByPassengerId($this->current_pass_id, $this->current_lodging); if ($editpassengerfac) { $this->current_facility_city = $editpassengerfac->getFacilityCity(); $this->current_facility_state = $editpassengerfac->getFacilityState(); $this->current_facility_phone = $editpassengerfac->getFacPhone(); $this->current_facility_phone_comment = $editpassengerfac->getFacilityPhoneComment(); } if ($editpassengerlod) { $this->current_lodging_city = $editpassengerlod->getFacilityCity(); $this->current_lodging_state = $editpassengerlod->getFacilityState(); $this->current_lodging_phone = $editpassengerlod->getLodPhone(); $this->current_lodging_phone_comment = $editpassengerlod->getLodPhoneComment(); } if (isset($itine)) { $point_time = $itine->getPointTime(); if ($point_time) { $split_time = split(':', $point_time); $this->hour = $split_time[0]; $this->minut = $split_time[1]; } } } else { $itine = new Itinerary(); $mis = new Mission(); $mis2 = new Mission(); //$passIti = new Passenger(); //$itine->setWaiverNeed(1); //$itine->setNeedMedicalRelease(1); $this->title = 'Add Itinerary'; $success = 'Itinerary has been succesfully created!'; } $this->requester_a = ""; $this->itine = $itine; if ($request->hasParameter('requester_a')) { $this->requester_a = trim($this->getRequestParameter('requester_a', '*')) == '' ? '*' : trim($this->getRequestParameter('requester_a', '*')); } else { if (isset($itine)) { $requester = $itine->getRequester(); if ($requester) { $this->requester_a = $requester->getPerson()->getName(); if ($requester->getAgency()->getName()) { $this->requester_a .= ', ' . $requester->getAgency()->getName(); } if ($requester->getTitle()) { $this->requester_a .= ', ' . $requester->getTitle(); } } } } $this->form = new ItineraryForm($itine); $this->missionform1 = new MissionSmallForm($mis); $this->missionform2 = new MissionSmallForm($mis2); //$this->formI = new PassengerItiForm($passIti); $facandlod = new PassengerDest(); $this->form6 = new PassengerDestForm($facandlod); $passenger = new Passenger(); $this->passenger = $passenger; //passengers,requester uses when edit $c = new Criteria(); $c->setLimit(50); $this->all_passengers = PassengerPeer::doSelect($c); $this->all_requesters = RequesterPeer::doSelect($c); //Passenger Form1 $this->form1 = new PassengerPopUpForm1($passenger); $this->sub_title = 'Add New Passenger'; //Passenger Form 2 $this->form2 = new PassengerPopUpForm2(); //Passenger Form 3 $this->form3 = new PassengerPopUpForm3(); //Passenger Form 4 $this->form4 = new PassengerPopUpForm4(); //Passenger Form 5 $this->form5 = new PassengerPopUpForm5(); //Requester PopUp Form - Not Requester Passenger $this->persons = PersonPeer::getNotInRequester(); $requester = new Requester(); $this->form_req = new RequesterForm($requester); $companion = new Companion(); $this->form_com = new CompanionForm($companion); $this->req_referer = $request->getReferer(); $this->states = sfConfig::get('app_states'); $this->errors = array(); if ($request->isMethod('post')) { $this->form->bind($request->getParameter('itine')); $this->referer = $request->getReferer(); $k = $this->form->isValid(); if ($k && $request->getParameter('passenger_id') && $request->getParameter('requester_id')) { $itine->setPassengerId($request->getParameter('passenger_id')); $itine->setRequesterId($request->getParameter('requester_id')); $itine->setDateRequested($this->form->getValue('date_requested')); $itine->setMissionTypeId($this->form->getValue('mission_type_id')); $itine->setApointTime($this->form->getValue('apoint_time')); if ($request->getParameter('facility')) { $itine->setFacility($request->getParameter('facility')); } if ($request->getParameter('lodging')) { $itine->setLodging($request->getParameter('lodging')); } if ($request->getParameter('hour') && $request->getParameter('minut') && $request->getParameter('hour') != '---' && $request->getParameter('minut') != '---') { $itine->setPointTime($request->getParameter('hour') . ':' . $request->getParameter('minut') . ':00'); $itine->setTimetype($this->form->getValue('timetype')); } $passengerItine = PassengerPeer::retrieveByPK($request->getParameter('passenger_id')); if ($passengerItine instanceof Passenger) { $personpasItine = $passengerItine->getPerson(); $origin_city = $personpasItine->getCity(); $origin_state = $personpasItine->getState(); $dest_city = $passengerItine->getFacilityCity(); $dest_state = $passengerItine->getFacilityState(); //$passengerItine->setBWeight($request->getParameter('b_weight')); //$passengerItine->setBType($request->getParameter('b_type')); //$passengerItine->setBDesc($request->getParameter('b_desc')); $passengerItine->save(); //check } $itine->setOrginCity($origin_city ? $origin_city : ""); $itine->setOrginState($origin_state ? $origin_state : ""); $itine->setDestCity($dest_city ? $dest_city : ""); $itine->setDestState($dest_state ? $dest_state : ""); //$itine->setBWeight($this->form->getValue('b_weight')); //$itine->setBType($this->form->getValue('b_type')); //$itine->setBDesc($this->form->getValue('b_desc')); //$itine->setWaiverNeed($this->form->getValue('waiver_need')); //$itine->setNeedMedicalRelease($this->form->getValue('need_medical_release')); $itine->setComment($this->form->getValue('comment')); $newIti = false; if ($itine->isNew()) { $newIti = true; $itine->setCancelItinerary(1); } $itine->save(); $companions = (array) $request->getParameter('companions'); if (count($companions)) { $c = new Criteria(); $c->add(CompanionPeer::ID, $companions, Criteria::IN); $c->add(CompanionPeer::PASSENGER_ID, $request->getParameter('passenger_id')); if (CompanionPeer::doCount($c) != count($companions)) { $this->errors[] = 'Some companions not found'; } } $mis->setItineraryId($itine->getId()); $mis->setMissionTypeId($this->form->getValue('mission_type_id')); $mis->setDateRequested($this->form->getValue('date_requested')); $mis->setPassengerId($request->getParameter('passenger_id')); $mis->setRequesterId($request->getParameter('requester_id')); $mis->setMissionDate($request->getParameter('mis1')); $mis->setBWeight($request->getParameter('b_weight')); $mis->setBType($request->getParameter('b_type')); $mis->setBDesc($request->getParameter('b_desc')); /*if($itine->isNew()){ echo $countMission; exit; if(isset($countMission)){ foreach($misall as $misc){ $mLeg = MissionLegPeer::getAllMissionLegByMissionId($misc->getId()); $countLeg = MissionLegPeer::getMissionLegByMissionIdCount($misc->getId()); if(isset($countLeg)){ foreach($mLeg as $ml){ $ml->setCancelMissionLeg(1); $ml->save(); } } $misc->setCancelMission(1); $misc->save(); } } }*/ if ($request->getParameter('missionSelect') == 1) { $mis->setApptDate($request->getParameter('appdate1')); $mis->setApointTime($this->form->getValue('apoint_time')); $mis->setStart(1); } else { $mis->setStart(2); } if ($itine->getCancelItinerary() == 1) { $mis->setCancelMission(1); } if (!$request->getParameter('id')) { //Mission 1 externa ID $c = new Criteria(); $c->add(MissionPeer::EXTERNAL_ID, NULL, Criteria::ISNOTNULL); $c->addDescendingOrderByColumn(MissionPeer::EXTERNAL_ID); $external_mission = MissionPeer::doSelectOne($c); $external_id = $external_mission->getExternalId(); $currentExternalId = $external_id + 1; $mis->setExternalId($currentExternalId); // die(); } $mis->setMissionCount(1); $mis->save(); if ($request->getParameter('yes_no') == 1) { //Mission 2 externa ID if (!$request->getParameter('id')) { $c = new Criteria(); $c->add(MissionPeer::EXTERNAL_ID, NULL, Criteria::ISNOTNULL); $c->addDescendingOrderByColumn(MissionPeer::EXTERNAL_ID); $external_mission = MissionPeer::doSelectOne($c); $external_id = $external_mission->getExternalId(); $currentExternalId = $external_id + 1; $mis2->setExternalId($currentExternalId); // die(); } $mis2->setItineraryId($itine->getId()); $mis2->setMissionTypeId($this->form->getValue('mission_type_id')); $mis2->setDateRequested($this->form->getValue('date_requested')); $mis2->setPassengerId($request->getParameter('passenger_id')); $mis2->setRequesterId($request->getParameter('requester_id')); $mis2->setMissionDate($request->getParameter('mis2')); $mis2->setBWeight($request->getParameter('b_weight')); $mis2->setBType($request->getParameter('b_type')); $mis2->setBDesc($request->getParameter('b_desc')); $mis2->setCancelMission(1); if ($request->getParameter('missionSelect') == 1) { $mis2->setStart(2); } else { $mis2->setStart(1); } $mis2->setMissionCount(2); if ($itine->getCancelItinerary() == 1) { $mis2->setCancelMission(1); } $mis2->save(); } 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; } $this->selected_companions = $companions; } else { $c->clear(); $c->add(MissionCompanionPeer::MISSION_ID, $mis->getId()); MissionCompanionPeer::doDelete($c); foreach ($companions as $id) { $mission_companion = new MissionCompanion(); $mission_companion->setMissionId($mis->getId()); $mission_companion->setCompanionId($id); $mission_companion->save(); } } //die(); $this->selected_companions = $companions; //print_r($this->selected_companions); //die(); //$team_note = TeamNotePeer::retrieveByPK($id); //if(!$team_note) { //$team_note = new TeamNote(); //} //$team_note->setRoleId($id); //$team_note->setNote(strip_tags($note, sfConfig::get('app_allowed_note_tags'))); //$team_note->save(); $this->getUser()->setFlash('success', $success); //$request->getParameter('back') $this->redirect('/itinerary/detail/' . $itine->getId()); } else { if (!$request->getParameter('passenger_id')) { $this->need_pass = 1; } if (!$request->getParameter('requester_id')) { $this->need_requester_id = 1; } //if(!$request->getParameter('facility')){ //$this->need_facility= 1; //} //if(!$request->getParameter('lodging')){ //$this->need_lodging = 1; //} $this->referer = $request->getParameter('back'); } } else { # Set referer URL $this->referer = $request->getReferer() ? $request->getReferer() : '@itinerary'; } // Block from Add person if ($request->getParameter('add_pass') == 'yes') { $this->person = new Person(); $this->person_title = 'Step 1 : Add person'; if ($request->getParameter('camp_id')) { $this->camp_id = $request->getParameter('camp_id'); } $this->stepped = 1; } if ($request->getParameter('add_pass_iti') == 'yes') { $this->person = new Person(); $this->person_title = 'Step 1 : Add person'; $this->person_itine = 1; } if ($request->getParameter('add_cont') == 'yes') { $this->person = new Person(); $this->person_title = 'Step 1 : Add person'; $this->contact = 1; } if ($request->getParameter('id')) { $this->person = PersonPeer::retrieveByPK($request->getParameter('id')); $this->person_title = 'Edit person'; } else { $this->person = new Person(); $this->person_title = 'Add person'; } $companion = new Companion(); $this->form_a = new CompanionForm($companion); # Person Form $this->person_form = new PersonForm($this->person); $this->back = $request->getReferer(); //session $this->key = $request->getParameter('key'); if (!$this->key) { $this->key = rand(1000, 9999); } # Agency Form $agency = new Agency(); $this->agency_title = 'Add Agency'; $this->agency_form = new AgencyForm($agency); if (strstr($request->getReferer(), 'person/view')) { if ($this->person) { //session $referer_session = $this->getUser()->getAttribute('ref'); if (!$referer_session) { $referer_session = array($this->key => array()); $this->getUser()->setAttribute('ref', $referer_session); } elseif (!isset($referer_session[$this->key])) { $a = '@person_view?id=' . $this->person->getId(); $referer_session[$this->key] = array('referer' => $a); $this->getUser()->setAttribute('ref', $referer_session[$this->key]); } } } $this->person_referer = $request->getParameter('referer'); if ($request->isMethod('post')) { $this->person_referer = $request->getParameter('referer'); $this->person_form->bind($request->getParameter('per')); if ($this->person_form->isValid() && $this->person_form->getValue('first_name') && $this->person_form->getValue('last_name')) { $this->person->setTitle($this->person_form->getValue('title')); $this->person->setFirstName($this->person_form->getValue('first_name')); $this->person->setLastName($this->person_form->getValue('last_name')); $this->person->setAddress1($this->person_form->getValue('address1')); $this->person->setAddress2($this->person_form->getValue('address2')); $this->person->setCity($this->person_form->getValue('city')); $this->person->setCounty($this->person_form->getValue('county')); $this->person->setState($this->person_form->getValue('state')); $this->person->setCountry($this->person_form->getValue('country')); $this->person->setZipcode($this->person_form->getValue('zipcode')); $this->person->setDayPhone($this->person_form->getValue('day_phone')); $this->person->setDayComment($this->person_form->getValue('day_comment')); $this->person->setEveningPhone($this->person_form->getValue('evening_phone')); $this->person->setEveningComment($this->person_form->getValue('evening_comment')); $this->person->setMobilePhone($this->person_form->getValue('mobile_phone')); $this->person->setMobileComment($this->person_form->getValue('mobile_comment')); $this->person->setPagerPhone($this->person_form->getValue('paper_phone')); $this->person->setPagerComment($this->person_form->getValue('paper_comment')); $this->person->setOtherPhone($this->person_form->getValue('other_phone')); $this->person->setOtherComment($this->person_form->getValue('other_comment')); $this->person->setFaxPhone1($this->person_form->getValue('fax_phone1')); $this->person->setFaxComment1($this->person_form->getValue('fax_comment1')); $this->person->setAutoFax($this->person_form->getValue('auto_fax')); $this->person->setFaxPhone2($this->person_form->getValue('fax_phone2')); $this->person->setFaxComment2($this->person_form->getValue('fax_comment2')); $this->person->setEmail($this->person_form->getValue('email')); $this->person->setEmailTextOnly($this->person_form->getValue('email_text_only')); $this->person->setEmailBlocked($this->person_form->getValue('email_blocked')); $this->person->setComment($this->person_form->getValue('comment')); //$this->person->setBlockMailings($this->person_form->getValue('block_mailings')==0?null:$this->person_form->getValue('block_mailings')); $this->person->setBlockMailings($this->person_form->getValue('block_mailings')); $this->person->setNewsletter($this->person_form->getValue('newsletter')); $this->person->setGender($this->person_form->getValue('gender')); $this->person->setDeceased($this->person_form->getValue('deceased')); $this->person->setDeceasedComment($this->person_form->getValue('deceased_comment')); $this->person->setSecondaryEmail($this->person_form->getValue('secondary_email')); $this->person->setDeceasedDate($this->person_form->getValue('deceased_date')); $this->person->setMiddleName($this->person_form->getValue('middle_name')); $this->person->setSuffix($this->person_form->getValue('suffix')); $this->person->setNickname($this->person_form->getValue('nickname')); $this->person->setVeteran($this->person_form->getValue('veteran')); if ($this->person->isNew()) { $content = $this->getUser()->getName() . ' added new Person: ' . $this->person->getFirstName(); ActivityPeer::log($content); } $this->person->save(); if ($this->person->getId()) { $c = new Criteria(); $c->add(RoleNotificationPeer::MID, 5); $c->add(RoleNotificationPeer::NOTIFICATION, 1); $c->addOr(RoleNotificationPeer::NOTIFICATION, 3); $c->addJoin(RoleNotificationPeer::ROLE_ID, PersonRolePeer::ROLE_ID); $c->addJoin(PersonRolePeer::PERSON_ID, PersonPeer::ID); $personemail = PersonPeer::doSelect($c); $allemail = array(); $pindex = 0; foreach ($personemail as $getEmail) { if (strlen($getEmail->getEmail()) > 0) { $allemail[$pindex++] = $getEmail->getEmail(); } else { if (strlen($getEmail->getSecondaryEmail()) > 0) { $allemail[$pindex++] = $getEmail->getSecondaryEmail(); } } } //$allemail[$pindex]="*****@*****.**"; $email['subject'] = "New Person added"; $link = $request->getHost() . "/person/view/" . $this->person->getId(); $body = "A new person added in " . $request->getHost() . "\r\n" . $this->person->getFirstName() . " " . $this->person->getLastName() . "\r\n Profile Link: " . $link; $email['body'] = $body; $email['sender_email'] = "*****@*****.**"; $this->getComponent('mail', 'sendBulk', array('subject' => $email['subject'], 'recievers' => $allemail, 'sender' => $email['sender_email'], 'body' => $email['body'])); } if ($request->hasParameter('has')) { $data = ''; if ($request->getParameter('camp_id')) { $data = '&camp_id=' . $request->getParameter('camp_id'); } $this->getUser()->setFlash('success', 'Step 1 : New Person information has been successfully created! Now you can add passenger!'); $this->redirect('@passenger_create?add_pass='******'has') . '&p_id=' . $this->person->getId() . $data); } if ($request->hasParameter('iti')) { $this->getUser()->setFlash('success', 'Step 1 : New Person information has been successfully created! Now you can add passenger!'); $this->redirect('@passenger_create?add_pass_iti=' . $request->getParameter('iti') . '&p_id=' . $this->person->getId()); } if ($request->hasParameter('contact')) { $this->getUser()->setFlash('success', 'Step 1 : New Person information has been successfully created! Now you can add contact!'); $this->redirect('@contact_create?person_id=' . $this->person->getId()); } $this->getUser()->setFlash('success', 'Person information has been successfully saved!'); $last = $request->getParameter('back'); $referer_session = $this->getUser()->getAttribute('ref'); $back_url = '@person_view?id=' . $this->person->getId(); $this->redirect($back_url); } } else { # Set referer URL $this->person_referer = $request->getReferer() ? $request->getReferer() : '@person'; } }