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.

212 lines
6.9 KiB
C#

using DevComponents.DotNetBar.SuperGrid;
using POSV.Bean;
using POSV.Card;
using POSV.Component;
using POSV.Helper;
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.Report
{
public partial class IntegralReportForm : BusinessForm
{
public IntegralReportForm()
{
InitializeComponent();
DefaultGridStyle.setDefaultGridStyle(this.payListTable);
startPicker.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 00:00:00"));
}
private void buttonX10_Click(object sender, EventArgs e)
{
if (this.Owner != null)
{
this.Owner.Close();
}
this.Close();
}
private void controlBox1_CloseClick(object sender, EventArgs e)
{
buttonX10_Click(null, null);
}
private void controlBox1_MinimizedClick(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Minimized;
}
List<PointExchangeDetailResponse> pointExchangeDetailData = null;
private void ButtonOk_Click(object sender, EventArgs e)
{
var _voucherNo = this.txtMemberInfo.Text;
if (!string.IsNullOrEmpty(_voucherNo))
{
var way = CardUtils.JudgeCardWay(Global.Instance.Worker.TenantId, _voucherNo);
if (way == MemberCardNoType.)
{
this.ShowMessage(this.lblInfo, "无法识别的卡号,请确认", true);
return;
}
string Property = string.Empty;
switch (way)
{
case MemberCardNoType.:
{
Property = "scanCode";
}
break;
case MemberCardNoType.:
{
Property = "cardNo";
}
break;
case MemberCardNoType.:
{
Property = "mobile";
}
break;
case MemberCardNoType.:
{
Property = "surfaceNo";
}
break;
}
memberInfo = CardInfoMessage(Property, _voucherNo);
}
else
{
memberInfo = null;
}
PointExchangeDetailRequest pointExchangeDetail = new PointExchangeDetailRequest();
pointExchangeDetail.StartTime = this.startPicker.Value.ToString("yyyy-MM-dd HH:mm:ss");
pointExchangeDetail.EndTime = this.endPicker.Value.ToString("yyyy-MM-dd HH:mm:ss");
pointExchangeDetail.MemberId = memberInfo == null ? "" : memberInfo.Id;
pointExchangeDetail.Mobile = memberInfo == null ? "" : memberInfo.Mobile;
pointExchangeDetail.PosNo = Global.Instance.Authc.PosNo;
pointExchangeDetail.ShopNo = Global.Instance.Worker.StoreInfo.No;
pointExchangeDetail.PageNum = 1;
pointExchangeDetail.PageSize = 9999;
var _data = CardUtils.PointExchangeDetail(pointExchangeDetail);
if (_data.Item1)
{
var rowNo = 1;
_data.Item3.ForEach(f=> { f.RowNo = rowNo.ToString(); rowNo++; });
pointExchangeDetailData = _data.Item3;
payListTable.PrimaryGrid.DataSource = _data.Item3;
}
else
{
ShowMessage(this.lblInfo, _data.Item2, true);
}
}
MemberInfoQueryResponse memberInfo = 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)
{
MemberInfoQueryResponse memberInfoQueryResponse = response.Item3;
return memberInfoQueryResponse;
}
else
{
DialogForm dialog = new DialogForm("查询会员失败", response.Item2, MessageBoxIcon.None, MessageBoxButtons.OK);
dialog.ButtonOK.Text = "完成";
dialog.ShowDialog();
}
}
catch (Exception ex)
{
ShowMessage(this.lblInfo, "会员卡信息查询异常", true);
LOGGER.Error(ex, "会员卡信息查询异常");
}
return null;
}
private void buttonX8_Click(object sender, EventArgs e)
{
var panel = payListTable.PrimaryGrid;
if (panel.ActiveRow == null)
{
this.ShowToastNotify(this, "请选择一条数据打印");
return;
}
//提示
var row = panel.ActiveRow as GridRow;
var RowNo = row.Cells["RowNo"].Value.ToString();
if (string.IsNullOrEmpty(RowNo))
{
this.ShowToastNotify(this, "获取行号异常");
return;
}
if (pointExchangeDetailData == null || pointExchangeDetailData.Count == 0)
{
this.ShowToastNotify(this, "当前无数据可以打印");
return;
}
var _data = pointExchangeDetailData.FirstOrDefault(f => f.RowNo.Equals(RowNo));
if (_data == null)
{
this.ShowToastNotify(this, "选中的数据不存在");
return;
}
//构建收银小票模版参数打印
var vars = CardHelper.PointExchangeDetailVariable(_data);
//充值打印份数
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));
}
}
}