public override double CalcDiscount(PurchaseBasket basket)
 {
     if (PreCondition.preCondNumber == CommonStr.DiscountPreConditions.BasketProductPriceAboveEqX)
     {
         double reduction = 0;
         foreach (int pid in basket.Products.Keys)
         {
             if (PreCondition.IsFulfilledProductPriceAboveEqXDiscount(basket, pid, MinProductPrice))
             {
                 int amount = basket.products[pid];
                 reduction += (Discount / 100) * basket.Store.GetProductDetails(pid).Item1.Price *amount;
             }
         }
         return(reduction);
     }
     else if (PreCondition.PreConditionNumber == CommonStr.DiscountPreConditions.NoDiscount)
     {
         return(0);
     }
     else if (PreCondition.PreConditionNumber == CommonStr.DiscountPreConditions.BasketPriceAboveX)
     {
         if (PreCondition.IsFulfilledMinBasketPriceDiscount(basket, MinBasketPrice))
         {
             return((Discount / 100) * basket.GetBasketOrigPrice());
         }
         else
         {
             return(0);
         }
     }
     else if (PreCondition.preCondNumber == CommonStr.DiscountPreConditions.NumUnitsInBasketAboveEqX)
     {
         if (PreCondition.IsFulfilledMinUnitsAtBasketDiscount(basket, MinUnitsAtBasket))
         {
             return((Discount / 100) * basket.GetBasketOrigPrice());
         }
         else
         {
             return(0);
         }
     }
     else
     {
         return(0);
     }
 }
Пример #2
0
 public bool IsFulfilledMinBasketPriceDiscount(PurchaseBasket basket, double minPrice)
 {
     return(basket.GetBasketOrigPrice() >= minPrice);
 }