Exemplo n.º 1
0
        private void RefreshAllTableStatus()
        {
            //
            try
            {
                btnReport.Tag = 5;
                this.Cursor   = Cursors.WaitCursor;
                timer2.Stop();
                this.Update();//必须

                IRestaurantService service = new RestaurantServiceImpl();
                var result = service.GetAllTableInfoes();
                if (!string.IsNullOrEmpty(result.Item1))
                {
                    Warning(result.Item1);
                    return;
                }

                TableInfos          = result.Item2.Where(t => t.TableType != EnumTableType.Takeout).ToList();//不显示外卖台。
                totalTablePageCount = (TableInfos.Count + Columncount * RowCount - 1) / (Columncount * RowCount);
                panelPage.Visible   = totalTablePageCount > 1;
                UpdatePageButtonEnableStatus();
                CreateTableControls();

                lblState0.Text = string.Format("空闲({0})", TableInfos.Count(t => t.TableStatus == EnumTableStatus.Idle));
                lblState1.Text = string.Format("就餐({0})", TableInfos.Count(t => t.TableStatus == EnumTableStatus.Dinner));
            }
            finally
            {
                this.Cursor = Cursors.Default;
                timer2.Start();
            }
        }
        private void BtnRetry_OnClick(object sender, RoutedEventArgs e)
        {
            IRestaurantService service = new RestaurantServiceImpl();
            var result = service.GetUnclearnPosInfo();

            if (!string.IsNullOrEmpty(result.Item1))
            {
                frmWarning.ShowWarning(result.Item1);
                return;
            }

            var noClearnMachineList = result.Item2;

            if (noClearnMachineList.Any()) //这里只需要判断有未清机的就不关闭窗口。
            {
                return;
            }

            string reinfo;

            if (!RestClient.OpenUp("", "", 0, out reinfo))//如果判断未开业则说明结业成功了。
            {
                Application.Exit();
            }

            DialogResult = true;
            Close();
        }
Exemplo n.º 3
0
        /// <summary>
        /// 清理所有POS机。都清理成功返回true,否则返回false。
        /// </summary>
        /// <param name="isInForcedEndWorkModel">是否是强制结业清机。</param>
        /// <returns></returns>
        public static bool ClearAllMachine(bool isInForcedEndWorkModel)
        {
            IRestaurantService service = new RestaurantServiceImpl();
            var result = service.GetUnclearnPosInfo();

            if (!string.IsNullOrEmpty(result.Item1))
            {
                frmBase.Warning(result.Item1);
                return(false);
            }

            var noClearnMachineList = result.Item2;

            if (noClearnMachineList.Any())
            {
                var localMac = RestClient.GetMacAddr();
                var thisMachineNoClearList = noClearnMachineList.Where(t => t.MachineFlag.Equals(localMac)).ToList();
                var otherMachineNoClear    = noClearnMachineList.Any(t => !t.MachineFlag.Equals(localMac));//是否有其他机器未清机。

                if (isInForcedEndWorkModel && (thisMachineNoClearList.Any() || otherMachineNoClear))
                {
                    frmBase.Warning("昨天未结业且还有未清机,请先清机后再结业。");
                }

                if (thisMachineNoClearList.Any())
                {
                    if (thisMachineNoClearList.Any(t => !ClearMachine(t.UserName)))//任何一个本机收银全清机失败就返回。
                    {
                        return(false);
                    }
                }

                if (otherMachineNoClear)
                {
                    OtherMachineNoClearnWarningWindow warningWnd = new OtherMachineNoClearnWarningWindow();
                    if (warningWnd.ShowDialog() != true)
                    {
                        return(false);
                    }
                }
            }

            return(true);
        }
Exemplo n.º 4
0
        private void CheckUserRight()
        {
            try
            {
                Cursor          = Cursors.WaitCursor;
                button2.Enabled = false;
                Update();//必须
                string userID       = txtUser.Text;
                int    tmploginType = -1;

                IAccountService service  = new AccountServiceImpl();
                var             response = service.Login(txtUser.Text, txtPwd.Text, _loginType);
                if (!string.IsNullOrEmpty(response.Item1))
                {
                    AfterLoginError(response.Item1);
                    return;
                }

                SaveLoginInfo();//跟据选项保存登录信息
                switch (_loginType)
                {
                case EnumRightType.Login:
                    Globals.UserInfo.UserName = response.Item2;
                    Globals.UserInfo.PassWord = txtPwd.Text;
                    Globals.UserInfo.UserID   = txtUser.Text;
                    break;

                case EnumRightType.OpenUp:
                    Globals.authorizer = response.Item2;
                    string reinfo;
                    if (!RestClient.OpenUp(txtUser.Text, txtPwd.Text, 1, out reinfo))
                    {
                        AfterLoginError(reinfo);
                        return;
                    }
                    break;

                case EnumRightType.ClearMachine:
                    IRestaurantService rService = new RestaurantServiceImpl();
                    var errMsg = rService.Clearner(txtUser.Text, response.Item2);
                    if (!string.IsNullOrEmpty(errMsg))
                    {
                        AfterLoginError(errMsg);
                        return;
                    }
                    break;

                default:
                    Globals.authorizer = response.Item2;
                    break;
                }

                DialogResult = DialogResult.OK; //成功
                Close();                        //关闭登陆窗体
            }
            catch (CustomException ex)
            {
                AfterLoginError(ex.Message);
            }
            catch (Exception ex)
            {
                AfterLoginError("后台返回数据错误:" + Globals.UserInfo.msg);
            }
            Cursor = Cursors.Default;
        }
