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.
288 lines
9.2 KiB
C#
288 lines
9.2 KiB
C#
using POSV.Bean;
|
|
using POSV.Card;
|
|
using POSV.Utils;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Reflection;
|
|
using System.Text;
|
|
using System.Windows.Forms;
|
|
|
|
namespace POSV.Member
|
|
{
|
|
public partial class CardMergeForm : BusinessForm
|
|
{
|
|
public CardMergeForm()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
public void SearchMessage()
|
|
{
|
|
|
|
}
|
|
/// <summary>
|
|
/// 线上会员
|
|
/// </summary>
|
|
private MemberInfoQueryResponse Onlinemember = null;
|
|
|
|
/// <summary>
|
|
/// 线下会员
|
|
/// </summary>
|
|
private MemberInfoQueryResponse Offlinemember = null;
|
|
|
|
/// <summary>
|
|
/// 会员卡信息
|
|
/// </summary>
|
|
private MemberInfoQueryResponse CardInfoMessage(string property, string txtInput)
|
|
{
|
|
try
|
|
{
|
|
var request = new MemberInfoQueryRequest();
|
|
request.Property = property;
|
|
request.Keyword = txtInput;
|
|
request.ShopNo = Global.Instance.Authc.StoreNo;
|
|
request.PosNo = Global.Instance.Authc.PosNo;
|
|
request.WorkerNo = Global.Instance.Worker.No;
|
|
var response = CardUtils.MemberInfoQuery(request);
|
|
|
|
//成功
|
|
if (response.Item1)
|
|
{
|
|
ShowMessage(this.lblInfo, response.Item2, false);
|
|
MemberInfoQueryResponse memberInfoQueryResponse = response.Item3;
|
|
//label7.Text = memberInfoQueryResponse.Name;
|
|
//label5.Text = memberInfoQueryResponse.LinkPhone;
|
|
//label9.Text = memberInfoQueryResponse.CurrentCard.AvailableAmount.ToString("0.00");
|
|
//label11.Text = memberInfoQueryResponse.CurrentCard.TotalPoint.ToString("0.00");
|
|
|
|
return memberInfoQueryResponse;
|
|
}
|
|
else
|
|
{
|
|
ShowMessage(this.lblInfo, response.Item2, true);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
ShowMessage(this.lblInfo, "会员卡信息查询异常", true);
|
|
|
|
LOGGER.Error(ex, "会员卡信息查询异常");
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
private void btnOfflineCard_Click(object sender, EventArgs e)
|
|
{
|
|
var _voucherNo = this.txtInput.Text;
|
|
var way = CardUtils.JudgeCardWay(Global.Instance.Worker.TenantId, _voucherNo);
|
|
if (way == MemberCardNoType.未知)
|
|
{
|
|
this.ShowMessage(this.lblInfo, "无法识别的卡号,请确认", true);
|
|
return;
|
|
}
|
|
|
|
string property = "";
|
|
switch (way)
|
|
{
|
|
case MemberCardNoType.真实卡号:
|
|
{
|
|
property = ("cardNo");
|
|
}
|
|
break;
|
|
case MemberCardNoType.卡面号:
|
|
{
|
|
property = ("surfaceNo");
|
|
}
|
|
break;
|
|
}
|
|
|
|
var _data = CardInfoMessage(property, _voucherNo);
|
|
|
|
if (_data == null)
|
|
{
|
|
return;
|
|
}
|
|
|
|
this.Offlinemember = _data;
|
|
|
|
label23.Text = _data.Name;
|
|
label21.Text = _data.Mobile;
|
|
label19.Text = _data.CardList[0].AvailableAmount.ToString("0.00");
|
|
label17.Text = _data.CardList[0].TotalPoint.ToString("0.00");
|
|
}
|
|
|
|
private void btnCard_Click(object sender, EventArgs e)
|
|
{
|
|
var _voucherNo = this.numericTextBox1.Text;
|
|
var way = CardUtils.JudgeCardWay(Global.Instance.Worker.TenantId, _voucherNo);
|
|
if (way == MemberCardNoType.未知)
|
|
{
|
|
this.ShowMessage(this.lblInfo, "无法识别的卡号,请确认", true);
|
|
return;
|
|
}
|
|
|
|
if (way != MemberCardNoType.电子卡号)
|
|
{
|
|
this.ShowMessage(this.lblInfo, "请扫描客户手机上的会员码", true);
|
|
return;
|
|
}
|
|
|
|
var _data = CardInfoMessage("scanCode", _voucherNo);
|
|
|
|
if (_data == null)
|
|
{
|
|
return;
|
|
}
|
|
|
|
this.Onlinemember = _data;
|
|
|
|
label7.Text = _data.Name;
|
|
label5.Text = _data.Mobile;
|
|
label9.Text = _data.CardList[0].AvailableAmount.ToString("0.00");
|
|
label11.Text = _data.CardList[0].TotalPoint.ToString("0.00");
|
|
return;
|
|
}
|
|
|
|
private void numericTextBox1_OnEnterClick(object sender, Component.EnterEventArg e)
|
|
{
|
|
btnCard_Click(null, null);
|
|
}
|
|
|
|
private void txtInput_ButtonCustomClick(object sender, EventArgs e)
|
|
{
|
|
var result = CardOperateUtils.Instance.ReadCardNo();
|
|
|
|
|
|
if (result.Item1)
|
|
{
|
|
this.txtInput.Text = result.Item2;
|
|
//读卡成功,模拟回车事件
|
|
InputSimulatorUtils.SendKey(KeyCodes.Map["return"]);
|
|
}
|
|
else
|
|
{
|
|
result = CardOperateUtilsOther.Instance.ReadCardNo();
|
|
if (result.Item1)
|
|
{
|
|
this.txtInput.Text = result.Item2;
|
|
//读卡成功,模拟回车事件
|
|
InputSimulatorUtils.SendKey(KeyCodes.Map["return"]);
|
|
}
|
|
else
|
|
{
|
|
this.ShowMessage(lblInfo, result.Item2);
|
|
}
|
|
}
|
|
}
|
|
|
|
private void txtInput_OnEnterClick(object sender, Component.EnterEventArg e)
|
|
{
|
|
btnOfflineCard_Click(null, null);
|
|
}
|
|
|
|
private void buttonX3_Click(object sender, EventArgs e)
|
|
{
|
|
if (Onlinemember == null)
|
|
{
|
|
this.ShowMessage(this.lblInfo, "请扫描客户手机上的会员码", true);
|
|
return;
|
|
}
|
|
|
|
if (Offlinemember == null)
|
|
{
|
|
this.ShowMessage(this.lblInfo, "请刷实体卡会员", true);
|
|
return;
|
|
}
|
|
|
|
//CardGetWidInfoRequest cardGetWidInfo = new CardGetWidInfoRequest();
|
|
//cardGetWidInfo.ShopNo = Global.Instance.Authc.StoreNo;
|
|
//cardGetWidInfo.PosNo = Global.Instance.Authc.PosNo;
|
|
//cardGetWidInfo.WorkerNo = Global.Instance.Worker.No;
|
|
//var GetWidresponse = CardUtils.CardGetWidInfo(cardGetWidInfo);
|
|
//if (!GetWidresponse.Item1)
|
|
//{
|
|
// this.ShowMessage(this.lblInfo, GetWidresponse.Item2, true);
|
|
// return;
|
|
//}
|
|
CardMergeRequest cardMerge = new CardMergeRequest();
|
|
cardMerge.WxcardNo = Onlinemember.LinkPhone;
|
|
cardMerge.ShopNo = Global.Instance.Authc.StoreNo;
|
|
cardMerge.PosNo = Global.Instance.Authc.PosNo;
|
|
cardMerge.WorkerNo = Global.Instance.Worker.No;
|
|
cardMerge.CardNo = Offlinemember.CardList[0].CardNo;
|
|
cardMerge.WxcardNo = Onlinemember.CardList[0].CardNo;
|
|
var _CardMerge = CardUtils.CardMerge(cardMerge);
|
|
|
|
|
|
if (_CardMerge.Item1)
|
|
{
|
|
|
|
var _mess = string.Format("会员ID:{0}\t\n会员卡号:{3}\t\n合并后金额:{1}\t\n手机号:{2}\t\n", _CardMerge.Item3.MemberId, _CardMerge.Item3.TotalAmount, _CardMerge.Item3.Mobile, _CardMerge.Item3.CardNo);
|
|
|
|
DialogForm dialog = new DialogForm("合并成功", _mess,MessageBoxIcon.Asterisk);
|
|
|
|
dialog.ShowDialog();
|
|
|
|
LOGGER.Info(_mess);
|
|
}
|
|
else
|
|
{
|
|
this.ShowMessage(this.lblInfo, _CardMerge.Item2, true);
|
|
return;
|
|
}
|
|
|
|
}
|
|
|
|
#region 窗口事件
|
|
private void ButtonCancel_Click(object sender, EventArgs e)
|
|
{
|
|
//先关闭父窗体
|
|
if (this.Owner != null)
|
|
{
|
|
this.Owner.Close();
|
|
}
|
|
//再关闭当前窗体
|
|
this.Close();
|
|
}
|
|
|
|
private void controlBox_CloseClick(object sender, EventArgs e)
|
|
{
|
|
ButtonCancel_Click(null, null);
|
|
}
|
|
|
|
private void controlBox_KeyboardClick(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
KeyboardType keyboardType = KeyboardType.数字;
|
|
Type type = this.ActiveControl.GetType();
|
|
PropertyInfo pinfo = type.GetProperty("Keyboard");
|
|
if (pinfo != null)
|
|
{
|
|
keyboardType = (KeyboardType)pinfo.GetValue(this.ActiveControl, null);
|
|
}
|
|
|
|
var keyboard = Application.OpenForms["VirtualKeyboard"];
|
|
if (keyboard == null)
|
|
{
|
|
keyboard = new VirtualKeyboard(keyboardType);
|
|
}
|
|
|
|
((VirtualKeyboard)keyboard).ShowVirtualKeyboard(this, keyboardType);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LOGGER.Error(ex, "打开屏幕键盘异常");
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
|
|
}
|
|
}
|