public Money CalculatePriceReduction(IBasketLine basketLine) { /* * Buy N, get one free * i.e. Buy 4, pay for 3 */ try { int quantity = basketLine.Quantity / (PromotionBase.AuxData + 1); //See how many multiples we have if (quantity * (PromotionBase.AuxData + 1) > basketLine.Quantity) { quantity--; } if (quantity > 0) { Money discount = new Money(basketLine.LinePrice); discount.RoundingMode = RoundingMode.AlwaysRoundUp; discount.Divide(basketLine.Quantity); discount.Multiply(quantity); return discount; } else { return new Money(0); } } catch (Exception e) { LogManager.GetLogger(GetType()).Error(e); return new Money(0); } }
public void Process(IBasket basket) { IBasketLine[] lineArray = new IBasketLine[basket.BasketItemList.Count]; basket.BasketItemList.CopyTo(lineArray, 0); Hashtable original = new Hashtable(); foreach (IBasketLine line in lineArray) { if (original.ContainsKey(line.ItemCode)) { IBasketLine orgLine = original[line.ItemCode] as IBasketLine; if (orgLine != null) { orgLine.Quantity += line.Quantity; basket.RemoveItem(line); } } else { original.Add(line.ItemCode, line); } } }
public Money CalculatePriceReduction(IBasketLine basketLine) { return GenericPromotion.CalculateDefaultPriceReduction(basketLine.LinePrice, basketLine.Quantity, PromotionBase); }
protected string RenderItemTotal(IBasketLine line) { return HtmlFormatUtils.FormatMoney(line.LinePrice); }
protected string RenderImageUrl(IBasketLine line) { return GetProductImageUrl(line.ItemCode); }
public virtual void RemoveItem(IBasketLine item) { BasketItem bi = item as BasketItem; if (bi != null) { BasketItemList.Remove(bi); } else if (item != null) { RemoveItem(item.BasketItemID); } }
public static string FormatUnitLinePrice(IBasketLine line, IBasketRules rules, ITextTranslator translator) { return FormatMoney(line.UnitLinePrice, rules, translator); }
public static string FormatUnitLinePrice(IBasketLine line) { return FormatMoney(line.UnitLinePrice); }
public void RemoveItem(IBasketLine item) { _basket.RemoveItem(item); }
public void Save(IBasketLine basketLine) { _commonDao.SaveOrUpdateObject(basketLine as BasketItem); }