/// <summary> /// Установка определенной скидки на строку заказа с прикреплением указанного основания скидки /// </summary> /// <param name="reason">Основание скидки</param> /// <param name="discount">Скидка</param> /// <param name="unit">Скидка в процентах или рублях</param> /// <param name="orderItem">Строка заказа</param> private void SetCustomDiscount(DiscountReason reason, decimal discount, DiscountUnits unit, OrderItem orderItem) { orderItem.IsDiscountInMoney = unit == DiscountUnits.money; orderItem.DiscountSetter = discount; orderItem.DiscountReason = reason; }
/// <summary> /// Устанавливает основание скидки с введенными значениями в рублях или процентах для всего заказа /// </summary> /// <param name="reason">Основание скидки</param> /// <param name="discount">Скидки</param> /// <param name="unit">Скидка в процентах или рублях</param> /// <param name="orderItems">Список строк заказа</param> public void SetCustomDiscountForOrder(DiscountReason reason, decimal discount, DiscountUnits unit, IList <OrderItem> orderItems) { foreach (var item in orderItems) { SetCustomDiscountForOrderItem(reason, discount, unit, item); } }
/// <summary> /// Установка определенной скидки на строку заказа с прикреплением указанного основания скидки, /// после проверки возможности этого действия /// </summary> /// <param name="reason">Основание скидки</param> /// <param name="discount">Скидка</param> /// <param name="unit">Скидка в процентах или рублях</param> /// <param name="orderItem">Строка заказа</param> private void SetCustomDiscountForOrderItem(DiscountReason reason, decimal discount, DiscountUnits unit, OrderItem orderItem) { if (!CanSetDiscount(reason, orderItem)) { return; } SetCustomDiscount(reason, discount, unit, orderItem); }