//public void CopyFrom(CBasket src) //{ // TotalAmount = src.TotalAmount; // int cnt = src.GetBasketItemCount(); // for (int i = 0; i < cnt; i++) // { // CBasketItem bi = src.GetBasketItem(i); // AddBasketItem(bi); // } //} public void CopyEntireFrom(CBasket src) { TotalAmount = src.TotalAmount; BundledAmount = src.BundledAmount; int cnt = src.GetBasketItemCount(); for (int i = 0; i < cnt; i++) { CBasketItem bi = src.GetBasketItem(i); CBasketItem nbi = new CBasketItem(bi.Key, bi.Item, bi.Quantity); nbi.SetFinalDiscount(bi.GetFinalDiscount()); nbi.IsFinalDiscounted = bi.IsFinalDiscounted; nbi.IsPostGift = bi.IsPostGift; nbi.IsTray = bi.IsTray; if (bi.IsPriced()) { nbi.SetUnitPrice(bi.GetUnitPrice()); } nbi.SetDiscount(bi.GetDiscount()); AddBasketItem(nbi); } }
private CBasketItem calculateDiscount(CBasketItem bi) { MPackage pkg = getPackage(); MSelectedItem vi = (MSelectedItem)bi.Item; CBasketItem nbi = new CBasketItem(bi.Key, bi.Item, bi.Quantity); nbi.SetUnitPrice(bi.GetUnitPrice()); foreach (MPackageTrayPriceDiscount pp in pkg.PackageTrayByItems) { if (!isItemApplicable(pp, bi)) { continue; } MIntervalConfig ivc = new MIntervalConfig(new CTable("")); ivc.DeserializeConfig(pp.DiscountDefination); CPrice o = null; if (ivc.SelectionType == 1) { //step o = getStepDiscount(ivc, bi); } else { //Tier o = getTierDiscount(ivc, bi); } if (o != null) { nbi.SetAppliedPackage(pkg); nbi.SetDiscount(o.DiscountAmount); return(nbi); } } return(null); }