using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; using System.Windows.Forms; using DevComponents.Editors; using POSV.Entity; using POSV.Utils; using POS.Language.Language; namespace POSV.Component { [ToolboxItem(true)] public partial class PrinterSettings : AbstractSettings { public PrinterSettings() { InitializeComponent(); this.superTabControl.SelectedTabChanging += OnSelectedTabChanging; this.superTabControl.SelectedTabChanged += OnSelectedTabChanged; } protected override void OnLoad(EventArgs e) { base.OnLoad(e); this.BackColor = Color.Transparent; } 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.printerParameter1 is AbstractParameter) { var newValue = this.printerParameter1.NewChanged(); if (newValue.Count > 0) { this.printerParameter1.SaveChanged(newValue); } } //厨打参数 if(this.kitchenPrinter1 is AbstractParameter) { var newValue = this.kitchenPrinter1.NewChanged(); if(newValue.Count > 0) { this.kitchenPrinter1.SaveChanged(newValue); } } //外卖小票参数 if (this.wmPrinterParameter1 is AbstractParameter) { var newValue = this.wmPrinterParameter1.NewChanged(); if (newValue.Count > 0) { this.wmPrinterParameter1.SaveChanged(newValue); } } //标签设计 //if(this.labelDesignParameter1 is AbstractParameter) //{ // var newValue = this.labelDesignParameter1.NewChanged(); // if(newValue.Count > 0) // { // this.labelDesignParameter1.SaveChanged(newValue); // } //} } public override Tuple SaveChanged(List 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(poco: config); } trans.Complete(); } } } } catch (Exception ex) { isSuccess = false; message = "参数更新异常"; LOGGER.Error(ex , message); } finally { if (isSuccess) { //更新控件UI UpdatePeripheralUi(); } } return new Tuple(isSuccess , message); } public override List NewChanged() { var result = new List(); //收银小票参数 var printerValue = this.printerParameter1.NewChanged(); result.AddRange(printerValue); return result; } private void UpdatePeripheralUi() { Global.Instance.ReloadConfig(ConfigConstant.PERIPHERAL_GROUP); } private void OnButtonOKClick(object sender , EventArgs e) { var selected = this.superTabControl.SelectedTabIndex; var result = new Tuple(true , "没有任何更新"); switch (selected) { case 0: { var newValue = this.printerParameter1.NewChanged(); if (newValue.Count > 0) { result = this.printerParameter1.SaveChanged(newValue); } } break; case 1: { var newValue = this.kitchenPrinter1.NewChanged(); if (newValue.Count > 0) { result = this.kitchenPrinter1.SaveChanged(newValue); } } break; case 2: { var newValue = this.wmPrinterParameter1.NewChanged(); if (newValue.Count > 0) { result = this.wmPrinterParameter1.SaveChanged(newValue); } } break; } if (result.Item1) { string message = "[" + LangProxy.ToLang(this.Tag.ToString()) + LangProxy.ToLang("]的参数修改成功"); DialogForm dialog = new DialogForm(LangProxy.ToLang("参数更新成功") , message , MessageBoxIcon.Information , MessageBoxButtons.OK); dialog.ShowDialog(); } else { string message = "[" + LangProxy.ToLang(this.Tag.ToString()) + LangProxy.ToLang("]的参数修改失败"); DialogForm dialog = new DialogForm(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(); } } } }