Beispiel #1
0
        /// <summary>
        /// Обробляє виконання операцій відповідно до того, який пункт меню був вибраний
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Menu_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {
            if (_fl_menuIsActive || e.ClickedItem.Tag == null)
                return;

            _fl_menuIsActive = true;
            switch (e.ClickedItem.Tag.ToString())
            {
                #region Main
                case "fiscalFunctions":
                    {
                        uiWndFiscalFunctions ff = new uiWndFiscalFunctions(Program.AppPlugins.GetActive<IFPDriver>().Name, Program.AppPlugins.GetActive<IFPDriver>().AllowedMethods);
                        try
                        {
                            if (ff.ShowDialog(this) == DialogResult.OK)
                                Program.AppPlugins.GetActive<IFPDriver>().CallFunction(ff.Function);
                        }
                        catch (Exception ex)
                        {
                            MMessageBoxEx.Show(this.chequeDGV, ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                        ff.Dispose();
                        break;
                    }
                case "LastDBChanges":
                    {
                        this.timerExchangeImport_Tick(this.timerExchangeImport, EventArgs.Empty);
                        /*uiWndBaseChanges DBChanges = new uiWndBaseChanges();
                        if (DBChanges.ShowDialog() == DialogResult.OK)
                            timer1_Tick(timer1, EventArgs.Empty);
                        DBChanges.Dispose();
                        */
                        break;
                    }
                case "Administrator":
                    {
                        DialogResult rez = DialogResult.None;
                        if (_fl_adminMode)
                            rez = MMessageBoxEx.Show(this.chequeDGV, "Вийти з режиму адміністратора", Application.ProductName, MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                        else
                            rez = admin.ShowDialog();

                        switch (rez)
                        {
                            case DialogResult.OK:
                                _fl_adminMode = true;
                                break;
                            case DialogResult.Yes:
                                _fl_adminMode = false;
                                break;
                        }

                        RefershMenus();
                        break;
                    }
                case "UnitFilter":
                    {
                        if (_fl_adminMode || admin.ShowDialog() == DialogResult.OK)
                        {
                            uiWndUnitFilter fl = new uiWndUnitFilter(Articles);
                            fl.ShowDialog();
                            fl.Dispose();
                        }
                        break;
                    }
                case "ChequeFormat":
                    {
                        uiWndDiscountSettings billRul = new uiWndDiscountSettings();
                        billRul.ShowDialog();
                        billRul.Dispose();
                        ResetDiscount();
                        UpdateSumInfo(true);
                        break;
                    }
                case "Invent":
                    {
                        if (Cheque.Rows.Count != 0 && !_fl_isInvenCheque)
                            return;
                        _fl_isInvenCheque = !_fl_isInvenCheque;
                        if (_fl_isInvenCheque)
                        {
                            DataTable dTable = new DataTable();
                            DataSet dSet = new DataSet();
                            if (ConfigManager.Instance.CommonConfiguration.PROFILES_UseProfiles)
                            {
                                dSet = DataWorkCheque.OpenInvent(this.Cheques);
                                this.Cheques.Tables.Clear();
                                foreach (DataTable dt in dSet.Tables)
                                {
                                    this.Cheques.Tables.Add(dt.Copy());
                                    dTable.Merge(dt.Copy());
                                }
                            }
                            else
                                dTable = DataWorkCheque.OpenInvent();

                            if (dTable != null)
                            {
                                dTable.ExtendedProperties.Add("loading", true);
                                Cheque.Merge(dTable);
                                Cheque.ExtendedProperties.Remove("loading");
                                dTable.ExtendedProperties.Remove("loading");
                            }
                            else
                                _fl_isInvenCheque = false;
                        }
                        else
                        {
                            DataWorkCheque.SaveInvent(Cheque, false, this.Cheques);
                            //Cheque.Rows.Clear();
                            //UpdateSumDisplay(true, true);
                            RowsRemoved_MyEvent(true, true, true);
                        }

                        RefershMenus();
                        RefreshChequeInformer(true);
                        інвентаризаціяToolStripMenuItem.Checked = _fl_isInvenCheque;
                        break;
                    }
                case "RetriveCheque":
                    {
                        _fl_isReturnCheque = !_fl_isReturnCheque;
                        чекПоверненняToolStripMenuItem.Checked = _fl_isReturnCheque;
                        RefreshChequeInformer(true);
                        break;
                    }
                case "Settings":
                    {
                        uiWndSettings set = new uiWndSettings();
                        if (set.ShowDialog() == DialogResult.OK)
                        {
                            RefreshComponents(false);
                            UpdateMyControls();
                            SearchFilter(false, ConfigManager.Instance.CommonConfiguration.APP_SearchType, true);
                            this.Text = string.Format("{2}{1}{0}", Application.ProductName, " - ", ConfigManager.Instance.CommonConfiguration.APP_SubUnitName);
                        }
                        set.Dispose();
                        break;
                    }
                case "PrintingSettings":
                    {
                        uiWndPrinting pSet = new uiWndPrinting();
                        pSet.ShowDialog();
                        pSet.Dispose();
                        break;
                    }
                case "Registration":
                    {
                        uiWndRegistration rf = new uiWndRegistration();
                        if (rf.ShowDialog() == DialogResult.OK)
                            MMessageBoxEx.Show(this.chequeDGV, "Перезавантажте програму для продовження реєстрації", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Information);
                        rf.Dispose();
                        break;
                    }
                case "AboutApp":
                    {
                        uiWndAboutBox abox = new uiWndAboutBox();
                        abox.ShowDialog();
                        abox.Dispose();
                        break;
                    }
                case "ChangeCashier":
                    {
                        DialogResult = DialogResult.Retry;
                        Close();
                        break;
                    }
                case "Exit":
                    {
                        DialogResult = DialogResult.Cancel;
                        Close();
                        break;
                    }
                #endregion
                #region TablesView
                case "Vertical":
                    {
                        if (!((ToolStripMenuItem)e.ClickedItem).Checked)
                        {
                            splitContainer1.Orientation = Orientation.Vertical;
                            ConfigManager.Instance.CommonConfiguration.STYLE_SplitOrient = Orientation.Vertical;
                            splitContainer1.SplitterDistance = splitContainer1.Width / 2;
                        }
                        else
                        {
                            splitContainer1.Orientation = Orientation.Horizontal;
                            ConfigManager.Instance.CommonConfiguration.STYLE_SplitOrient = Orientation.Horizontal;
                            splitContainer1.SplitterDistance = splitContainer1.Height / 2;
                        }
                        RefreshWindowMenu();
                        break;
                    }
                case "ArticleWindow":
                    {
                        splitContainer1.Panel2Collapsed = !splitContainer1.Panel2Collapsed;
                        ConfigManager.Instance.CommonConfiguration.STYLE_ArtSideCollapsed = !ConfigManager.Instance.CommonConfiguration.STYLE_ArtSideCollapsed;
                        RefreshWindowMenu();
                        break;
                    }
                case "SensorType":
                    {
                        if (!((ToolStripMenuItem)e.ClickedItem).Checked)
                        {/*
                            if (splitContainer1.Orientation != Orientation.Vertical)
                            {
                                splitContainer1.Tag = "R";
                            }*/
                            //splitContainer1.Orientation = Orientation.Vertical;
                            //AppConfig.STYLE_SplitOrient = Orientation.Vertical;
                            //RefreshWindowMenu();
                            //splitContainer1.SplitterDistance = splitContainer1.Width / 2;

                            this.sensorDataPanel1.Navigator.SetAndShowNavigator(ApplicationConfiguration.Instance.GetValueByKey<Hashtable>("productFiltering"));

                            this.sensorDataPanel1.Visible = true;
                            this.chequeContainer.Panel2Collapsed = false;

                            /*
                            if (this.sensorPanel1.SensorType == 50 && ConfigManager.Instance.CommonConfiguration.skin_sensor_splitter_chq_50 < this.chequeContainer.Height && this.chequeContainer.Height * 2 / 3 > ConfigManager.Instance.CommonConfiguration.skin_sensor_splitter_chq_50)
                                this.chequeContainer.SplitterDistance = ConfigManager.Instance.CommonConfiguration.skin_sensor_splitter_chq_50;
                            else if (this.sensorPanel1.SensorType == 100 && ConfigManager.Instance.CommonConfiguration.skin_sensor_splitter_chq_100 < this.chequeContainer.Height && this.chequeContainer.Height * 2 / 3 > ConfigManager.Instance.CommonConfiguration.skin_sensor_splitter_chq_100)
                                this.chequeContainer.SplitterDistance = ConfigManager.Instance.CommonConfiguration.skin_sensor_splitter_chq_100;
                            else
                                this.chequeContainer.SplitterDistance = this.chequeContainer.Height * 2 / 3;

                            */
                            this.articleDGV.Parent = this.sensorDataPanel1.Placeholder;
                            //this.articleDGV.BringToFront();

                            RefreshComponents(true);

                            //-Sensor_EventHandler(null);

                            //this.TopMost = true;
                            //System.Diagnostics.Process.Start("vk.exe");

                            //enabling dependence menu
                            управліннToolStripMenuItem.Enabled = true;
                        }
                        else
                        {/*
                            if (splitContainer1.Tag != null && splitContainer1.Tag.ToString() == "R")
                            {
                                splitContainer1.Orientation = Orientation.Horizontal;
                                ConfigManager.Instance.CommonConfiguration.STYLE_SplitOrient = Orientation.Horizontal;
                                RefreshWindowMenu();
                                splitContainer1.SplitterDistance = splitContainer1.Height / 2;
                            }*/

                            this.sensorDataPanel1.Visible = false;
                            this.chequeContainer.Panel2Collapsed = true;

                            this.articleDGV.Parent = this.splitContainer1.Panel2;

                            //this.TopMost = false;
                            управліннToolStripMenuItem.Enabled = false;
                        }
                        break;
                    }
                case "SensorType_Components_ChqNav":
                    {
                        this.sensorPanel1.ShowComponent(SensorUgcPanel.SensorComponents.Scrolling, !((ToolStripMenuItem)e.ClickedItem).Checked);
                        break;
                    }
                case "SensorType_Components_ChqOpr":
                    {
                        this.sensorPanel1.ShowComponent(SensorUgcPanel.SensorComponents.Operations, !((ToolStripMenuItem)e.ClickedItem).Checked);
                        break;
                    }
                case "SensorType_Components_ChqSrch":
                    {
                        this.sensorPanel1.ShowComponent(SensorUgcPanel.SensorComponents.Search, !((ToolStripMenuItem)e.ClickedItem).Checked);
                        break;
                    }
                case "SensorType_Components_ChqBills":
                    {
                        this.sensorPanel1.ShowComponent(SensorUgcPanel.SensorComponents.Additional, !((ToolStripMenuItem)e.ClickedItem).Checked);
                        break;
                    }
                case "SensorType_VK":
                    {
                        if (сенсорToolStripMenuItem.Checked)
                            System.Diagnostics.Process.Start("vk.bat");
                        break;
                    }
                case "SensorType_Components_ChqIsVertical":
                    {
                        if (!((ToolStripMenuItem)e.ClickedItem).Checked)
                            this.chequeContainer.Orientation = Orientation.Vertical;
                        else
                            this.chequeContainer.Orientation = Orientation.Horizontal;
                        break;
                    }
                case "SensorType_Components_ArtNav":
                    {
                        this.sensorDataPanel1.Container.Panel1Collapsed = ((ToolStripMenuItem)e.ClickedItem).Checked;
                        //tableLayoutPanel1.Visible = !((ToolStripMenuItem)e.ClickedItem).Checked;
                        //sensor_breadcrumb_container.Visible = !((ToolStripMenuItem)e.ClickedItem).Checked;
                        break;
                    }
                case "SensorType_Components_ArtScroll":
                    {
                        this.sensorDataPanel1.Scroller.Visible = !((ToolStripMenuItem)e.ClickedItem).Checked;
                        break;
                    }
                #endregion
                #region Bills
                case "BillManager": // lock bill forever
                    {
                        if (new uiWndAdmin().ShowDialog(this) != DialogResult.OK)
                            break;
                        uiWndBillManagercs bm = new uiWndBillManagercs();
                        bm.ShowDialog(this);
                        bm.Dispose();
                        break;
                    }
                case "ResetBill": // lock bill forever
                    {
                        int changeState = DataWorkBill.BillWasChanged(ConfigManager.Instance.CommonConfiguration.Path_Bills, this.PD_Order);
                        switch (changeState)
                        {
                            case 1:
                                {
                                    MMessageBoxEx.Show(this.chequeDGV, "Були внесені змінити в поточний рахунок\r\nПерезавантажте рахунок за допомогою меню або натисніть ALT+R", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    break;
                                }
                            case 2:
                                {
                                    MMessageBoxEx.Show(this.chequeDGV, "Поточний рахунок вже закритий\r\nНатисніть ОК для продовження роботи", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    _fl_menuIsActive = false;
                                    this.Menu_ItemClicked(this.billMenu, new ToolStripItemClickedEventArgs(закритиБезЗмінToolStripMenuItem));
                                    break;
                                }
                            case -1:
                                {
                                    MMessageBoxEx.Show(this.chequeDGV, "Поточний рахунок видалений з бази\r\nНатисніть ОК для продовження роботи", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    _fl_menuIsActive = false;
                                    this.Menu_ItemClicked(this.billMenu, new ToolStripItemClickedEventArgs(закритиБезЗмінToolStripMenuItem));
                                    break;
                                }
                        }
                        if (changeState != 0)
                            break;

                        if ((bool)DataWorkShared.ExtractBillProperty(this.Cheque, CoreConst.IS_LOCKED, false))
                        {
                            MMessageBoxEx.Show(this.chequeDGV, "Поточний рахунок № " + DataWorkShared.ExtractBillProperty(this.Cheque, CoreConst.BILL_NO) + " надрукований клієнту.\r\nЗробіть з нього чек.",
                                Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                            break;//r
                        }
                        /*
                        if (new uiWndAdmin().ShowDialog(this) != DialogResult.OK)
                            break;
                        */

                        if (DialogResult.Yes != MMessageBoxEx.Show(this.chequeDGV, "Анулювати поточний рахунок № " + DataWorkShared.ExtractBillProperty(this.Cheque, CoreConst.BILL_NO),
                            Application.ProductName, MessageBoxButtons.YesNo, MessageBoxIcon.Question))
                            break;
                        //CoreLib.LockBill(Cheque, "null");
                        string billNo = DataWorkShared.ExtractBillProperty(this.PD_Order, CoreConst.BILL_NO, string.Empty, false).ToString();
                        DataWorkBill.LockBill(this.PD_Order, "null");
                        RowsRemoved_MyEvent(true, true, true);
                        this.RefershMenus();
                        //this.addBillInfo.Text = string.Format("{0} {1}", "Рахунок №", billNo);
                        break;
                    }
                case "SaveAndPrintAndClose": // save, print and close
                    {
                        if (_fl_isInvenCheque)
                            break;

                        int changeState = DataWorkBill.BillWasChanged(ConfigManager.Instance.CommonConfiguration.Path_Bills, this.PD_Order);
                        switch (changeState)
                        {
                            case 1:
                                {
                                    MMessageBoxEx.Show(this.chequeDGV, "Були внесені змінити в поточний рахунок\r\nПерезавантажте рахунок за допомогою меню або натисніть ALT+R", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    break;
                                }
                            case 2:
                                {
                                    MMessageBoxEx.Show(this.chequeDGV, "Поточний рахунок вже закритий\r\nНатисніть ОК для продовження роботи", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    _fl_menuIsActive = false;
                                    this.Menu_ItemClicked(this.billMenu, new ToolStripItemClickedEventArgs(закритиБезЗмінToolStripMenuItem));
                                    break;
                                }
                            case -1:
                                {
                                    MMessageBoxEx.Show(this.chequeDGV, "Поточний рахунок видалений з бази\r\nНатисніть ОК для продовження роботи", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    _fl_menuIsActive = false;
                                    this.Menu_ItemClicked(this.billMenu, new ToolStripItemClickedEventArgs(закритиБезЗмінToolStripMenuItem));
                                    break;
                                }
                        }
                        if (changeState != 0)
                            break;

                        uiWndBillSave bs = new uiWndBillSave(this.PD_Order);
                        bs.ShowDialog();

                        if (bs.DialogResult == DialogResult.OK)
                        {
                            //if (bs.IsNewBill)
                            //this.addBillInfo.Text = string.Format("{0} {1}", "ЗБЕРЕЖЕНИЙ РАХ.№", bs.GetNewBillNo);
                            //else
                            //    this.addBillInfo.Text = "";
                            uiWndBillPrint bPrn = new uiWndBillPrint(bs.SavedBill);
                            if (bPrn.ShowDialog(this) == DialogResult.OK)
                            {
                                this.RefershMenus();
                            }
                            bPrn.Dispose();
                            addChequeInfo.Text = string.Empty;
                            RowsRemoved_MyEvent(true, true, true);
                            //this.addBillInfo.Text = string.Format("{0} {1}", "Рахунок №", bs.GetNewBillNo);
                        }
                        bs.Dispose();
                        break;
                    }
                case "SaveAndPrint": // save, print but leave opened
                    {
                        if (_fl_isInvenCheque)
                            break;

                        int changeState = DataWorkBill.BillWasChanged(ConfigManager.Instance.CommonConfiguration.Path_Bills, this.PD_Order);
                        switch (changeState)
                        {
                            case 1:
                                {
                                    MMessageBoxEx.Show(this.chequeDGV, "Були внесені змінити в поточний рахунок\r\nПерезавантажте рахунок за допомогою меню або натисніть ALT+R", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    break;
                                }
                            case 2:
                                {
                                    MMessageBoxEx.Show(this.chequeDGV, "Поточний рахунок вже закритий\r\nНатисніть ОК для продовження роботи", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    _fl_menuIsActive = false;
                                    this.Menu_ItemClicked(this.billMenu, new ToolStripItemClickedEventArgs(закритиБезЗмінToolStripMenuItem));
                                    break;
                                }
                            case -1:
                                {
                                    MMessageBoxEx.Show(this.chequeDGV, "Поточний рахунок видалений з бази\r\nНатисніть ОК для продовження роботи", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    _fl_menuIsActive = false;
                                    this.Menu_ItemClicked(this.billMenu, new ToolStripItemClickedEventArgs(закритиБезЗмінToolStripMenuItem));
                                    break;
                                }
                        }
                        if (changeState != 0)
                            break;

                        uiWndBillSave bs = new uiWndBillSave(this.PD_Order);
                        if (bs.ShowDialog() == DialogResult.OK)
                        {
                            this.addBillInfo.Text = string.Format("{0} {1}", "Рахунок №", bs.GetNewBillNo);
                            uiWndBillPrint bPrn = new uiWndBillPrint(bs.SavedBill);
                            if (bPrn.ShowDialog(this) == DialogResult.OK)
                            {
                                this.RefershMenus();
                            }
                            bPrn.Dispose();
                            //DataWorkShared.MergeDataTableProperties(ref this.Cheque, bs.SavedBill);
                            Cheque.Merge(bs.SavedBill);
                            this.RefershMenus();
                        }
                        bs.Dispose();
                        break;
                    }
                case "SaveAndClose": // save and close
                    {
                        if (_fl_isInvenCheque)
                            break;

                        int changeState = DataWorkBill.BillWasChanged(ConfigManager.Instance.CommonConfiguration.Path_Bills, this.PD_Order);
                        switch (changeState)
                        {
                            case 1:
                                {
                                    MMessageBoxEx.Show(this.chequeDGV, "Були внесені змінити в поточний рахунок\r\nПерезавантажте рахунок за допомогою меню або натисніть ALT+R", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    break;
                                }
                            case 2:
                                {
                                    MMessageBoxEx.Show(this.chequeDGV, "Поточний рахунок вже закритий\r\nНатисніть ОК для продовження роботи", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    _fl_menuIsActive = false;
                                    this.Menu_ItemClicked(this.billMenu, new ToolStripItemClickedEventArgs(закритиБезЗмінToolStripMenuItem));
                                    break;
                                }
                            case -1:
                                {
                                    MMessageBoxEx.Show(this.chequeDGV, "Поточний рахунок видалений з бази\r\nНатисніть ОК для продовження роботи", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    _fl_menuIsActive = false;
                                    this.Menu_ItemClicked(this.billMenu, new ToolStripItemClickedEventArgs(закритиБезЗмінToolStripMenuItem));
                                    break;
                                }
                        }
                        if (changeState != 0)
                            break;

                        /*for (int i = 0; i < 200; i++)
                        {
                            DataTable _testDT = this.PD_Order.Copy();
                            DataWorkBill.SaveBill(true, i.ToString().PadLeft(4, '0'), "DEMO TEST", ref _testDT);
                        }*/
                        uiWndBillSave bs = new uiWndBillSave(this.PD_Order);
                        if (bs.ShowDialog() == DialogResult.OK)
                        {
                            addChequeInfo.Text = string.Empty;
                            RowsRemoved_MyEvent(true, true, true);
                            // if (bs.IsNewBill)
                            // ------ this.addBillInfo.Text = string.Format("{0} {1}", "ЗБЕРЕЖЕНИЙ РАХ.№", bs.GetNewBillNo);
                            //else
                            //this.addBillInfo.Text = "";
                        }
                        bs.Dispose();
                        break;
                    }
                case "AllBills": // show bill manager
                    {
                        string currentBillNumber = DataWorkShared.ExtractBillProperty(this.Cheque, CoreConst.BILL_NO).ToString();
                        /*
                            if (this.Cheque.ExtendedProperties["NOM"] != null)
                                currentBillNumber = this.Cheque.ExtendedProperties["NOM"].ToString();
                        */
                        //if ()
                        uiWndBillList bl = new uiWndBillList(currentBillNumber);
                        if (bl.ShowDialog() == DialogResult.OK)
                            if (Cheque.Rows.Count == 0)
                            {
                                Cheque.Merge(bl.LoadedBill);
                                this.UpdateDiscountValues(this.Cheque);
                                this.addBillInfo.Text = string.Format("{0} {1}", "Рахунок №", DataWorkShared.ExtractBillProperty(this.Cheque, CoreConst.BILL_NO));
                                UpdateSumInfo(true);
                            }
                            else MMessageBoxEx.Show(this.chequeDGV, "Неможливо відкрити рахунок\nТаблиця чеку не є порожня", Application.ProductName,
                                    MessageBoxButtons.OK, MessageBoxIcon.Error);
                        bl.Dispose();
                        break;
                    }
                case "PrintBill": // removed
                    {
                        int changeState = DataWorkBill.BillWasChanged(ConfigManager.Instance.CommonConfiguration.Path_Bills, this.PD_Order);
                        switch (changeState)
                        {
                            case 1:
                                {
                                    MMessageBoxEx.Show(this.chequeDGV, "Були внесені змінити в поточний рахунок\r\nПерезавантажте рахунок за допомогою меню або натисніть ALT+R", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    break;
                                }
                            case 2:
                                {
                                    MMessageBoxEx.Show(this.chequeDGV, "Поточний рахунок вже закритий\r\nНатисніть ОК для продовження роботи", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    _fl_menuIsActive = false;
                                    this.Menu_ItemClicked(this.billMenu, new ToolStripItemClickedEventArgs(закритиБезЗмінToolStripMenuItem));
                                    break;
                                }
                            case -1:
                                {
                                    MMessageBoxEx.Show(this.chequeDGV, "Поточний рахунок видалений з бази\r\nНатисніть ОК для продовження роботи", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    _fl_menuIsActive = false;
                                    this.Menu_ItemClicked(this.billMenu, new ToolStripItemClickedEventArgs(закритиБезЗмінToolStripMenuItem));
                                    break;
                                }
                        }
                        if (changeState != 0)
                            break;

                        uiWndBillPrint bPrn = new uiWndBillPrint(this.PD_Order);
                        bPrn.ShowDialog(this);
                        bPrn.Dispose();
                        break;
                    }
                case "SaveChangeComment":
                    {
                        if (_fl_isInvenCheque)
                            break;

                        int changeState = DataWorkBill.BillWasChanged(ConfigManager.Instance.CommonConfiguration.Path_Bills, this.PD_Order);
                        switch (changeState)
                        {
                            case 1:
                                {
                                    MMessageBoxEx.Show(this.chequeDGV, "Були внесені змінити в поточний рахунок\r\nПерезавантажте рахунок за допомогою меню або натисніть ALT+R", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    break;
                                }
                            case 2:
                                {
                                    MMessageBoxEx.Show(this.chequeDGV, "Поточний рахунок вже закритий\r\nНатисніть ОК для продовження роботи", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    _fl_menuIsActive = false;
                                    this.Menu_ItemClicked(this.billMenu, new ToolStripItemClickedEventArgs(закритиБезЗмінToolStripMenuItem));
                                    break;
                                }
                            case -1:
                                {
                                    MMessageBoxEx.Show(this.chequeDGV, "Поточний рахунок видалений з бази\r\nНатисніть ОК для продовження роботи", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    _fl_menuIsActive = false;
                                    this.Menu_ItemClicked(this.billMenu, new ToolStripItemClickedEventArgs(закритиБезЗмінToolStripMenuItem));
                                    break;
                                }
                        }
                        if (changeState != 0)
                            break;

                        uiWndBillSave bs = new uiWndBillSave(this.PD_Order);
                        bs.UpdateComment = true;
                        if (bs.ShowDialog() == DialogResult.OK)
                        {
                            //if (bs.IsNewBill)
                            this.addBillInfo.Text = string.Format("{0} {1}", "Рахунок №", bs.GetNewBillNo);
                            //this.PD_Order = bs.SavedBill;
                            // else
                            //    this.addBillInfo.Text = "";

                            DataWorkShared.MergeDataTableProperties(ref this.Cheque, bs.SavedBill);

                            this.RefershMenus();

                        }
                        bs.Dispose();
                        break;
                    }
                case "SaveBill": // just save and leave opened
                    {
                        if (_fl_isInvenCheque)
                            break;

                        int changeState = DataWorkBill.BillWasChanged(ConfigManager.Instance.CommonConfiguration.Path_Bills, this.PD_Order);
                        switch (changeState)
                        {
                            case 1:
                                {
                                    MMessageBoxEx.Show(this.chequeDGV, "Були внесені змінити в поточний рахунок\r\nПерезавантажте рахунок за допомогою меню або натисніть ALT+R", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    break;
                                }
                            case 2:
                                {
                                    MMessageBoxEx.Show(this.chequeDGV, "Поточний рахунок вже закритий\r\nНатисніть ОК для продовження роботи", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    _fl_menuIsActive = false;
                                    this.Menu_ItemClicked(this.billMenu, new ToolStripItemClickedEventArgs(закритиБезЗмінToolStripMenuItem));
                                    break;
                                }
                            case -1:
                                {
                                    MMessageBoxEx.Show(this.chequeDGV, "Поточний рахунок видалений з бази\r\nНатисніть ОК для продовження роботи", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    _fl_menuIsActive = false;
                                    this.Menu_ItemClicked(this.billMenu, new ToolStripItemClickedEventArgs(закритиБезЗмінToolStripMenuItem));
                                    break;
                                }
                        }
                        if (changeState != 0)
                            break;

                        uiWndBillSave bs = new uiWndBillSave(this.PD_Order);
                        if (bs.ShowDialog() == DialogResult.OK)
                        {
                            //if (bs.IsNewBill)
                            this.addBillInfo.Text = string.Format("{0} {1}", "Рахунок №", bs.GetNewBillNo);
                            //this.PD_Order = bs.SavedBill;
                            // else
                            //    this.addBillInfo.Text = "";

                            DataWorkShared.MergeDataTableProperties(ref this.Cheque, bs.SavedBill);

                            this.RefershMenus();

                        }
                        bs.Dispose();
                        break;
                    }
                case "ReloadBill": // ReloadBill
                    {
                        object billName = DataWorkShared.ExtractBillProperty(this.PD_Order, CoreConst.PATH);
                        DataTable LoadedBill = DataWorkBill.LoadCombinedBill(ConfigManager.Instance.CommonConfiguration.Path_Bills + "\\" + billName.ToString());
                        RowsRemoved_MyEvent(true, true, true);
                        Cheque.Merge(LoadedBill);
                        this.addBillInfo.Text = string.Format("{0} {1}", "Рахунок №", DataWorkShared.ExtractBillProperty(this.Cheque, CoreConst.BILL_NO));
                        UpdateSumInfo(true);
                        break;
                    }
                case "CloseBillWithoutChanges": // CloseBill
                    {
                        addChequeInfo.Text = string.Empty;
                        RowsRemoved_MyEvent(true, true, true);
                        break;
                    }
                #endregion
                #region Plugins
                case "SendComPortCommand":
                    {
                        wndAdditional.uiWndAdditionalPortCommands cm = new wndAdditional.uiWndAdditionalPortCommands();
                        cm.ShowDialog();
                        cm.Dispose();
                        //MessageBox.Show(cm.PortCommand);
                        break;
                    }
                #endregion
            }

            _fl_menuIsActive = false;
        }
Beispiel #2
0
        /// <summary>
        /// Обробляє виконання операцій відповідно до того, який пункт меню був вибраний
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Menu_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {
            if (_fl_menuIsActive || e.ClickedItem.Tag == null)
                return;

            _fl_menuIsActive = true;
            switch (e.ClickedItem.Tag.ToString())
            {
                #region Main
                case "fiscalFunctions":
                    {
                        uiWndFiscalFunctions ff = new uiWndFiscalFunctions(Program.Service.ComPort.Tag, Program.Service.PublicFunctions);
                        try
                        {
                            if (ff.ShowDialog(this) == DialogResult.OK)
                                Program.Service.CallFunction(ff.Function, ff.Descriprion, null);
                        }
                        catch (Exception ex)
                        {
                            MMessageBox.Show(this, ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                        ff.Dispose();
                        break;
                    }
                case "LastDBChanges":
                    {
                        uiWndBaseChanges DBChanges = new uiWndBaseChanges();
                        if (DBChanges.ShowDialog() == DialogResult.OK)
                            timer1_Tick(timer1, EventArgs.Empty);
                        DBChanges.Dispose();
                        break;
                    }
                case "Administrator":
                    {
                        DialogResult rez = DialogResult.None;
                        if (ADMIN_STATE)
                            rez = MMessageBox.Show(this, "Вийти з режиму адміністратора", Application.ProductName, MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                        else
                            rez = admin.ShowDialog();

                        switch (rez)
                        {
                            case DialogResult.OK:
                                ADMIN_STATE = true;
                                break;
                            case DialogResult.Yes:
                                ADMIN_STATE = false;
                                break;
                        }

                        RefershMenus();
                        break;
                    }
                case "UnitFilter":
                    {
                        uiWndUnitFilter fl = new uiWndUnitFilter(Articles);
                        fl.ShowDialog();
                        fl.Dispose();
                        break;
                    }
                case "ChequeFormat":
                    {
                        uiWndDiscountSettings billRul = new uiWndDiscountSettings();
                        billRul.ShowDialog();
                        billRul.Dispose();
                        ResetDiscount();
                        UpdateSumInfo(true);
                        break;
                    }
                case "Invent":
                    {
                        if (Cheque.Rows.Count != 0 && !inventChq)
                            return;
                        inventChq = !inventChq;
                        if (inventChq)
                        {
                            DataTable dTable = CoreLib.OpenInvent();
                            if (dTable != null)
                            {
                                dTable.ExtendedProperties.Add("loading", true);
                                Cheque.Merge(dTable);
                                Cheque.ExtendedProperties.Remove("loading");
                                dTable.ExtendedProperties.Remove("loading");
                            }
                            else
                                inventChq = false;
                        }
                        else
                        {
                            CoreLib.SaveInvent(Cheque, false);
                            Cheque.Rows.Clear();
                        }

                        RefershMenus();
                        RefreshChequeInformer(true);
                        інвентаризаціяToolStripMenuItem.Checked = inventChq;
                        break;
                    }
                case "RetriveCheque":
                    {
                        retriveChq = !retriveChq;
                        чекПоверненняToolStripMenuItem.Checked = retriveChq;
                        RefreshChequeInformer(true);
                        break;
                    }
                case "Settings":
                    {
                        uiWndSettings set = new uiWndSettings();
                        if (set.ShowDialog() == DialogResult.OK)
                        {
                            UpdateMyControls();
                            SearchFilter(false, AppConfig.APP_SearchType, true);
                            this.Text = string.Format("{2}{1}{0}", Application.ProductName, " - ", AppConfig.APP_SubUnitName);
                        }
                        set.Dispose();
                        break;
                    }
                case "PrintingSettings":
                    {
                        uiWndPrinting pSet = new uiWndPrinting();
                        pSet.ShowDialog();
                        pSet.Dispose();
                        break;
                    }
                case "Registration":
                    {
                        uiWndRegistration rf = new uiWndRegistration();
                        if (rf.ShowDialog() == DialogResult.OK)
                            MMessageBox.Show(this, "Перезавантажте програму для продовження реєстрації", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Information);
                        rf.Dispose();
                        break;
                    }
                case "AboutApp":
                    {
                        uiWndAboutBox abox = new uiWndAboutBox();
                        abox.ShowDialog();
                        abox.Dispose();
                        break;
                    }
                case "ChangeCashier":
                    {
                        DialogResult = DialogResult.Retry;
                        Close();
                        break;
                    }
                case "Exit":
                    {
                        DialogResult = DialogResult.Cancel;
                        Close();
                        break;
                    }
                #endregion
                #region TablesView
                case "Horizontal":
                    {
                        splitContainer1.Orientation = Orientation.Horizontal;
                        AppConfig.STYLE_SplitOrient = Orientation.Horizontal;
                        RefreshWindowMenu();
                        break;
                    }
                case "Vertical":
                    {
                        splitContainer1.Orientation = Orientation.Vertical;
                        AppConfig.STYLE_SplitOrient = Orientation.Vertical;
                        RefreshWindowMenu();
                        break;
                    }
                case "ArticleWindow":
                    {
                        splitContainer1.Panel2Collapsed = !splitContainer1.Panel2Collapsed;
                        AppConfig.STYLE_ArtSideCollapsed = !AppConfig.STYLE_ArtSideCollapsed;
                        RefreshWindowMenu();
                        break;
                    }
                #endregion
                #region Bills
                case "BillManager": // lock bill forever
                    {
                        if (new uiWndAdmin().ShowDialog(this) != DialogResult.OK)
                            break;
                        uiWndBillManagercs bm = new uiWndBillManagercs();
                        bm.ShowDialog(this);
                        bm.Dispose();
                        break;
                    }
                case "ResetBill": // lock bill forever
                    {
                        int changeState = DataWorkBill.BillWasChanged(AppConfig.Path_Bills, this.PD_Order);
                        switch (changeState)
                        {
                            case 1:
                                {
                                    MMessageBox.Show(this, "Були внесені змінити в поточний рахунок\r\nПерезавантажте рахунок за допомогою меню або натисніть ALT+R", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    break;
                                }
                            case 2:
                                {
                                    MMessageBox.Show(this, "Поточний рахунок вже закритий\r\nНатисніть ОК для продовження роботи", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    _fl_menuIsActive = false;
                                    this.Menu_ItemClicked(this.billMenu, new ToolStripItemClickedEventArgs(закритиБезЗмінToolStripMenuItem));
                                    break;
                                }
                            case -1:
                                {
                                    MMessageBox.Show(this, "Поточний рахунок видалений з бази\r\nНатисніть ОК для продовження роботи", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    _fl_menuIsActive = false;
                                    this.Menu_ItemClicked(this.billMenu, new ToolStripItemClickedEventArgs(закритиБезЗмінToolStripMenuItem));
                                    break;
                                }
                        }
                        if (changeState != 0)
                            break;

                        if ((bool)DataWorkShared.ExtractBillProperty(this.Cheque, CoreConst.IS_LOCKED, false))
                        {
                            MMessageBox.Show("Поточний рахунок № " + DataWorkShared.ExtractBillProperty(this.Cheque, CoreConst.BILL_NO) + " надрукований клієнту.\r\nЗробіть з нього чек.",
                                Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                            break;//r
                        }
                        /*
                        if (new uiWndAdmin().ShowDialog(this) != DialogResult.OK)
                            break;
                        */

                        if (DialogResult.Yes != MMessageBox.Show("Анулювати поточний рахунок № " + DataWorkShared.ExtractBillProperty(this.Cheque, CoreConst.BILL_NO),
                            Application.ProductName, MessageBoxButtons.YesNo, MessageBoxIcon.Question))
                            break;
                        //CoreLib.LockBill(Cheque, "null");
                        string billNo = DataWorkShared.ExtractBillProperty(this.PD_Order, CoreConst.BILL_NO, string.Empty, false).ToString();
                        mdcore.Lib.DataWorkBill.LockBill(this.PD_Order, "null");
                        RowsRemoved_MyEvent(true, true);
                        this.RefershMenus();
                        //this.addBillInfo.Text = string.Format("{0} {1}", "Рахунок №", billNo);
                        break;
                    }
                case "SaveAndPrintAndClose": // save, print and close
                    {
                        if (inventChq)
                            break;

                        int changeState = DataWorkBill.BillWasChanged(AppConfig.Path_Bills, this.PD_Order);
                        switch (changeState)
                        {
                            case 1:
                                {
                                    MMessageBox.Show(this, "Були внесені змінити в поточний рахунок\r\nПерезавантажте рахунок за допомогою меню або натисніть ALT+R", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    break;
                                }
                            case 2:
                                {
                                    MMessageBox.Show(this, "Поточний рахунок вже закритий\r\nНатисніть ОК для продовження роботи", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    _fl_menuIsActive = false;
                                    this.Menu_ItemClicked(this.billMenu, new ToolStripItemClickedEventArgs(закритиБезЗмінToolStripMenuItem));
                                    break;
                                }
                            case -1:
                                {
                                    MMessageBox.Show(this, "Поточний рахунок видалений з бази\r\nНатисніть ОК для продовження роботи", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    _fl_menuIsActive = false;
                                    this.Menu_ItemClicked(this.billMenu, new ToolStripItemClickedEventArgs(закритиБезЗмінToolStripMenuItem));
                                    break;
                                }
                        }
                        if (changeState != 0)
                            break;

                        BillSave bs = new BillSave(this.PD_Order);
                        bs.ShowDialog();

                        if (bs.DialogResult == DialogResult.OK)
                        {
                            //if (bs.IsNewBill)
                            //this.addBillInfo.Text = string.Format("{0} {1}", "ЗБЕРЕЖЕНИЙ РАХ.№", bs.GetNewBillNo);
                            //else
                            //    this.addBillInfo.Text = "";
                            uiWndBillPrint bPrn = new uiWndBillPrint(bs.SavedBill);
                            if (bPrn.ShowDialog(this) == DialogResult.OK)
                            {
                                this.RefershMenus();
                            }
                            bPrn.Dispose();
                            RowsRemoved_MyEvent(true, true);
                            //this.addBillInfo.Text = string.Format("{0} {1}", "Рахунок №", bs.GetNewBillNo);
                        }
                        bs.Dispose();
                        break;
                    }
                case "SaveAndPrint": // save, print but leave opened
                    {
                        if (inventChq)
                            break;

                        int changeState = DataWorkBill.BillWasChanged(AppConfig.Path_Bills, this.PD_Order);
                        switch (changeState)
                        {
                            case 1:
                                {
                                    MMessageBox.Show(this, "Були внесені змінити в поточний рахунок\r\nПерезавантажте рахунок за допомогою меню або натисніть ALT+R", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    break;
                                }
                            case 2:
                                {
                                    MMessageBox.Show(this, "Поточний рахунок вже закритий\r\nНатисніть ОК для продовження роботи", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    _fl_menuIsActive = false;
                                    this.Menu_ItemClicked(this.billMenu, new ToolStripItemClickedEventArgs(закритиБезЗмінToolStripMenuItem));
                                    break;
                                }
                            case -1:
                                {
                                    MMessageBox.Show(this, "Поточний рахунок видалений з бази\r\nНатисніть ОК для продовження роботи", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    _fl_menuIsActive = false;
                                    this.Menu_ItemClicked(this.billMenu, new ToolStripItemClickedEventArgs(закритиБезЗмінToolStripMenuItem));
                                    break;
                                }
                        }
                        if (changeState != 0)
                            break;

                        BillSave bs = new BillSave(this.PD_Order);
                        if (bs.ShowDialog() == DialogResult.OK)
                        {
                            this.addBillInfo.Text = string.Format("{0} {1}", "Рахунок №", bs.GetNewBillNo);
                            uiWndBillPrint bPrn = new uiWndBillPrint(bs.SavedBill);
                            if (bPrn.ShowDialog(this) == DialogResult.OK)
                            {
                                this.RefershMenus();
                            }
                            bPrn.Dispose();
                            //DataWorkShared.MergeDataTableProperties(ref this.Cheque, bs.SavedBill);
                            Cheque.Merge(bs.SavedBill);
                            this.RefershMenus();
                        }
                        bs.Dispose();
                        break;
                    }
                case "SaveAndClose": // save and close
                    {
                        if (inventChq)
                            break;

                        int changeState = DataWorkBill.BillWasChanged(AppConfig.Path_Bills, this.PD_Order);
                        switch (changeState)
                        {
                            case 1:
                                {
                                    MMessageBox.Show(this, "Були внесені змінити в поточний рахунок\r\nПерезавантажте рахунок за допомогою меню або натисніть ALT+R", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    break;
                                }
                            case 2:
                                {
                                    MMessageBox.Show(this, "Поточний рахунок вже закритий\r\nНатисніть ОК для продовження роботи", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    _fl_menuIsActive = false;
                                    this.Menu_ItemClicked(this.billMenu, new ToolStripItemClickedEventArgs(закритиБезЗмінToolStripMenuItem));
                                    break;
                                }
                            case -1:
                                {
                                    MMessageBox.Show(this, "Поточний рахунок видалений з бази\r\nНатисніть ОК для продовження роботи", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    _fl_menuIsActive = false;
                                    this.Menu_ItemClicked(this.billMenu, new ToolStripItemClickedEventArgs(закритиБезЗмінToolStripMenuItem));
                                    break;
                                }
                        }
                        if (changeState != 0)
                            break;

                        BillSave bs = new BillSave(this.PD_Order);
                        if (bs.ShowDialog() == DialogResult.OK)
                        {
                            RowsRemoved_MyEvent(true, true);
                            // if (bs.IsNewBill)
                            // ------ this.addBillInfo.Text = string.Format("{0} {1}", "ЗБЕРЕЖЕНИЙ РАХ.№", bs.GetNewBillNo);
                            //else
                            //this.addBillInfo.Text = "";
                        }
                        bs.Dispose();
                        break;
                    }
                case "AllBills": // show bill manager
                    {
                        string currentBillNumber = DataWorkShared.ExtractBillProperty(this.Cheque, CoreConst.BILL_NO).ToString();
                        /*
                            if (this.Cheque.ExtendedProperties["NOM"] != null)
                                currentBillNumber = this.Cheque.ExtendedProperties["NOM"].ToString();
                        */
                        //if ()
                        BillsList bl = new BillsList(currentBillNumber);
                        if (bl.ShowDialog() == DialogResult.OK)
                            if (Cheque.Rows.Count == 0)
                            {
                                Cheque.Merge(bl.LoadedBill);
                                this.addBillInfo.Text = string.Format("{0} {1}", "Рахунок №", DataWorkShared.ExtractBillProperty(this.Cheque, mdcore.Common.CoreConst.BILL_NO));
                                UpdateSumInfo(true);
                            }
                            else MMessageBox.Show(this, "Неможливо відкрити рахунок\nТаблиця чеку не є порожня", Application.ProductName,
                                    MessageBoxButtons.OK, MessageBoxIcon.Error);
                        bl.Dispose();
                        break;
                    }
                case "PrintBill": // removed
                    {
                        int changeState = DataWorkBill.BillWasChanged(AppConfig.Path_Bills, this.PD_Order);
                        switch (changeState)
                        {
                            case 1:
                                {
                                    MMessageBox.Show(this, "Були внесені змінити в поточний рахунок\r\nПерезавантажте рахунок за допомогою меню або натисніть ALT+R", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    break;
                                }
                            case 2:
                                {
                                    MMessageBox.Show(this, "Поточний рахунок вже закритий\r\nНатисніть ОК для продовження роботи", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    _fl_menuIsActive = false;
                                    this.Menu_ItemClicked(this.billMenu, new ToolStripItemClickedEventArgs(закритиБезЗмінToolStripMenuItem));
                                    break;
                                }
                            case -1:
                                {
                                    MMessageBox.Show(this, "Поточний рахунок видалений з бази\r\nНатисніть ОК для продовження роботи", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    _fl_menuIsActive = false;
                                    this.Menu_ItemClicked(this.billMenu, new ToolStripItemClickedEventArgs(закритиБезЗмінToolStripMenuItem));
                                    break;
                                }
                        }
                        if (changeState != 0)
                            break;

                        uiWndBillPrint bPrn = new uiWndBillPrint(this.PD_Order);
                        bPrn.ShowDialog(this);
                        bPrn.Dispose();
                        break;
                    }
                case "SaveBill": // just save and leave opened
                    {
                        if (inventChq)
                            break;

                        int changeState = DataWorkBill.BillWasChanged(AppConfig.Path_Bills, this.PD_Order);
                        switch (changeState)
                        {
                            case 1:
                                {
                                    MMessageBox.Show(this, "Були внесені змінити в поточний рахунок\r\nПерезавантажте рахунок за допомогою меню або натисніть ALT+R", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    break;
                                }
                            case 2:
                                {
                                    MMessageBox.Show(this, "Поточний рахунок вже закритий\r\nНатисніть ОК для продовження роботи", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    _fl_menuIsActive = false;
                                    this.Menu_ItemClicked(this.billMenu, new ToolStripItemClickedEventArgs(закритиБезЗмінToolStripMenuItem));
                                    break;
                                }
                            case -1:
                                {
                                    MMessageBox.Show(this, "Поточний рахунок видалений з бази\r\nНатисніть ОК для продовження роботи", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    _fl_menuIsActive = false;
                                    this.Menu_ItemClicked(this.billMenu, new ToolStripItemClickedEventArgs(закритиБезЗмінToolStripMenuItem));
                                    break;
                                }
                        }
                        if (changeState != 0)
                            break;

                        BillSave bs = new BillSave(this.PD_Order);
                        if (bs.ShowDialog() == DialogResult.OK)
                        {
                            //if (bs.IsNewBill)
                            this.addBillInfo.Text = string.Format("{0} {1}", "Рахунок №", bs.GetNewBillNo);
                            //this.PD_Order = bs.SavedBill;
                            // else
                            //    this.addBillInfo.Text = "";

                            DataWorkShared.MergeDataTableProperties(ref this.Cheque, bs.SavedBill);

                            this.RefershMenus();

                        }
                        bs.Dispose();
                        break;
                    }
                case "ReloadBill": // ReloadBill
                    {
                        object billName = DataWorkShared.ExtractBillProperty(this.PD_Order, CoreConst.PATH);
                        DataTable LoadedBill = DataWorkBill.LoadCombinedBill(AppConfig.Path_Bills + "\\" + billName.ToString());
                        RowsRemoved_MyEvent(true, true);
                        Cheque.Merge(LoadedBill);
                        this.addBillInfo.Text = string.Format("{0} {1}", "Рахунок №", DataWorkShared.ExtractBillProperty(this.Cheque, mdcore.Common.CoreConst.BILL_NO));
                        UpdateSumInfo(true);
                        break;
                    }
                case "CloseBillWithoutChanges": // CloseBill
                    {
                        RowsRemoved_MyEvent(true, true);
                        break;
                    }
                #endregion
                #region Plugins
                case "SendComPortCommand":
                    {
                        wndAdditional.uiWndAdditionalPortCommands cm = new wndAdditional.uiWndAdditionalPortCommands();
                        cm.ShowDialog();
                        cm.Dispose();
                        //MessageBox.Show(cm.PortCommand);
                        break;
                    }
                #endregion
            }

            _fl_menuIsActive = false;
        }