public int Compare(object x, object y) { CBasketItemDisplay bi1 = x as CBasketItemDisplay; CBasketItemDisplay bi2 = y as CBasketItemDisplay; if (bi1.BasketTypeWeight != bi2.BasketTypeWeight) { return(bi1.BasketTypeWeight.CompareTo(bi2.BasketTypeWeight)); } if ((bi1.BasketType == BasketTypeEnum.Bundled) || (bi1.BasketType == BasketTypeEnum.BundledTray)) { //Use group no as a key to compare too if (bi1.GroupNo != bi2.GroupNo) { return(bi1.GroupNo.CompareTo(bi2.GroupNo)); } return(bi1.Sequence.CompareTo(bi2.Sequence)); } return(bi1.Name.CompareTo(bi2.Name)); }
public static void CreateDisplayView(CBasketSet basketSet, MBillSimulate bsim, ItemDisplayUpdate callback) { ArrayList sorted = new ArrayList(); bsim.ResultItemsCTable.Clear(); bsim.ClearPromotionItem("BILL_RESULT_ITEM"); bsim.ClearPromotionItem("BILL_FREE_ITEM"); bsim.ClearPromotionItem("BILL_VOUCHER_ITEM"); bsim.ClearPromotionItem("BILL_POSTGIFT_ITEM"); double total = 0.00; ArrayList bts = basketSet.GetBasketTypes(); foreach (BasketTypeEnum bt in bts) { ArrayList arr = basketSet.GetAllBasketByType(bt); int grp = 1; foreach (CBasket bk in arr) { MPackage pkg = bk.GetAppliedPackage(); int cnt = bk.GetBasketItemCount(); int seq = 0; for (int j = 0; j < cnt; j++) { CBasketItem bi = bk.GetBasketItem(j); if (bi.Quantity > 0) { CBasketItemDisplay bid = new CBasketItemDisplay(bi, bt, grp, seq, bk); seq++; bid.SetPromotion(pkg); if (bt.ToString().Contains("Tray")) { bid.IsTray = true; } if ((bt == BasketTypeEnum.FreeAnnonymous) || (bt == BasketTypeEnum.FreeAnnonymousTray)) { //bsim.FreeItems.Add(bid); bsim.AddPromotionItem(bid, "BILL_FREE_ITEM"); } else if (bt == BasketTypeEnum.FreeVoucher) { //bsim.VoucherItems.Add(bid); bsim.AddPromotionItem(bid, "BILL_VOUCHER_ITEM"); } else if (bt == BasketTypeEnum.PostFree) { //bsim.PostGiftItems.Add(bid); bsim.AddPromotionItem(bid, "BILL_POSTGIFT_ITEM"); } else { sorted.Add(bid); } } } grp++; } } sorted.Sort(new SelectedItemComparator()); total = populateResultItems(bsim, "BILL_RESULT_ITEM", sorted, callback); bsim.TotalAmount = total.ToString(); bsim.DiscountAmount = totalFinalDiscount.ToString(); bsim.NetAmount = (total - totalFinalDiscount).ToString(); }