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();
        }
Пример #2
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);
        }