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.

339 lines
12 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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 = "";
}
}
}