public override void CalculatePriceWithDiscount(CheckItem item)
        {
            if (item.DiscountApplied)
            {
                return;
            }

            var total = item.TotalPrice - item.TotalPrice * Percent;

            item.SetTotalPrice(total);
        }
Example #2
0
        public override void CalculatePriceWithDiscount(CheckItem item)
        {
            if (item.Code != Code)
            {
                throw new InvalidOperationException($"Can't apply volume discount for {Code} to {item.Code}");
            }

            if (item.Quantity < Quantity)
            {
                return;
            }

            var volumesCount    = (int)Math.Floor(item.Quantity / (decimal)Quantity);
            var withoutDiscount = item.Quantity % Quantity;
            var total           = volumesCount * Price + withoutDiscount * item.Price;

            item.SetTotalPrice(total);
        }