Example #1
0
        public RouteListWageResult CalculateWage()
        {
            //в адресах должны находиться одинаковые методики расчета в рамках одного МЛ
            WageDistrictLevelRate rate = src.ItemSources.Where(x => x.WageCalculationMethodic != null).Select(x => x.WageCalculationMethodic).FirstOrDefault();

            return(new RouteListWageResult(src.ItemSources.Sum(x => x.CurrentWage), src.FixedWage, rate));
        }
        /// <summary>
        /// Оплата доставки 0,5л бутылей
        /// </summary>
        decimal CalculateWageFor500mlBottles(IRouteListItemWageCalculationSource src)
        {
            WageDistrictLevelRate wageCalcMethodic = GetCurrentWageDistrictLevelRate(src);

            var rate = wageCalcMethodic.WageRates.FirstOrDefault(r => r.WageRateType == WageRateTypes.Bottle500ml);

            decimal paymentForOne = GetRateValue(src, rate);

            return(paymentForOne * src.Bottle500mlCount);
        }
        /// <summary>
        /// Оплата доставки за час
        /// </summary>
        decimal CalculateWageForFastDelivery(IRouteListItemWageCalculationSource src)
        {
            if (!src.IsFastDelivery)
            {
                return(0);
            }

            WageDistrictLevelRate wageCalcMethodic = GetCurrentWageDistrictLevelRate(src);

            var rate = wageCalcMethodic.WageRates.FirstOrDefault(r => r.WageRateType == WageRateTypes.FastDelivery);

            return(GetRateValue(src, rate));
        }
Example #4
0
 public RouteListWageResult(decimal wage, decimal fixedWage, WageDistrictLevelRate wageDistrictLevelRate)
 {
     Wage                  = wage;
     FixedWage             = fixedWage;
     WageDistrictLevelRate = wageDistrictLevelRate;
 }
Example #5
0
 public RouteListWageResult()
 {
     Wage                  = 0;
     FixedWage             = 0;
     WageDistrictLevelRate = null;
 }
 public RouteListItemWageResult(decimal wage, WageDistrictLevelRate wageDistrictLevelRate)
 {
     Wage = wage;
     WageDistrictLevelRate = wageDistrictLevelRate;
 }
 public RouteListItemWageResult()
 {
     Wage = 0;
     WageDistrictLevelRate = null;
 }