|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.ComponentModel;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Windows.Forms;
|
|
|
|
|
using POSV.MessageEvent;
|
|
|
|
|
using POSV.Entity;
|
|
|
|
|
using POSV.Bean;
|
|
|
|
|
using POSV.Utils;
|
|
|
|
|
using System.Drawing;
|
|
|
|
|
using POS.Language.Language;
|
|
|
|
|
|
|
|
|
|
namespace POSV.Component
|
|
|
|
|
{
|
|
|
|
|
[ToolboxItem(true)]
|
|
|
|
|
public partial class CategorySettings : AbstractSettings
|
|
|
|
|
{
|
|
|
|
|
public CategorySettings()
|
|
|
|
|
{
|
|
|
|
|
InitializeComponent();
|
|
|
|
|
|
|
|
|
|
this.superTabControl.SelectedTabChanging += OnSelectedTabChanging;
|
|
|
|
|
this.superTabControl.SelectedTabChanged += OnSelectedTabChanged;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.ButtonOK.Text = LangProxy.ToLang("应用");
|
|
|
|
|
this.ButtonClose.Text = LangProxy.ToLang("关闭");
|
|
|
|
|
this.lblInfo.Text = LangProxy.ToLang("收银界面配置,修改后请点击保存");
|
|
|
|
|
this.superTabItem2.Text = LangProxy.ToLang("品类显示定义");
|
|
|
|
|
this.superTabItem4.Text = LangProxy.ToLang("规格做法定义");
|
|
|
|
|
this.superTabItem3.Text = LangProxy.ToLang("点单列表定义");
|
|
|
|
|
this.superTabItem1.Text = LangProxy.ToLang("品项显示定义");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void OnSelectedTabChanged(object sender, DevComponents.DotNetBar.SuperTabStripSelectedTabChangedEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void OnSelectedTabChanging(object sender, DevComponents.DotNetBar.SuperTabStripSelectedTabChangingEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
if (e.OldValue == null)
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//品类参数
|
|
|
|
|
if (this.categoryParameter1 is AbstractParameter)
|
|
|
|
|
{
|
|
|
|
|
var newValue = categoryParameter1.NewChanged();
|
|
|
|
|
|
|
|
|
|
if (newValue.Count > 0)
|
|
|
|
|
{
|
|
|
|
|
categoryParameter1.SaveChanged(newValue);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//品项参数
|
|
|
|
|
if (this.productParameter1 is AbstractParameter)
|
|
|
|
|
{
|
|
|
|
|
var newValue = productParameter1.NewChanged();
|
|
|
|
|
|
|
|
|
|
if (newValue.Count > 0)
|
|
|
|
|
{
|
|
|
|
|
productParameter1.SaveChanged(newValue);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//购物车参数
|
|
|
|
|
if (this.shoppingCartParameter1 is AbstractParameter)
|
|
|
|
|
{
|
|
|
|
|
var newValue = shoppingCartParameter1.NewChanged();
|
|
|
|
|
|
|
|
|
|
if (newValue.Count > 0)
|
|
|
|
|
{
|
|
|
|
|
shoppingCartParameter1.SaveChanged(newValue);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//规格做法参数
|
|
|
|
|
if (this.specMakeParameter1 is AbstractParameter)
|
|
|
|
|
{
|
|
|
|
|
var newValue = specMakeParameter1.NewChanged();
|
|
|
|
|
if (newValue.Count > 0)
|
|
|
|
|
{
|
|
|
|
|
specMakeParameter1.SaveChanged(newValue);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override void RefreshUi()
|
|
|
|
|
{
|
|
|
|
|
base.RefreshUi();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected override void OnLoad(EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
base.OnLoad(e);
|
|
|
|
|
|
|
|
|
|
this.BackColor = Color.Transparent;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override Tuple<bool, string> SaveChanged(List<Config> data)
|
|
|
|
|
{
|
|
|
|
|
bool isSuccess = true;
|
|
|
|
|
string message = "参数更新成功";
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
lock (Global.Instance.SyncLock)
|
|
|
|
|
{
|
|
|
|
|
using (var db = Global.Instance.OpenDataBase)
|
|
|
|
|
{
|
|
|
|
|
using (var trans = db.GetTransaction())
|
|
|
|
|
{
|
|
|
|
|
foreach (var config in data)
|
|
|
|
|
{
|
|
|
|
|
db.Save(config);
|
|
|
|
|
}
|
|
|
|
|
trans.Complete();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
isSuccess = false;
|
|
|
|
|
message = "参数更新异常";
|
|
|
|
|
|
|
|
|
|
LOGGER.Error(ex, message);
|
|
|
|
|
}
|
|
|
|
|
finally
|
|
|
|
|
{
|
|
|
|
|
if (isSuccess)
|
|
|
|
|
{
|
|
|
|
|
//更新品类控件UI
|
|
|
|
|
UpdateCategoryUi();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return new Tuple<bool, string>(isSuccess, message);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override List<Config> NewChanged()
|
|
|
|
|
{
|
|
|
|
|
var result = new List<Config>();
|
|
|
|
|
|
|
|
|
|
//品类参数
|
|
|
|
|
var categoryValue = this.categoryParameter1.NewChanged();
|
|
|
|
|
result.AddRange(categoryValue);
|
|
|
|
|
//品项参数
|
|
|
|
|
var productValue = this.productParameter1.NewChanged();
|
|
|
|
|
result.AddRange(productValue);
|
|
|
|
|
//购物车参数
|
|
|
|
|
var shoppingCartValue = this.shoppingCartParameter1.NewChanged();
|
|
|
|
|
result.AddRange(shoppingCartValue);
|
|
|
|
|
//规格做法参数
|
|
|
|
|
var newValue = specMakeParameter1.NewChanged();
|
|
|
|
|
result.AddRange(newValue);
|
|
|
|
|
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void UpdateCategoryUi()
|
|
|
|
|
{
|
|
|
|
|
Config config = null;
|
|
|
|
|
|
|
|
|
|
lock (Global.Instance.SyncLock)
|
|
|
|
|
{
|
|
|
|
|
using (var db = Global.Instance.OpenDataBase)
|
|
|
|
|
{
|
|
|
|
|
string sql = string.Format(SqlConstant.ConfigQueryByGroupAndKey, ConfigConstant.CATEGORY_GROUP, ConfigConstant.CATEGORY_JSON_TEMPLATE);
|
|
|
|
|
config = db.SingleOrDefault<Config>(sql);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (config != null)
|
|
|
|
|
{
|
|
|
|
|
CategoryItem item = JsonUtils.Deserialize<CategoryItem>(config.Values);
|
|
|
|
|
//发送分组通知
|
|
|
|
|
MsgEvent.Send(Constant.CATEGORY_CHANGED_NOTIFY, item);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void OnButtonOKClick(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
var selected = this.superTabControl.SelectedTabIndex;
|
|
|
|
|
|
|
|
|
|
var result = new Tuple<bool, string>(true, LangProxy.ToLang("没有任何更新"));
|
|
|
|
|
|
|
|
|
|
switch (selected)
|
|
|
|
|
{
|
|
|
|
|
case 0:
|
|
|
|
|
{
|
|
|
|
|
var newValue = categoryParameter1.NewChanged();
|
|
|
|
|
|
|
|
|
|
if (newValue.Count > 0)
|
|
|
|
|
{
|
|
|
|
|
result = categoryParameter1.SaveChanged(newValue);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case 1:
|
|
|
|
|
{
|
|
|
|
|
var newValue = productParameter1.NewChanged();
|
|
|
|
|
|
|
|
|
|
if (newValue.Count > 0)
|
|
|
|
|
{
|
|
|
|
|
result = productParameter1.SaveChanged(newValue);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case 2:
|
|
|
|
|
{
|
|
|
|
|
var newValue = shoppingCartParameter1.NewChanged();
|
|
|
|
|
|
|
|
|
|
if (newValue.Count > 0)
|
|
|
|
|
{
|
|
|
|
|
result = shoppingCartParameter1.SaveChanged(newValue);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case 3:
|
|
|
|
|
{
|
|
|
|
|
var newValue = specMakeParameter1.NewChanged();
|
|
|
|
|
if (newValue.Count > 0)
|
|
|
|
|
{
|
|
|
|
|
result = specMakeParameter1.SaveChanged(newValue);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (result.Item1)
|
|
|
|
|
{
|
|
|
|
|
string message = "[" + this.Tag.ToString() + LangProxy.ToLang("]的参数修改成功");
|
|
|
|
|
DialogForm dialog = new DialogForm(LangProxy.ToLang("参数更新成功"), LangProxy.ToLang(message), MessageBoxIcon.Information, MessageBoxButtons.OK);
|
|
|
|
|
dialog.ShowDialog();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
string message = "[" + this.Tag.ToString() + LangProxy.ToLang("]的参数修改失败");
|
|
|
|
|
DialogForm dialog = new DialogForm(LangProxy.ToLang("参数更新失败"), LangProxy.ToLang(message), MessageBoxIcon.Error, MessageBoxButtons.OK);
|
|
|
|
|
dialog.ShowDialog();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void OnButtonCloseClick(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
var parent = this.FindForm();
|
|
|
|
|
if (parent != null && parent is SettingsForm)
|
|
|
|
|
{
|
|
|
|
|
var settings = parent as SettingsForm;
|
|
|
|
|
settings.FormClose();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|