public bool IsCreditCardInfoRequired(HotelAvailabilityRS objHotelAvailabilityRS, RoomRateSelection[] objRoomRateSelections, PaymentGatewayInfo objPaymentGatewayInfo, bool bProfileGuaranteeRequested) { bool bRequired = false; for (int i = 0; i < objRoomRateSelections.Length; i++) { HotelRoomAvailInfo objHotelRoomAvailInfo = this.GetHotelRoomAvailInfo(objHotelAvailabilityRS.HotelRoomAvailInfos, objRoomRateSelections[i].RoomRefID); HotelAvailRatePlan objHotelAvailRatePlan = this.GetRatePlanInfo(objHotelRoomAvailInfo.RatePlans, objRoomRateSelections[i].RatePlanCode); if (objHotelAvailRatePlan.GuaranteeType == GuaranteeType.CCDCVoucher && !bProfileGuaranteeRequested) { bRequired = true; break; } else if (objHotelAvailRatePlan.GuaranteeType == GuaranteeType.Deposit || objHotelAvailRatePlan.GuaranteeType == GuaranteeType.PrePay) { if (objPaymentGatewayInfo == null || objPaymentGatewayInfo.Mode == PaymentGatewayMode.MerchantSiteCapturesCardDetails) { bRequired = true; break; } } } return bRequired; }
private RoomRateSelection GetRoomRateSelection(RoomRateSelection[] objRoomRateSelections, string strRoomRefID) { for (int i = 0; i < objRoomRateSelections.Length; i++) { if (objRoomRateSelections[i].RoomRefID == strRoomRefID) return objRoomRateSelections[i]; } return null; }
protected void ConfigureRoomRateSelectControl() { string strSelectedRoom = (string)Session["SelectedRoom"]; HotelAvailabilityRS objHotelAvailabilityRS = (HotelAvailabilityRS)Session["HotelAvailabilityRS"]; HotelDescriptiveInfoRS objHotelDescriptiveInfoRS = (HotelDescriptiveInfoRS)Session["HotelDescriptiveInfoRS"]; StayCriteriaSelection objStayCriteriaSelection = (StayCriteriaSelection)Session[Constants.Sessions.StayCriteriaSelection]; RoomRateSelection[] objRoomRateSelections = (RoomRateSelection[])Session["RoomRateSelections"]; ShowMoreRatesIndicator[] objShowMoreRatesIndicators = (ShowMoreRatesIndicator[])Session["ShowMoreRatesIndicators"]; RoomOccupantSelection objRoomOccupantSelection = new RoomOccupantSelection(); bool IsRoomRateDescriptionModel; if (ConfigurationManager.AppSettings["EnableRoomRateDescriptionModel"] == "1") IsRoomRateDescriptionModel = true; else IsRoomRateDescriptionModel = false; for (int i = 0; i < objStayCriteriaSelection.RoomOccupantSelections.Length; i++) { if (objStayCriteriaSelection.RoomOccupantSelections[i].RoomRefID == strSelectedRoom) { objRoomOccupantSelection = objStayCriteriaSelection.RoomOccupantSelections[i]; break; } } RoomRateSelection objRoomRateSelection = new RoomRateSelection(); for (int i = 0; i < objRoomRateSelections.Length; i++) { if (objRoomRateSelections[i].RoomRefID == strSelectedRoom) { objRoomRateSelection = objRoomRateSelections[i]; break; } } HotelRoomAvailInfo objHotelRoomAvailInfo = new HotelRoomAvailInfo(); for (int i = 0; i < objHotelAvailabilityRS.HotelRoomAvailInfos.Length; i++) { if (objHotelAvailabilityRS.HotelRoomAvailInfos[i].SegmentRefID == strSelectedRoom) { objHotelRoomAvailInfo = objHotelAvailabilityRS.HotelRoomAvailInfos[i]; break; } } HotelDescriptiveInfo objHotelDescriptiveInfo = new HotelDescriptiveInfo(); if (objHotelDescriptiveInfoRS.HotelDescriptiveInfos.Length != 0) { objHotelDescriptiveInfo = objHotelDescriptiveInfoRS.HotelDescriptiveInfos[0]; } if (ConfigurationManager.AppSettings["EnableRoomRateGridModel"] != "1") { string strRoomSelectorItemControlPath = ConfigurationManager.AppSettings["RoomSelectorItemControl.ascx"]; string strRoomTypeSelectorItemControlPath = ConfigurationManager.AppSettings["RoomTypeSelectorItemControl.ascx"]; string strRatePlanSelectorItemControlPath = ConfigurationManager.AppSettings["RatePlanSelectorItemControl.ascx"]; ucRoomRateSelectorControl.Clear(); ucRoomRateSelectorControl.ID = "RoomRateSelector"; ucRoomRateSelectorControl.RoomRefID = strSelectedRoom; ucRoomRateSelectorControl.HotelRoomAvailInfo = objHotelRoomAvailInfo; ucRoomRateSelectorControl.RoomOccupantSelection = objRoomOccupantSelection; for (int i = 0; i < objStayCriteriaSelection.RoomOccupantSelections.Length; i++) { RoomSelectorItemControl ucRoomSelectorItemControl = (RoomSelectorItemControl)LoadControl(strRoomSelectorItemControlPath); ucRoomRateSelectorControl.AddRoomSelectorItem(ucRoomSelectorItemControl); ucRoomSelectorItemControl.ID = "RoomSelectorItem" + objStayCriteriaSelection.RoomOccupantSelections[i].RoomRefID; ucRoomSelectorItemControl.RoomRefID = objStayCriteriaSelection.RoomOccupantSelections[i].RoomRefID; ucRoomSelectorItemControl.RoomRefIDMenuText = (String)GetGlobalResourceObject("SiteResources", "RoomSelectorMenuText") + " " + objStayCriteriaSelection.RoomOccupantSelections[i].RoomRefID; if (objStayCriteriaSelection.RoomOccupantSelections[i].RoomRefID == strSelectedRoom) ucRoomSelectorItemControl.Selected = true; else ucRoomSelectorItemControl.Selected = false; } if (objHotelRoomAvailInfo.RoomTypes != null) { for (int i = 0; i < objHotelRoomAvailInfo.RoomTypes.Length; i++) { bool bRatesAvailable = false; for (int j = 0; j < objHotelRoomAvailInfo.RoomRates.Length; j++) { if (objHotelRoomAvailInfo.RoomRates[j].RoomTypeCode == objHotelRoomAvailInfo.RoomTypes[i].Code) { if (!IsRoomRateDescriptionModel) { bRatesAvailable = true; break; } else { if (objHotelRoomAvailInfo.RoomRates[j].DescriptionStatus == RoomRateDescriptionStatus.Active) { bRatesAvailable = true; break; } for (int k = 0; k < objHotelRoomAvailInfo.RatePlans.Length; k++) { if (objHotelRoomAvailInfo.RatePlans[k].Code == objHotelRoomAvailInfo.RoomRates[j].RatePlanCode) { if (objHotelRoomAvailInfo.RatePlans[k].Type == RatePlanType.Negotiated || objHotelRoomAvailInfo.RatePlans[k].Type == RatePlanType.Consortia) { bRatesAvailable = true; } break; } } if (bRatesAvailable) break; } } } if (!bRatesAvailable) continue; RoomTypeSelectorItemControl ucRoomTypeSelectorItemControl = (RoomTypeSelectorItemControl)LoadControl(strRoomTypeSelectorItemControlPath); ucRoomRateSelectorControl.AddRoomTypeSelectorItem(ucRoomTypeSelectorItemControl); ucRoomTypeSelectorItemControl.ID = "RoomTypeSelectorItem" + objHotelRoomAvailInfo.RoomTypes[i].Code; ucRoomTypeSelectorItemControl.RoomRefID = strSelectedRoom; for (int j = 0; j < objHotelDescriptiveInfo.RoomTypes.Length; j++) { if (objHotelDescriptiveInfo.RoomTypes[j].Code == objHotelRoomAvailInfo.RoomTypes[i].Code) { ucRoomTypeSelectorItemControl.RoomType = objHotelDescriptiveInfo.RoomTypes[j]; break; } } ucRoomTypeSelectorItemControl.ShowMoreRates = false; for (int j = 0; j < objShowMoreRatesIndicators.Length; j++) { if (objShowMoreRatesIndicators[j].RoomRefID == ucRoomTypeSelectorItemControl.RoomRefID && objShowMoreRatesIndicators[j].RoomTypeCode == ucRoomTypeSelectorItemControl.RoomType.Code) { ucRoomTypeSelectorItemControl.ShowMoreRates = true; break; } } ucRoomTypeSelectorItemControl.Clear(); for (int k = 0; k < objHotelRoomAvailInfo.RoomRates.Length; k++) { if (objHotelRoomAvailInfo.RoomRates[k].RoomTypeCode == ucRoomTypeSelectorItemControl.RoomType.Code) { bool bListRatePlan = true; if (IsRoomRateDescriptionModel && objHotelRoomAvailInfo.RoomRates[k].DescriptionStatus == RoomRateDescriptionStatus.Inactive) { for (int l = 0; l < objHotelRoomAvailInfo.RatePlans.Length; l++) { if (objHotelRoomAvailInfo.RatePlans[l].Code == objHotelRoomAvailInfo.RoomRates[k].RatePlanCode) { if (objHotelRoomAvailInfo.RatePlans[l].Type != RatePlanType.Negotiated && objHotelRoomAvailInfo.RatePlans[l].Type != RatePlanType.Consortia) { bListRatePlan = false; } break; } } } if (!bListRatePlan) continue; RatePlanSelectorItemControl ucRatePlanSelectorItemControl = (RatePlanSelectorItemControl)LoadControl(strRatePlanSelectorItemControlPath); ucRoomTypeSelectorItemControl.AddRatePlanSelectorItem(ucRatePlanSelectorItemControl); ucRatePlanSelectorItemControl.ID = "RatePlanSelectorItem" + objHotelRoomAvailInfo.RoomRates[k].RatePlanCode; ucRatePlanSelectorItemControl.RoomRefID = strSelectedRoom; ucRatePlanSelectorItemControl.RoomRate = objHotelRoomAvailInfo.RoomRates[k]; ucRatePlanSelectorItemControl.CreditCardCodes = objHotelDescriptiveInfo.CreditCardCodes; ucRatePlanSelectorItemControl.Selected = false; for (int m = 0; m < objHotelRoomAvailInfo.RatePlans.Length; m++) { if (objHotelRoomAvailInfo.RatePlans[m].Code == objHotelRoomAvailInfo.RoomRates[k].RatePlanCode) { ucRatePlanSelectorItemControl.RatePlan = objHotelRoomAvailInfo.RatePlans[m]; break; } } if (objRoomRateSelection.RoomTypeCode == ucRatePlanSelectorItemControl.RoomRate.RoomTypeCode && objRoomRateSelection.RatePlanCode == ucRatePlanSelectorItemControl.RoomRate.RatePlanCode) ucRatePlanSelectorItemControl.Selected = true; } } } } } else { AvailabilityCalendar objAvailabilityCalendar = new AvailabilityCalendar(); for (int i = 0; i < objHotelAvailabilityRS.HotelRoomAvailInfos.Length; i++) { if (objHotelAvailabilityRS.HotelRoomAvailInfos[i].SegmentRefID == strSelectedRoom) { objAvailabilityCalendar = objHotelAvailabilityRS.HotelRoomAvailInfos[i].AvailabilityCalendar; break; } } DateTime dtRateGridStartDate = (DateTime)Session["RateGridStartDate"]; string strRoomSelectorItemControlPath = ConfigurationManager.AppSettings["RoomSelectorItemControl.ascx"]; string strRoomTypeSelectorGridItemControlPath = ConfigurationManager.AppSettings["RoomTypeSelectorGridItemControl.ascx"]; string strRatePlanSelectorGridItemControlPath = ConfigurationManager.AppSettings["RatePlanSelectorGridItemControl.ascx"]; ucRoomRateSelectorGridControl.Clear(); ucRoomRateSelectorGridControl.ID = "RoomRateSelector"; ucRoomRateSelectorGridControl.RoomRefID = strSelectedRoom; ucRoomRateSelectorGridControl.HotelRoomAvailInfo = objHotelRoomAvailInfo; ucRoomRateSelectorGridControl.RoomOccupantSelection = objRoomOccupantSelection; ucRoomRateSelectorGridControl.GridTodayDate = TZNet.ToLocal(WbsUiHelper.GetTimeZone(objStayCriteriaSelection.HotelCode), DateTime.UtcNow).Date; ucRoomRateSelectorGridControl.GridStartDate = dtRateGridStartDate.Date; ucRoomRateSelectorGridControl.GridNumberDays = this.NumberDaysInRateGrid; for (int i = 0; i < objStayCriteriaSelection.RoomOccupantSelections.Length; i++) { RoomSelectorItemControl ucRoomSelectorItemControl = (RoomSelectorItemControl)LoadControl(strRoomSelectorItemControlPath); ucRoomRateSelectorGridControl.AddRoomSelectorItem(ucRoomSelectorItemControl); ucRoomSelectorItemControl.ID = "RoomSelectorItem" + objStayCriteriaSelection.RoomOccupantSelections[i].RoomRefID; ucRoomSelectorItemControl.RoomRefID = objStayCriteriaSelection.RoomOccupantSelections[i].RoomRefID; ucRoomSelectorItemControl.RoomRefIDMenuText = (String)GetGlobalResourceObject("SiteResources", "RoomSelectorMenuText") + " " + objStayCriteriaSelection.RoomOccupantSelections[i].RoomRefID; if (objStayCriteriaSelection.RoomOccupantSelections[i].RoomRefID == strSelectedRoom) ucRoomSelectorItemControl.Selected = true; else ucRoomSelectorItemControl.Selected = false; } if (objHotelRoomAvailInfo.RoomTypes != null && objAvailabilityCalendar.RoomRates != null) { for (int i = 0; i < objHotelRoomAvailInfo.RoomTypes.Length; i++) { bool bRatesAvailable = false; for (int j = 0; j < objAvailabilityCalendar.RoomRates.Length; j++) { if (objAvailabilityCalendar.RoomRates[j].RoomTypeCode == objHotelRoomAvailInfo.RoomTypes[i].Code) { if (!IsRoomRateDescriptionModel) { bRatesAvailable = true; break; } else { if (objAvailabilityCalendar.RoomRates[j].DescriptionStatus == RoomRateDescriptionStatus.Active) { bRatesAvailable = true; break; } for (int k = 0; k < objHotelRoomAvailInfo.RatePlans.Length; k++) { if (objHotelRoomAvailInfo.RatePlans[k].Code == objAvailabilityCalendar.RoomRates[j].RatePlanCode) { if (objHotelRoomAvailInfo.RatePlans[k].Type == RatePlanType.Negotiated || objHotelRoomAvailInfo.RatePlans[k].Type == RatePlanType.Consortia) { bRatesAvailable = true; } break; } } if (bRatesAvailable) break; } } } if (!bRatesAvailable) continue; RoomTypeSelectorGridItemControl ucRoomTypeSelectorGridItemControl = (RoomTypeSelectorGridItemControl)LoadControl(strRoomTypeSelectorGridItemControlPath); ucRoomRateSelectorGridControl.AddRoomTypeSelectorGridItem(ucRoomTypeSelectorGridItemControl); ucRoomTypeSelectorGridItemControl.ID = "RoomTypeSelectorItem" + objHotelRoomAvailInfo.RoomTypes[i].Code; ucRoomTypeSelectorGridItemControl.RoomRefID = strSelectedRoom; ucRoomTypeSelectorGridItemControl.GridTodayDate = ucRoomRateSelectorGridControl.GridTodayDate; ucRoomTypeSelectorGridItemControl.GridStartDate = ucRoomRateSelectorGridControl.GridStartDate; ucRoomTypeSelectorGridItemControl.GridNumberDays = ucRoomRateSelectorGridControl.GridNumberDays; ucRoomTypeSelectorGridItemControl.GridSelectedStartDate = objStayCriteriaSelection.ArrivalDate; ucRoomTypeSelectorGridItemControl.GridSelectedEndDate = objStayCriteriaSelection.DepartureDate.AddDays(-1); for (int j = 0; j < objHotelDescriptiveInfo.RoomTypes.Length; j++) { if (objHotelDescriptiveInfo.RoomTypes[j].Code == objHotelRoomAvailInfo.RoomTypes[i].Code) { ucRoomTypeSelectorGridItemControl.RoomType = objHotelDescriptiveInfo.RoomTypes[j]; break; } } ucRoomTypeSelectorGridItemControl.ShowMoreRates = false; for (int j = 0; j < objShowMoreRatesIndicators.Length; j++) { if (objShowMoreRatesIndicators[j].RoomRefID == ucRoomTypeSelectorGridItemControl.RoomRefID && objShowMoreRatesIndicators[j].RoomTypeCode == ucRoomTypeSelectorGridItemControl.RoomType.Code) { ucRoomTypeSelectorGridItemControl.ShowMoreRates = true; break; } } ucRoomTypeSelectorGridItemControl.Clear(); for (int k = 0; k < objAvailabilityCalendar.RoomRates.Length; k++) { if (objAvailabilityCalendar.RoomRates[k].RoomTypeCode == ucRoomTypeSelectorGridItemControl.RoomType.Code) { bool bListRatePlan = true; if (IsRoomRateDescriptionModel && objAvailabilityCalendar.RoomRates[k].DescriptionStatus == RoomRateDescriptionStatus.Inactive) { for (int l = 0; l < objHotelRoomAvailInfo.RatePlans.Length; l++) { if (objHotelRoomAvailInfo.RatePlans[l].Code == objAvailabilityCalendar.RoomRates[k].RatePlanCode) { if (objHotelRoomAvailInfo.RatePlans[l].Type != RatePlanType.Negotiated && objHotelRoomAvailInfo.RatePlans[l].Type != RatePlanType.Consortia) { bListRatePlan = false; } break; } } } if (!bListRatePlan) continue; RatePlanSelectorGridItemControl ucRatePlanSelectorGridItemControl = (RatePlanSelectorGridItemControl)LoadControl(strRatePlanSelectorGridItemControlPath); ucRoomTypeSelectorGridItemControl.AddRatePlanSelectorGridItem(ucRatePlanSelectorGridItemControl); ucRatePlanSelectorGridItemControl.ID = "RatePlanSelectorItem" + objAvailabilityCalendar.RoomRates[k].RatePlanCode; ucRatePlanSelectorGridItemControl.RoomRefID = strSelectedRoom; ucRatePlanSelectorGridItemControl.GridStartDate = ucRoomTypeSelectorGridItemControl.GridStartDate; ucRatePlanSelectorGridItemControl.GridNumberDays = ucRoomTypeSelectorGridItemControl.GridNumberDays; ucRatePlanSelectorGridItemControl.GridRoomRate = objAvailabilityCalendar.RoomRates[k]; ucRatePlanSelectorGridItemControl.GridRoomRateStartDate = objAvailabilityCalendar.StartDate.Date; ucRatePlanSelectorGridItemControl.ArrivalDate = objStayCriteriaSelection.ArrivalDate.Date; ucRatePlanSelectorGridItemControl.TotalStayNights = ((TimeSpan)(objStayCriteriaSelection.DepartureDate.Date.Subtract(objStayCriteriaSelection.ArrivalDate.Date))).Days; ucRatePlanSelectorGridItemControl.CreditCardCodes = objHotelDescriptiveInfo.CreditCardCodes; ucRatePlanSelectorGridItemControl.Available = false; ucRatePlanSelectorGridItemControl.Selected = false; for (int m = 0; m < objHotelRoomAvailInfo.RatePlans.Length; m++) { if (objHotelRoomAvailInfo.RatePlans[m].Code == objAvailabilityCalendar.RoomRates[k].RatePlanCode) { ucRatePlanSelectorGridItemControl.RatePlan = objHotelRoomAvailInfo.RatePlans[m]; break; } } for (int m = 0; m < objHotelRoomAvailInfo.RoomRates.Length; m++) { if (objHotelRoomAvailInfo.RoomRates[m].RoomTypeCode == objAvailabilityCalendar.RoomRates[k].RoomTypeCode && objHotelRoomAvailInfo.RoomRates[m].RatePlanCode == objAvailabilityCalendar.RoomRates[k].RatePlanCode) { ucRatePlanSelectorGridItemControl.Available = true; ucRatePlanSelectorGridItemControl.RoomRate = objHotelRoomAvailInfo.RoomRates[m]; break; } } for (int m = 0; m < objAvailabilityCalendar.RatePlans.Length; m++) { if (objAvailabilityCalendar.RatePlans[m].RatePlanCode == objAvailabilityCalendar.RoomRates[k].RatePlanCode) { ucRatePlanSelectorGridItemControl.GridRatePlan = objAvailabilityCalendar.RatePlans[m]; break; } } if (objRoomRateSelection.RoomTypeCode == objAvailabilityCalendar.RoomRates[k].RoomTypeCode && objRoomRateSelection.RatePlanCode == objAvailabilityCalendar.RoomRates[k].RatePlanCode) ucRatePlanSelectorGridItemControl.Selected = true; } } } } } return; }
public void InitRoomRateSelections() { StayCriteriaSelection objStayCriteriaSelection = (StayCriteriaSelection)Session[Constants.Sessions.StayCriteriaSelection]; RoomRateSelection[] objRoomRateSelections = new RoomRateSelection[objStayCriteriaSelection.RoomOccupantSelections.Length]; for (int i = 0; i < objRoomRateSelections.Length; i++) { objRoomRateSelections[i] = new RoomRateSelection(); objRoomRateSelections[i].RoomRefID = ((int)(i + 1)).ToString(); objRoomRateSelections[i].RoomTypeCode = ""; objRoomRateSelections[i].RatePlanCode = ""; objRoomRateSelections[i].PromotionCode = ""; } Session["RoomRateSelections"] = objRoomRateSelections; Session["ShowMoreRatesIndicators"] = new ShowMoreRatesIndicator[0]; return; }
void ucRoomQuantitySelectorControl_RoomQuantityCompleted(object sender, int numberOfRoom, string promoCode) { StayCriteriaSelection.RoomOccupantSelections = new RoomOccupantSelection[numberOfRoom]; RoomRateSelection[] roomRateSelections = new RoomRateSelection[numberOfRoom]; for (int i = 1; i <= StayCriteriaSelection.RoomOccupantSelections.Length; i++) { StayCriteriaSelection.RoomOccupantSelections[i - 1] = new RoomOccupantSelection { NumberAdults = 2, NumberChildren = 0, NumberRooms = 1, RoomRefID = i.ToString() }; roomRateSelections[i - 1] = new RoomRateSelection { RoomRefID = i.ToString() }; } StayCriteriaSelection.PromotionCode = promoCode; RoomRateSelections = roomRateSelections; NextStep(); }
private void ValidateRoomRates(RoomRateSelection[] objRoomRateSelections) { for (int i = 0; i < objRoomRateSelections.Length; i++) { if (objRoomRateSelections[i].RoomTypeCode == null || objRoomRateSelections[i].RoomTypeCode == "" || objRoomRateSelections[i].RatePlanCode == null || objRoomRateSelections[i].RatePlanCode == "") { this.AddPageError(PageErrorType.ValidationError, (String)GetGlobalResourceObject("SiteErrorMessages", "NoRoomRateSelection")); break; } } return; }
private void ConfigureAddOnPackageSelectorControl() { string strSelectedRoom = (string)Session["SelectedRoom"]; HotelAvailabilityRS objHotelAvailabilityRS = (HotelAvailabilityRS)Session["HotelAvailabilityRS"]; HotelDescriptiveInfoRS objHotelDescriptiveInfoRS = (HotelDescriptiveInfoRS)Session["HotelDescriptiveInfoRS"]; StayCriteriaSelection objStayCriteriaSelection = (StayCriteriaSelection)Session[Constants.Sessions.StayCriteriaSelection]; RoomRateSelection[] objRoomRateSelections = (RoomRateSelection[])Session["RoomRateSelections"]; AddOnPackageSelection[] objAddOnPackageSelections = (AddOnPackageSelection[])Session["AddOnPackageSelections"]; RoomOccupantSelection objRoomOccupantSelection = new RoomOccupantSelection(); for (int i = 0; i < objStayCriteriaSelection.RoomOccupantSelections.Length; i++) { if (objStayCriteriaSelection.RoomOccupantSelections[i].RoomRefID == strSelectedRoom) { objRoomOccupantSelection = objStayCriteriaSelection.RoomOccupantSelections[i]; break; } } RoomRateSelection objRoomRateSelection = new RoomRateSelection(); for (int i = 0; i < objRoomRateSelections.Length; i++) { if (objRoomRateSelections[i].RoomRefID == strSelectedRoom) { objRoomRateSelection = objRoomRateSelections[i]; break; } } HotelRoomAvailInfo objHotelRoomAvailInfo = new HotelRoomAvailInfo(); for (int i = 0; i < objHotelAvailabilityRS.HotelRoomAvailInfos.Length; i++) { if (objHotelAvailabilityRS.HotelRoomAvailInfos[i].SegmentRefID == strSelectedRoom) { objHotelRoomAvailInfo = objHotelAvailabilityRS.HotelRoomAvailInfos[i]; break; } } List<AddOnPackageSelection> lAddOnPackageSelections = new List<AddOnPackageSelection>(); for (int i = 0; i < objAddOnPackageSelections.Length; i++) { if (objAddOnPackageSelections[i].RoomRefID == strSelectedRoom) { lAddOnPackageSelections.Add(objAddOnPackageSelections[i]); } } HotelDescriptiveInfo objHotelDescriptiveInfo = new HotelDescriptiveInfo(); if (objHotelDescriptiveInfoRS.HotelDescriptiveInfos.Length != 0) { objHotelDescriptiveInfo = objHotelDescriptiveInfoRS.HotelDescriptiveInfos[0]; } int intNumberStayNights = ((TimeSpan)objStayCriteriaSelection.DepartureDate.Subtract(objStayCriteriaSelection.ArrivalDate)).Days; string strRoomSelectorItemControlPath = ConfigurationManager.AppSettings["RoomSelectorItemControl.ascx"]; string strAddOnPackageSelectorItemControlPath = ConfigurationManager.AppSettings["AddOnPackageSelectorItemControl.ascx"]; ucAddOnPackageSelectorControl.Clear(); ucAddOnPackageSelectorControl.ID = "AddOnPackageSelector"; ucAddOnPackageSelectorControl.RoomRefID = strSelectedRoom; ucAddOnPackageSelectorControl.RoomOccupantSelection = objRoomOccupantSelection; for (int i = 0; i < objStayCriteriaSelection.RoomOccupantSelections.Length; i++) { RoomSelectorItemControl ucRoomSelectorItemControl = (RoomSelectorItemControl)LoadControl(strRoomSelectorItemControlPath); ucAddOnPackageSelectorControl.AddRoomSelectorItem(ucRoomSelectorItemControl); ucRoomSelectorItemControl.ID = "RoomSelectorItem" + objStayCriteriaSelection.RoomOccupantSelections[i].RoomRefID; ucRoomSelectorItemControl.RoomRefID = objStayCriteriaSelection.RoomOccupantSelections[i].RoomRefID; ucRoomSelectorItemControl.RoomRefIDMenuText = (String)GetGlobalResourceObject("SiteResources", "RoomSelectorMenuText") + " " + objStayCriteriaSelection.RoomOccupantSelections[i].RoomRefID; if (objStayCriteriaSelection.RoomOccupantSelections[i].RoomRefID == strSelectedRoom) ucRoomSelectorItemControl.Selected = true; else ucRoomSelectorItemControl.Selected = false; } for (int i = 0; i < objHotelRoomAvailInfo.RatePlans.Length; i++) { if (objHotelRoomAvailInfo.RatePlans[i].Code == objRoomRateSelection.RatePlanCode) { for (int j = 0; j < objHotelRoomAvailInfo.RatePlans[i].Packages.Length; j++) { if (objHotelRoomAvailInfo.RatePlans[i].Packages[j].RoomTypeCode == "" || objHotelRoomAvailInfo.RatePlans[i].Packages[j].RoomTypeCode == objRoomRateSelection.RoomTypeCode) { AddOnPackageSelectorItemControl ucAddOnPackageSelectorItemControl = (AddOnPackageSelectorItemControl)LoadControl(strAddOnPackageSelectorItemControlPath); ucAddOnPackageSelectorControl.AddAddOnPackageSelectorItem(ucAddOnPackageSelectorItemControl); ucAddOnPackageSelectorItemControl.ID = "AddOnPackageSelectorItemControl" + ((int)(j + 1)).ToString(); ucAddOnPackageSelectorItemControl.RoomRefID = strSelectedRoom; ucAddOnPackageSelectorItemControl.NumberAdults = objRoomOccupantSelection.NumberAdults; ucAddOnPackageSelectorItemControl.NumberStayNights = intNumberStayNights; for (int k = 0; k < objHotelDescriptiveInfo.Packages.Length; k++) { if (objHotelDescriptiveInfo.Packages[k].Code == objHotelRoomAvailInfo.RatePlans[i].Packages[j].Code) { ucAddOnPackageSelectorItemControl.PackageDescription = objHotelDescriptiveInfo.Packages[k]; break; } } ucAddOnPackageSelectorItemControl.PackageRate = objHotelRoomAvailInfo.RatePlans[i].Packages[j]; ucAddOnPackageSelectorItemControl.PackageQuantity = 0; ucAddOnPackageSelectorItemControl.Selected = false; for (int k = 0; k < objAddOnPackageSelections.Length; k++) { if (objAddOnPackageSelections[k].RoomRefID == strSelectedRoom && objAddOnPackageSelections[k].PackageCode == objHotelRoomAvailInfo.RatePlans[i].Packages[j].Code) { ucAddOnPackageSelectorItemControl.PackageQuantity = objAddOnPackageSelections[k].Quantity; ucAddOnPackageSelectorItemControl.Selected = true; break; } } } } break; } } return; }
private void ConfigureBookingSummaryControl() { HotelAvailabilityRS objHotelAvailabilityRS = (HotelAvailabilityRS)Session["HotelAvailabilityRS"]; HotelDescriptiveInfoRS objHotelDescriptiveInfoRS = (HotelDescriptiveInfoRS)Session["HotelDescriptiveInfoRS"]; StayCriteriaSelection objStayCriteriaSelection = (StayCriteriaSelection)Session[Constants.Sessions.StayCriteriaSelection]; RoomRateSelection[] objRoomRateSelections = (RoomRateSelection[])Session["RoomRateSelections"]; AddOnPackageSelection[] objAddOnPackageSelections = (AddOnPackageSelection[])Session["AddOnPackageSelections"]; HotelDescriptiveInfo objHotelDescriptiveInfo = new HotelDescriptiveInfo(); if (objHotelDescriptiveInfoRS.HotelDescriptiveInfos.Length != 0) { objHotelDescriptiveInfo = objHotelDescriptiveInfoRS.HotelDescriptiveInfos[0]; } HotelPricing[] objHotelPricings = HotelPricingHelper.GetHotelPricing(objStayCriteriaSelection, objRoomRateSelections, objAddOnPackageSelections, objHotelAvailabilityRS.HotelRoomAvailInfos, objHotelDescriptiveInfo.CurrencyCode); int intNumberStayNights = ((TimeSpan)objStayCriteriaSelection.DepartureDate.Subtract(objStayCriteriaSelection.ArrivalDate)).Days; string strBookingSummaryRoomItemControlPath = ConfigurationManager.AppSettings["BookingSummaryRoomItemControl.ascx"]; string strBookingSummaryAddOnPackageItemControlPath = ConfigurationManager.AppSettings["BookingSummaryAddOnPackageItemControl.ascx"]; ucBookingSummaryControl.Clear(); ucBookingSummaryControl.ID = "BookingSummaryControl"; ucBookingSummaryControl.HotelDescriptiveInfo = objHotelDescriptiveInfo; ucBookingSummaryControl.StayCriteriaSelection = objStayCriteriaSelection; ucBookingSummaryControl.GuestDetailsEntryInfo = null; ucBookingSummaryControl.HotelPricings = objHotelPricings; ucBookingSummaryControl.PaymentReceipt = null; ucBookingSummaryControl.MasterConfirmationNumber = ""; for (int ri = 0; ri < objStayCriteriaSelection.RoomOccupantSelections.Length; ri++) { RoomRateSelection objRoomRateSelection = new RoomRateSelection(); for (int i = 0; i < objRoomRateSelections.Length; i++) { if (objRoomRateSelections[i].RoomRefID == objStayCriteriaSelection.RoomOccupantSelections[ri].RoomRefID) { objRoomRateSelection = objRoomRateSelections[i]; break; } } HotelDescRoomType objHotelDescRoomType = new HotelDescRoomType(); for (int i = 0; i < objHotelDescriptiveInfo.RoomTypes.Length; i++) { if (objHotelDescriptiveInfo.RoomTypes[i].Code == objRoomRateSelection.RoomTypeCode) { objHotelDescRoomType = objHotelDescriptiveInfo.RoomTypes[i]; break; } } HotelRoomAvailInfo objHotelRoomAvailInfo = new HotelRoomAvailInfo(); for (int i = 0; i < objHotelAvailabilityRS.HotelRoomAvailInfos.Length; i++) { if (objHotelAvailabilityRS.HotelRoomAvailInfos[i].SegmentRefID == objStayCriteriaSelection.RoomOccupantSelections[ri].RoomRefID) { objHotelRoomAvailInfo = objHotelAvailabilityRS.HotelRoomAvailInfos[i]; break; } } HotelAvailRatePlan objHotelAvailRatePlan = new HotelAvailRatePlan(); for (int i = 0; i < objHotelRoomAvailInfo.RatePlans.Length; i++) { if (objHotelRoomAvailInfo.RatePlans[i].Code == objRoomRateSelection.RatePlanCode) { objHotelAvailRatePlan = objHotelRoomAvailInfo.RatePlans[i]; break; } } HotelAvailRoomRate objHotelAvailRoomRate = new HotelAvailRoomRate(); for (int i = 0; i < objHotelRoomAvailInfo.RoomRates.Length; i++) { if (objHotelRoomAvailInfo.RoomRates[i].RoomTypeCode == objRoomRateSelection.RoomTypeCode && objHotelRoomAvailInfo.RoomRates[i].RatePlanCode == objRoomRateSelection.RatePlanCode) { objHotelAvailRoomRate = objHotelRoomAvailInfo.RoomRates[i]; break; } } HotelPricing objHotelPricing = new HotelPricing(); for (int i = 0; i < objHotelPricings.Length; i++) { if (objHotelPricings[i].SegmentRefID == objStayCriteriaSelection.RoomOccupantSelections[ri].RoomRefID) { objHotelPricing = objHotelPricings[i]; break; } } BookingSummaryRoomItemControl ucBookingSummaryRoomItemControl = (BookingSummaryRoomItemControl)LoadControl(strBookingSummaryRoomItemControlPath); ucBookingSummaryControl.AddRoomSummaryItem(ucBookingSummaryRoomItemControl); ucBookingSummaryRoomItemControl.Clear(); ucBookingSummaryRoomItemControl.ID = "BookingSummaryRoomItem" + ((int)(ri + 1)).ToString(); ucBookingSummaryRoomItemControl.RoomRefID = objStayCriteriaSelection.RoomOccupantSelections[ri].RoomRefID; ucBookingSummaryRoomItemControl.RoomOccupantSelection = objStayCriteriaSelection.RoomOccupantSelections[ri]; ucBookingSummaryRoomItemControl.RoomType = objHotelDescRoomType; ucBookingSummaryRoomItemControl.RatePlan = objHotelAvailRatePlan; ucBookingSummaryRoomItemControl.RoomRate = objHotelAvailRoomRate; ucBookingSummaryRoomItemControl.HotelPricing = objHotelPricing; ucBookingSummaryRoomItemControl.ConfirmationNumber = ""; for (int pi = 0; pi < objAddOnPackageSelections.Length; pi++) { if (objAddOnPackageSelections[pi].RoomRefID == objStayCriteriaSelection.RoomOccupantSelections[ri].RoomRefID) { HotelDescPackage objHotelDescPackage = new HotelDescPackage(); for (int i = 0; i < objHotelDescriptiveInfo.Packages.Length; i++) { if (objHotelDescriptiveInfo.Packages[i].Code == objAddOnPackageSelections[pi].PackageCode) { objHotelDescPackage = objHotelDescriptiveInfo.Packages[i]; break; } } HotelAvailPackage objHotelAvailPackage = new HotelAvailPackage(); for (int i = 0; i < objHotelAvailRatePlan.Packages.Length; i++) { if (objHotelAvailRatePlan.Packages[i].Code == objAddOnPackageSelections[pi].PackageCode) { if (objHotelAvailRatePlan.Packages[i].RoomTypeCode == "" || objHotelAvailRatePlan.Packages[i].RoomTypeCode == objRoomRateSelection.RoomTypeCode) { objHotelAvailPackage = objHotelAvailRatePlan.Packages[i]; break; } } } BookingSummaryAddOnPackageItemControl ucBookingSummaryAddOnPackageItemControl = (BookingSummaryAddOnPackageItemControl)LoadControl(strBookingSummaryAddOnPackageItemControlPath); ucBookingSummaryRoomItemControl.AddAddOnPackageSummaryItem(ucBookingSummaryAddOnPackageItemControl); ucBookingSummaryAddOnPackageItemControl.ID = "BookingSummaryAddOnPackageItem" + ((int)(pi + 1)).ToString(); ucBookingSummaryAddOnPackageItemControl.RoomRefID = objStayCriteriaSelection.RoomOccupantSelections[ri].RoomRefID; ucBookingSummaryAddOnPackageItemControl.NumberStayNights = intNumberStayNights; ucBookingSummaryAddOnPackageItemControl.PackageQuantity = objAddOnPackageSelections[pi].Quantity; ucBookingSummaryAddOnPackageItemControl.PackageDescription = objHotelDescPackage; ucBookingSummaryAddOnPackageItemControl.PackageRate = objHotelAvailPackage; } } } return; }
public void Clear() { _RoomRateSelection = new RoomRateSelection(); _RoomRateSelection.RoomRefID = ""; _RoomRateSelection.RoomTypeCode = ""; _RoomRateSelection.RatePlanCode = ""; _RoomRateSelection.PromotionCode = ""; lRoomSelectorItemControls = null; lRoomTypeSelectorGridItemControls = null; return; }
private void ConfigureBookingSummaryControl() { HotelAvailabilityRS objHotelAvailabilityRS = (HotelAvailabilityRS)Session["HotelAvailabilityRS"]; HotelDescriptiveInfoRS objHotelDescriptiveInfoRS = (HotelDescriptiveInfoRS)Session["HotelDescriptiveInfoRS"]; HotelBookingRS objHotelBookingRS = (HotelBookingRS)Session["HotelBookingRS"]; StayCriteriaSelection objStayCriteriaSelection = (StayCriteriaSelection)Session[Constants.Sessions.StayCriteriaSelection]; RoomRateSelection[] objRoomRateSelections = (RoomRateSelection[])Session["RoomRateSelections"]; AddOnPackageSelection[] objAddOnPackageSelections = (AddOnPackageSelection[])Session["AddOnPackageSelections"]; GuestDetailsEntryInfo objGuestDetailsEntryInfo = (GuestDetailsEntryInfo)Session["GuestDetailsEntryInfo"]; PaymentGatewayInfo objPaymentGatewayInfo = (PaymentGatewayInfo)Session[Constants.Sessions.PaymentGatewayInfo]; HotelBookingPaymentAllocation[] objHotelBookingPaymentAllocations = (HotelBookingPaymentAllocation[])Session[Constants.Sessions.HotelBookingPaymentAllocations]; HotelPaymentRS objHotelPaymentRS = (HotelPaymentRS)Session["HotelPaymentRS"]; HotelDescriptiveInfo objHotelDescriptiveInfo = new HotelDescriptiveInfo(); if (objHotelDescriptiveInfoRS.HotelDescriptiveInfos.Length != 0) { objHotelDescriptiveInfo = objHotelDescriptiveInfoRS.HotelDescriptiveInfos[0]; } HotelPricing[] objHotelPricings = HotelPricingHelper.GetHotelPricing(objStayCriteriaSelection, objRoomRateSelections, objAddOnPackageSelections, objHotelAvailabilityRS.HotelRoomAvailInfos, objHotelDescriptiveInfo.CurrencyCode); OnlinePaymentReceipt objOnlinePaymentReceipt = null; decimal decTotalPaymentCardPayment = WBSPGHelper.GetTotalPaymentCardPayment(objHotelBookingPaymentAllocations); if (objPaymentGatewayInfo != null && decTotalPaymentCardPayment != 0) { objOnlinePaymentReceipt = new OnlinePaymentReceipt(); objOnlinePaymentReceipt.PaymentCard = objHotelPaymentRS.PaymentCard; objOnlinePaymentReceipt.PaymentGatewayCardType = objHotelPaymentRS.PaymentGatewayCardType; objOnlinePaymentReceipt.PaymentDateTime = TZNet.ToLocal(WbsUiHelper.GetTimeZone(objStayCriteriaSelection.HotelCode), DateTime.UtcNow).Date; objOnlinePaymentReceipt.AuthCode = objHotelPaymentRS.PaymentAuthCode; objOnlinePaymentReceipt.TransRefID = objHotelPaymentRS.PaymentTransRefID; objOnlinePaymentReceipt.Amount = decTotalPaymentCardPayment; objOnlinePaymentReceipt.CurrencyCode = objHotelDescriptiveInfo.CurrencyCode; } string strMasterConfirmationNumber = ""; if (objHotelBookingRS.Segments.Length != 0) { strMasterConfirmationNumber = objHotelBookingRS.Segments[0].MasterConfirmationNumber; } int intNumberStayNights = ((TimeSpan)objStayCriteriaSelection.DepartureDate.Subtract(objStayCriteriaSelection.ArrivalDate)).Days; string strBookingSummaryRoomItemControlPath = ConfigurationManager.AppSettings["BookingSummaryRoomItemControl.ascx"]; string strBookingSummaryAddOnPackageItemControlPath = ConfigurationManager.AppSettings["BookingSummaryAddOnPackageItemControl.ascx"]; ucBookingSummaryControl.Clear(); ucBookingSummaryControl.ID = "BookingSummaryControl"; ucBookingSummaryControl.HotelDescriptiveInfo = objHotelDescriptiveInfo; ucBookingSummaryControl.StayCriteriaSelection = objStayCriteriaSelection; ucBookingSummaryControl.GuestDetailsEntryInfo = objGuestDetailsEntryInfo; ucBookingSummaryControl.HotelPricings = objHotelPricings; ucBookingSummaryControl.PaymentReceipt = objOnlinePaymentReceipt; ucBookingSummaryControl.MasterConfirmationNumber = strMasterConfirmationNumber; for (int ri = 0; ri < objStayCriteriaSelection.RoomOccupantSelections.Length; ri++) { RoomRateSelection objRoomRateSelection = new RoomRateSelection(); for (int i = 0; i < objRoomRateSelections.Length; i++) { if (objRoomRateSelections[i].RoomRefID == objStayCriteriaSelection.RoomOccupantSelections[ri].RoomRefID) { objRoomRateSelection = objRoomRateSelections[i]; break; } } HotelDescRoomType objHotelDescRoomType = new HotelDescRoomType(); for (int i = 0; i < objHotelDescriptiveInfo.RoomTypes.Length; i++) { if (objHotelDescriptiveInfo.RoomTypes[i].Code == objRoomRateSelection.RoomTypeCode) { objHotelDescRoomType = objHotelDescriptiveInfo.RoomTypes[i]; break; } } HotelRoomAvailInfo objHotelRoomAvailInfo = new HotelRoomAvailInfo(); for (int i = 0; i < objHotelAvailabilityRS.HotelRoomAvailInfos.Length; i++) { if (objHotelAvailabilityRS.HotelRoomAvailInfos[i].SegmentRefID == objStayCriteriaSelection.RoomOccupantSelections[ri].RoomRefID) { objHotelRoomAvailInfo = objHotelAvailabilityRS.HotelRoomAvailInfos[i]; break; } } HotelAvailRatePlan objHotelAvailRatePlan = new HotelAvailRatePlan(); for (int i = 0; i < objHotelRoomAvailInfo.RatePlans.Length; i++) { if (objHotelRoomAvailInfo.RatePlans[i].Code == objRoomRateSelection.RatePlanCode) { objHotelAvailRatePlan = objHotelRoomAvailInfo.RatePlans[i]; break; } } HotelAvailRoomRate objHotelAvailRoomRate = new HotelAvailRoomRate(); for (int i = 0; i < objHotelRoomAvailInfo.RoomRates.Length; i++) { if (objHotelRoomAvailInfo.RoomRates[i].RoomTypeCode == objRoomRateSelection.RoomTypeCode && objHotelRoomAvailInfo.RoomRates[i].RatePlanCode == objRoomRateSelection.RatePlanCode) { objHotelAvailRoomRate = objHotelRoomAvailInfo.RoomRates[i]; break; } } HotelPricing objHotelPricing = new HotelPricing(); for (int i = 0; i < objHotelPricings.Length; i++) { if (objHotelPricings[i].SegmentRefID == objStayCriteriaSelection.RoomOccupantSelections[ri].RoomRefID) { objHotelPricing = objHotelPricings[i]; break; } } BookingSummaryRoomItemControl ucBookingSummaryRoomItemControl = (BookingSummaryRoomItemControl)LoadControl(strBookingSummaryRoomItemControlPath); ucBookingSummaryControl.AddRoomSummaryItem(ucBookingSummaryRoomItemControl); ucBookingSummaryRoomItemControl.Clear(); ucBookingSummaryRoomItemControl.ID = "BookingSummaryRoomItem" + ((int)(ri + 1)).ToString(); ucBookingSummaryRoomItemControl.RoomRefID = objStayCriteriaSelection.RoomOccupantSelections[ri].RoomRefID; ucBookingSummaryRoomItemControl.RoomOccupantSelection = objStayCriteriaSelection.RoomOccupantSelections[ri]; ucBookingSummaryRoomItemControl.RoomType = objHotelDescRoomType; ucBookingSummaryRoomItemControl.RatePlan = objHotelAvailRatePlan; ucBookingSummaryRoomItemControl.RoomRate = objHotelAvailRoomRate; ucBookingSummaryRoomItemControl.HotelPricing = objHotelPricing; ucBookingSummaryRoomItemControl.ConfirmationNumber = ""; for (int pi = 0; pi < objAddOnPackageSelections.Length; pi++) { if (objAddOnPackageSelections[pi].RoomRefID == objStayCriteriaSelection.RoomOccupantSelections[ri].RoomRefID) { HotelDescPackage objHotelDescPackage = new HotelDescPackage(); for (int i = 0; i < objHotelDescriptiveInfo.Packages.Length; i++) { if (objHotelDescriptiveInfo.Packages[i].Code == objAddOnPackageSelections[pi].PackageCode) { objHotelDescPackage = objHotelDescriptiveInfo.Packages[i]; break; } } HotelAvailPackage objHotelAvailPackage = new HotelAvailPackage(); for (int i = 0; i < objHotelAvailRatePlan.Packages.Length; i++) { if (objHotelAvailRatePlan.Packages[i].Code == objAddOnPackageSelections[pi].PackageCode) { if (objHotelAvailRatePlan.Packages[i].RoomTypeCode == "" || objHotelAvailRatePlan.Packages[i].RoomTypeCode == objRoomRateSelection.RoomTypeCode) { objHotelAvailPackage = objHotelAvailRatePlan.Packages[i]; break; } } } BookingSummaryAddOnPackageItemControl ucBookingSummaryAddOnPackageItemControl = (BookingSummaryAddOnPackageItemControl)LoadControl(strBookingSummaryAddOnPackageItemControlPath); ucBookingSummaryRoomItemControl.AddAddOnPackageSummaryItem(ucBookingSummaryAddOnPackageItemControl); ucBookingSummaryAddOnPackageItemControl.ID = "BookingSummaryAddOnPackageItem" + ((int)(pi + 1)).ToString(); ucBookingSummaryAddOnPackageItemControl.RoomRefID = objStayCriteriaSelection.RoomOccupantSelections[ri].RoomRefID; ucBookingSummaryAddOnPackageItemControl.NumberStayNights = intNumberStayNights; ucBookingSummaryAddOnPackageItemControl.PackageQuantity = objAddOnPackageSelections[pi].Quantity; ucBookingSummaryAddOnPackageItemControl.PackageDescription = objHotelDescPackage; ucBookingSummaryAddOnPackageItemControl.PackageRate = objHotelAvailPackage; } } } return; }
private static RoomRateSelection GetRoomRateSelection(RoomOccupantSelection objRoomOccupantSelection, RoomRateSelection[] objRoomRateSelections) { for (int i = 0; i < objRoomRateSelections.Length; i++) { if (objRoomRateSelections[i].RoomRefID == objRoomOccupantSelection.RoomRefID) return objRoomRateSelections[i]; } return null; }
private static HotelAvailRoomRate GetHotelAvailRoomRate(RoomRateSelection objRoomRateSelection, HotelRoomAvailInfo[] objHotelRoomAvailInfos) { for (int i = 0; i < objHotelRoomAvailInfos.Length; i++) { if (objHotelRoomAvailInfos[i].SegmentRefID == objRoomRateSelection.RoomRefID) { for (int j = 0; j < objHotelRoomAvailInfos[i].RoomRates.Length; j++) { if (objHotelRoomAvailInfos[i].RoomRates[j].RoomTypeCode == objRoomRateSelection.RoomTypeCode && objHotelRoomAvailInfos[i].RoomRates[j].RatePlanCode == objRoomRateSelection.RatePlanCode) { return objHotelRoomAvailInfos[i].RoomRates[j]; } } } } return null; }
public static HotelPricing[] GetHotelPricing(StayCriteriaSelection objStayCriteriaSelection, RoomRateSelection[] objRoomRateSelections, AddOnPackageSelection[] objAllAddOnPackageSelections, HotelRoomAvailInfo[] objHotelRoomAvailInfos, string strCurrenyCode) { HotelPricing[] objHotelPricing = new HotelPricing[objStayCriteriaSelection.RoomOccupantSelections.Length]; int intNumberStayNights = ((TimeSpan)objStayCriteriaSelection.DepartureDate.Subtract(objStayCriteriaSelection.ArrivalDate)).Days; for (int i = 0; i < objStayCriteriaSelection.RoomOccupantSelections.Length; i++) { RoomOccupantSelection objRoomOccupantSelection = objStayCriteriaSelection.RoomOccupantSelections[i]; RoomRateSelection objRoomRateSelection = HotelPricingHelper.GetRoomRateSelection(objRoomOccupantSelection, objRoomRateSelections); HotelAvailRatePlan objHotelAvailRatePlan = HotelPricingHelper.GetHotelAvailRatePlan(objRoomRateSelection, objHotelRoomAvailInfos); HotelAvailRoomRate objHotelAvailRoomRate = HotelPricingHelper.GetHotelAvailRoomRate(objRoomRateSelection, objHotelRoomAvailInfos); AddOnPackageSelection[] objAddOnPackageSelections = HotelPricingHelper.GetAddOnPackageSelections(objRoomRateSelection, objAllAddOnPackageSelections); decimal decTotalRoomAmount = 0; decimal decTotalRoomTaxes = 0; // Exclusive taxes only decimal decTotalRoomFees = 0; // Exclusive fees only for (int j = 0; j < objHotelAvailRoomRate.Rates.Length; j++) { decTotalRoomAmount += objRoomOccupantSelection.NumberRooms * objHotelAvailRoomRate.Rates[j].Amount * objHotelAvailRoomRate.Rates[j].NumNights; for (int k = 0; k < objHotelAvailRoomRate.Rates[j].PerNightTaxesFees.Length; k++) { if (objHotelAvailRoomRate.Rates[j].PerNightTaxesFees[k].CategoryType == TaxFeeCategoryType.Tax && objHotelAvailRoomRate.Rates[j].PerNightTaxesFees[k].Type == TaxFeeType.Exclusive) { decTotalRoomTaxes += objHotelAvailRoomRate.Rates[j].PerNightTaxesFees[k].Amount; } else if (objHotelAvailRoomRate.Rates[j].PerNightTaxesFees[k].CategoryType == TaxFeeCategoryType.Fee && objHotelAvailRoomRate.Rates[j].PerNightTaxesFees[k].Type == TaxFeeType.Exclusive) { decTotalRoomFees += objHotelAvailRoomRate.Rates[j].PerNightTaxesFees[k].Amount; } } } decTotalRoomAmount += decTotalRoomTaxes + decTotalRoomFees; decimal decTotalPackageAmount = 0; decimal decTotalPackageDeposit = 0; decimal decTotalPackageTaxes = 0; // Exclusive taxes only decimal decTotalPackageFees = 0; // Exclusive fees only for (int j = 0; j < objAddOnPackageSelections.Length; j++) { HotelAvailPackage objHotelAvailPackage = HotelPricingHelper.GetHotelAvailPackage(objAddOnPackageSelections[j], objRoomRateSelection, objHotelAvailRatePlan); if (objHotelAvailPackage.PriceType == PackagePriceType.PerStayPerNight || objHotelAvailPackage.PriceType == PackagePriceType.PerPersonPerNight) { decTotalPackageAmount += objAddOnPackageSelections[j].Quantity * objHotelAvailPackage.Price * intNumberStayNights; decTotalPackageDeposit += objAddOnPackageSelections[j].Quantity * objHotelAvailPackage.Deposit * intNumberStayNights; } else { decTotalPackageAmount += objAddOnPackageSelections[j].Quantity * objHotelAvailPackage.Price; decTotalPackageDeposit += objAddOnPackageSelections[j].Quantity * objHotelAvailPackage.Deposit; } } decimal decDepositTaxFactor = 0; if (decTotalPackageAmount != 0) decDepositTaxFactor = decTotalPackageDeposit / decTotalPackageAmount; decTotalPackageAmount += decTotalPackageTaxes + decTotalPackageFees; decTotalPackageDeposit += decimal.Round(((decTotalPackageTaxes + decTotalPackageFees) * decDepositTaxFactor), 2); decimal decTotalAdditionalTaxes = 0; // Exclusive taxes only decimal decTotalAdditionalFees = 0; // Exclusive fees only for (int j = 0; j < objHotelAvailRoomRate.PerStayTaxesFees.Length; j++) { if (objHotelAvailRoomRate.PerStayTaxesFees[j].CategoryType == TaxFeeCategoryType.Tax && objHotelAvailRoomRate.PerStayTaxesFees[j].Type == TaxFeeType.Exclusive) { decTotalAdditionalTaxes += objHotelAvailRoomRate.PerStayTaxesFees[j].Amount; } else if (objHotelAvailRoomRate.PerStayTaxesFees[j].CategoryType == TaxFeeCategoryType.Fee && objHotelAvailRoomRate.PerStayTaxesFees[j].Type == TaxFeeType.Exclusive) { decTotalAdditionalFees += objHotelAvailRoomRate.PerStayTaxesFees[j].Amount; } } objHotelPricing[i] = new HotelPricing(); objHotelPricing[i].SegmentRefID = objRoomOccupantSelection.RoomRefID; objHotelPricing[i].CurrencyCode = strCurrenyCode; objHotelPricing[i].TotalRoomTaxes = decTotalRoomTaxes; objHotelPricing[i].TotalRoomFees = decTotalRoomFees; objHotelPricing[i].TotalRoomAmount = decTotalRoomAmount; objHotelPricing[i].TotalPackageTaxes = decTotalPackageTaxes; objHotelPricing[i].TotalPackageFees = decTotalPackageFees; objHotelPricing[i].TotalPackageAmount = decTotalPackageAmount; objHotelPricing[i].TotalAdditionalTaxes = decTotalAdditionalTaxes; objHotelPricing[i].TotalAdditionalFees = decTotalAdditionalFees; if (ConfigurationManager.AppSettings["HotelPricing.IncludeAddOnPackageAmountsInTotal"] == "1") objHotelPricing[i].TotalAmount = decTotalRoomAmount + decTotalPackageAmount + decTotalAdditionalTaxes + decTotalAdditionalFees; else objHotelPricing[i].TotalAmount = decTotalRoomAmount + decTotalAdditionalTaxes + decTotalAdditionalFees; //objHotelPricing[i].TotalDeposit = HotelPricingHelper.GetDepositAmount(objHotelAvailRatePlan, decTotalRoomAmount + decTotalPackageDeposit + decTotalAdditionalTaxes + decTotalAdditionalFees, intNumberStayNights); objHotelPricing[i].TotalDeposit = HotelPricingHelper.GetDepositAmount(objHotelAvailRatePlan, objHotelPricing[i].TotalAmount, intNumberStayNights); } return objHotelPricing; }
private static HotelAvailPackage GetHotelAvailPackage(AddOnPackageSelection objAddOnPackageSelection, RoomRateSelection objRoomRateSelection, HotelAvailRatePlan objHotelAvailRatePlan) { for (int i = 0; i < objHotelAvailRatePlan.Packages.Length; i++) { if (objHotelAvailRatePlan.Packages[i].Code == objAddOnPackageSelection.PackageCode) { if (objHotelAvailRatePlan.Packages[i].RoomTypeCode == "" || objHotelAvailRatePlan.Packages[i].RoomTypeCode == objRoomRateSelection.RoomTypeCode) { return objHotelAvailRatePlan.Packages[i]; } } } return null; }
private static AddOnPackageSelection[] GetAddOnPackageSelections(RoomRateSelection objRoomRateSelection, AddOnPackageSelection[] objAddOnPackageSelections) { List<AddOnPackageSelection> lAddOnPackageSelections = new List<AddOnPackageSelection>(); for (int i = 0; i < objAddOnPackageSelections.Length; i++) { if (objAddOnPackageSelections[i].RoomRefID == objRoomRateSelection.RoomRefID) lAddOnPackageSelections.Add(objAddOnPackageSelections[i]); } return lAddOnPackageSelections.ToArray(); }