public AirMaterial EditMaterialGroupMarkup(AirMaterial flightMaterial) { string groupCode = GlobalBaseUtility.GetGroupCode(); if (groupCode == null) { return flightMaterial; } // GroupMarkup groupMarkup = WebSiteService.GetGroupMarkup(groupCode); if (groupMarkup == null || groupMarkup.GroupCode != groupCode) { return flightMaterial; } if (flightMaterial.Profile.GetParam("FARE_TYPE").ToString() == "COMM") { //airMaterial = EditGroupMarkupAfterSelect(airMaterial, groupMarkup); flightMaterial = EditMaterialGroupMarkupWhenComm(flightMaterial); } else { flightMaterial = EditGroupMarkup(flightMaterial, groupMarkup); } return flightMaterial; }
public void AddFlight(AirMaterial flight, MatrixStopType matrixStopType) { switch (matrixStopType) { case MatrixStopType.ZeroStop: _zeroStopFlightList.Add(flight); break; case MatrixStopType.OneStop: _oneStopFlightList.Add(flight); break; case MatrixStopType.MoreThanTwoStop: _moreThanTwoStopFlightList.Add(flight); break; case MatrixStopType.All: throw new Exception("You must choose the other type to Add a Flight."); break; } }
private bool IsPriceEqual(AirMaterial currentFlight, AirMaterial preFlight) { return currentFlight.AdultBaseFare + currentFlight.AdultMarkup + currentFlight.AdultTax == preFlight.AdultBaseFare + preFlight.AdultMarkup + preFlight.AdultTax; }
private void GetAirBookingCondition(ref IList<Passenger> passengers) { AirMaterial airMaterial = new AirMaterial(SelectedAirMerchandise.Profile); airMaterial.SetAdultBaseFare(SelectedAirMerchandise.AdultBaseFare); airMaterial.SetChildBaseFare(SelectedAirMerchandise.ChildBaseFare); //ADD PengZhaohui TERMS.Common.Markup markup = new TERMS.Common.Markup(TERMS.Common.PassengerType.Adult, new TERMS.Common.FareAmount(SelectedAirMerchandise.AdultMarkup)); markup.SetAmount(TERMS.Common.PassengerType.Child, new TERMS.Common.FareAmount(SelectedAirMerchandise.ChildMarkup)); airMaterial.Price.SetMarkup(markup); //airMaterial.Price.AddMarkup(new TERMS.Common.Markup(TERMS.Common.PassengerType.Child, new TERMS.Common.FareAmount(SelectedAirMerchandise.ChildMarkup))); //ADD END if (Request["rdDept"] != null) { //IList<Terms.Product.Domain.ComponentGroupItem> componentGroupItems = ((AirComponentGroup)((ComponentGroup)CurrentSession.SecondSearchResults[Index.ToString()]).Items[0].Component).Items; //airBooking.AdultNumber =((AirProfile) Group.Profile).AdultNumber; //airBooking.ChildNumber = ((AirProfile)Group.Profile).ChildNumber; //airBooking.IsMexico = CurrentSession.SearchCondition.IsMexico; //airBooking.FareType = ((AirProfile)Group.Profile).FareType.ToUpper().Equals("COMM") ? FlightFareType.COMM : FlightFareType.NET; //airBooking.AdultAirFare.SetConsolidatorBase(0, Group.AdultBaseFare, airBooking.FareType); //airBooking.AdultAirFare.SetConsolidatorMarkup(Group.AdultMarkup, airBooking.FareType == FlightFareType.COMM); //airBooking.ChildAirFare.SetConsolidatorBase(0, Group.ChildBaseFare, airBooking.FareType); //airBooking.ChildAirFare.SetConsolidatorMarkup(Group.ChildMarkup, airBooking.FareType == FlightFareType.COMM); //componentGroup.SetAdultConsolidatorBase(0, componentGroup.AdultBaseFare); //componentGroup.SetChildConsolidatorBase(0, componentGroup.ChildBaseFare); //componentGroup.SetConsolidatorAdultMarkup(componentGroup.AdultMarkup, componentGroup.FareType == FlightFareType.COMM); //componentGroup.SetConsolidatorChildMarkup(componentGroup.ChildMarkup, componentGroup.FareType == FlightFareType.COMM); //AirTrip airTrip = ((Terms.Product.Domain.AirMaterial)componentGroupItems[Convert.ToInt32(Request["rdDept"].ToString())].Component).AirTrip; //airBooking.Trips.Add(airTrip); //AirComponentGroup gourp = new AirComponentGroup((AirProfile)((ComponentGroup)CurrentSession.SecondSearchResults[Index.ToString()]).Profile); //gourp.Items.Add(componentGroupItems[Convert.ToInt32(Request["rdDept"].ToString())]); AirMaterial depAirMaterial =(AirMaterial) ((AirMerchandise)SelectedAirMerchandise.Items[0]).Items[Convert.ToInt32(Request["rdDept"].ToString())]; airMaterial.AirTrip.SubTrips.Add(depAirMaterial.AirTrip.SubTrips[0]); } if (Request["rdRtn"] != null && !((AirSearchCondition)this.Transaction.CurrentSearchConditions).FlightType.ToUpper().Equals("ONEWAY")) { //IList<Terms.Product.Domain.ComponentGroupItem> componentGroupItems = ((AirComponentGroup)((ComponentGroup)CurrentSession.SecondSearchResults[Index.ToString()]).Items[1].Component).Items; //AirTrip airTrip = ((Terms.Product.Domain.AirMaterial)componentGroupItems[Convert.ToInt32(Request["rdRtn"].ToString())].Component).AirTrip; //airBooking.Trips.Add(airTrip); //AirComponentGroup gourp = new AirComponentGroup((AirProfile)((ComponentGroup)CurrentSession.SecondSearchResults[Index.ToString()]).Profile); //gourp.Items.Add(componentGroupItems[Convert.ToInt32(Request["rdRtn"].ToString())]); //componentGroup.Items.Add(new ComponentGroupItem(gourp)); AirMaterial depAirMaterial = (AirMaterial)((AirMerchandise)SelectedAirMerchandise.Items[1]).Items[Convert.ToInt32(Request["rdRtn"].ToString())]; airMaterial.AirTrip.SubTrips.Add(depAirMaterial.AirTrip.SubTrips[0]); } //ComponentGroupItem componentGroupItem = new ComponentGroupItem(componentGroup); //ComponentGroup newComponentGroup = new ComponentGroup(((ComponentGroup)PackageMerchandise.ComponentGroup.Items[0].Component).Profile); //newComponentGroup.Items.Add(componentGroupItem); //SaleMerchandise saleMerchandise = new SaleMerchandise(); //saleMerchandise.ComponentGroup = newComponentGroup; //this.Transaction.CurrentTransactionObject.Items.Clear(); //this.Transaction.CurrentTransactionObject.AddItem(saleMerchandise); AirOrderItem airOrderItem = new AirOrderItem(airMaterial); this.Transaction.CurrentTransactionObject.Items.Clear(); this.Transaction.CurrentTransactionObject.AddItem(airOrderItem); for (int i = 0; i < Convert.ToInt32(airMaterial.Profile.GetParam("ADULT_NUMBER")); i++) { Passenger passenger = new Passenger(ProductConst.PASSFIRSTNAME, ProductConst.ADTPASSLASTNAME,ProductConst.PASSMIDDLENAME, TERMS.Common.PassengerType.Adult); passengers.Add(passenger); } for (int i = 0; i < Convert.ToInt32(airMaterial.Profile.GetParam("CHILD_NUMBER")); i++) { Passenger passenger = new Passenger(ProductConst.PASSFIRSTNAME, ProductConst.CHDPASSLASTNAME, ProductConst.PASSMIDDLENAME, TERMS.Common.PassengerType.Child); passengers.Add(passenger); } }
private bool IsNeedCollapse(AirMaterial currentFlight, AirMaterial preFlight) { return IsAirlineEqual(currentFlight, preFlight) && IsPriceEqual(currentFlight, preFlight); }
private void GetAirBookingCondition(AirMaterial airMaterial, ref IList<Passenger> passengers) { for (int i = 0; i < Convert.ToInt32(airMaterial.Profile.GetParam("ADULT_NUMBER")); i++) { Passenger passenger = new Passenger(ProductConst.PASSFIRSTNAME, ProductConst.ADTPASSLASTNAME, ProductConst.PASSMIDDLENAME, TERMS.Common.PassengerType.Adult); passengers.Add(passenger); } for (int i = 0; i < Convert.ToInt32(airMaterial.Profile.GetParam("CHILD_NUMBER")); i++) { Passenger passenger = new Passenger(ProductConst.PASSFIRSTNAME, ProductConst.CHDPASSLASTNAME, ProductConst.PASSMIDDLENAME, TERMS.Common.PassengerType.Child); passengers.Add(passenger); } }
private string GetDuration(AirMaterial flight) { string duration = string.Empty; TimeSpan flightTime = TimeSpan.Zero; TimeSpan connectionTime = TimeSpan.Zero; AirLineMatricsManager airManager = new AirLineMatricsManager(); flightTime = airManager.GetFlightTime(flight); connectionTime = airManager.GetDuration(flight); return String.Format("{0} ({1}", airManager.FormatTimeSpan(flightTime), airManager.FormatTimeSpan(connectionTime)); }
private AirMaterial EditGroupMarkup(AirMaterial currentAirMaterial, GroupMarkup groupMarkup) { //����Ѿ��ӹ������ء� if (currentAirMaterial.Profile.GetParam(FLAG_REFERENCE_MARKUP_EDITED) != null && (bool)currentAirMaterial.Profile.GetParam(FLAG_REFERENCE_MARKUP_EDITED)) { return currentAirMaterial; } //����Markup�Ѿ��ӹ� currentAirMaterial.Profile.SetParam(FLAG_REFERENCE_MARKUP_EDITED,true); TERMS.Common.Markup newMarkup = new TERMS.Common.Markup(); //AdultMarkup //������� if (groupMarkup.AdultMarkup.MarkupType == ConfigurationConst.GroupMarkType.Money) { newMarkup = new TERMS.Common.Markup(TERMS.Common.PassengerType.Adult, new TERMS.Common.FareAmount(groupMarkup.AdultMarkup.Markup)); } //�ٷֱ� else if (groupMarkup.AdultMarkup.MarkupType == ConfigurationConst.GroupMarkType.Percent) { newMarkup = new TERMS.Common.Markup(TERMS.Common.PassengerType.Adult, new TERMS.Common.FareAmount(currentAirMaterial.AdultBaseFare * (groupMarkup.AdultMarkup.Markup))); } //ChildMarkup //������� if (((int)decimal.Parse(currentAirMaterial.ChildBaseFare.ToString())) != 0) { if (groupMarkup.ChildMarkup.MarkupType == ConfigurationConst.GroupMarkType.Money) { newMarkup.SetAmount(TERMS.Common.PassengerType.Child,new TERMS.Common.FareAmount(groupMarkup.ChildMarkup.Markup)); } //�ٷֱ� else if (groupMarkup.ChildMarkup.MarkupType == ConfigurationConst.GroupMarkType.Percent) { newMarkup.SetAmount(TERMS.Common.PassengerType.Child, new TERMS.Common.FareAmount(currentAirMaterial.ChildBaseFare * (groupMarkup.ChildMarkup.Markup))); } } currentAirMaterial.Price.AddMarkup(newMarkup); return currentAirMaterial; }
private AirMaterial EditMaterialGroupMarkupWhenComm(AirMaterial flightMaterial) { string groupCode = GlobalBaseUtility.GetGroupCode(); if (groupCode == null) { return flightMaterial; } // GroupMarkup groupMarkup = WebSiteService.GetGroupMarkup(groupCode); if (groupMarkup == null || groupMarkup.GroupCode != groupCode) { return flightMaterial; } flightMaterial = EditGroupMarkupWhenComm(flightMaterial, groupMarkup); return flightMaterial; }
private void GetAirBookingCondition(ref IList<TERMS.Business.Centers.SalesCenter.Passenger> passengers, AirMaterial airMaterial) { //AirMaterial newAirMaterial = new AirMaterial(airMaterial.Profile); //newAirMaterial.SetAdultBaseFare(airMaterial.AdultBaseFare); //newAirMaterial.SetChildBaseFare(airMaterial.ChildBaseFare); //TERMS.Common.Markup newMarkup = new TERMS.Common.Markup(); //newMarkup = new TERMS.Common.Markup(TERMS.Common.PassengerType.Adult, new TERMS.Common.FareAmount(airMaterial.AdultMarkup)); //newMarkup.SetAmount(TERMS.Common.PassengerType.Child, new TERMS.Common.FareAmount(airMaterial.ChildMarkup)); //newAirMaterial.Price.AddMarkup(newMarkup); //ADD PengZhaohui //newAirMaterial.SetAdultMarkup(airMaterial.AdultMarkup); //newAirMaterial.SetChildMarkup(airMaterial.ChildMarkup); //ADD END //int tourIndex = Convert.ToInt32(Request["selectedTour"].ToString()); //AirMaterial airMaterial = (AirMaterial)airMaterial.Items[tourIndex]; //newAirMaterial.AirTrip = airMaterial.AirTrip; AirOrderItem airOrderItem = new AirOrderItem(airMaterial); this.Transaction.CurrentTransactionObject.Items.Clear(); this.Transaction.CurrentTransactionObject.AddItem(airOrderItem); SetPreBookingPassengers(airMaterial, ref passengers); //for (int i = 0; i < Convert.ToInt32(newAirMaterial.Profile.GetParam("ADULT_NUMBER")); i++) //{ // TERMS.Business.Centers.SalesCenter.Passenger passenger = new TERMS.Business.Centers.SalesCenter.Passenger(ProductConst.PASSFIRSTNAME, ProductConst.ADTPASSLASTNAME, ProductConst.PASSMIDDLENAME, TERMS.Common.PassengerType.Adult); // passengers.Add(passenger); //} //for (int i = 0; i < Convert.ToInt32(newAirMaterial.Profile.GetParam("CHILD_NUMBER")); i++) //{ // TERMS.Business.Centers.SalesCenter.Passenger passenger = new TERMS.Business.Centers.SalesCenter.Passenger(ProductConst.PASSFIRSTNAME, ProductConst.CHDPASSLASTNAME, ProductConst.PASSMIDDLENAME, TERMS.Common.PassengerType.Child); // passengers.Add(passenger); //} }
private List<Component> GetFlightDetailList(List<Component> flightList) { SubAirTrip subAirTrip = new SubAirTrip(); List<Component> flightDetailList = new List<Component>(); List<Component> selectContactFlightList = new List<Component>(); List<Component> availableFlightList = new List<Component>(); //����flightList,�����еĺ�����Ϣ��ӳ�һ��list for (int flightIndex = 0; flightIndex < flightList.Count; flightIndex++) { AirMerchandise flight = (AirMerchandise)flightList[flightIndex]; //for(int flightItemindex=0; index < flight.Items.Count; index++) //{ // AirMaterial tempairMaterial = (AirMaterial)flight.Items[flightItemindex]; // AirMaterial airMaterial = (AirMaterial)flight.Items[flightItemindex]; // for(int subairtripIndex = 0; subairtripIndex<(airMaterial.AirTrip.SubTrips.Count; subairtripIndex++) // { // SubAirTrip subAirTrip = ((AirMaterial)flight.Items[flightItemindex]).AirTrip.SubTrips[subairtripIndex]; // tempairMaterial = airMaterial. // } //} if (flight.Items != null) { for (int mIndex = 0; mIndex < flight.Items.Count; mIndex++) { ((AirMaterial)flight.Items[mIndex]).Profile = flight.Profile; ((AirMaterial)flight.Items[mIndex]).Profile.SetParam(Key_FlightMerchandisIndex, flightIndex); } flightDetailList.AddRange(flight.Items); availableFlightList.AddRange(flight.Items); } else { AirMaterial airMaterial = new AirMaterial((AirProfile)flight.Profile); CopyMarkup(flight, airMaterial); airMaterial.Profile.SetParam(Key_FlightMerchandisIndex, flightIndex); flight.Add(airMaterial); flightDetailList.AddRange(flight.Items); selectContactFlightList.AddRange(flight.Items); } } //����AvailableFlightList AvailableFlightList = availableFlightList; //����SelectContactFlightList SelectContactFlightList = selectContactFlightList; return flightDetailList; }
private AirMaterial EditFare(AirMaterial airMaterial) { int adult = ((AirSearchCondition)Utility.Transaction.CurrentSearchConditions).GetPassengerNumber(TERMS.Common.PassengerType.Adult); //������ int child = ((AirSearchCondition)Utility.Transaction.CurrentSearchConditions).GetPassengerNumber(TERMS.Common.PassengerType.Child); //С���� decimal AirTotalPrice = 0.0m; //�ܼ� decimal adultTax = 0.0m; //���˵�˰ decimal childTax = 0.0m; //С����˰ decimal adultPrice = 0.0m; //���˺�˰���� decimal childPrice = 0.0m; //С����˰���� decimal adultMarkup = 0.0m; decimal childMarkup = 0.0m; decimal adultBasePrice = 0.0m; //���˲���˰���� decimal childBasePrice = 0.0m; //С������˰���� if (airMaterial.Profile.GetParam("FARE_TYPE").ToString() == "COMM" || airMaterial.Profile.GetParam("FARE_TYPE").ToString() == "COMMNEW" || airMaterial.Profile.GetParam("FARE_TYPE").ToString() == "NET") { adultTax = airMaterial.Profile.GetParam("ADULT_TAX") == null ? adultTax : Convert.ToDecimal(airMaterial.Profile.GetParam("ADULT_TAX")); childTax = airMaterial.Profile.GetParam("CHILD_TAX") == null ? childTax : Convert.ToDecimal(airMaterial.Profile.GetParam("CHILD_TAX")); airMaterial.SetAdultTax(adultTax); airMaterial.SetChildTax(childTax); adultBasePrice = airMaterial.Profile.GetParam("PUBLISHED_ADULT_FARE") == null ? adultBasePrice : Convert.ToDecimal(airMaterial.Profile.GetParam("PUBLISHED_ADULT_FARE")); childBasePrice = airMaterial.Profile.GetParam("PUBLISHED_CHILD_FARE") == null ? childBasePrice : Convert.ToDecimal(airMaterial.Profile.GetParam("PUBLISHED_CHILD_FARE")); int commision = airMaterial.Profile.GetParam("COMMISION") == null ? 0 : Convert.ToInt32(airMaterial.Profile.GetParam("COMMISION")); if (airMaterial.Profile.GetParam("FARE_TYPE").ToString() == "NET") commision = 0; if (child > 0) { if (airMaterial.Profile.GetParam("FARE_TYPE").ToString() == "NET") { childPrice = airMaterial.ChildBaseFare + airMaterial.ChildMarkup + childTax; } else { if (Convert.ToBoolean(airMaterial.Profile.GetParam("ISWEBFARE"))) { childPrice = childBasePrice + airMaterial.ChildMarkup + childTax; airMaterial.SetChildBaseFare(childBasePrice); airMaterial.GetPrice().SetServiceFee(TERMS.Common.PassengerType.Child, new FareAmount(airMaterial.ChildMarkup, new Currency(), new Currency())); } else { decimal childFinalBasePrice = decimal.Ceiling(childBasePrice * (100 - commision) / 100); airMaterial.SetChildBaseFare(childFinalBasePrice); childPrice = childFinalBasePrice + airMaterial.ChildMarkup + childTax; } } } if (adult > 0) { if (airMaterial.Profile.GetParam("FARE_TYPE").ToString() == "NET") { adultPrice = airMaterial.AdultBaseFare + airMaterial.AdultMarkup + adultTax; } else { if (Convert.ToBoolean(airMaterial.Profile.GetParam("ISWEBFARE"))) { adultPrice = adultBasePrice + airMaterial.AdultMarkup + adultTax; airMaterial.SetAdultBaseFare(adultBasePrice); airMaterial.GetPrice().SetServiceFee(TERMS.Common.PassengerType.Adult, new FareAmount(airMaterial.AdultMarkup, new Currency(), new Currency())); } else { decimal adultFinalBasePrice = decimal.Ceiling(adultBasePrice * (100 - commision) / 100); airMaterial.SetAdultBaseFare(adultFinalBasePrice); adultPrice = adultFinalBasePrice + airMaterial.AdultMarkup + adultTax; } } } } return airMaterial; }
private void EditTaxTotalStyle(DataListItem dataListItem, AirMaterial flight) { //TaxTotal Label lblAdultTaxTotal = (Label)dataListItem.FindControl("lblAdultTaxTotal"); Label lblChildTaxTotal = (Label)dataListItem.FindControl("lblChildTaxTotal"); if (flight.AdultTax == 0) { lblAdultTaxTotal.Visible = false; lblChildTaxTotal.Visible = false; } }
private void DoAvailableProcess(int flightdetailIndex, AirMaterial tGoup) { OperaterAdvice.DoAdvice(Terms.Configuration.Utility.ConfigurationConst.OperateType.ClickAvalibale, this); CurrentSession.OriginalIndex = flightdetailIndex; FlightMerchandiseManager flightMerchandiseManager = new FlightMerchandiseManager(); AirMaterial airMaterial = tGoup; decimal originalPrice = GetTotalPrice(airMaterial); decimal newPrice = 0; bool bclError = false; //if (tGoup.Profile.GetParam("FARE_TYPE").Equals(FlightFareType.SR.ToString()) || tGoup.Profile.GetParam("FARE_TYPE").Equals("COMMNEW") || tGoup.Profile.GetParam("FARE_TYPE").Equals(FlightFareType.PUB.ToString())) //{ // //AirMaterial airMaterial = tGoup; // AirOrderItem airOrderItem = new AirOrderItem(airMaterial); // this.Transaction.CurrentTransactionObject.Items.Clear(); // this.Transaction.CurrentTransactionObject.AddItem(airOrderItem); // IList<TERMS.Business.Centers.SalesCenter.Passenger> passengers = new List<TERMS.Business.Centers.SalesCenter.Passenger>(); // SetPreBookingPassengers(airMaterial, ref passengers); // try // { // AirService.PreBookAirline2(ref airMaterial, passengers); // } // catch (Exception ex) // { // DoErrorProcess(ex); // log.Error(ex.Message, ex); // bclError = true; // } // if (bclError) // this.Err("", "Booking failed", "NewStep2.aspx"); // FlightMerchandiseManager flightMerchandiseManager = new FlightMerchandiseManager(); // airMaterial = flightMerchandiseManager.EditMaterialGroupMarkup(airMaterial); //} //else //{ // IList<TERMS.Business.Centers.SalesCenter.Passenger> passengers = new List<TERMS.Business.Centers.SalesCenter.Passenger>(); // try // { // GetAirBookingCondition(ref passengers, tGoup); // } // catch (Exception E) // { // log.Error(E.Message, E); // } // //AirMaterial airMaterial = tGoup; // bool bclError = false; // try // { // string[] requestXML = new string[3]; // //ws.PreBookAirline(ref group, SearchArray, requestXML); // AirService.PreBookAirline2(ref airMaterial, passengers); // FlightMerchandiseManager flightMerchandiseManager = new FlightMerchandiseManager(); // airMaterial = flightMerchandiseManager.EditMaterialGroupMarkup(airMaterial); // } // catch (Exception ex) // { // DoErrorProcess(ex); // log.Error(ex.Message, ex); // bclError = true; // } // if (bclError) // this.Err("", "Booking failed", "NewStep2.aspx"); //} try { IList<TERMS.Business.Centers.SalesCenter.Passenger> passengers = new List<TERMS.Business.Centers.SalesCenter.Passenger>(); if (tGoup.Profile.GetParam("FARE_TYPE").Equals(FlightFareType.SR.ToString()) || tGoup.Profile.GetParam("FARE_TYPE").Equals("COMMNEW") || tGoup.Profile.GetParam("FARE_TYPE").Equals(FlightFareType.PUB.ToString())) { AirOrderItem airOrderItem = new AirOrderItem(airMaterial); this.Transaction.CurrentTransactionObject.Items.Clear(); this.Transaction.CurrentTransactionObject.AddItem(airOrderItem); SetPreBookingPassengers(airMaterial, ref passengers); } else { try { GetAirBookingCondition(ref passengers, tGoup); } catch (Exception E) { log.Error(E.Message, E); } } AirService.PreBookAirline2(ref airMaterial, passengers); airMaterial = flightMerchandiseManager.EditMaterialGroupMarkup(airMaterial); } catch (Exception ex) { DoErrorProcess(ex); log.Error(ex.Message, ex); bclError = true; DisplayCannotbook(); return; } if (bclError) { DisplayCannotbook(); return; } if (Convert.ToBoolean(tGoup.Profile.GetParam("ISWEBFARE"))) { tGoup.FareType = AirFareType.Published; Price price = new Price(); price.SetAmount(TERMS.Common.PassengerType.Adult,new FareAmount(Convert.ToDecimal(tGoup.Profile.GetParam("PUBLISHED_ADULT_FARE")))); price.SetAmount(TERMS.Common.PassengerType.Child,new FareAmount(Convert.ToDecimal(tGoup.Profile.GetParam("PUBLISHED_CHILD_FARE")))); Markup mk = FlightMerchandise.AirProduct.GetMarkup(tGoup); price.AddMarkup(mk); tGoup.SetPrice(price); } // //if (IsPriceChanged()) airMaterial = EditFare(airMaterial); newPrice = GetTotalPrice(airMaterial); SelectAirMaterial = tGoup; //���õ�ǰҳ�� SetCurrentPageNumber(); SetCurrentTabFlag(); if (isClickAvailable == true && IsChangeNotLess(newPrice, originalPrice)) { OperaterAdvice.DoAdvice(Terms.Configuration.Utility.ConfigurationConst.OperateType.IBE_AvailableFareChanged, this); ScriptManager.RegisterStartupScript(upSelect, upSelect.GetType(), "alt", "<script>$('ctl00_MainContent_pnlSelectProcessing').style.display ='none';</script>", false); Label lblCurrentMsg = null; Panel pnlCurrentComfirm = null; if (isClickAvailable == false) { lblCurrentMsg = lblSoldOutMsg_Select; pnlCurrentComfirm = pnlComfirm_Select; } else { lblCurrentMsg = lblSoldOutMsg; pnlCurrentComfirm = pnlComfirm; } if (IsLittleChanged(originalPrice, newPrice)) { lblCurrentMsg.Text = string.Format(LittleChangedSoldoutMsg, ((decimal)(newPrice - originalPrice)).ToString("#,###.##")); } else { lblCurrentMsg.Text = string.Format(LargeChangedSoldoutMsg, ((decimal)(newPrice - originalPrice)).ToString("#,###.##")); } pnlCurrentComfirm.Attributes.Add("style", "display:block;"); } else { ScriptManager.RegisterStartupScript(upSelect, upSelect.GetType(), "alt", "<script>$('ctl00_MainContent_pnlSelectProcessing').style.display ='none';document.getElementById('maskDIV').style.display = 'none';</script>", false); Response.Redirect("Step3_confirm.aspx?ConditionID=" + Request.Params["ConditionID"]); } //Response.Redirect("Step3_bulk.aspx"); }
private void CreateFlightDetailList() { AirMerchandise componentGroup = FlightMerchandise; List<Component> flightList = GteReBindContactAgentList(componentGroup.Items); SubAirTrip subAirTrip = new SubAirTrip(); List<Component> flightDetailList = new List<Component>(); List<Component> selectContactFlightList = new List<Component>(); List<Component> availableFlightList = new List<Component>(); //����flightList,�����еĺ�����Ϣ��ӳ�һ��list for (int flightIndex = 0; flightIndex < flightList.Count; flightIndex++) { AirMerchandise flight = (AirMerchandise)flightList[flightIndex]; //for(int flightItemindex=0; index < flight.Items.Count; index++) //{ // AirMaterial tempairMaterial = (AirMaterial)flight.Items[flightItemindex]; // AirMaterial airMaterial = (AirMaterial)flight.Items[flightItemindex]; // for(int subairtripIndex = 0; subairtripIndex<(airMaterial.AirTrip.SubTrips.Count; subairtripIndex++) // { // SubAirTrip subAirTrip = ((AirMaterial)flight.Items[flightItemindex]).AirTrip.SubTrips[subairtripIndex]; // tempairMaterial = airMaterial. // } //} if (flight.Items != null) { for (int mIndex = 0; mIndex < flight.Items.Count; mIndex++) { AirMaterial currentFlight = ((AirMaterial)flight.Items[mIndex]); currentFlight.Profile = flight.Profile; currentFlight.Profile.SetParam(Key_FlightMerchandisIndex, flightIndex); if (IsFlightAvailable(currentFlight)) { availableFlightList.Add(currentFlight); } else { selectContactFlightList.Add(currentFlight); } flightDetailList.Add(currentFlight); } //flightDetailList.AddRange(flight.Items); //availableFlightList.AddRange(flight.Items); } else { AirMaterial airMaterial = new AirMaterial((AirProfile)flight.Profile); CopyMarkup(flight, airMaterial); airMaterial.Profile.SetParam(Key_FlightMerchandisIndex, flightIndex); //flight.Add(airMaterial); flightDetailList.Add(airMaterial); selectContactFlightList.Add(airMaterial); } } //����AvailableFlightList availableFlightList = new AirLineMatricsManager().GetSortedByPriceFlightList(availableFlightList); TotalAvailableFlightList = availableFlightList; AvailableFlightList = availableFlightList; //����SelectContactFlightList TotalSelectContactFlightList = selectContactFlightList; SelectContactFlightList = selectContactFlightList; TotalFlightList = flightDetailList; }
private void CopyMarkup(AirMerchandise copyFrom, AirMaterial copyTo) { //TERMS.Common.Markup newMarkup = new TERMS.Common.Markup(); //newMarkup = new TERMS.Common.Markup(TERMS.Common.PassengerType.Adult, new TERMS.Common.FareAmount(copyFrom.AdultMarkup)); //newMarkup.SetAmount(TERMS.Common.PassengerType.Child, new TERMS.Common.FareAmount(copyFrom.ChildMarkup)); //copyTo.Price.AddMarkup(newMarkup); //copyTo.SetAdultBaseFare(copyFrom.AdultBaseFare); //copyTo.SetAdultTax(copyFrom.AdultTax); //copyTo.SetChildBaseFare(copyFrom.ChildBaseFare); //copyTo.SetChildTax(copyFrom.ChildTax); if (copyFrom != null && copyFrom.Price != null && copyTo != null ) { copyTo.Price = (Price)copyFrom.Price.Clone(); } }
private void SetImageToolTip(System.Web.UI.WebControls.Image image, AirMaterial flight) { //if (IsDemo()) //{ // image.ToolTip = ((AirProfile)flight.Profile).Airlines[0].Code + " " + flight.Profile.GetParam("FARE_TYPE").ToString(); //} //else //{ image.ToolTip = string.Empty; //} }
private int GetFlightInfoListCount(AirMaterial currentFlight) { int flightInfoListCount = 0; for (int subTripIndex = 0; subTripIndex < currentFlight.AirTrip.SubTrips.Count; subTripIndex++) { flightInfoListCount += currentFlight.AirTrip.SubTrips[subTripIndex].Flights.Count; } return flightInfoListCount; }
private void SetPreBookingPassengers(AirMaterial airMaterial, ref IList<TERMS.Business.Centers.SalesCenter.Passenger> passengers) { for (int i = 0; i < Convert.ToInt32(airMaterial.Profile.GetParam("ADULT_NUMBER")); i++) { TERMS.Business.Centers.SalesCenter.Passenger passenger = new TERMS.Business.Centers.SalesCenter.Passenger(ProductConst.PASSFIRSTNAME, ProductConst.ADTPASSLASTNAME, ProductConst.PASSMIDDLENAME, TERMS.Common.PassengerType.Adult); passengers.Add(passenger); } for (int i = 0; i < Convert.ToInt32(airMaterial.Profile.GetParam("CHILD_NUMBER")); i++) { TERMS.Business.Centers.SalesCenter.Passenger passenger = new TERMS.Business.Centers.SalesCenter.Passenger(ProductConst.PASSFIRSTNAME, ProductConst.CHDPASSLASTNAME, ProductConst.PASSMIDDLENAME, TERMS.Common.PassengerType.Child); passengers.Add(passenger); } }
private void SetTotalDurationAndDistance(AirMaterial flight) { lblTotalDistance.Text = GetDistance(flight); lblTotalDuration.Text = GetDuration(flight); if (lblTotalDistance.Text.Trim() == string.Empty) { lblTotalDistanceMsg.Visible = false; } }
private AirMaterial EditGroupMarkupWhenComm(AirMaterial currentAirMaterial, GroupMarkup groupMarkup) { //����Ѿ��ӹ������ء� if (currentAirMaterial.Profile.GetParam(FLAG_REFERENCE_MARKUP_EDITED) != null && (bool)currentAirMaterial.Profile.GetParam(FLAG_REFERENCE_MARKUP_EDITED)) { return currentAirMaterial; } //����Markup�Ѿ��ӹ� currentAirMaterial.Profile.SetParam(FLAG_REFERENCE_MARKUP_EDITED, true); decimal adultBasePrice = 0.0m; //���˲���˰���� decimal childBasePrice = 0.0m; //С������˰���� adultBasePrice = currentAirMaterial.Profile.GetParam("PUBLISHED_ADULT_FARE") == null ? adultBasePrice : Convert.ToDecimal(currentAirMaterial.Profile.GetParam("PUBLISHED_ADULT_FARE")); childBasePrice = currentAirMaterial.Profile.GetParam("PUBLISHED_CHILD_FARE") == null ? childBasePrice : Convert.ToDecimal(currentAirMaterial.Profile.GetParam("PUBLISHED_CHILD_FARE")); int commision = currentAirMaterial.Profile.GetParam("COMMISION") == null ? 0 : Convert.ToInt32(currentAirMaterial.Profile.GetParam("COMMISION")); if (Convert.ToBoolean(currentAirMaterial.Profile.GetParam("ISWEBFARE"))) { //if (groupMarkup.AdultMarkup.MarkupType == ConfigurationConst.GroupMarkType.Money) //{ // currentAirMaterial.Profile.SetParam("PUBLISHED_ADULT_FARE", adultBasePrice + groupMarkup.AdultMarkup.Markup); //} // //�ٷֱ� //else if (groupMarkup.AdultMarkup.MarkupType == ConfigurationConst.GroupMarkType.Percent) //{ // currentAirMaterial.Profile.SetParam("PUBLISHED_ADULT_FARE", adultBasePrice * (1 + groupMarkup.AdultMarkup.Markup)); //} ////ChildMarkup ////������� //if (((int)decimal.Parse(currentAirMaterial.ChildBaseFare.ToString())) != 0) //{ // if (groupMarkup.ChildMarkup.MarkupType == ConfigurationConst.GroupMarkType.Money) // { // currentAirMaterial.Profile.SetParam("PUBLISHED_CHILD_FARE", childBasePrice + groupMarkup.ChildMarkup.Markup); // } // //�ٷֱ� // else if (groupMarkup.ChildMarkup.MarkupType == ConfigurationConst.GroupMarkType.Percent) // { // currentAirMaterial.Profile.SetParam("PUBLISHED_CHILD_FARE", childBasePrice * (1 + groupMarkup.ChildMarkup.Markup)); // } //} } else { ////AdultMarkup ////������� //if (groupMarkup.AdultMarkup.MarkupType == ConfigurationConst.GroupMarkType.Money) //{ // currentAirMaterial.SetAdultMarkup(currentAirMaterial.AdultMarkup + groupMarkup.AdultMarkup.Markup); //} // //�ٷֱ� //else if (groupMarkup.AdultMarkup.MarkupType == ConfigurationConst.GroupMarkType.Percent) //{ // currentAirMaterial.Profile.SetParam("COMMISION", commision + 100 * groupMarkup.AdultMarkup.Markup); //} ////ChildMarkup ////������� //if (((int)decimal.Parse(currentAirMaterial.ChildBaseFare.ToString())) != 0) //{ // if (groupMarkup.ChildMarkup.MarkupType == ConfigurationConst.GroupMarkType.Money) // { // currentAirMaterial.SetChildMarkup(currentAirMaterial.ChildMarkup + groupMarkup.ChildMarkup.Markup); // } // //�ٷֱ� // else if (groupMarkup.ChildMarkup.MarkupType == ConfigurationConst.GroupMarkType.Percent) // { // currentAirMaterial.Profile.SetParam("COMMISION", commision + 100 * groupMarkup.AdultMarkup.Markup); // } //} //AdultMarkup //������� TERMS.Common.Markup newMarkup = new TERMS.Common.Markup(); if (groupMarkup.AdultMarkup.MarkupType == ConfigurationConst.GroupMarkType.Money) { newMarkup = new TERMS.Common.Markup(TERMS.Common.PassengerType.Adult, new TERMS.Common.FareAmount(groupMarkup.AdultMarkup.Markup)); } //�ٷֱ� else if (groupMarkup.AdultMarkup.MarkupType == ConfigurationConst.GroupMarkType.Percent) { newMarkup = new TERMS.Common.Markup(TERMS.Common.PassengerType.Adult, new TERMS.Common.FareAmount(currentAirMaterial.AdultBaseFare * (groupMarkup.AdultMarkup.Markup))); } //ChildMarkup //������� if (((int)decimal.Parse(currentAirMaterial.ChildBaseFare.ToString())) != 0) { if (groupMarkup.ChildMarkup.MarkupType == ConfigurationConst.GroupMarkType.Money) { newMarkup.SetAmount(TERMS.Common.PassengerType.Child, new TERMS.Common.FareAmount(groupMarkup.ChildMarkup.Markup)); } //�ٷֱ� else if (groupMarkup.ChildMarkup.MarkupType == ConfigurationConst.GroupMarkType.Percent) { newMarkup.SetAmount(TERMS.Common.PassengerType.Child, new TERMS.Common.FareAmount(currentAirMaterial.ChildBaseFare * (groupMarkup.ChildMarkup.Markup))); } } currentAirMaterial.Price.AddMarkup(newMarkup); } return currentAirMaterial; }
private object GetAirLegList(AirMaterial flight) { IList<AirLeg> airLegList = new List<AirLeg>(); foreach (SubAirTrip subAirTrip in flight.AirTrip.SubTrips) { foreach (AirLeg airLeg in subAirTrip.Flights) { airLegList.Add(airLeg); } } return airLegList; }
private decimal GetTotalPrice(AirMaterial airMaterial) { decimal totalPrice = 0; if (isClickAvailable == false) { totalPrice = airMaterial.AdultBaseFare; } else { totalPrice = airMaterial.AdultBaseFare + airMaterial.AdultMarkup + airMaterial.AdultTax; } return totalPrice; }
protected bool GetFlights(string pnr) { string errMsg = string.Empty; DpwPNR dpwPNR = new DpwPNR(); bool isMatchAirline = false; bool isMatchDeparture = false; bool isMatchBeginDate = false; bool isMatchEndDate = false; string originalAirline = ((TourOrderItem)Transaction.CurrentTransactionObject.Items[0]).AirLine; string originalDeparture = ((TourOrderItem)Transaction.CurrentTransactionObject.Items[0]).DepartureCity; //string originalDestination= ((TourOrderItem)Transaction.CurrentTransactionObject.Items[0]).; DateTime originalBeginDate = ((TourOrderItem)Transaction.CurrentTransactionObject.Items[0]).BeginDate; DateTime originalEndDate = ((TourOrderItem)Transaction.CurrentTransactionObject.Items[0]).EndDate; if (pnr.Equals(string.Empty)) { errMsg = "Please Input PNR"; } else if (pnr.Length != 6) { errMsg = "Please Input Correct PNR"; } else { dpwPNR = m_airService.GetPnrData(pnr, out errMsg); } if (errMsg.Equals(string.Empty)) { DpwFlightList flights = dpwPNR.Flights; AirMaterial airMaterial = new AirMaterial(new TERMS.Core.Profiles.Profile("air")); //int[] divideNumber = Hashtable timeSpan = new Hashtable(); List<AirLeg> airLegList = m_AirLegList; bool isOneWay = false; if (flights.Count > 0) { if (!flights[0].DepartureAirport.Equals(flights[flights.Count - 1].ArrivalAirport)) isOneWay = true; } for (int i = 0; i < flights.Count; i++) { if (flights[i].Airline.Contains(originalAirline)) isMatchAirline = true; AirLeg air = new AirLeg(); air.AirLine = new Airline(flights[i].Airline); air.ArriveTime = flights[i].ArrivalDateTime; air.BookingClass = flights[i].BookingClass; Airport deptAirport = new Airport(); City deptCity = new City(); Terms.Common.Domain.Airport airport = m_airService.CommAirportDao.FindByAirport(flights[i].DepartureAirport); deptCity.Code = airport.City.Code; deptCity.Name = airport.City.Name; deptAirport.City = deptCity; deptAirport.Name = airport.Name; deptAirport.Code = airport.Code; air.DepartureAirport = deptAirport; air.DepartureTime = flights[i].DepartureDateTime; if (i == 0) { if (deptCity.Code.Contains(originalDeparture)) isMatchDeparture = true; if (air.DepartureTime.ToString("MM/dd/yyyy").Equals(originalBeginDate.ToString("MM/dd/yyyy"))) isMatchBeginDate = true; } Airport destAirport = new Airport(); City destCity = new City(); Terms.Common.Domain.Airport airtport2 = m_airService.CommAirportDao.FindByAirport(flights[i].ArrivalAirport); destCity.Code = airtport2.City.Code; destCity.Name = airtport2.City.Name; destAirport.City = destCity; destAirport.Name = airtport2.Name; destAirport.Code = airtport2.Code; air.DestinationAirport = destAirport; air.FlightNumber = flights[i].FlightNumber; if (i > 0) { timeSpan.Add(i.ToString() + "-" + (i + 1).ToString(), flights[i].DepartureDateTime.Subtract(flights[i - 1].ArrivalDateTime)); } airLegList.Add(air); //SubAirTrip subAirTrip = new SubAirTrip(); //subAirTrip. } if (isOneWay) { SubAirTrip deptSubAirTrip = new SubAirTrip(); for (int j = 0; j < airLegList.Count; j++) { deptSubAirTrip.AddLeg(airLegList[j]); } airMaterial.AddSubTrip(deptSubAirTrip); } else { TimeSpan bigSpan = new TimeSpan(); string bigSpanKey = string.Empty; foreach (string key in timeSpan.Keys) { if (bigSpan.CompareTo(timeSpan[key]) < 0) { bigSpan = (TimeSpan)timeSpan[key]; bigSpanKey = key; } } string[] flightNumber = bigSpanKey.Split('-'); if (flightNumber.Length == 2) { SubAirTrip deptSubAirTrip = new SubAirTrip(); SubAirTrip retnSubAirTrip = new SubAirTrip(); for (int j = 0; j < airLegList.Count; j++) { if (j <= (Convert.ToInt32(flightNumber[0]) - 1)) deptSubAirTrip.AddLeg(airLegList[j]); else retnSubAirTrip.AddLeg(airLegList[j]); } airMaterial.AddSubTrip(deptSubAirTrip); airMaterial.AddSubTrip(retnSubAirTrip); if (retnSubAirTrip.Flights[0].DepartureTime.ToString("MM/dd/yyyy").Equals(originalEndDate.ToString("MM/dd/yyyy"))) isMatchEndDate = true; } } m_NewAirOrderItem = new AirOrderItem(airMaterial); //Fare int fareLength = dpwPNR.FareInfo.Fares.Count; for (int fareCount = 0; fareCount < fareLength; fareCount++) { DpwFare fare = dpwPNR.FareInfo.Fares[fareCount]; switch (fare.PTC) { case GTTWSpanClient.PassengerType.Adult: m_NewAirOrderItem.Merchandise.SetAdultBaseFare(fare.BaseFare); m_NewAirOrderItem.Merchandise.SetAdultTax(fare.Tax); break; case GTTWSpanClient.PassengerType.Child: m_NewAirOrderItem.Merchandise.SetChildBaseFare(fare.BaseFare); m_NewAirOrderItem.Merchandise.SetChildTax(fare.Tax); break; case GTTWSpanClient.PassengerType.Infant: break; default: break; } } m_NewAirOrderItem.WSpanRecordLocator = dpwPNR.RecordLoactor; Transaction.CurrentTransactionObject.Items.Add(m_NewAirOrderItem); int adultNumber = GetPassengers(dpwPNR.Passengers)[0]; int childNumber = GetPassengers(dpwPNR.Passengers)[1]; //TourPriceInfoControl1.Tax = m_NewAirOrderItem.Merchandise.AdultTax * adultNumber + m_NewAirOrderItem.Merchandise.ChildTax * childNumber; //TourPriceInfoControl1.ShowTotalPrice = GetNetPrice();// +TourPriceInfoControl1.Tax; if (Transaction.CurrentTransactionObject.Items[0].AdultNumber != adultNumber || Transaction.CurrentTransactionObject.Items[0].ChildNumber != childNumber) { lblError.Text = "PNR��s passenger number is not equal order��s traveler number."; return false; } else { if (!isMatchAirline) { lblError.Text = "Warning: Not default airlines price may be different."; lblError.Style.Add("color", "blue"); } else if (!isMatchDeparture) { lblError.Text = "Warning: Not default departure city/destination. Be careful."; lblError.Style.Add("color", "blue"); } else if (!isMatchBeginDate || !isMatchEndDate) { lblError.Text = "Warning: Not default departure/return date. Be careful."; lblError.Style.Add("color", "blue"); } else { lblError.Style.Add("color", "red"); } return true; } } else { lblError.Text = errMsg; return false; } }
public string GetDistance(AirMaterial flight) { return new AirLineMatricsManager().GetDistance(flight); }
private bool IsAirlineEqual(AirMaterial currentFlight, AirMaterial preFlight) { return new AirLineMatricsManager().CompareAirLine(preFlight, currentFlight) == 0; }
private string GetDistance(AirMaterial flight) { int miles = 0; foreach (SubAirTrip subAirTrip in flight.AirTrip.SubTrips) { miles += subAirTrip.Miles; } if (miles == 0) { return string.Empty; } return String.Format("{0} miles ({1} km)", miles.ToString("#,###"), ConvertMilesToKilometers(miles).ToString("#,####")); }
private bool IsContactAgentItem(AirMaterial item) { if (item.AirTrip.SubTrips.Count > 0 && item.AirTrip.SubTrips[0].Flights.Count > 0) { return false; } return ((bool)item.Profile.GetParam("SHOULD_CALL")); }
private void SetTotalDurationAndDistance(AirMaterial flight, DataListItem dataListItem) { System.Web.UI.WebControls.Label lblTotalDistance = (System.Web.UI.WebControls.Label)dataListItem.FindControl("lblTotalDistance"); lblTotalDistance.Text = GetDistance(flight); System.Web.UI.WebControls.Label lblTotalDuration = (System.Web.UI.WebControls.Label)dataListItem.FindControl("lblTotalDuration"); lblTotalDuration.Text = GetDuration(flight); System.Web.UI.WebControls.Label lblTotalDistanceMsg = (System.Web.UI.WebControls.Label)dataListItem.FindControl("lblTotalDistanceMsg"); if (lblTotalDuration.Text.Trim() == string.Empty) { lblTotalDistanceMsg.Visible = false; } }
private bool IsFlightAvailable(AirMaterial currentFlight) { return GetFlightInfoListCount(currentFlight) > 0 && currentFlight.AdultTax != 0; }