コード例 #1
0
ファイル: RatePlanManager.cs プロジェクト: ognjenm/egle
        /// <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;
        }
コード例 #2
0
ファイル: RatePlanManager.cs プロジェクト: ognjenm/egle
 /// <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;
 }
コード例 #3
0
ファイル: RatePlanManager.cs プロジェクト: ognjenm/egle
 /// <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;
 }
コード例 #4
0
ファイル: RatePlanManager.cs プロジェクト: ognjenm/egle
        /// <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;

       }