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#

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