using POSV.Card; using POSV.Component; using POSV.Entity; using POSV.Helper; using POSV.Member; using POSV.Promotion; using POSV.Report; using POSV.Stock; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace POSV.Business { public partial class MoreDialogForm : BusinessForm { public MoreDialogForm() { InitializeComponent(); } private void OnMenuClick(object sender, EventArgs e) { var button = sender as ButtonXExt; ////针对食堂版授权控制 //var _form = (this.Owner as TransparentForm).m_overlay as FastTemplate; //if (_form != null) //{ //模块授权控制 if (!this.IsAccredit(button.Text.Trim())) { return; } //} this.Invoke((EventHandler)delegate { try { switch (button.Text.Trim()) { case "营业单据": { var form = Application.OpenForms["MSaleDetail"]; if (form == null) { form = new MSaleDetail(); } form.WindowState = FormWindowState.Maximized; form.BringToFront(); form.ShowDialog(); } break; case "销售汇总": { var form = Application.OpenForms["MSaleSummary"]; if (form == null) { form = new MSaleSummary(); } form.WindowState = FormWindowState.Maximized; form.BringToFront(); form.ShowDialog(); } break; case "收银报表": { var form = Application.OpenForms["MPaySummary"]; if (form == null) { form = new MPaySummary(); } form.WindowState = FormWindowState.Maximized; form.BringToFront(); form.ShowDialog(); } break; case "营业日报": { var form = Application.OpenForms["MDaySaleReport"]; if (form == null) { form = new MDaySaleReport(); } form.WindowState = FormWindowState.Maximized; form.BringToFront(); form.ShowDialog(); } break; case "时段报表": { var form = Application.OpenForms["MTimeSummary"]; if (form == null) { form = new MTimeSummary(); } form.WindowState = FormWindowState.Maximized; form.BringToFront(); form.ShowDialog(); } break; case "交班查询": { var form = Application.OpenForms["MShiftDetail"]; if (form == null) { form = new MShiftDetail(); } form.WindowState = FormWindowState.Maximized; form.BringToFront(); form.ShowDialog(); } break; case "会员开户": { var dialogForm = new CardOpenForm(); dialogForm.OnRechargeClick += OnRechargeControlNotifyChanged; dialogForm.AcceptButtonClick += (o, args) => { if (args.Data is MemberInfoQueryResponse) { var response = args.Data as MemberInfoQueryResponse; //会员登记小票打印 Task.Factory.StartNew(() => { var storeNo = Global.Instance.Authc.StoreNo; var storeName = Global.Instance.Worker.StoreInfo.PrintName; var posNo = Global.Instance.Authc.PosNo; var workerNo = Global.Instance.Worker.No; var workerName = Global.Instance.Worker.Name; //构建收银小票模版参数 var vars = PrintHelper.BuilderMemberRegisterVariable(storeNo, storeName, workerNo, workerName, posNo, response); //自动切纸 bool cutPager = Global.Instance.GlobalConfigBoolValue(ConfigConstant.PERIPHERAL_CASHIER_ALLOW_CUT_PAGER, false); LOGGER.Info("开始打印会员登记小票"); //执行收银小票打印 return PrintHelper.PrinterMemberRegister("会员登记单", vars, cutPager); }).ContinueWith(task => { if (task.IsFaulted) { LOGGER.Error(task.Exception.GetBaseException()); } else { LOGGER.Info("会员登记小票打印结果<{0},{1}>", task.Result.Item1, task.Result.Item2); } }); } }; dialogForm.CancelButtonClick += (o, args) => { }; TransparentForm trans = new TransparentForm(this, dialogForm); trans.ShowDialog(); } break; case "会员充值": { TransparentForm trans = new TransparentForm(this, new CardRechargeForm()); trans.ShowDialog(); } break; case "会员信息": { TransparentForm trans = new TransparentForm(this, new CardMessageForm()); trans.ShowDialog(); } break; case "会员日志": { var form = Application.OpenForms["MemberHistoryForm"]; if (form == null) { form = new MemberHistoryForm(); } form.WindowState = FormWindowState.Maximized; form.BringToFront(); form.Show(); } break; case "会员换卡": { TransparentForm trans = new TransparentForm(this, new CardExchangeForm()); trans.ShowDialog(); } break; case "会员更改": { TransparentForm trans = new TransparentForm(this, new CardUpdateFrom()); trans.ShowDialog(); } break; case "开钱箱": { PrintHelper.OpenCashBox(); } break; case "入库": { var form = Application.OpenForms["StoreStorageInListForm"]; if (form == null) { form = new StoreStorageInListForm(); } form.WindowState = FormWindowState.Maximized; form.BringToFront(); form.ShowDialog(); } break; case "库存查询": { var form = Application.OpenForms["ProductStockForm"]; if (form == null) { form = new ProductStockForm(); } form.WindowState = FormWindowState.Maximized; form.BringToFront(); form.ShowDialog(); } break; case "设置": { var form = Application.OpenForms["SettingsForm"]; if (form == null) { form = new SettingsForm(); } form.BringToFront(); form.ShowDialog(); } break; case "关闭": { if (this.Owner != null) { this.Owner.Close(); } this.Close(); } break; } } catch (Exception ex) { LOGGER.Error(ex, "OnMenuClick异常"); } finally { } }); } public bool IsAccredit(string permissionName) { var permissionCode = this.ToPermissionCode(permissionName); if (Global.Instance.HasPermission(permissionCode)) { return true; } var authForm = new AuthDialogForm(permissionName, permissionCode, null); authForm.ExpectValidate(permissionCode); authForm.ShowDialog(); if (authForm.IsAccredit) { return true; } else { return false; } } #region ToPermissionCode private string ToPermissionCode(string permissionName) { switch (permissionName) { case "现在找零": return "10019"; case "速结": return "10019"; case "会员卡": return "10023";//会员卡查询 case "营业单据": return "30001";//销售流水 case "销售汇总": return "30002"; case "收银报表": return "30003"; case "营业日报": return "30005"; case "时段报表": return "30004"; case "交班查询": return "30008"; case "会员开户": return "20001"; case "会员充值": return "20002"; case "会员信息": return "20005"; case "会员换卡": return "20004"; case "开钱箱": return "10020"; case "设置": return "40001"; case "交班": return "10036"; case "消单": return "10001"; case "删菜": return "10002"; default: return ""; } } #endregion /// /// 电话外送操作应答 /// /// /// private void OnRechargeControlNotifyChanged(object sender, NotifyEventArgs e) { switch (e.KeyCode) { case "memberRecharge"://会员充值 { var data = e.Data.ToString(); TransparentForm trans = new TransparentForm(this, new CardRechargeForm(data)); trans.Show(this); } break; } } private void OnCloseClick(object sender, EventArgs e) { this.Close(); } private void buttonXExt18_Click(object sender, EventArgs e) { this.Invoke((EventHandler)delegate { TransparentForm trans = new TransparentForm(this, new PromotionForm()); trans.Show(this); }); } } }