public HourlyPricingCost CalculateHourlyPricingCost(HourlyPricing pricing, int NoOfHours, int NoOfVisitsPerWeek, int ContractDurationInWeeks, int empCount, Promotion promotion) { var hourPrice = decimal.Parse(pricing.HourePrice); var discount = Math.Round(GetDiscount(pricing.hourlypricingId, NoOfHours, ContractDurationInWeeks * NoOfVisitsPerWeek), 2, MidpointRounding.AwayFromZero); return(CalculateHourlyPricingCost(hourPrice, discount, NoOfHours, NoOfVisitsPerWeek, ContractDurationInWeeks, empCount, promotion)); }
private HourlyPricing CastToClientHourlyPricing(HourlyPricing pricing, int NoOfVisits, int NoOfHours, int ContractDurationInWeeks, int empCount, bool isAvailable, List <string> AvailableDays, Promotion promotion) { using (var promotionMgr = new PromotionManager()) { pricing.IsAvailable = isAvailable; pricing.NoOfMonths = ContractDurationInWeeks.ToString(); pricing.VisitCount = NoOfVisits.ToString(); pricing.Hours = NoOfHours.ToString(); pricing.Shift = pricing.DayShift.ToString(); pricing.AvailableDays = AvailableDays; var hourlyPricingCost = CalculateHourlyPricingCost(pricing, NoOfHours, NoOfVisits, ContractDurationInWeeks, empCount, promotion); pricing.Discount = hourlyPricingCost.Discount.ToString().Replace(".00", ""); pricing.TotalbeforeDiscount = (hourlyPricingCost.TotalPriceBeforeDiscount).ToString().Replace(".00", ""); pricing.MonthelyPrice = (hourlyPricingCost.MonthelyPrice).ToString().Replace(".00", ""); pricing.TotalPrice = hourlyPricingCost.TotalPriceAfterDiscount.ToString().Replace(".00", ""); pricing.TotalPromotionDiscountAmount = hourlyPricingCost.TotalPromotionDiscountAmount.ToString().Replace(".00", ""); pricing.TotalPriceAfterPromotion = hourlyPricingCost.TotalPriceAfterPromotion.ToString().Replace(".00", ""); pricing.VatRate = hourlyPricingCost.VatRate.ToString().Replace(".00", ""); pricing.VatAmount = hourlyPricingCost.VatAmount.ToString().Replace(".00", ""); pricing.TotalPriceWithVat = hourlyPricingCost.TotalPriceWithVat.ToString().Replace(".00", ""); pricing.TotalPrice = hourlyPricingCost.TotalPriceAfterDiscount.ToString().Replace(".00", ""); var totalVisits = ContractDurationInWeeks * NoOfVisits; pricing.PromotionExtraVisits = (promotion.FreeVisitsFactor ?? 0) == 0 ? 0 : (int)Math.Truncate((decimal)totalVisits / promotion.FreeVisitsFactor.Value); pricing.PromotionName = promotion.Name; return(pricing); } }