You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

378 lines
15 KiB
C#

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
/// <summary>
/// 电话外送操作应答
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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);
});
}
}
}