Exemplo n.º 5
0
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Globals.ProductVersion = Application.ProductVersion;
            frmStart.ShowStart();
            frmStart.frm.setMsg("程序初始化...");
            ReportViewWindow.Instance.Init();

            Application.ThreadException += Application_ThreadException;//捕获系统所产生的异常。
            Application.ApplicationExit += Application_ApplicationExit;
            Process instance = RunningInstance();

            if (instance != null)//已经有一个实例在运行
            {
                HandleRunningInstance(instance);
                return;
            }

            SystemConfig.ReadSettings();   //读取用户自定义设置
            BonusSkins.Register();         //注册Dev酷皮肤
            //OfficeSkins.Register();////注册Office样式的皮肤
            SkinManager.EnableFormSkins(); //启用窗体支持换肤特性
            RestClient.GetSoapRemoteAddress();
            ReportPrint.Init();
            frmStart.frm.setMsg("获取系统设置...");
            try
            {
                RestClient.getSystemSetData(out Globals.roundinfo);
            }
            catch
            {
                // ignored
            }

            frmStart.frm.setMsg("获取营业时间...");
            IRestaurantService service = new RestaurantServiceImpl();

            try
            {
                var result = service.GetRestaurantTradeTime();
                if (!string.IsNullOrEmpty(result.Item1))
                {
                    frmBase.Warning(result.Item1);
                    return;
                }

                Globals.TradeTime = result.Item2;
            }
            catch (Exception)
            {
                // ignored
            }

            frmStart.frm.setMsg("检查之前是否结业...");
            Application.DoEvents();
            var endworkResult = service.CheckWhetherTheLastEndWork();

            if (!string.IsNullOrEmpty(endworkResult.Item1))
            {
                frmBase.Warning(endworkResult.Item1);
                return;
            }
            if (!endworkResult.Item2)//未结业走强制结业流程。
            {
                var allTableResult = service.GetAllTableInfoes();
                if (!string.IsNullOrEmpty(allTableResult.Item1))
                {
                    frmBase.Warning(allTableResult.Item1);
                    return;
                }

                if (allTableResult.Item2.Any(t => t.TableStatus == EnumTableStatus.Dinner))//还有就餐的餐台,就让收银员登录,结账。
                {
                    frmBase.Warning("昨日还有未结账餐台,请先登录收银员账号并结账,然后进行清机和结业。");
                    while (true)
                    {
                        var loginResult = CashierLogin();
                        if (!loginResult.HasValue)
                        {
                            frmBase.Warning("请登录收银员账号以便结账餐台。");
                            continue;
                        }

                        if (!loginResult.Value)//取消登录。
                        {
                            return;
                        }

                        MainForm.Show();
                        MainForm.SetInForcedEndWorkModel();
                        Application.Run();
                        return;
                    }
                }

                if (!CommonHelper.ClearAllMachine(true))
                {
                    return;
                }

                frmBase.Warning("昨日还有未结业,请先结业。");
                CommonHelper.EndWork();
                return;
            }

            //如果还没有开业,提示开业授权
            string reinfo = "";

            frmStart.frm.setMsg("检查是否开业...");
            try
            {
                if (!RestClient.OpenUp("", "", 0, out reinfo))
                {
                    try
                    {
                        //FrmStartFlash.Instance.Close();
                        frmStart.frm.Close();
                    }
                    catch { }
                    if (!frmPermission.ShowPermission())
                    {
                        Application.Exit();
                        return;
                    }
                    else
                    {
                        //经理权限开业
                        if (!frmPermission2.ShowPermission2("开业经理授权", EnumRightType.OpenUp))
                        {
                            Application.Exit();
                            return;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Msg.ShowException(ex);
                Application.Exit();
                return;
            }
            //注意:先打开登陆窗体,登陆成功后正式运行程序(MDI主窗体)
            frmStart.frm.setMsg("开始登录...");

            if (frmLogin.Login())
            {
                //如果没有收银权限,那不用输入零找金
                if (Globals.userRight.getSyRigth())
                {
                    if (!frmPosMainV3.checkInputTellerCash())
                    {
                        Application.Exit();
                        return;
                    }
                }
                Program.MainForm.Show();
                Application.Run();
            }
            else//登录失败,退出程序
            {
                Application.Exit();
            }
        }
Exemplo n.º 6
0
        private object GetDishSaleDataProcess(object param)
        {
            IRestaurantService service = new RestaurantServiceImpl();

            return(service.GetDishSaleInfo((EnumDishSalePeriodsType)param));
        }