예제 #1
0
        public void GetVolumeDiscount()
        {
            var lineItem = new LineItem(Defy)
            {
                Quantity = 30
            };
            var discount = _utilities.GetVolumeDiscount(lineItem);

            Assert.IsNotNull(discount);
            Assert.AreEqual(.9M, discount);
        }
예제 #2
0
        /// <summary>
        /// adds line item to collection and recalculates totals
        /// </summary>
        /// <param name="line"></param>
        public void AddLineItem(LineItem item)
        {
            item.Discount  = _utilities.GetVolumeDiscount(item);
            item.ItemTotal = Math.Round(item.Bike.Price * item.Discount * item.Quantity, 2);
            this.LineItems.Add(item);

            this.SubTotal = Math.Round(LineItems.Sum(l => l.ItemTotal), 2);

            this.Tax   = Math.Round(SubTotal * _utilities.GetSalesTaxRate(this.Company.Address), 2);
            this.Total = Math.Round(SubTotal + Tax, 2);
        }