private Boolean isInBasketType(BasketTypeEnum bt)
        {
            MPackage          pkg = getPackage();
            MBasketTypeConfig cfg = new MBasketTypeConfig(new CTable(""));

            cfg.DeserializeConfig(pkg.DiscountBasketTypeConfig, pkg.BasketConfigType);

            foreach (MMasterRef vm in cfg.SelectedBaskets)
            {
                if (vm.EnabledFlag.Equals("Y"))
                {
                    if (bt.ToString().Equals(vm.Code))
                    {
                        return(true);
                    }
                }
            }

            return(false);
        }
예제 #2
0
        public CBasketSet SumInGroup(CBasketSet inBasket, BasketTypeEnum bt)
        {
            CBasketSet output = new CBasketSet();

            CProcessingResult res = new CProcessingResult("SumInGroup-" + bt.ToString());

            res.SetInputBasketSet(inBasket.Clone());

            Hashtable quantities = new Hashtable();
            Hashtable objects    = new Hashtable();
            ArrayList keys       = new ArrayList();

            ArrayList items = inBasket.GetAllBasketByType(bt);

            if (items == null)
            {
                items = new ArrayList();
            }

            foreach (CBasket b in items)
            {
                int cnt = b.GetBasketItemCount();

                for (int i = 0; i < cnt; i++)
                {
                    CBasketItem bi = b.GetBasketItem(i);
                    object      o  = quantities[bi.Key];
                    if (o == null)
                    {
                        quantities[bi.Key] = bi.Quantity;
                        objects[bi.Key]    = bi;

                        keys.Add(bi.Key);
                    }
                    else
                    {
                        double tmp = (double)quantities[bi.Key];
                        tmp = tmp + bi.Quantity;
                        quantities[bi.Key] = tmp;
                    }
                }
            }

            CBasket bkt = new CBasket(bt);

            foreach (String k in keys)
            {
                CBasketItem bi  = (CBasketItem)objects[k];
                double      qty = (double)quantities[k];
                CBasketItem bki = new CBasketItem(k, bi.Item, qty);

                bkt.AddBasketItem(bki);
            }

            if (bkt.GetBasketItemCount() > 0)
            {
                output.AddBasket(bkt);
            }

            Hashtable filterSet = new Hashtable();

            filterSet[bt] = null;
            copyBasketsExc(output, inBasket, filterSet);

            res.IsOperation = true;
            res.SetOutputBasketSet(output);
            res.SetStatus(ProcessingResultStatus.ProcessingSuccess);
            addProcessingResult(res);

            return(output);
        }