private void updateDisplayItem(CBasketItemDisplay bi)
        {
            String          key = String.Format("{0}-{1}-{2}-{3}", bi.SelectionType, bi.ItemID, bi.ServiceID, bi.IsTray);
            CItemPriceAccum hbi = (CItemPriceAccum)priceHash[key];

            if (hbi == null)
            {
                hbi = new CItemPriceAccum();

                hbi.Amount   = bi.Amount;
                hbi.Quantity = bi.Quantity;
                hbi.Discount = bi.Discount;

                priceHash[key] = hbi;
            }
            else
            {
                hbi.Amount   = hbi.Amount + bi.Amount;
                hbi.Quantity = hbi.Quantity + bi.Quantity;
                hbi.Discount = hbi.Discount + bi.Discount;
            }

            hbi.DiscountPerUnit = hbi.Discount / hbi.Quantity;
            hbi.AmountPerUnit   = hbi.Amount / hbi.Quantity;
        }
예제 #2
0
        public void AddPromotionItem(CBasketItemDisplay itm, String arrName)
        {
            CTable    o   = GetDbObject();
            ArrayList arr = o.GetChildArray(arrName);

            if (arr == null)
            {
                arr = new ArrayList();
                o.AddChildArray(arrName, arr);
            }

            itm.ExtFlag         = "A";
            itm.Seq             = seq;
            itm.DisplayCategory = getDisplayCategory(arrName);
            ObservableCollection <CBasketItemDisplay> items = getNameMapArray(arrName);

            CTable t = itm.CreateCTableObject();

            t.SetFieldValue("INTERNAL_SEQ", seq.ToString());
            arr.Add(t);

            seq++;

            items.Add(itm);
        }
예제 #3
0
        public void DeletePromotionItem(CBasketItemDisplay itm, String arrName)
        {
            CTable    o   = GetDbObject();
            ArrayList arr = o.GetChildArray(arrName);
            int       seq = itm.Seq;

            if (arr == null)
            {
                return;
            }

            foreach (CTable t in arr)
            {
                int q = CUtil.StringToInt(t.GetFieldValue("INTERNAL_SEQ"));
                if (q == seq)
                {
                    if (itm.ID.Equals(""))
                    {
                        arr.Remove(t);
                        break;
                    }
                    else
                    {
                        t.SetFieldValue("EXT_FLAG", "D");
                        itm.ExtFlag = "D";
                    }
                }
            }

            ObservableCollection <CBasketItemDisplay> items = getNameMapArray(arrName);

            items.Remove(itm);
        }
예제 #4
0
        private CTable Convert2CTable(CBasketItemDisplay di)
        {
            CTable t = new CTable("");

            t.SetFieldValue("ITEM_ID", di.ItemID);
            t.SetFieldValue("ITEM_CODE", di.ItemCode);
            t.SetFieldValue("ITEM_NAME_THAI", di.ItemName);

            t.SetFieldValue("ITEM_CATERGORY_ID", di.ItemCategoryID);

            t.SetFieldValue("SERVICE_ID", di.ServiceID);
            t.SetFieldValue("SERVICE_CODE", di.ServiceCode);
            t.SetFieldValue("SERVICE_NAME", di.ServiceName);

            t.SetFieldValue("SELECTION_TYPE", di.SelectionType);

            t.SetFieldValue("QUANTITY", di.Quantity.ToString());
            t.SetFieldValue("UNIT_PRICE", CUtil.FormatNumber((di.TotalAmount / di.Quantity).ToString(), "0"));
            t.SetFieldValue("TOTAL_AMOUNT", di.TotalAmount.ToString());
            t.SetFieldValue("DISCOUNT", di.Discount.ToString());
            t.SetFieldValue("PROMOTION_CODE", di.PromotionCode);
            t.SetFieldValue("PROMOTION_NAME", di.PromotionName);
            t.SetFieldValue("SEQUENCE", di.Sequence.ToString());

            return(t);
        }
예제 #5
0
        private void initItems(String arrName)
        {
            CTable    o   = GetDbObject();
            ArrayList arr = o.GetChildArray(arrName);

            ObservableCollection <CBasketItemDisplay> items = getNameMapArray(arrName);

            if (arr == null)
            {
                return;
            }

            items.Clear();

            foreach (CTable t in arr)
            {
                CBasketItemDisplay v = new CBasketItemDisplay(t);
                items.Add(v);
                v.Seq = seq;
                t.SetFieldValue("INTERNAL_SEQ", seq.ToString());
                v.ExtFlag = "I";
                seq++;
            }
        }