|
|
|
|
using POSV.Bean;
|
|
|
|
|
using POSV.Card;
|
|
|
|
|
using POSV.Helper;
|
|
|
|
|
using POSV.Utils;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.ComponentModel;
|
|
|
|
|
using System.Data;
|
|
|
|
|
using System.Drawing;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using System.Windows.Forms;
|
|
|
|
|
|
|
|
|
|
namespace POSV.Member
|
|
|
|
|
{
|
|
|
|
|
public partial class CardIntegralAdjustment : BusinessForm
|
|
|
|
|
{
|
|
|
|
|
public CardIntegralAdjustment()
|
|
|
|
|
{
|
|
|
|
|
InitializeComponent();
|
|
|
|
|
this.txtInput.Focus();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void button1_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
if (this.button1.Text.Equals("+"))
|
|
|
|
|
{
|
|
|
|
|
this.button1.Text = "-";
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
this.button1.Text = "+";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void buttonX3_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
var isVerify = InputVerify();
|
|
|
|
|
if (isVerify)
|
|
|
|
|
{
|
|
|
|
|
var voucherNo = this.txtInput.Text;
|
|
|
|
|
//智能识别刷卡方式
|
|
|
|
|
var way = CardUtils.JudgeCardWay(Global.Instance.Worker.TenantId, voucherNo);
|
|
|
|
|
if (way == MemberCardNoType.未知)
|
|
|
|
|
{
|
|
|
|
|
this.ShowMessage(this.lblInfo, "无法识别的卡号,请确认", true);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
switch (way)
|
|
|
|
|
{
|
|
|
|
|
case MemberCardNoType.手机号:
|
|
|
|
|
{
|
|
|
|
|
CardInfoMessage("mobile");
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case MemberCardNoType.电子卡号:
|
|
|
|
|
{
|
|
|
|
|
CardInfoMessage("scanCode");
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case MemberCardNoType.真实卡号:
|
|
|
|
|
{
|
|
|
|
|
CardInfoMessage("cardNo");
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case MemberCardNoType.卡面号:
|
|
|
|
|
{
|
|
|
|
|
CardInfoMessage("surfaceNo");
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
MemberCard memberCard = null;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 会员卡信息
|
|
|
|
|
/// </summary>
|
|
|
|
|
private bool CardInfoMessage(string property)
|
|
|
|
|
{
|
|
|
|
|
bool result = false;
|
|
|
|
|
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
var request = new MemberInfoQueryRequest();
|
|
|
|
|
request.Property = property;
|
|
|
|
|
request.Keyword = this.txtInput.Text.Trim();
|
|
|
|
|
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)
|
|
|
|
|
{
|
|
|
|
|
result = true;
|
|
|
|
|
ShowMessage(this.lblInfo, response.Item2);
|
|
|
|
|
MemberInfoQueryResponse memberInfoQueryResponse = response.Item3;
|
|
|
|
|
lblMemerName.Text = memberInfoQueryResponse.Name;
|
|
|
|
|
//lblMemeberMobile.Text = memberInfoQueryResponse.Mobile;
|
|
|
|
|
//lblLinkPhone.Text = memberInfoQueryResponse.LinkPhone;
|
|
|
|
|
lblcardNo.Text = memberInfoQueryResponse.CardList.FirstOrDefault()?.CardNo;
|
|
|
|
|
|
|
|
|
|
memberCard = memberInfoQueryResponse.CardList[0];
|
|
|
|
|
|
|
|
|
|
//this.member = memberInfoQueryResponse;
|
|
|
|
|
//this.MemberTypeNo = memberInfoQueryResponse.MemberTypeNo;
|
|
|
|
|
//this.InitCmbCreType();
|
|
|
|
|
//switch (memberInfoQueryResponse.Sex)
|
|
|
|
|
//{
|
|
|
|
|
// case 0:
|
|
|
|
|
// lblSex.Text = "女";
|
|
|
|
|
// break;
|
|
|
|
|
// case 1:
|
|
|
|
|
// lblSex.Text = "男";
|
|
|
|
|
// break;
|
|
|
|
|
// default:
|
|
|
|
|
// lblSex.Text = "保密";
|
|
|
|
|
// break;
|
|
|
|
|
//}
|
|
|
|
|
//lblBirthday.Text = memberInfoQueryResponse.Birthday;
|
|
|
|
|
//lblDescription.Text = memberInfoQueryResponse.Description;
|
|
|
|
|
this.lblpreAmount.Text = memberInfoQueryResponse.CardList.FirstOrDefault().AvailableAmount.ToString();
|
|
|
|
|
this.lblpreJifen.Text = memberInfoQueryResponse.CardList.FirstOrDefault().TotalPoint.ToString();
|
|
|
|
|
|
|
|
|
|
//this.txtPresented.Text = " ";
|
|
|
|
|
//this.txtGiftPoint.Text = " ";
|
|
|
|
|
this.txtMoney.Text = " ";
|
|
|
|
|
//this.txtPresented.Text = "";
|
|
|
|
|
//this.txtGiftPoint.Text = "";
|
|
|
|
|
this.txtMoney.Text = "";
|
|
|
|
|
List<MemberCard> list = memberInfoQueryResponse.CardList;
|
|
|
|
|
foreach (MemberCard memberCard in list)
|
|
|
|
|
{
|
|
|
|
|
switch (memberCard.Status)
|
|
|
|
|
{
|
|
|
|
|
case 1:
|
|
|
|
|
memberCard.CardStatus = "正常";
|
|
|
|
|
break;
|
|
|
|
|
case 2:
|
|
|
|
|
memberCard.CardStatus = "预售";
|
|
|
|
|
break;
|
|
|
|
|
case 3:
|
|
|
|
|
memberCard.CardStatus = "挂失";
|
|
|
|
|
break;
|
|
|
|
|
case 4:
|
|
|
|
|
memberCard.CardStatus = "冻结";
|
|
|
|
|
break;
|
|
|
|
|
case 5:
|
|
|
|
|
memberCard.CardStatus = "销户";
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
memberCard.CardStatus = "未知";
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
//cardListTable.PrimaryGrid.DataSource = list;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
result = false;
|
|
|
|
|
List<MemberCard> list = new List<MemberCard>();
|
|
|
|
|
ShowMessage(this.lblInfo, response.Item2, true);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
result = false;
|
|
|
|
|
ShowMessage(this.lblInfo, "会员卡信息查询异常", true);
|
|
|
|
|
|
|
|
|
|
LOGGER.Error(ex, "会员卡信息查询异常");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 输入是否验证通过
|
|
|
|
|
/// </summary>
|
|
|
|
|
private bool InputVerify()
|
|
|
|
|
{
|
|
|
|
|
if (string.IsNullOrEmpty(this.txtInput.Text.Trim()))
|
|
|
|
|
{
|
|
|
|
|
ShowMessage(this.lblInfo, "请输入卡号信息", true);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void buttonX2_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
if (string.IsNullOrEmpty(this.txtMoney.Text))
|
|
|
|
|
{
|
|
|
|
|
ShowMessage(this.lblInfo, "请输入金额", true);
|
|
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (this.txtMoney.Text.Contains('.'))
|
|
|
|
|
{
|
|
|
|
|
ShowMessage(this.lblInfo, "操作积分不允许有小数", true);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var _data = CardUtils.IntegralAdjustment(memberCard.MemberId, (this.button1.Text.Equals("+") ? 1 : 0), this.txtMoney.IntegerValue);
|
|
|
|
|
|
|
|
|
|
if (!_data.Item1)
|
|
|
|
|
{
|
|
|
|
|
ShowMessage(this.lblInfo, _data.Item2, true);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
this.ShowMessage(this.lblInfo, "操作成功!");
|
|
|
|
|
|
|
|
|
|
string mes = string.Format("操作前积分:{0} \t\n操作后积分:{1} \t\n操作积分:{2}", _data.Item3.PreTotalPoint, _data.Item3.AftTotalPoint, this.txtMoney.IntegerValue);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var vars = CardHelper.OpertionMemberPointVariable(memberCard, _data.Item3,this.button1.Text.Equals("+"), this.txtMoney.IntegerValue);
|
|
|
|
|
|
|
|
|
|
//充值打印份数
|
|
|
|
|
int ticketCount = Global.Instance.GlobalConfigIntValue(ConfigConstant.PERIPHERAL_CASHIER_RECHARGE_COUNT, 1);
|
|
|
|
|
//打印延迟
|
|
|
|
|
int delaySecond = Global.Instance.GlobalConfigIntValue(ConfigConstant.PERIPHERAL_CASHIER_CARD_PRINT_DELAY, 1);
|
|
|
|
|
|
|
|
|
|
Tuple<bool, string> result = CardHelper.PrinterTicket("积分冲减", vars, true, false, ticketCount, delaySecond);
|
|
|
|
|
this.ShowToastNotify(this, string.Format("{0}", result.Item2));
|
|
|
|
|
|
|
|
|
|
DialogForm dialogForm = new DialogForm("操作成功", mes, MessageBoxIcon.None,MessageBoxButtons.OK);
|
|
|
|
|
dialogForm.ButtonOK.Text = "完成";
|
|
|
|
|
dialogForm.ShowDialog();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
controlBox_CloseClick(null, null);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void txtInput_OnEnterClick(object sender, Component.EnterEventArg 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,true);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
this.buttonX3_Click(null, null);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void txtInput_ButtonCustomClick(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
var result = CardOperateUtils.Instance.ReadCardNo();
|
|
|
|
|
|
|
|
|
|
if (result.Item1)
|
|
|
|
|
{
|
|
|
|
|
this.txtInput.Text = result.Item2;
|
|
|
|
|
this.buttonX3_Click(null, null);
|
|
|
|
|
//读卡成功,模拟回车事件
|
|
|
|
|
//InputSimulatorUtils.SendKey(KeyCodes.Map["return"]);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
result = CardOperateUtilsOther.Instance.ReadCardNo();
|
|
|
|
|
if (result.Item1)
|
|
|
|
|
{
|
|
|
|
|
this.txtInput.Text = result.Item2;
|
|
|
|
|
this.buttonX3_Click(null, null);
|
|
|
|
|
//读卡成功,模拟回车事件
|
|
|
|
|
//InputSimulatorUtils.SendKey(KeyCodes.Map["return"]);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
this.ShowMessage(lblInfo, result.Item2,true);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void buttonX1_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
if (this.Owner != null)
|
|
|
|
|
{
|
|
|
|
|
this.Owner.Close();
|
|
|
|
|
}
|
|
|
|
|
this.Close();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void controlBox_CloseClick(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
buttonX1_Click(null,null);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void CardIntegralAdjustment_Load(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
System.Threading.Tasks.Task.Factory.StartNew(() =>
|
|
|
|
|
{
|
|
|
|
|
System.Threading.Thread.Sleep(500);
|
|
|
|
|
this.Invoke((EventHandler)delegate
|
|
|
|
|
{
|
|
|
|
|
this.ShowMessage(this.lblInfo, "请输入卡号信息!");
|
|
|
|
|
this.txtInput.Focus();
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void buttonX4_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
memberCard = null;
|
|
|
|
|
this.txtInput.Text = "";
|
|
|
|
|
lblcardNo.Text = "";
|
|
|
|
|
lblMemerName.Text = "";
|
|
|
|
|
lblpreAmount.Text = "";
|
|
|
|
|
lblpreJifen.Text = "";
|
|
|
|
|
txtMoney.Text = "";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|