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)); }
public RouteListWageResult(decimal wage, decimal fixedWage, WageDistrictLevelRate wageDistrictLevelRate) { Wage = wage; FixedWage = fixedWage; WageDistrictLevelRate = wageDistrictLevelRate; }
public RouteListWageResult() { Wage = 0; FixedWage = 0; WageDistrictLevelRate = null; }
public RouteListItemWageResult(decimal wage, WageDistrictLevelRate wageDistrictLevelRate) { Wage = wage; WageDistrictLevelRate = wageDistrictLevelRate; }
public RouteListItemWageResult() { Wage = 0; WageDistrictLevelRate = null; }