/// <summary> /// Get base adult/child rate plan from BaseRatePlanOccupantRate table /// </summary> /// <param name="baseRatePlanOccupantRate">BaseRatePlanOccupantRate</param> /// <param name="baseRatePlan">BaseRatePlan</param> /// <param name="baseRatePlanRate">RatePlanRate</param> /// <param name="roomTypeName">Name for RoomType</param> /// <param name="IsAdult">True if is Adult rate plan</param> /// <returns>Adult RatePlan</returns> private VariantRatePlan GetOccupantRatePlan(BaseRatePlanOccupantRate baseRatePlanOccupantRate, BaseRatePlan baseRatePlan, RatePlanRate baseRatePlanRate, string roomTypeName, bool IsAdult, OccupancyRateType occupancyRateType, bool fetchDateRanges = false) { var occupantRatePlan = CreateVariantFromBase(baseRatePlan, string.Concat(roomTypeName, " - ", baseRatePlanRate.PeriodId)); //override the rates from the base with occupant rates occupantRatePlan.Rates = IsAdult ? GetAdultRate(baseRatePlanOccupantRate, baseRatePlanRate) : GetChildRate(baseRatePlanOccupantRate, baseRatePlanRate); occupantRatePlan.Period = baseRatePlanOccupantRate.Period; occupantRatePlan.PeriodId = baseRatePlanOccupantRate.PeriodId;//baseRatePlanOccupantRate.Period == null ? 0 : baseRatePlanOccupantRate.Period.Id; occupantRatePlan.RatePlanType = new RatePlanType() { Type = RatePlanTypeEnum.Base }; occupantRatePlan.Rates.OccupancyRateType = occupancyRateType; if (fetchDateRanges && occupantRatePlan.Period != null && occupantRatePlan.Period.Id != default(int) && (occupantRatePlan.Period.PeriodDateRanges == null || !occupantRatePlan.Period.PeriodDateRanges.Any())) { occupantRatePlan.Period.PeriodDateRanges = periodDateRangeDao.GetAllByPeriodId(occupantRatePlan.Period.Id); } return occupantRatePlan; }
/// <summary> /// Create evergreen occupant rate plan from base rate plan /// </summary> /// <param name="baseRatePlan">BaseRatePlan</param> /// <param name="roomTypeName">RoomType name</param> /// <param name="cultureCode">Culture Code</param> /// <param name="isAdult">True if is Adult rate plan</param> /// <param name="occupancyRateType">OccupancyRateType</param> /// <returns>RatePlan</returns> private VariantRatePlan CreateEvergreenOccupantRatePlan(BaseRatePlan baseRatePlan, string roomTypeName, string cultureCode, bool isAdult, OccupancyRateType occupancyRateType) { var occupantRatePlan = CreateVariantFromBase(baseRatePlan, roomTypeName); SetDefaultPeriod(occupantRatePlan, cultureCode); occupantRatePlan.Id = 0; var occupantRatePlanRates = GetNulRates(occupantRatePlan); occupantRatePlan.Rates = occupantRatePlanRates; occupantRatePlan.Rates.Id = 0; occupantRatePlan.Rates.RatePlanId = baseRatePlan.Id; occupantRatePlan.RatePlanType = new RatePlanType { Type = RatePlanTypeEnum.Base }; occupantRatePlan.Rates.OccupancyRateType = occupancyRateType; occupantRatePlan.UseOccupancyRates = true; return occupantRatePlan; }
/// <summary> /// Create non evergreen occupant rate plan from base rate plan /// </summary> /// <param name="baseRatePlan">BaseRatePlan</param> /// <param name="roomTypeName">>RoomType name</param> /// <param name="ratePlanRate">RatePlanRate</param> /// <param name="period">Period</param> /// <param name="occupancyRateType">OccupancyRateType</param> /// <returns>RatePlan</returns> private VariantRatePlan CreateNonEvergreenOccupantRatePlan(BaseRatePlan baseRatePlan, string roomTypeName, RatePlanRate ratePlanRate, Period period, OccupancyRateType occupancyRateType) { var occupantRatePlan = CreateVariantFromBase(baseRatePlan, roomTypeName); occupantRatePlan.Id = 0; occupantRatePlan.RatePlanType = new RatePlanType { Type = RatePlanTypeEnum.Base }; occupantRatePlan.Period = period; occupantRatePlan.PeriodId = period.Id; occupantRatePlan.Rates = GetNulRates(occupantRatePlan); GetDefaultVariantEvergreenBaseRates(occupantRatePlan); occupantRatePlan.Rates.Id = 0; occupantRatePlan.Rates.RatePlanId = baseRatePlan.Id; occupantRatePlan.Rates.OccupancyRateType = occupancyRateType; occupantRatePlan.UseOccupancyRates = true; return occupantRatePlan; }
/// <summary> /// Create default Adult or Child VariantRataPlans for PerPerson pricing /// </summary> /// <param name="variantRatePlan">VariantRatePlan</param> /// <param name="cultureCode">CultureCode</param> /// <param name="occupancyRateType">OccupancyRateType</param> /// <returns>VariantRatePlan</returns> private VariantRatePlan GetDefaultOccupantVariantPerPersonRatePlan(VariantRatePlan variantRatePlan, string cultureCode,OccupancyRateType occupancyRateType) { var createdRatePlan = CloneVariantRatePlan(variantRatePlan); createdRatePlan.UseOccupancyRates = true; createdRatePlan.VariantRatePlanRateId = 0; createdRatePlan.Rates.OccupancyRateType = occupancyRateType; SetVariantDefaultPeriod(createdRatePlan, cultureCode); return createdRatePlan; }