Beispiel #1
0
 private void btnSelectProj_Click(object sender, EventArgs e)
 {
     try
     {
         OpenFileDialog dlg = new OpenFileDialog();
         dlg.Title  = "请选择C#项目文件";
         dlg.Filter = "C#项目文件(*.csproj)|*.csproj";
         if (dlg.ShowDialog() == DialogResult.OK && !dlg.SafeFileName.IsNullOrEmpty())
         {
             MSelectedItem item = _settingInfo.SelectedItems.FirstOrDefault(n => n.Path == dlg.FileName);
             if (item == null)
             {
                 item = new MSelectedItem()
                 {
                     Type       = 2,
                     Name       = Path.GetFileNameWithoutExtension(dlg.SafeFileName),
                     Path       = dlg.FileName,
                     Guid       = Guid.NewGuid().ToString(),
                     CreateTime = DateTime.Now
                 };
                 _settingInfo.SelectedItems.Add(item);
                 SettingHelper.SaveSettingInfo(_settingInfo);
             }
             //ProjSelectedEvent?.Invoke(item);
             ProjSelectedEvent?.BeginInvoke(item, null, null);
             this.Close();
         }
     }
     catch (Exception ex)
     {
         MetroMessageBox.Show(this, ex.Message, "项目选择处理错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
Beispiel #2
0
        private Boolean isItemApplicable(MPackageTrayPriceDiscount pp, CBasketItem bi)
        {
            String        ppSelectType = pp.SelectionType;
            MSelectedItem vs           = (MSelectedItem)bi.Item;


            if ((ppSelectType.Equals("1")) && (vs.SelectionType.Equals("1")))
            {
                //Service
                if (vs.ServiceID.Equals(pp.ServiceId))
                {
                    return(true);
                }
            }
            else if ((ppSelectType.Equals("2")) && (vs.SelectionType.Equals("2")))
            {
                //Item
                if (vs.ItemID.Equals(pp.ItemId))
                {
                    return(true);
                }
            }
            else if ((ppSelectType.Equals("3")) && (vs.SelectionType.Equals("2")))
            {
                //Item Category VS Item

                MInventoryItem vi = (MInventoryItem)vs.ItemObj;
                if (vi.ItemCategory.Equals(pp.CategoryId))
                {
                    return(true);
                }
            }

            return(false);
        }
        protected String createCombinedKey(MSelectedItem si, int type)
        {
            String selType = si.SelectionType;
            String key     = "";

            if (selType.Equals("1"))
            {
                //Service
                key = si.ServiceID;
            }
            else if (selType.Equals("2"))
            {
                //Item
                key = si.ItemID;
            }
            else if (selType.Equals("3"))
            {
                //Item Category
                key = si.ItemCategory;
            }

            String cmbKey = String.Format("{0}-{1}-{2}", type, selType, key);

            return(cmbKey);
        }
        private void cmdClear_Click(object sender, RoutedEventArgs e)
        {
            MSelectedItem v = (MSelectedItem)(sender as Button).Tag;

            billSim.DeleteSelectedItem(v);
            billSim.IsModified = true;
        }
Beispiel #5
0
        private static void OnProductSelectedChanged(DependencyObject obj, DependencyPropertyChangedEventArgs e)
        {
            UProductTestSelect control = obj as UProductTestSelect;
            MSelectedItem      d       = (MSelectedItem)e.NewValue;

            updateGui(control, d);
        }
Beispiel #6
0
        private static void updateGui(UProductTestSelect control, MSelectedItem v)
        {
            if (v == null)
            {
                return;
            }

            MSelectedItem o = new MSelectedItem(v.GetDbObject().Clone());

            control.cbxEnable.IsChecked = o.EnabledFlag.Equals("Y");
            control.cbxTray.IsChecked   = o.TrayFlag.Equals("Y");
            int selectionType = CUtil.StringToInt(o.SelectionType);

            control.cboSelectionType.SelectedIndex = selectionType - 1;

            if (o.SelectionType.Equals("1"))
            {
                control.lkupItem.SelectedObject = o.ServiceObj;
            }
            else if (o.SelectionType.Equals("2"))
            {
                control.lkupItem.SelectedObject = o.ItemObj;
            }
            else
            {
                control.lkupItem.SelectedObject = o.ServiceObj;
            }

            control.txtValue.Text = o.ItemQuantity;
        }
Beispiel #7
0
        private void updateObject()
        {
            MSelectedItem v = (MSelectedItem)ProductSelected;

            if (v == null)
            {
                return;
            }

            v.ServiceObj = null;
            v.ItemObj    = null;

            if (lkupItem.SelectedObject != null)
            {
                if (lkupItem.Lookup == LookupSearchType2.ServiceLookup)
                {
                    v.ServiceObj    = lkupItem.SelectedObject;
                    v.SelectionType = "1";
                }
                else if (lkupItem.Lookup == LookupSearchType2.InventoryItemLookup)
                {
                    v.ItemObj       = lkupItem.SelectedObject;
                    v.SelectionType = "2";
                }
            }

            v.ItemQuantity = txtValue.Text;
        }
Beispiel #8
0
        private MSelectedItem createSelectedItem(MPackageVoucher pv)
        {
            MSelectedItem si = new MSelectedItem(new CTable(""));

            if (pv.SelectionType.Equals("1"))
            {
                //Service
                si.ServiceObj = pv.ServiceObj;
            }
            else if (pv.SelectionType.Equals("2"))
            {
                //Item
                si.ItemObj = pv.ItemObj;
            }
            else if (pv.SelectionType.Equals("4"))
            {
                //Voucher
                si.VoucherObj = pv.VoucherObj;
            }
            else if (pv.SelectionType.Equals("5"))
            {
                //Free text
                si.FreeText   = pv.FreeText;
                si.FreeTextID = pv.PackageVoucherID;
            }

            si.SelectionType = pv.SelectionType;
            return(si);
        }
        private void addItem()
        {
            MSelectedItem si = new MSelectedItem(new CTable(""));

            si.SelectionType = "2";
            si.ItemObj       = null;
            si.EnabledFlag   = "Y";
            si.ItemQuantity  = "1";

            billSim.AddSelectedItem(si);
            billSim.IsModified = true;
        }
Beispiel #10
0
        private void btnSelectFolder_Click(object sender, EventArgs e)
        {
            try
            {
                using (var fsd = new FolderSelectDialog())
                {
                    fsd.Title = "选择文件夹";
                    if (fsd.ShowDialog(this.Handle))
                    {
                        var folder = fsd.FileName;
                        if (!string.IsNullOrWhiteSpace(folder) && Directory.Exists(folder))
                        {
                            this.DialogResult = DialogResult.OK;

                            DirectoryInfo dir  = new DirectoryInfo(folder);
                            MSelectedItem item = _settingInfo.SelectedItems.FirstOrDefault(n => n.Path == dir.FullName);
                            if (item == null)
                            {
                                item = new MSelectedItem()
                                {
                                    Type = 3, Name = dir.Name, Path = dir.FullName, Guid = Guid.NewGuid().ToString(), CreateTime = DateTime.Now
                                };
                                _settingInfo.SelectedItems.Add(item);
                                SettingHelper.SaveSettingInfo(_settingInfo);
                            }
                            ProjSelectedEvent?.BeginInvoke(item, null, null);
                            this.Close();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MetroMessageBox.Show(this, ex.Message, "文件选择处理错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }



            //FolderBrowserDialog dlg = new FolderBrowserDialog();
            //if (dlg.ShowDialog() == DialogResult.OK)
            //{
            //    DirectoryInfo dir = new DirectoryInfo(dlg.SelectedPath);
            //    MSelectedItem item = _settingInfo.SelectedItems.FirstOrDefault(n => n.Path == dir.FullName);
            //    if (item == null)
            //    {
            //        item = new MSelectedItem() { Type = 3, Name = dir.Name, Path = dir.FullName, Guid = Guid.NewGuid().ToString(), CreateTime = DateTime.Now };
            //        _settingInfo.SelectedItems.Add(item);
            //        SettingHelper.SaveSettingInfo(_settingInfo);
            //    }
            //    ProjSelectedEvent?.Invoke(item);
            //    this.Close();
            //}
        }
        private CBasket getQualifyItem(CPackageItemAdapter v, CBasket trackingBasket, int required)
        {
            CBasket nbk = null;

            if (v.QuantityType.Equals("1"))
            {
                //Used
                nbk = new CBasket(BasketTypeEnum.Used);
            }
            else
            {
                //2 = Free/Bonus
                nbk = new CBasket(BasketTypeEnum.FreeAnnonymous);
            }

            int cnt = trackingBasket.GetBasketItemCount();

            for (int i = 0; i < cnt; i++)
            {
                CBasketItem   bi = trackingBasket.GetBasketItem(i);
                MSelectedItem si = (MSelectedItem)bi.Item;

                if (v.SelectionType.Equals("1"))
                {
                    //Service
                    if (v.ServiceID.Equals(si.ServiceID) && (bi.TempLeftQty >= required))
                    {
                        bi.TempLeftQty = bi.TempLeftQty - required;
                        CBasketItem nbi = new CBasketItem(bi.Key, si, required);
                        nbk.AddBasketItem(nbi);

                        return(nbk);
                    }
                }
                else if (v.SelectionType.Equals("2"))
                {
                    //Item
                    if (v.ItemID.Equals(si.ItemID) && (bi.TempLeftQty >= required))
                    {
                        bi.TempLeftQty = bi.TempLeftQty - required;
                        CBasketItem nbi = new CBasketItem(bi.Key, si, required);
                        nbk.AddBasketItem(nbi);

                        return(nbk);
                    }
                }
            }

            return(null);
        }
        public CBasketItemDisplay(CBasketItem bi, BasketTypeEnum bt, int groupNum, int seq, CBasket bk)
        {
            initWeight();

            basket     = bk;
            basketType = bt;
            grpNum     = groupNum;
            sequence   = seq;
            bki        = bi;
            si         = (MSelectedItem)bi.Item;

            amount      = bki.GetAmount();
            totalAmount = bki.GetTotal();
        }
        public CBasketItemDisplay(CTable tb)
        {
            initWeight();

            basketType = (BasketTypeEnum)CUtil.StringToInt(tb.GetFieldValue("BASKET_TYPE"));
            basket     = new CBasket(basketType);


            grpNum   = CUtil.StringToInt(tb.GetFieldValue("GROUP_NO"));
            sequence = CUtil.StringToInt(tb.GetFieldValue("GROUP_NO"));

            double  qty      = CUtil.StringToDouble(tb.GetFieldValue("QUANTITY"));
            double  amt      = CUtil.StringToDouble(tb.GetFieldValue("AMOUNT"));
            double  tot      = CUtil.StringToDouble(tb.GetFieldValue("TOTAL_AMOUNT"));
            double  discount = CUtil.StringToDouble(tb.GetFieldValue("DISCOUNT"));
            Boolean isPriced = tb.GetFieldValue("IS_PRICED").Equals("Y");

            String code = tb.GetFieldValue("CODE");

            sequence = 1;
            id       = tb.GetFieldValue("BILL_SIM_DISPLAY_ID");
            //CTable o = new CTable("");

            si             = new MSelectedItem(tb);
            si.TrayFlag    = tb.GetFieldValue("IS_TRAY");
            isTray         = si.TrayFlag.Equals("Y");
            si.EnabledFlag = "Y";
            si.VoucherID   = tb.GetFieldValue("VOUCHER_ID");
            si.VoucherNo   = tb.GetFieldValue("VOUCHER_CODE");
            si.VoucherName = tb.GetFieldValue("VOUCHER_NAME");
            si.FreeText    = tb.GetFieldValue("FREE_TEXT");

            bki = new CBasketItem(code, si, qty, amt);
            bki.SetDiscount(discount);
            if (qty != 0)
            {
                if (isPriced)
                {
                    bki.SetUnitPrice(amt / qty);
                }
            }

            amount      = amt;
            totalAmount = tot;
        }
        private void populateBillSimulate(MAccountDoc doc)
        {
            MBillSimulate bs = doc.BillSimulate;

            bs.ClearSelectedItem();

            bs.DocumentDate   = doc.DocumentDate;
            bs.SimulateTime   = doc.DocumentDate;
            bs.CustomerObj    = doc.CustomerObj;
            bs.CustomerID     = doc.EntityId;
            bs.BranchId       = doc.BranchId;
            bs.DocumentType   = doc.DocumentType;
            bs.DocumentStatus = doc.DocumentStatus;

            foreach (MAccountDocItem di in doc.AccountItem)
            {
                if (di.ExtFlag.Equals("D"))
                {
                    continue;
                }

                MSelectedItem si = new MSelectedItem(new CTable(""));

                si.TrayFlag = "N";
                if (di.IsTrayFlag == true)
                {
                    si.TrayFlag = "Y";
                }

                si.SelectionType            = di.SelectType;
                si.ServiceID                = di.ServiceID;
                si.ItemID                   = di.ItemId;
                si.ServiceCode              = di.ServiceCode;
                si.ServiceName              = di.ServiceName;
                si.ItemCode                 = di.ItemCode;
                si.ItemNameThai             = di.ItemNameThai;
                si.ItemQuantity             = di.Quantity;
                si.ItemCategory             = di.ItemCategory;
                si.ServicePricingDefinition = di.ServicePricingDefinition;
                si.PricingDefination        = di.PricingDefinition;
                si.EnabledFlag              = "Y";

                bs.AddSelectedItem(si);
            }
        }
Beispiel #15
0
        private void cbxEnable_Checked(object sender, RoutedEventArgs e)
        {
            UProductTestSelect control = this;

            if (control.OnChanged != null)
            {
                control.OnChanged(control, null);
            }

            MSelectedItem v = (MSelectedItem)ProductSelected;

            if (v == null)
            {
                return;
            }

            v.EnabledFlag = "Y";
        }
Beispiel #16
0
        private void populateHash(ObservableCollection <MPackageBundle> items, int type)
        {
            foreach (MPackageBundle pb in items)
            {
                if (pb.EnabledFlag.Equals("Y"))
                {
                    //MSelectedItem and MPackageBonus has some field in common
                    MSelectedItem si     = new MSelectedItem(pb.GetDbObject());
                    String        cmbKey = createCombinedKey(si, type);
                    combinedHash[cmbKey] = pb;

                    int qty = CUtil.StringToInt(pb.Quantity);
                    if (qty < minumConfigQty)
                    {
                        minumConfigQty = qty;
                    }
                }
            }
        }
Beispiel #17
0
        private CBasketSet finalizeOutput(CBasketSet input, CBasket trackingBasket, CBasket used, CBasket free)
        {
            CBasketSet output = new CBasketSet();

            if ((used == null) && (free == null))
            {
                return(input);
            }

            //The original ones
            preserveOriginalGrouping(output, input);

            output.AddBasket(finalizeBasket(trackingBasket, BasketTypeEnum.Available));
            output.AddBasket(finalizeBasket(used, BasketTypeEnum.Used));

            if (triedCount > 0)
            {
                MPackage pkg = getPackage();
                ObservableCollection <MPackageVoucher> gifts = pkg.PackageVoucherFree;

                CBasket gbsk = new CBasket(BasketTypeEnum.FreeVoucher);

                foreach (MPackageVoucher g in gifts)
                {
                    if (g.EnabledFlag.Equals("N"))
                    {
                        continue;
                    }

                    MSelectedItem si = createSelectedItem(g);
                    CBasketItem   bi = new CBasketItem(si.Key, si, CUtil.StringToInt(g.Quantity) * triedCount);

                    gbsk.AddBasketItem(bi);
                }

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

            return(output);
        }
Beispiel #18
0
        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);
        }
Beispiel #19
0
        private CBasketItem calculatePrice(CBasketItem bi)
        {
            CBasketItem   nbi = new CBasketItem(bi.Key, bi.Item, bi.Quantity);
            MSelectedItem si  = (MSelectedItem)bi.Item;

            String pricingDef = si.PricingDefination;

            if (si.SelectionType.Equals("1"))
            {
                pricingDef = si.ServicePricingDefinition;
            }

            MIntervalConfig ivc = new MIntervalConfig(new CTable(""));

            ivc.DeserializeConfig(pricingDef);

            CPrice o = null;

            if (ivc.SelectionType == 1)
            {
                //step
                o = getStepPrice(ivc, bi);
            }
            else
            {
                //Tier
                o = getTierPrice(ivc, bi);
            }

            if (o != null)
            {
                nbi.SetAppliedPackage(getPackage());
                nbi.SetUnitPrice(o.UnitPrice);

                return(nbi);
            }

            return(null);
        }
        //Comparer _comparer = new Comparer(System.Globalization.CultureInfo.CurrentCulture);

        public int Compare(object x, object y)
        {
            //DefaultSellPrice
            CBasketItem bi1 = x as CBasketItem;
            CBasketItem bi2 = y as CBasketItem;

            MSelectedItem si1 = (MSelectedItem)bi1.Item;
            MSelectedItem si2 = (MSelectedItem)bi2.Item;

            double defSellPrice1 = 0.00;
            double defSellPrice2 = 0.00;

            if (si1.SelectionType.Equals("1"))
            {
                //Service
                //Not yet implemented default sell price for Service right now
                defSellPrice1 = 0.00;
            }
            else
            {
                //Item
                defSellPrice1 = CUtil.StringToDouble(si1.DefaultSellPriceItem);
            }

            if (si2.SelectionType.Equals("1"))
            {
                //Service
                //Not yet implemented default sell price for Service right now
                defSellPrice2 = 0.00;
            }
            else
            {
                //Item
                defSellPrice2 = CUtil.StringToDouble(si2.DefaultSellPriceItem);
            }

            return(defSellPrice1.CompareTo(defSellPrice2));
        }
        private CBasketSet finalizeOutput(CBasketSet input, Hashtable filterHash, CPrice accum)
        {
            CBasketSet interim = new CBasketSet();
            MPackage   pkg     = getPackage();

            double totalBundleAmt = getSumAmount(input, BasketTypeEnum.Bundled);

            accum.TotalAmount = accum.TotalAmount + totalBundleAmt;
            double ratio = calculateRatio(accum);

            if (ratio > 0)
            {
                ObservableCollection <MPackageVoucher> gifts = pkg.PackagePostGiftFrees;
                CBasket nbk = new CBasket(BasketTypeEnum.PostFree);

                foreach (MPackageVoucher g in gifts)
                {
                    if (g.EnabledFlag.Equals("N"))
                    {
                        continue;
                    }

                    double qty = CUtil.StringToDouble(g.Quantity) * ratio;
                    if (qty > 0)
                    {
                        MSelectedItem si  = createSelectedItem(g);
                        CBasketItem   nbi = new CBasketItem(si.Key, si, qty);
                        nbk.AddBasketItem(nbi);
                    }
                }

                if (nbk.GetBasketItemCount() > 0)
                {
                    interim.AddBasket(nbk);
                    giftCount++;
                }
            }

            //Copy the originals to output
            ArrayList types = input.GetBasketTypes();

            foreach (BasketTypeEnum bt in types)
            {
                ArrayList baskets = input.GetAllBasketByType(bt);

                foreach (CBasket bk in baskets)
                {
                    CBasket obk = new CBasket(bt);
                    obk.CopyEntireFrom(bk);

                    if (isInBasketType(bk.BasketType) && (giftCount > 0))
                    {
                        updateBasketItem(obk, filterHash);
                    }

                    interim.AddBasket(obk);
                }
            }

            return(interim);
        }
        private CBasket getQualifyItemByGroup(CPackageItemAdapter v, CBasket trackingBasket, int required)
        {
            CBasket nbk = null;

            if (v.QuantityType.Equals("1"))
            {
                //Used
                nbk = new CBasket(BasketTypeEnum.Used);
            }
            else
            {
                //2 = Free/Bonus
                nbk = new CBasket(BasketTypeEnum.FreeAnnonymous);
            }

            //This should be sorted by Price and sort order depend on Quantity Type
            //QuantityType = 1, most expensive come first
            //QuantityType = 2, cheapest come first

            ArrayList sortedArr = sortBasketItem(trackingBasket, v);

            int cnt = sortedArr.Count; //trackingBasket.GetBasketItemCount();

            for (int i = 0; i < cnt; i++)
            {
                CBasketItem   bi = (CBasketItem)sortedArr[i]; //trackingBasket.GetBasketItem(i);
                MSelectedItem si = (MSelectedItem)bi.Item;

                if (si.ItemCategory.Equals(v.ItemCategoryID) && (bi.TempLeftQty > 0))
                {
                    int req = 0;
                    if (required >= bi.TempLeftQty)
                    {
                        req            = (int)bi.TempLeftQty;
                        required       = required - (int)bi.TempLeftQty;
                        bi.TempLeftQty = 0.00;
                    }
                    else
                    {
                        req            = required;
                        bi.TempLeftQty = bi.TempLeftQty - required;
                        required       = 0;
                    }

                    CBasketItem nbi = new CBasketItem(bi.Key, si, req);
                    nbk.AddBasketItem(nbi);
                }

                if (required <= 0)
                {
                    break;
                }
            }

            if (required <= 0)
            {
                //Got all required
                return(nbk);
            }

            return(null);
        }
Beispiel #23
0
        private CBasketItem calculatePrice(CBasketItem bi)
        {
            MPackage        pkg        = getPackage();
            MIntervalConfig ivc        = null;
            CPrice          o          = null;
            Boolean         applicable = false;
            CBasketItem     nbi        = new CBasketItem(bi.Key, bi.Item, bi.Quantity);

            foreach (MPackageTrayPriceDiscount pp in pkg.PackageTrayByItems)
            {
                if (pp.EnabledFlag.Equals("N"))
                {
                    continue;
                }

                if (!isItemApplicable(pp, bi))
                {
                    continue;
                }

                //Applicable here

                applicable = true;

                ivc = new MIntervalConfig(new CTable(""));
                ivc.DeserializeConfig(pp.PricingDefination);

                o = null;
                if (ivc.SelectionType == 1)
                {
                    //step
                    o = getStepPrice(ivc, bi);
                }
                else
                {
                    //Tier
                    o = getTierPrice(ivc, bi);
                }

                if (o != null)
                {
                    //Got the price

                    nbi.SetAppliedPackage(pkg);
                    nbi.SetUnitPrice(o.UnitPrice);

                    return(nbi);
                }
            }

            //Applicable but price not match here, or not applicable for all

            if (!applicable)
            {
                //Not applicable for all
                return(null);
            }

            //Get Default Price here
            MSelectedItem si = (MSelectedItem)bi.Item;

            ivc = new MIntervalConfig(new CTable(""));

            String pricingDef = si.PricingDefination;

            if (si.SelectionType.Equals("1"))
            {
                pricingDef = si.ServicePricingDefinition;
            }

            ivc.DeserializeConfig(pricingDef);

            o = null;
            if (ivc.SelectionType == 1)
            {
                //step
                o = getStepPrice(ivc, bi);
            }
            else
            {
                //Tier
                o = getTierPrice(ivc, bi);
            }

            if (o != null)
            {
                nbi.SetAppliedPackage(pkg);
                nbi.SetUnitPrice(o.UnitPrice);

                return(nbi);
            }

            return(null);
        }