|
|
using POSV.Component;
|
|
|
using POSV.Entity;
|
|
|
using POSV.MessageEvent;
|
|
|
using POSV.Proxy.GuoPan;
|
|
|
using POSV.Proxy.GuoPan.Entity;
|
|
|
using POSV.Utils;
|
|
|
using System;
|
|
|
using System.Collections.Generic;
|
|
|
using System.ComponentModel;
|
|
|
using System.Data;
|
|
|
using System.Drawing;
|
|
|
using System.Linq;
|
|
|
using System.Runtime.InteropServices;
|
|
|
using System.Text;
|
|
|
using System.Threading.Tasks;
|
|
|
using System.Windows.Forms;
|
|
|
|
|
|
namespace POSV.GuoPanOrder
|
|
|
{
|
|
|
public partial class GuoPanOrderForm : BusinessForm
|
|
|
{
|
|
|
public GuoPanOrderForm()
|
|
|
{
|
|
|
InitializeComponent();
|
|
|
this.pagerControlEx1.EventFormfeed += pager_Click;
|
|
|
}
|
|
|
|
|
|
private void pager_Click(object sender, EventArgs e)
|
|
|
{
|
|
|
var _data = _ThisData.Skip((pagerControlEx1.PageNumber - 1) * 5).Take(5).ToList();
|
|
|
this.Invoke((EventHandler)delegate
|
|
|
{
|
|
|
//zhangy 2020-03-01 Add 释放资源,避免Error creating window handle
|
|
|
while (tlphandleorder.Controls.Count > 0)
|
|
|
{
|
|
|
if (tlphandleorder.Controls[0] != null)
|
|
|
{
|
|
|
var ctl = tlphandleorder.Controls[0];
|
|
|
ctl.Dispose();
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
tlphandleorder.Controls.Clear();
|
|
|
});
|
|
|
foreach (var item in _data)
|
|
|
{
|
|
|
this.Invoke((EventHandler)delegate
|
|
|
{
|
|
|
|
|
|
GuoPanOrderDetail detail = new GuoPanOrderDetail(item);
|
|
|
|
|
|
detail.IsShowConfirmBtn = !_guoPanProxy.IsConfirm(item.id).Item1;
|
|
|
detail.Clicks += Detail_Clicks;
|
|
|
if (!tlphandleorder.IsDisposed)
|
|
|
{
|
|
|
tlphandleorder.Controls.Add(detail);
|
|
|
}
|
|
|
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
|
|
|
GuoPanProxy _guoPanProxy = new GuoPanProxy();
|
|
|
|
|
|
List<DoOrder> _ThisData = new List<DoOrder>();
|
|
|
|
|
|
[DllImport("User32.dll", EntryPoint = "FindWindow")]
|
|
|
private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
|
|
|
|
|
|
|
|
|
private void ShowData(string _date)
|
|
|
{
|
|
|
var _data = _guoPanProxy.SelectData(_date);
|
|
|
|
|
|
|
|
|
if (!_data.Item1)
|
|
|
{
|
|
|
this.ShowToastNotify(this, _data.Item2);
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
if (!_data.Item3.status.Equals("1"))
|
|
|
{
|
|
|
this.ShowToastNotify(this, _data.Item3.info);
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
pagerControlEx1.PageNumber = 0;
|
|
|
pagerControlEx1.PageSize = 5;
|
|
|
pagerControlEx1.PageCount = (int)Math.Ceiling(Convert.ToDouble(_data.Item3.list.Count() / 5.00));
|
|
|
|
|
|
|
|
|
|
|
|
Task.Factory.StartNew(() =>
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
_Qlock = true;
|
|
|
_ThisData = new List<DoOrder>();
|
|
|
this.Invoke((EventHandler)delegate
|
|
|
{
|
|
|
//zhangy 2020-03-01 Add 释放资源,避免Error creating window handle
|
|
|
while (tlphandleorder.Controls.Count > 0)
|
|
|
{
|
|
|
if (tlphandleorder.Controls[0] != null)
|
|
|
{
|
|
|
var ctl = tlphandleorder.Controls[0];
|
|
|
ctl.Dispose();
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
tlphandleorder.Controls.Clear();
|
|
|
});
|
|
|
int _Size = pagerControlEx1.PageSize;
|
|
|
var _datas = _data.Item3.list.OrderByDescending(f => f.time);
|
|
|
foreach (var item in _datas)
|
|
|
{
|
|
|
var _di = _guoPanProxy.SelectOrder(item.id);
|
|
|
|
|
|
if (!_di.Item1)
|
|
|
{
|
|
|
this.ShowToastNotify(this, _di.Item2);
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
if (!_di.Item3.status.Equals("1"))
|
|
|
{
|
|
|
this.ShowToastNotify(this, "无数据");
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
_ThisData.Add(_di.Item3);
|
|
|
if (_Size == 0)
|
|
|
{
|
|
|
continue;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
_Size--;
|
|
|
}
|
|
|
this.Invoke((EventHandler)delegate
|
|
|
{
|
|
|
GuoPanOrderDetail detail = new GuoPanOrderDetail(_di.Item3);
|
|
|
detail.IsShowConfirmBtn = !_guoPanProxy.IsConfirm(_di.Item3.id).Item1;
|
|
|
detail.Clicks += Detail_Clicks;
|
|
|
if (!tlphandleorder.IsDisposed)
|
|
|
{
|
|
|
tlphandleorder.Controls.Add(detail);
|
|
|
}
|
|
|
});
|
|
|
|
|
|
}
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
_Qlock = false;
|
|
|
LOGGER.Error(ex);
|
|
|
}finally { _Qlock = false; }
|
|
|
});
|
|
|
}
|
|
|
|
|
|
private void Detail_Clicks(object sender, Proxy.GuoPan.Entity.DoOrder _OrderData)
|
|
|
{
|
|
|
var _btn = sender as TouchButtonX;
|
|
|
|
|
|
if (_btn == null)
|
|
|
{
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
switch (_btn.Text)
|
|
|
{
|
|
|
case "下单":
|
|
|
{
|
|
|
var _order = _guoPanProxy.ToOrderData(_OrderData);
|
|
|
if (!_order.Item1)
|
|
|
{
|
|
|
this.ShowToastNotify(this, "数据转换失败");
|
|
|
return;
|
|
|
}
|
|
|
var _data = _guoPanProxy.ReplacementOrder(_order.Item3);
|
|
|
|
|
|
if (!_data.Item1)
|
|
|
{
|
|
|
this.ShowToastNotify(this, "插入数据库失败");
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
var _print = _guoPanProxy.Print(_order.Item3, false);
|
|
|
|
|
|
if (!_print.Item1)
|
|
|
{
|
|
|
this.ShowToastNotify(this, "打印失败");
|
|
|
return;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
this.ShowToastNotify(this, "打印成功");
|
|
|
ShowData(DateTime.Now.ToString("yyyyMMdd"));
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
|
break;
|
|
|
case "补打":
|
|
|
{
|
|
|
var _order = _guoPanProxy.ToOrderData(_OrderData);
|
|
|
if (!_order.Item1)
|
|
|
{
|
|
|
this.ShowToastNotify(this, "数据转换失败");
|
|
|
return;
|
|
|
}
|
|
|
var _print = _guoPanProxy.Print(_order.Item3, true);
|
|
|
|
|
|
if (!_print.Item1)
|
|
|
{
|
|
|
this.ShowToastNotify(this, "打印失败");
|
|
|
return;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
this.ShowToastNotify(this, "打印成功");
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
|
break;
|
|
|
default:
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
protected override void OnLoad(EventArgs e)
|
|
|
{
|
|
|
base.OnLoad(e);
|
|
|
|
|
|
//注册结算支付事件通知
|
|
|
MsgEvent.RemoveListener(Constant.GuoPan_WEIXIN_UI_UPDATA, this.OrderUIEventNotify);
|
|
|
MsgEvent.Receive(Constant.GuoPan_WEIXIN_UI_UPDATA, this.OrderUIEventNotify);
|
|
|
|
|
|
bool openConfirm = Global.Instance.GlobalConfigBoolValue(ConfigConstant.WEIXIN_CONFIRM_PARAMETER, true);
|
|
|
pictureBox4Open(openConfirm);
|
|
|
|
|
|
//IntPtr ParenthWnd = new IntPtr(0);
|
|
|
|
|
|
////查到窗体,得到整个窗体
|
|
|
//ParenthWnd = FindWindow(null, "GuoPanOrderForm");
|
|
|
|
|
|
//GuoPanProxy.ApiInit("45135", "0d678a5c69134af16da49bf32f462011043e16d2", ParenthWnd.ToInt32());
|
|
|
|
|
|
//ShowData(DateTime.Now.ToString("yyyyMMdd"));
|
|
|
}
|
|
|
|
|
|
private void OrderUIEventNotify(object sender, MsgEventArgs e)
|
|
|
{
|
|
|
|
|
|
if (this.InvokeRequired)
|
|
|
{
|
|
|
this.Invoke((EventHandler)delegate
|
|
|
{
|
|
|
if (this.IsDisposed)
|
|
|
{
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
if (this.Visible)
|
|
|
{
|
|
|
ShowData(DateTime.Now.ToString("yyyyMMdd"));
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
private void pictureBox2_Click(object sender, EventArgs e)
|
|
|
{
|
|
|
if (this.Owner != null)
|
|
|
{
|
|
|
this.Owner.Close();
|
|
|
}
|
|
|
this.Close();
|
|
|
}
|
|
|
bool _Qlock = false;
|
|
|
private void Btn_Click(object sender, EventArgs e)
|
|
|
{
|
|
|
var _btn = sender as Component.TouchButtonX;
|
|
|
|
|
|
if (_btn == null)
|
|
|
{
|
|
|
return;
|
|
|
}
|
|
|
if (_Qlock)
|
|
|
{
|
|
|
this.ShowToastNotify(this, "正在查询");
|
|
|
return;
|
|
|
}
|
|
|
switch (_btn.Text)
|
|
|
{
|
|
|
case "今天":
|
|
|
ShowData(DateTime.Now.ToString("yyyyMMdd"));
|
|
|
break;
|
|
|
case "昨天":
|
|
|
ShowData(DateTime.Now.AddDays(-1).ToString("yyyyMMdd"));
|
|
|
break;
|
|
|
case "前天":
|
|
|
ShowData(DateTime.Now.AddDays(-2).ToString("yyyyMMdd"));
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
private void pictureBox4_Click(object sender, EventArgs e)
|
|
|
{
|
|
|
bool _IsOpen = false;
|
|
|
|
|
|
if (this.pictureBox4.Tag.ToString().Equals("1"))
|
|
|
{
|
|
|
//关闭
|
|
|
_IsOpen = false;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
//打开
|
|
|
_IsOpen = true;
|
|
|
}
|
|
|
|
|
|
var config = new Config();
|
|
|
|
|
|
config.Id = IdWorkerUtils.Instance.NextId();
|
|
|
config.Group = ConfigConstant.DEVICE_GROUP;
|
|
|
config.TenantId = Global.Instance.Authc.TenantId;
|
|
|
config.Keys = ConfigConstant.WEIXIN_CONFIRM_PARAMETER;
|
|
|
config.Values = string.Format("{0}", _IsOpen ? "1" : "0");
|
|
|
try
|
|
|
{
|
|
|
using (var db = Global.Instance.OpenDataBase)
|
|
|
{
|
|
|
using (var trans = db.GetTransaction())
|
|
|
{
|
|
|
db.Save(config);
|
|
|
|
|
|
trans.Complete();
|
|
|
}
|
|
|
}
|
|
|
Global.Instance.ReloadConfig(ConfigConstant.DEVICE_GROUP);
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
LOGGER.Info(ex);
|
|
|
}
|
|
|
|
|
|
|
|
|
pictureBox4Open(_IsOpen);
|
|
|
}
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
/// 开启/关闭自动接单
|
|
|
/// </summary>
|
|
|
/// <param name="_IsOpen"></param>
|
|
|
private void pictureBox4Open(bool _IsOpen)
|
|
|
{
|
|
|
if (!_IsOpen)
|
|
|
{
|
|
|
this.pictureBox4.Tag = 0;
|
|
|
this.pictureBox4.Image = global::POSV.Properties.Resources.no_2x;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
this.pictureBox4.Tag = 1;
|
|
|
this.pictureBox4.Image = global::POSV.Properties.Resources.yes_2x;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
}
|