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 POSV.ShoppingCart;
using DevComponents.DotNetBar;
using POSV.Bean;
using POSV.Utils;
using DevComponents.DotNetBar.Controls;
using POSV.MessageEvent;
using DevComponents.DotNetBar.Metro;
using POSV.Entity;
using System.Threading.Tasks;
using POSV.Card;
using System.Threading;
namespace POSV.Bill
{
[ToolboxItem(true)]
public partial class MCardControl : AbstractBill
{
///
/// 会员卡参数配置规则
///
private MemberCardItem _currentCardItem = null;
///
/// 当前读卡的方式
///
private MemberCardReadType _currentReadCardType = MemberCardReadType.手机号码;
///
/// 会员卡操作
///
private MemberCardOperator _currentOperator = MemberCardOperator.会员刷卡;
///
/// 当前会员对象,操作员输入条件后获取的对象
///
private MemberInfoQueryResponse _currentMemberInfo = null;
///
/// 会员卡支付前,请求的交易参考号
///
private CardTradeCreateVoucherNoResponse _newVoucherNo = null;
///
/// 当前会员选择的会员卡
///
private MemberCard _currentCard = null;
///
/// 是否是M1读卡
///
private bool isM1Card = false;
///
/// 是否需要循环读卡
///
private bool isClose = false;
public MCardControl()
{
InitializeComponent();
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
SetStyle(ControlStyles.Selectable, true);
//消费金额
this.txtAmount.Multiline = false;
//会员卡号
this.txtCardNo.Multiline = false;
//会员密码
this.txtPasswd.Multiline = false;
if (this.PayNo.Equals("49"))
{
lblFree.Visible = false;
labelX16.Visible = false;
lblPoint.Visible = false;
this.txtCardNo.WatermarkText = "请刷卡";
bool astrict = Global.Instance.GlobalConfigBoolValue(ConfigConstant.CASHIER_ALLOW_MEMBER_XMKMANUALINPUT, false);
if (!astrict)
{
this.txtCardNo.Enabled = false;
}
}
}
protected override void OnPaintBackground(PaintEventArgs e)
{
e.Graphics.Clear(Focused ? SystemColors.Control : SystemColors.Control);
}
protected override void OnGotFocus(EventArgs e)
{
Invalidate();
base.OnGotFocus(e);
}
protected override void OnLostFocus(EventArgs e)
{
base.OnLostFocus(e);
Invalidate();
}
public override void SetFocus()
{
this.txtCardNo.Focus();
this.txtCardNo.SelectAll();
}
public override bool Focused
{
get
{
if (this.ActiveControl == null)
{
this.ActiveControl = this.txtAmount;
}
return this.ActiveControl.Focused;
}
}
public override void Clear()
{
base.Clear();
this._newVoucherNo = null;
this._orderObject = null;
//关闭读卡器
CardOperateUtilsOther.Instance.TerminationCardRead();
//关闭读卡器
CardOperateUtils.Instance.TerminationCardRead();
// 终止循环
isClose = true;
}
///
/// 统一收单-订单创建(获取交易参考号)
///
///
private void NewVoucherNo(bool refresh)
{
var data = BusinessUtils.Instance.CreateOrderCardTrade(this._orderObject);
if (data.Item1)
{
this._newVoucherNo = data.Item3;
LOGGER.Warn("统一收单-订单创建(获取交易参考号):"+this._newVoucherNo.TradeNo);
}
else
{
MsgEvent.Send(Constant.PAY_MESSAGE_EVENT_NOTIFY, new Tuple(true, data.Item2));
this._newVoucherNo = null;
}
}
public override void Close()
{
base.Close();
//关闭读卡器
CardOperateUtilsOther.Instance.TerminationCardRead();
//关闭读卡器
CardOperateUtils.Instance.TerminationCardRead();
// 终止循环
isClose = true;
}
///
/// 调整会员卡操作Tab项
///
private void RefreshUi()
{
if (this._currentOperator == MemberCardOperator.会员刷卡)
{
MsgEvent.Send(Constant.PAY_MESSAGE_EVENT_NOTIFY, new Tuple(false, "请刷卡"));
isClose = false;
if (this._currentCardItem.ListReader.Contains(MemberCardReadType.磁条卡或IC卡) && this._currentCardItem.ListType.Contains(MemberCardType.Mifare))
{
//启用M1卡,自动打开循环读卡模式
Task.Factory.StartNew(() =>
{
string showMsg = string.Empty;
while (true)
{
bool astrict = Global.Instance.GlobalConfigBoolValue(ConfigConstant.CASHIER_ALLOW_MEMBER_XMKONLYMEMBERSHIPCARDAREALLOWED, false);
if (this.PayNo.Equals("49"))
{
if (!astrict)
{
break;
}
}
if (isClose)
{
break;
}
var result = CardOperateUtils.Instance.ReadCardNoContinue();
if (result.Item1)
{
if (result.Item2.Length == 16)
{
if (!this.IsHandleCreated || this.IsDisposed) return;
this.Invoke(new Action(() =>
{
this.txtCardNo.Text = result.Item2;
isM1Card = true;
if (this.txtCardNo.Enabled)
{
//读卡成功,模拟回车事件
InputSimulatorUtils.SendKey(KeyCodes.Map["return"]);
}
else
{
OnMCardEnterClick(null, null);
}
}));
return;
}
else
{
showMsg = "卡号非法";
}
}
else
{
result = CardOperateUtilsOther.Instance.ReadCardNoContinue();
if (result.Item1)
{
if (!this.IsHandleCreated || this.IsDisposed) return;
this.Invoke(new Action(() =>
{
this.txtCardNo.Text = result.Item2;
isM1Card = true;
//读卡成功,模拟回车事件
InputSimulatorUtils.SendKey(KeyCodes.Map["return"]);
}));
return;
}
else
{
if (result.Item2.Contains("读卡失败"))
{
continue;
}
showMsg = result.Item2;
}
}
if (!this.IsHandleCreated || this.IsDisposed) return;
this.Invoke(new Action(() =>
{
MsgEvent.Send(Constant.PAY_MESSAGE_EVENT_NOTIFY, new Tuple(true, showMsg));
}));
Thread.Sleep(1000);
}
});
}
}
else
{
//关闭读卡器
CardOperateUtilsOther.Instance.TerminationCardRead();
//关闭读卡器
CardOperateUtils.Instance.TerminationCardRead();
// 终止循环
isClose = true;
}
switch (this._currentOperator)
{
case MemberCardOperator.会员刷卡:
{
this.ActiveControl = this.txtCardNo;
this.txtCardNo.Focus();
this.txtCardNo.SelectAll();
}
break;
case MemberCardOperator.会员消费:
{
var skipNoMoney = Global.Instance.GlobalConfigStringValue(ConfigConstant.CONFIG_CASHIER_CARDPAYSKIPNOMONEY, "0");
if (!BusinessUtils.Instance.HavMemberPromotionCoup(this._orderObject) && this._currentCard != null && this._currentCard.AvailableAmount <= 0 && "1".Equals(skipNoMoney))
{
this._currentOperator = MemberCardOperator.会员刷卡;
//享迷卡
if (this.PayNo.Equals("49"))
{
this._orderObject.XmkMember = null;
}
else
{
this._orderObject.Member = null;
}
this._currentCard = null;
BusinessUtils.Instance.RemoveMemberPromotion(this._orderObject);
this.BindUi(this._orderObject);
MsgEvent.Send(Constant.PAY_MESSAGE_EVENT_NOTIFY, new Tuple(true, "余额为0不允许消费,请充值或选择其他付款方式!"));
return;
}
var cardNo = string.IsNullOrEmpty(this._currentCard.FaceNo) ? this._currentCard.CardNo : this._currentCard.CardNo;
this.lblCardNo.Text = CardUtils.CardNoEncrypt(cardNo);
this.lblBalance.Text = this._currentCard.AvailableAmount.ToString();
this.lblPoint.Text = this._currentCard.TotalPoint.ToString();
if (this._currentCard.IsNoPwd == 1 && this._currentCardItem.PaymentType == 1 && this._currentMemberInfo.GetWay != MemberCardNoType.手机号)
{
this.lblFree.Text = string.Format("免密额度:{0}元/笔", this._currentCard.NpAmount.ToString());
}
else
{
this.lblFree.Text = string.Format("凭密码消费");
}
//不抹零
this._orderObject.MalingAmount = 0;
//不找零
this._orderObject.ChangeAmount = 0;
//未收金额
var unpaidAmount = this._orderObject.ReceivableAmount - this._orderObject.ReceivedAmount;
//将当前应收金额赋值
this.txtAmount.Text = unpaidAmount >= 0 ? unpaidAmount.ToString() : "0";
//如果会员余额小于未付金额,将应收金额赋值为会员余额
if (this._currentCard.AvailableAmount < unpaidAmount)
{
this.txtAmount.Text = this._currentCard.AvailableAmount.ToString();
}
this.ActiveControl = this.txtAmount;
this.txtAmount.Focus();
this.txtAmount.SelectAll();
//是否需要确认金额,不跳过确认
var skipConfirmMoney = Global.Instance.GlobalConfigBoolValue(ConfigConstant.CONFIG_CASHIER_CARDPAYSKIPCONFIRMMONEY, true);
if (skipConfirmMoney)
{
Task.Factory.StartNew(() =>
{
Thread.Sleep(100);
if (this.IsDisposed || !this.IsHandleCreated) return;
this.Invoke(new Action(() =>
{
if (VerifyInputValue())
{
MsgEvent.Send(Constant.PAY_AUTO_EVENT_NOTIFY, "快捷触发会员卡支付结账");
}
}));
});
}
}
break;
case MemberCardOperator.支付密码:
{
//消费前余额
decimal beforeAmount = this._currentCard.AvailableAmount;
this.lblBefAmount.Text = OrderUtils.ToRound(beforeAmount).ToString();
//本次消费金额
this.lblPayAmount.Text = this.txtAmount.DecimalValue.ToString();
//消费后的余额
decimal afterAmount = beforeAmount - this.txtAmount.DecimalValue;
this.lblAftAmount.Text = OrderUtils.ToRound(afterAmount).ToString();
this.ActiveControl = this.txtPasswd;
if (verifymoney)
{
this.txtPasswd.Text = string.Empty;
}
this.txtPasswd.Focus();
this.txtPasswd.SelectAll();
MsgEvent.Send(Constant.PAY_MESSAGE_EVENT_NOTIFY, new Tuple(true, "请输入密码"));
}
break;
}
//刷新支付汇总清单
this.billSummary1.Refresh(this._orderObject);
//刷新支付列表
this.billGrid1.RefreshGrid(this._orderObject.Pays);
}
///
/// 订单对象
///
private OrderObject _orderObject = null;
public override void BindUi(OrderObject orderObject)
{
if (orderObject == null) return;
this._orderObject = orderObject;
this._newVoucherNo = null;
//异步获取交易参考号
//Task.Factory.StartNew(() => {
// this.NewVoucherNo(false);
//});
//享迷卡
if (this.PayNo.Equals("49"))
{
this._currentMemberInfo = this._orderObject.XmkMember;
}
else
{
this._currentMemberInfo = this._orderObject.Member;
}
if (this._currentMemberInfo != null)
{
//享迷卡
if (this.PayNo.Equals("49"))
{
this._currentCard = this._orderObject.XmkMember.CurrentCard;
}
else
{
this._currentCard = this._orderObject.Member.CurrentCard;
}
}
//会员规则
this._currentCardItem = JsonUtils.Deserialize(Global.Instance.GlobalConfigStringValue(ConfigConstant.CASHIER_MEMBER_CARD));
//是否会员卡功能以管理端设置参数优先
var memberFunctionsPrior = Global.Instance.GlobalConfigBoolValue(ConfigConstant.CONFIG_CASHIER_MEMBER_FUNCTIONS_PRIOR, false);
//享迷卡
if (this.PayNo.Equals("49"))
{
//主界面刷卡
if (this._orderObject.XmkMember != null && this._currentCardItem.Function.Contains(MemberCardFunctions.会员储值及消费))
{
this._currentOperator = MemberCardOperator.会员消费;
this.tabCardRead.Visible = false;
this.tabCardPasswd.Visible = false;
this.tabCardSelected.Visible = false;
this.tabCardPay.Visible = true;
this.tabCardControl.SelectedTab = this.tabCardPay;
}
else
{
//主界面没有刷卡
this._currentOperator = MemberCardOperator.会员刷卡;
this.tabCardRead.Visible = true;
this.tabCardPasswd.Visible = false;
this.tabCardSelected.Visible = false;
this.tabCardPay.Visible = false;
this.tabCardControl.SelectedTab = this.tabCardRead;
this.txtCardNo.Text = string.Empty;
this.txtCardNo.Focus();
this.txtCardNo.SelectAll();
}
}
else
{
//主界面刷卡
if (this._orderObject.Member != null && this._currentCardItem.Function.Contains(MemberCardFunctions.会员储值及消费))
{
this._currentOperator = MemberCardOperator.会员消费;
this.tabCardRead.Visible = false;
this.tabCardPasswd.Visible = false;
this.tabCardSelected.Visible = false;
this.tabCardPay.Visible = true;
this.tabCardControl.SelectedTab = this.tabCardPay;
}
else
{
//主界面没有刷卡
this._currentOperator = MemberCardOperator.会员刷卡;
this.tabCardRead.Visible = true;
this.tabCardPasswd.Visible = false;
this.tabCardSelected.Visible = false;
this.tabCardPay.Visible = false;
this.tabCardControl.SelectedTab = this.tabCardRead;
this.txtCardNo.Text = string.Empty;
this.txtCardNo.Focus();
this.txtCardNo.SelectAll();
}
}
this.RefreshUi();
}
private bool VerifyInputValue()
{
if (this._orderObject == null)
{
MsgEvent.Send(Constant.PAY_MESSAGE_EVENT_NOTIFY, new Tuple(true, "订单数据错误啦,请拍个照..."));
return false;
}
switch (this._currentOperator)
{
case MemberCardOperator.会员刷卡:
{
var inputValue = this.txtCardNo.Text.Trim();
if (string.IsNullOrEmpty(inputValue))
{
MsgEvent.Send(Constant.PAY_MESSAGE_EVENT_NOTIFY, new Tuple(true, "请刷卡"));
return false;
}
//智能识别刷卡方式
var way = CardUtils.JudgeCardWay(Global.Instance.Worker.TenantId, inputValue);
if (way == MemberCardNoType.未知)
{
MsgEvent.Send(Constant.PAY_MESSAGE_EVENT_NOTIFY, new Tuple(true, "无法识别的卡号,请确认"));
return false;
}
}
break;
case MemberCardOperator.会员消费:
{
if (this._newVoucherNo == null)
{
this.NewVoucherNo(false);
if (this._newVoucherNo == null)
{
MsgEvent.Send(Constant.PAY_MESSAGE_EVENT_NOTIFY, new Tuple(true, "获取交易参考号失败"));
return false;
}
}
////输入是否满足结账条件:应收金额 = 实际收款金额 - 找零金额
//bool isVerify = (this._orderObject.ReceivableAmount == (this._orderObject.PaidAmount - this._orderObject.ChangeAmount));
//输入是否满足结账条件:消费明细中实收金额的合计 = 主单中的实收金额
var isVerify = this._orderObject.Pays.Sum(x => x.PaidAmount) >= this._orderObject.PaidAmount;
//满足结账条件
if (isVerify)
{
MsgEvent.Send(Constant.PAY_MESSAGE_EVENT_NOTIFY, new Tuple(true, "满足结账条件,点击完成结账"));
this.txtAmount.SelectAll();
return false;
}
//当前选择的会员卡
var cardNo = this._currentCard.CardNo;
//实收金额,操作员录入消费卡金
decimal inputAmount = this.txtAmount.DecimalValue;
if (inputAmount < 0)
{
MsgEvent.Send(Constant.PAY_MESSAGE_EVENT_NOTIFY, new Tuple(true, "请输入金额"));
this.txtAmount.SelectAll();
return false;
}
if (inputAmount > this._orderObject.ReceivableAmount)
{
MsgEvent.Send(Constant.PAY_MESSAGE_EVENT_NOTIFY, new Tuple(true, "不允许超出应收金额"));
this.txtAmount.SelectAll();
return false;
}
//扣除已经在支付清单的余额
decimal freeze = this._orderObject.Pays.Where(x => x.CardNo == cardNo).Sum(x => x.Amount);
//当前卡可用余额
decimal balance = this._currentCard.AvailableAmount - freeze;
//操作员录入消费金额大于卡余额
if (inputAmount > balance)
{
MsgEvent.Send(Constant.PAY_MESSAGE_EVENT_NOTIFY, new Tuple(true, "卡余额不足,请重新输入"));
this.txtAmount.SelectAll();
return false;
}
}
break;
case MemberCardOperator.支付密码:
{
//当前选择的会员卡
var cardNo = this._currentCard.CardNo;
decimal inputAmount = this.txtAmount.DecimalValue;
//扣除已经在支付清单的余额
decimal freeze = this._orderObject.Pays.Where(x => x.CardNo == cardNo).Sum(x => x.Amount);
//当前卡可用余额
decimal balance = this._currentCard.AvailableAmount - freeze;
if (balance == 0)
{
MsgEvent.Send(Constant.PAY_MESSAGE_EVENT_NOTIFY, new Tuple(true, "可用余额为0,请确认"));
this.txtAmount.SelectAll();
return false;
}
//操作员录入消费金额大于卡余额
if (inputAmount > balance)
{
MsgEvent.Send(Constant.PAY_MESSAGE_EVENT_NOTIFY, new Tuple(true, "卡余额不足,请重新输入"));
this.txtAmount.SelectAll();
return false;
}
MsgEvent.Send(Constant.PAY_MESSAGE_EVENT_NOTIFY, new Tuple(false, "请输入密码"));
if (this._newVoucherNo == null)
{
MsgEvent.Send(Constant.PAY_MESSAGE_EVENT_NOTIFY, new Tuple(true, "获取交易参考号失败"));
return false;
}
////输入是否满足结账条件:应收金额 = 实际收款金额 - 找零金额
//bool isVerify = (this._orderObject.ReceivableAmount == (this._orderObject.PaidAmount - this._orderObject.ChangeAmount));
//输入是否满足结账条件:消费明细中实收金额的合计 = 主单中的实收金额
var isVerify = this._orderObject.Pays.Sum(x => x.PaidAmount) >= this._orderObject.PaidAmount;
//满足结账条件
if (isVerify)
{
MsgEvent.Send(Constant.PAY_MESSAGE_EVENT_NOTIFY, new Tuple(true, "满足结账条件,点击完成结账"));
this.txtAmount.SelectAll();
return false;
}
}
break;
}
return true;
}
///
/// 操作是否验证通过
///
private bool PaymentVerify = false;
private void OnKeyboardBefore(object sender, BillKeyboardEventArgs e)
{
this.PaymentVerify = VerifyInputValue();
}
private void AddMCardPayType(CardTradeCreateCardRequest request, CardTradeCreateCardResponse response, bool useConfirmed, string passwd)
{
if (request == null || response == null || this._newVoucherNo == null) return;
//构建会员卡支付方式
var payMode = this.Tag as PayMode;
//构建支付方式
PayItem item = OrderUtils.ToPayItem(payMode);
//租户ID
item.TenantId = Global.Instance.Authc.TenantId;
//订单号
item.OrderId = this._orderObject.Id;
item.TradeNo = this._orderObject.TradeNo;
//支付编号
item.PayNo = OrderUtils.Instance.GeneratePayNo();
item.Id = IdWorkerUtils.Instance.NextId();
item.Name = payMode.Name;
item.No = payMode.No;
item.PointFlag = payMode.PointFlag;
//实收金额
item.PaidAmount = this.txtAmount.DecimalValue;
//找零金额
item.ChangeAmount = Convert.ToDecimal(0.00);
//已收金额,真正意义上实际收款金额
item.Amount = this.txtAmount.DecimalValue;
item.CardNo = request.CardNo;
//加入卡面号,手机号信息
if (this._currentCard != null)
{
item.CardFaceNo = this._currentCard.FaceNo;
}
//享迷卡
if (this.PayNo.Equals("49"))
{
if (this._orderObject.XmkMember != null)
{
item.MemberMobileNo = this._orderObject.XmkMember.Mobile;
}
}
else
{
if (this._orderObject.Member != null)
{
item.MemberMobileNo = this._orderObject.Member.Mobile;
}
}
//用户确认输入密码
item.UseConfirmed = useConfirmed;
//会员卡密码加密
item.Passwd = passwd;
//预支付编码
item.PrePayNo = response.PrePayment;
//交易参考号
item.TradeVoucherNo = this._newVoucherNo.TradeVoucherNo;
item.Memo = "会员卡支付";
item.Subscribe = string.Empty;
//会员卡支付状态,NOT_PAID未扣款
item.Status = (int)OrderPaymentStatus.未付款;
item.StatusDesc = "预下单成功,未扣款";
if (item.Amount == 0)
{
return;
}
//将会员卡压入支付清单
this._orderObject.Pays.Add(item);
if (Property.Equals("cardNo"))
{
this._orderObject.Ext1 = "享迷卡";
}
//刷新界面数据
this.billSummary1.Refresh(this._orderObject);
//刷新支付列表
this.billGrid1.RefreshGrid(this._orderObject.Pays);
//未收金额
var unpaidAmount = this._orderObject.PaidAmount - this._orderObject.ReceivedAmount;
this.txtAmount.Text = unpaidAmount < 0 ? "0" : unpaidAmount.ToString();
this.txtAmount.Focus();
this.txtAmount.SelectAll();
}
string Property = "";
bool verifymoney = false;
private void OnKeyboardAfter(object sender, BillKeyboardEventArgs e)
{
switch (e.KeyCode)
{
case "clear":
//如果当前焦点控件是输入框
if (this.ActiveControl is TextBox)
{
var activeControl = this.ActiveControl as TextBox;
activeControl.Text = string.Empty;
RefreshUi();
}
break;
case "accept":
//验证通过
if (this.PaymentVerify)
{
switch (this._currentOperator)
{
case MemberCardOperator.会员刷卡:
{
verifymoney = false;
var voucherNo = this.txtCardNo.Text.Trim();
//智能识别刷卡方式
var way = CardUtils.JudgeCardWay(Global.Instance.Worker.TenantId, voucherNo);
if (way == MemberCardNoType.未知)
{
MsgEvent.Send(Constant.PAY_MESSAGE_EVENT_NOTIFY, new Tuple(true, "无法识别的卡号,请确认"));
return;
}
MemberInfoQueryRequest request = new MemberInfoQueryRequest();
request.Keyword = voucherNo;
if (this.PayNo.Equals("49"))
{
bool astrict = Global.Instance.GlobalConfigBoolValue(ConfigConstant.CASHIER_ALLOW_MEMBER_XMKONLYMEMBERSHIPCARDAREALLOWED, false);
if (!astrict && way == MemberCardNoType.真实卡号)
{
MsgEvent.Send(Constant.PAY_MESSAGE_EVENT_NOTIFY, new Tuple(true, "不允许刷卡"));
return;
}
astrict = Global.Instance.GlobalConfigBoolValue(ConfigConstant.CASHIER_ALLOW_MEMBER_XMKMANUALINPUT, false);
if (!astrict && way != MemberCardNoType.真实卡号)
{
MsgEvent.Send(Constant.PAY_MESSAGE_EVENT_NOTIFY, new Tuple(true, "只允许刷卡"));
return;
}
}
else
{
bool astrict = Global.Instance.GlobalConfigBoolValue(ConfigConstant.CASHIER_ALLOW_MEMBER_WXMEMBERSHIPCARDARENOTALLOWED, false);
if (astrict && way == MemberCardNoType.真实卡号)
{
MsgEvent.Send(Constant.PAY_MESSAGE_EVENT_NOTIFY, new Tuple(true, "不允许刷卡"));
return;
}
astrict = Global.Instance.GlobalConfigBoolValue(ConfigConstant.CASHIER_ALLOW_MEMBER_ENTERYOURPHONENUMBER, true);
if (!astrict && way == MemberCardNoType.手机号)
{
MsgEvent.Send(Constant.PAY_MESSAGE_EVENT_NOTIFY, new Tuple(true, "不允许使用手机号"));
return;
}
}
switch (way)
{
case MemberCardNoType.电子卡号:
{
Property = request.Property = "scanCode";
}
break;
case MemberCardNoType.真实卡号:
{
Property = request.Property = "cardNo";
}
break;
case MemberCardNoType.手机号:
{
Property = request.Property = "mobile";
}
break;
case MemberCardNoType.卡面号:
{
Property = request.Property = "surfaceNo";
}
break;
}
//享迷卡
if (this.PayNo.Equals("49"))
{
if (!request.Property.Equals("cardNo"))
{
MsgEvent.Send(Constant.PAY_MESSAGE_EVENT_NOTIFY, new Tuple(true, "请刷享迷卡"));
return;
}
}
if (!isM1Card)
{
//是否允许手工输入卡号
var allowInput = Global.Instance.GlobalConfigStringValue(ConfigConstant.CASHIER_ALLOW_INPUT_CARDNO, "0");
if ("0".Equals(allowInput) && maxChangeTime > 200 && (request.Property.Equals("surfaceNo") || request.Property.Equals("cardNo")))
{
txtCardNo.Text = "";
MsgEvent.Send(Constant.PAY_MESSAGE_EVENT_NOTIFY, new Tuple(true, "不允许手工录入卡号"));
return;
}
}
isM1Card = false;
request.ShopNo = Global.Instance.Authc.StoreNo;
request.WorkerNo = Global.Instance.Worker.No;
request.PosNo = Global.Instance.Authc.PosNo;
var resp = CardUtils.MemberInfoQuery(request);
//会员卡获取成功
if (resp.Item1)
{
//查询返回结果
this._currentMemberInfo = resp.Item3;
//读卡方式
this._currentMemberInfo.GetWay = way;
if (this._currentMemberInfo.CardList.Count == 0)
{
MsgEvent.Send(Constant.PAY_MESSAGE_EVENT_NOTIFY, new Tuple(true, "没有可用的会员卡..."));
return;
}
verifymoney = true;
//享迷卡
if (this.PayNo.Equals("49"))
{
//当前会员
if (this._orderObject.XmkMember == null && this._currentCardItem.Function.Contains(MemberCardFunctions.会员储值及消费))
{
//享迷卡
if (this.PayNo.Equals("49"))
{
this._orderObject.XmkMember = this._currentMemberInfo;
}
else
{
this._orderObject.Member = this._currentMemberInfo;
}
//外部未刷卡,新会员,执行订单会员价
foreach (var item in this._orderObject.Items)
{
//套餐,自动找到套餐主菜进行优惠计算
if (item != null && item.RowState == OrderRowState.套餐明)
{
//套餐明细,找到套餐主菜进行优惠计算
var mainItem = this._orderObject.Items.Find(x => x.Group == item.Group && x.RowState == OrderRowState.套餐主);
if (mainItem != null)
{
if (item.Promotions != null && item.Promotions.Count > 0)
{
//有优惠,不计算单品优惠
//return;
}
else
{
var promResult = PromotionEngine.Instance.CalItemPromotion(this._orderObject, item);
if (promResult.Count > 0)
{
if (promResult.Exists(x => x.Type == PromotionType.双数特价优惠 || x.Type == PromotionType.双数特价赠送))
{
//ApplyDoublePromMain(promResult, item);
}
else
{
var fineProm = promResult.OrderByDescending(x => x.DiscountAmount).ToList()[0];
var needUpdate = BusinessUtils.Instance.ApplyItemFinePromotion(this._orderObject, item, fineProm);
}
}
}
}
}
else
{
if (item != null && item.Promotions != null && item.Promotions.Count > 0)
{
//有优惠,不计算单品优惠
//return;
}
else
{
var promResult = PromotionEngine.Instance.CalItemPromotion(this._orderObject, item);
if (promResult.Count > 0)
{
if (promResult.Exists(x => x.Type == PromotionType.双数特价优惠 || x.Type == PromotionType.双数特价赠送))
{
//ApplyDoublePromMain(promResult, item);
}
else
{
var fineProm = promResult.OrderByDescending(x => x.DiscountAmount).ToList()[0];
var needUpdate = BusinessUtils.Instance.ApplyItemFinePromotion(this._orderObject, item, fineProm);
}
}
//套餐道菜分摊
PromotionUtils.CalculateSuitShare(this._orderObject, item);
}
}
}
}
}
else
{
if (this._currentMemberInfo.MemberTypeNo.Equals("9999"))
{
MsgEvent.Send(Constant.PAY_MESSAGE_EVENT_NOTIFY, new Tuple(true, "不能在会员卡支付方式使用享迷卡"));
return;
}
//当前会员
if (this._orderObject.Member == null && this._currentCardItem.Function.Contains(MemberCardFunctions.会员储值及消费))
{
//享迷卡
if (this.PayNo.Equals("49"))
{
this._orderObject.XmkMember = this._currentMemberInfo;
}
else
{
this._orderObject.Member = this._currentMemberInfo;
}
//外部未刷卡,新会员,执行订单会员价
foreach (var item in this._orderObject.Items)
{
//套餐,自动找到套餐主菜进行优惠计算
if (item != null && item.RowState == OrderRowState.套餐明)
{
//套餐明细,找到套餐主菜进行优惠计算
var mainItem = this._orderObject.Items.Find(x => x.Group == item.Group && x.RowState == OrderRowState.套餐主);
if (mainItem != null)
{
if (item.Promotions != null && item.Promotions.Count > 0)
{
//有优惠,不计算单品优惠
//return;
}
else
{
var promResult = PromotionEngine.Instance.CalItemPromotion(this._orderObject, item);
if (promResult.Count > 0)
{
if (promResult.Exists(x => x.Type == PromotionType.双数特价优惠 || x.Type == PromotionType.双数特价赠送))
{
//ApplyDoublePromMain(promResult, item);
}
else
{
var fineProm = promResult.OrderByDescending(x => x.DiscountAmount).ToList()[0];
var needUpdate = BusinessUtils.Instance.ApplyItemFinePromotion(this._orderObject, item, fineProm);
}
}
}
}
}
else
{
if (item != null && item.Promotions != null && item.Promotions.Count > 0)
{
//有优惠,不计算单品优惠
//return;
}
else
{
var promResult = PromotionEngine.Instance.CalItemPromotion(this._orderObject, item);
if (promResult.Count > 0)
{
if (promResult.Exists(x => x.Type == PromotionType.双数特价优惠 || x.Type == PromotionType.双数特价赠送))
{
//ApplyDoublePromMain(promResult, item);
}
else
{
var fineProm = promResult.OrderByDescending(x => x.DiscountAmount).ToList()[0];
var needUpdate = BusinessUtils.Instance.ApplyItemFinePromotion(this._orderObject, item, fineProm);
}
}
//套餐道菜分摊
PromotionUtils.CalculateSuitShare(this._orderObject, item);
}
}
}
}
}
if (this._currentMemberInfo.CardList.Count > 1)
{
this._currentOperator = MemberCardOperator.多卡选择;
this.tabCardRead.Visible = false;
this.tabCardPasswd.Visible = false;
this.tabCardSelected.Visible = true;
this.tabCardPay.Visible = false;
this.tabCardSelected.Text = "获取到" + this._currentMemberInfo.CardList.Count + "张卡,请选择";
this.tabCardControl.SelectedTab = this.tabCardSelected;
//多张会员卡,等待收银员选择
this._currentCard = null;
//进入多卡选择界面
this.BuilderSelectedCard(this._currentMemberInfo.CardList);
}
else
{
this._currentOperator = MemberCardOperator.会员消费;
this.tabCardRead.Visible = false;
this.tabCardPasswd.Visible = false;
this.tabCardSelected.Visible = false;
this.tabCardPay.Visible = true;
this.tabCardControl.SelectedTab = this.tabCardPay;
//只有一张会员卡,自动选择作为当前可用会员卡
this._currentCard = this._currentMemberInfo.CardList[0];
//当前选中的会员卡
//享迷卡
if (this.PayNo.Equals("49"))
{
if (this._orderObject.XmkMember != null && this._orderObject.XmkMember.Id.Equals(this._currentMemberInfo.Id))
{
this._orderObject.XmkMember.CurrentCard = this._currentCard;
}
var skipNoMoney = Global.Instance.GlobalConfigStringValue(ConfigConstant.CONFIG_CASHIER_CARDPAYSKIPNOMONEY, "0");
if (!BusinessUtils.Instance.HavMemberPromotionCoup(this._orderObject) && this._currentCard != null && this._currentCard.AvailableAmount <= 0 && "1".Equals(skipNoMoney))
{
this._currentOperator = MemberCardOperator.会员刷卡;
this._orderObject.XmkMember = null;
this._currentCard = null;
BusinessUtils.Instance.RemoveMemberPromotion(this._orderObject);
this.BindUi(this._orderObject);
this.txtCardNo.Text = voucherNo;
MsgEvent.Send(Constant.PAY_MESSAGE_EVENT_NOTIFY, new Tuple(true, "余额为0不允许消费,请充值或选择其他付款方式!"));
return;
}
}
else
{
if (this._orderObject.Member != null && this._orderObject.Member.Id.Equals(this._currentMemberInfo.Id))
{
this._orderObject.Member.CurrentCard = this._currentCard;
}
var skipNoMoney = Global.Instance.GlobalConfigStringValue(ConfigConstant.CONFIG_CASHIER_CARDPAYSKIPNOMONEY, "0");
if (!BusinessUtils.Instance.HavMemberPromotionCoup(this._orderObject) && this._currentCard != null && this._currentCard.AvailableAmount <= 0 && "1".Equals(skipNoMoney))
{
this._currentOperator = MemberCardOperator.会员刷卡;
this._orderObject.Member = null;
this._currentCard = null;
BusinessUtils.Instance.RemoveMemberPromotion(this._orderObject);
this.BindUi(this._orderObject);
this.txtCardNo.Text = voucherNo;
MsgEvent.Send(Constant.PAY_MESSAGE_EVENT_NOTIFY, new Tuple(true, "余额为0不允许消费,请充值或选择其他付款方式!"));
return;
}
}
verifymoney = true;
this.RefreshUi();
}
}
else
{
MsgEvent.Send(Constant.PAY_MESSAGE_EVENT_NOTIFY, new Tuple(true, resp.Item2));
return;
}
}
break;
case MemberCardOperator.会员消费:
{
verifymoney = false;
//当前卡号
var cardNo = this._currentCard.CardNo;
//实收金额,操作员录入消费卡金
decimal inputAmount = this.txtAmount.DecimalValue;
//是否启用免密支付,前台收银参数中关闭免密支付
bool notAllowNoPwd = this._currentCardItem.PaymentType == 0;
var _notPassword = Global.Instance.GlobalConfigBoolValue(ConfigConstant.CASHIER_ALLOW_MEMBER_DONOTENTERPASSWORD, true);
//1)设置开启免密支付;2)开启免密支付,但支付金额大于免密支付额度;3)收银参数关闭免密支付
if (notAllowNoPwd || this._currentCard.IsNoPwd == 0 || (this._currentCard.IsNoPwd == 1 && this._currentCard.NpAmount < inputAmount ) || (this._currentMemberInfo.GetWay == MemberCardNoType.手机号 && !_notPassword))
{
this._currentOperator = MemberCardOperator.支付密码;
this.tabCardRead.Visible = false;
this.tabCardPasswd.Visible = true;
this.tabCardSelected.Visible = false;
this.tabCardPay.Visible = false;
this.tabCardControl.SelectedTab = this.tabCardPasswd;
verifymoney = true;
this.RefreshUi();
}
else
{
if (this._orderObject.Pays.FirstOrDefault(f => f.No.Equals(this.PayNo)) == null && verifymoney)
{
this.tabCardRead.Visible = false;
this.tabCardPasswd.Visible = false;
this.tabCardSelected.Visible = false;
this.tabCardPay.Visible = true;
this.tabCardControl.SelectedTab = this.tabCardPay;
this.RefreshUi();
return;
}
var request = new CardTradeCreateCardRequest();
request.TradeVoucherNo = this._newVoucherNo.TradeVoucherNo;
request.TradeNo = this._orderObject.TradeNo;
request.CardNo = this._currentCard.CardNo;
request.CardTypeNo = this._currentCard.CardTypeNo;
request.CardLevelNo = this._currentCard.CardLevelNo;
request.Amount = Convert.ToInt32(this.txtAmount.DecimalValue * 100);
request.ShopNo = Global.Instance.Authc.StoreNo;
request.WorkerNo = Global.Instance.Worker.No;
request.PosNo = Global.Instance.Authc.PosNo;
//会员卡统一下单
var unifiedOrder = CardUtils.CardTradeCreateCard(request);
if (!unifiedOrder.Item1)
{
MsgEvent.Send(Constant.PAY_MESSAGE_EVENT_NOTIFY, new Tuple(true, unifiedOrder.Item2));
return;
}
//构建会员卡支付列表,默认没有支付密码,按免密支付处理,免密支付采用扣款金额RSA加密
string passwd = RSAFromPkcs8.encryptData(request.Amount.ToString(), Properties.Resources.RSAPublicKey, "UTF-8");
this.AddMCardPayType(request, unifiedOrder.Item3, false, passwd);
}
}
break;
case MemberCardOperator.支付密码:
{
//当前选择的会员卡
var cardNo = this._currentCard.CardNo;
//实收金额,操作员录入消费卡金
var inputValue = this.txtPasswd.Text;
var validRequest = new CardValidRequest();
validRequest.CardNo = cardNo;
validRequest.Passwd = inputValue;
validRequest.ShopNo = Global.Instance.Authc.StoreNo;
validRequest.PosNo = Global.Instance.Authc.PosNo;
//校验卡密码
var data = CardUtils.CardValid(validRequest);
if (!data.Item1)
{
MsgEvent.Send(Constant.PAY_MESSAGE_EVENT_NOTIFY, new Tuple(true, data.Item2));
this.txtPasswd.SelectAll();
return;
}
if (this._orderObject.Pays.FirstOrDefault(f => f.No.Equals(this.PayNo)) == null && verifymoney)
{
//是否需要确认金额,不跳过确认
var skipConfirmMoney = Global.Instance.GlobalConfigBoolValue(ConfigConstant.CONFIG_CASHIER_CARDPAYSKIPCONFIRMMONEY, true);
if (skipConfirmMoney)
{
Task.Factory.StartNew(() =>
{
Thread.Sleep(100);
if (this.IsDisposed || !this.IsHandleCreated) return;
this.Invoke(new Action(() =>
{
if (VerifyInputValue())
{
MsgEvent.Send(Constant.PAY_AUTO_EVENT_NOTIFY, "快捷触发会员卡支付结账");
}
}));
});
}
else
{
this.tabCardRead.Visible = false;
this.tabCardPasswd.Visible = false;
this.tabCardSelected.Visible = false;
this.tabCardPay.Visible = true;
verifymoney = false;
this.tabCardControl.SelectedTab = this.tabCardPay;
this.RefreshUi();
return;
}
}
var request = new CardTradeCreateCardRequest();
request.TradeVoucherNo = this._newVoucherNo.TradeVoucherNo;
request.TradeNo = this._orderObject.TradeNo;
request.CardNo = this._currentCard.CardNo;
request.CardTypeNo = this._currentCard.CardTypeNo;
request.CardLevelNo = this._currentCard.CardLevelNo;
request.Amount = Convert.ToInt32(this.txtAmount.DecimalValue * 100);
request.ShopNo = Global.Instance.Authc.StoreNo;
request.WorkerNo = Global.Instance.Worker.No;
request.PosNo = Global.Instance.Authc.PosNo;
//会员卡统一下单
var unifiedOrder = CardUtils.CardTradeCreateCard(request);
if (!unifiedOrder.Item1)
{
MsgEvent.Send(Constant.PAY_MESSAGE_EVENT_NOTIFY, new Tuple(true, unifiedOrder.Item2));
return;
}
//构建会员卡支付列表
string passwd = DesUtils.Encrypt(this.txtPasswd.Text);
this.AddMCardPayType(request, unifiedOrder.Item3, true, passwd);
}
break;
}
}
break;
case "100":
{
//如果当前焦点控件是输入框
if (this.ActiveControl is TextBox)
{
var activeControl = this.ActiveControl as TextBox;
activeControl.Text = string.Empty;
}
InputSimulatorUtils.SendKey(KeyCodes.Map["1"]);
InputSimulatorUtils.SendKey(KeyCodes.Map["0"]);
InputSimulatorUtils.SendKey(KeyCodes.Map["0"]);
}
break;
case "50":
{
//如果当前焦点控件是输入框
if (this.ActiveControl is TextBox)
{
var activeControl = this.ActiveControl as TextBox;
activeControl.Text = string.Empty;
}
InputSimulatorUtils.SendKey(KeyCodes.Map["5"]);
InputSimulatorUtils.SendKey(KeyCodes.Map["0"]);
}
break;
case "20":
{
//如果当前焦点控件是输入框
if (this.ActiveControl is TextBox)
{
var activeControl = this.ActiveControl as TextBox;
activeControl.Text = string.Empty;
}
InputSimulatorUtils.SendKey(KeyCodes.Map["2"]);
InputSimulatorUtils.SendKey(KeyCodes.Map["0"]);
}
break;
case "10":
{
//如果当前焦点控件是输入框
if (this.ActiveControl is TextBox)
{
var activeControl = this.ActiveControl as TextBox;
activeControl.Text = string.Empty;
}
InputSimulatorUtils.SendKey(KeyCodes.Map["1"]);
InputSimulatorUtils.SendKey(KeyCodes.Map["0"]);
}
break;
default:
InputSimulatorUtils.SendKey(KeyCodes.Map[e.KeyCode]);
break;
}
}
///
/// 构建多张会员卡选择
///
private void BuilderSelectedCard(List lists)
{
this.itemPanel.Items.Clear();
this.itemPanel.Font = Constant.NORMAL_FONT;
foreach (var card in lists)
{
MetroTileItem item = new MetroTileItem();
item.TileStyle.PaddingTop = 2;
item.TileStyle.PaddingLeft = item.TileStyle.PaddingRight = item.TileStyle.PaddingBottom = -1;
item.CheckBehavior = eMetroTileCheckBehavior.LeftMouseButtonClick;
item.OptionGroup = "SelectedCard";
item.TileSize = new Size(180, 45);
item.Checked = false;
item.TileColor = eMetroTileColor.Teal;
item.TileStyle.Font = Constant.NORMAL_FONT;
item.TileStyle.TextAlignment = eStyleTextAlignment.Near;
item.TileStyle.TextLineAlignment = eStyleTextAlignment.Near;
item.TitleTextFont = Constant.NORMAL_FONT;
item.TitleTextAlignment = ContentAlignment.BottomLeft;
//卡状态(1-正常;2-预售;3-挂失;4-冻结;5-销户;)
var cardStatus = (MemberCardStatus)Enum.ToObject(typeof(MemberCardStatus), card.Status);
item.Text = string.Format("{0} {1} {2}", card.CardNo, cardStatus.ToString(), this._currentMemberInfo.Name);
item.TitleText = string.Format("余额:{0} 积分:{1}", card.AvailableAmount, card.TotalPoint);
item.Tag = card;
item.MouseDown += (o, args) =>
{
MetroTileItem _item = o as MetroTileItem;
_item.Checked = true;
};
item.CheckedChanged += (o, args) =>
{
MetroTileItem _item = o as MetroTileItem;
if (_item.Checked)
{
MemberCard _card = _item.Tag as MemberCard;
//多张卡,操作员选择一张
this._currentCard = _card;
//享迷卡
if (this.PayNo.Equals("49"))
{
//当前选中的会员卡
if (this._orderObject.XmkMember != null && this._orderObject.XmkMember.Id.Equals(this._currentMemberInfo.Id))
{
this._orderObject.XmkMember.CurrentCard = this._currentCard;
}
}
else
{
//当前选中的会员卡
if (this._orderObject.Member != null && this._orderObject.Member.Id.Equals(this._currentMemberInfo.Id))
{
this._orderObject.Member.CurrentCard = this._currentCard;
}
}
_item.TileColor = eMetroTileColor.Coffee;
//选择会员卡后转入会员消费
this._currentOperator = MemberCardOperator.会员消费;
this.tabCardRead.Visible = false;
this.tabCardPasswd.Visible = false;
this.tabCardSelected.Visible = false;
this.tabCardPay.Visible = true;
this.tabCardControl.SelectedTab = this.tabCardPay;
this.RefreshUi();
}
else
{
_item.TileColor = eMetroTileColor.Teal;
}
};
this.itemPanel.Items.Add(item);
}
this.itemPanel.Invalidate();
}
private void OnBackReadCardClick(object sender, EventArgs e)
{
this._currentOperator = MemberCardOperator.会员刷卡;
this.tabCardRead.Visible = true;
this.tabCardPasswd.Visible = false;
this.tabCardSelected.Visible = false;
this.tabCardPay.Visible = false;
this.tabCardControl.SelectedTab = this.tabCardRead;
RefreshUi();
}
private void OnChangedCardClick(object sender, EventArgs e)
{
//如果是多张卡,转入多卡选择界面
if (this._currentMemberInfo.CardList.Count > 1)
{
this._currentOperator = MemberCardOperator.多卡选择;
this.tabCardRead.Visible = false;
this.tabCardPasswd.Visible = false;
this.tabCardSelected.Visible = true;
this.tabCardPay.Visible = false;
this.tabCardSelected.Text = "获取到" + this._currentMemberInfo.CardList.Count + "张卡,请选择";
this.tabCardControl.SelectedTab = this.tabCardSelected;
//多张会员卡,等待收银员选择
this._currentCard = null;
//进入多卡选择界面
this.BuilderSelectedCard(this._currentMemberInfo.CardList);
}
else
{
var skipNoMoney = Global.Instance.GlobalConfigStringValue(ConfigConstant.CONFIG_CASHIER_CARDPAYSKIPNOMONEY, "0");
if ("1".Equals(skipNoMoney) && BusinessUtils.Instance.HavMemberPromotion(this._orderObject))
{
MsgEvent.Send(Constant.PAY_MESSAGE_EVENT_NOTIFY, new Tuple(true, "已使用会员优惠不允许换卡"));
return;
}
this._currentOperator = MemberCardOperator.会员刷卡;
this.tabCardRead.Visible = true;
this.tabCardPasswd.Visible = false;
this.tabCardSelected.Visible = false;
this.tabCardPay.Visible = false;
this.tabCardControl.SelectedTab = this.tabCardRead;
this.txtCardNo.Focus();
this.txtCardNo.SelectAll();
RefreshUi();
}
}
private void OnMCardEnterClick(object sender, Component.EnterEventArg e)
{
this.SimulateKeyboard(new BillKeyboardEventArgs("accept"));
}
private void OnPaymentRowDeleteClick(object sender, PaymentRowDeleteClickEventArgs e)
{
var skipNoMoney = Global.Instance.GlobalConfigStringValue(ConfigConstant.CONFIG_CASHIER_CARDPAYSKIPNOMONEY, "0");
if ("1".Equals(skipNoMoney) && BusinessUtils.Instance.HavMemberPromotion(this._orderObject))
{
MsgEvent.Send(Constant.PAY_MESSAGE_EVENT_NOTIFY, new Tuple(true, "已使用会员优惠不允许删除"));
return;
}
if (this._orderObject.Pays.Exists(x => x.Id == e.ObjectId))
{
var _oldItem = this._orderObject.Pays.Find(x => x.Id == e.ObjectId);
//删除已经存在的支付方式
this._orderObject.Pays.Remove(_oldItem);
//刷新界面数据
this.billSummary1.Refresh(this._orderObject);
this.billGrid1.RefreshGrid(this._orderObject.Pays);
//未收金额
var unpaidAmount = this._orderObject.ReceivableAmount - this._orderObject.ReceivedAmount;
this.txtAmount.Text = unpaidAmount < 0 ? "0" : unpaidAmount.ToString();
this.txtAmount.Focus();
this.txtAmount.SelectAll();
}
}
public override void SimulateKeyboard(BillKeyboardEventArgs e)
{
base.SimulateKeyboard(e);
switch (this._currentOperator)
{
case MemberCardOperator.会员刷卡:
{
this.OnKeyboardBefore(this.billKeyboard2, e);
if (this.PaymentVerify)
{
this.OnKeyboardAfter(this.billKeyboard2, e);
}
}
break;
case MemberCardOperator.会员消费:
{
this.OnKeyboardBefore(this.billKeyboard1, e);
if (this.PaymentVerify)
{
this.OnKeyboardAfter(this.billKeyboard1, e);
}
}
break;
case MemberCardOperator.支付密码:
{
this.OnKeyboardBefore(this.billKeyboard3, e);
if (this.PaymentVerify)
{
this.OnKeyboardAfter(this.billKeyboard3, e);
}
}
break;
}
}
private long maxChangeTime = 0;
private bool input = false;
private long upTime = 0;
///
/// 监听输入框不允许输入
///
///
///
private void OnMemberValueChage(object sender, Component.EnterEventArg e)
{
if (txtCardNo.Text.Length == 0)
{
maxChangeTime = 0;
input = false;
upTime = 0;
}
if (txtCardNo.Text.Length == 1)
{
upTime = DateTime.Now.ToUniversalTime().Ticks;
}
if (txtCardNo.Text.Length > 1)
{
input = true;
}
if (input)
{
var nowTime = DateTime.Now.ToUniversalTime().Ticks;
if ((nowTime - upTime) / 10000 > maxChangeTime)
{
maxChangeTime = (nowTime - upTime) / 10000;
}
LOGGER.Info("输入号码耗时======>" + maxChangeTime);
}
}
private void MCardControl_VisibleChanged(object sender, EventArgs e)
{
if (this._orderObject == null)
{
return;
}
//享迷卡
if (this.PayNo.Equals("49"))
{
if (this._orderObject.XmkMember == null)
{
return;
}
}
else
{
if (this._orderObject.Member == null)
{
return;
}
}
}
private void txtCardNo_TextChanged(object sender, EventArgs e)
{
if (this.PayNo.Equals("49"))
{
txtCardNo.Text = "";
}
}
}
///
/// 会员卡操作步骤
///
public enum MemberCardOperator
{
会员刷卡 = 1,
多卡选择 = 2,
会员消费 = 3,
支付密码 = 4,
会员信息 = 5
}
///
/// 会员卡状态
///
public enum MemberCardStatus
{
未知 = 0,
正常 = 1,
预售 = 2,
挂失 = 3,
冻结 = 4,
销户 = 5
}
}