/// <summary> /// 付款 /// </summary> private void PayCard() { if (lbName.Text.Trim().Length == 0) { MessageBox.Show("请输入会员卡/储值卡卡号!", Gattr.AppTitle); this.tbxCardNo.Focus(); } else { bool isok = true; Decimal balance = SIString.TryDec(lbRemain.Text.Trim()); tbxAmt.Text = lbMaxAmt.Text; //实际付款 Decimal pay1 = SIString.TryDec(tbxAmt.Text.Trim()); Decimal pay2 = SIString.TryDec(lbMaxAmt.Text.Trim()); if (balance <= 0)//当前没有余额 { MessageBox.Show("账户余额不足!"); isok = false; }//if (balance <= 0) else if (pay1 > pay2)//现负金额大于应付金额 { MessageBox.Show("现付金额不能大于应付金额!"); tbxAmt.Focus(); isok = false; }//else if (pay1 > pay2) else if (balance < pay2)//当前余额小于应付金额 { DialogResult res = MessageBox.Show(string.Format("当前储值卡余额为{0},不足消费!是否使用储值卡剩下余额付款?", balance), Gattr.AppTitle, MessageBoxButtons.YesNo); if (res == DialogResult.No) { isok = false; } else { tbxAmt.Text = balance.ToString(); pay1 = balance; } } if (isok) { t_member_info memberinfo = MemberService.Instance.GetMemberInfoByMemNoAndPass(tbxCardNo.Text.Trim(), tbxPass.Text.Trim()); if (memberinfo.code == "-1") { MessageBox.Show(memberinfo.info, Gattr.AppTitle); } else { //先判断密码 if (SetCardPayInfo != null) { SetCardPayInfo(tbxCardNo.Text.Trim(), pay1, (balance - pay1).ToString()); } DialogResult = DialogResult.OK; } } } }
/// <summary> /// 确定按钮事件逻辑 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnOk_Click(object sender, EventArgs e) { tbPayAmount2.Text = "0.00"; bool isok = true; if (lbMemberNo.Text.Length == 0) { MessageBox.Show("请输入会员卡号", Gattr.AppTitle); tbMemberNo.Focus(); isok = false; } else { if (tbPayAmount.Text.Trim().Length == 0) { MessageBox.Show("请输入充值金额", Gattr.AppTitle); tbPayAmount.Focus(); isok = false; } else { if (tbPayAmount.Text.Trim() != tbPayAmount1.Text.Trim()) { MessageBox.Show("充值金额和已付金额必须相等", Gattr.AppTitle); tbPayAmount1.Focus(); isok = false; } else { if (this.comboBox1.SelectedIndex < 0) { MessageBox.Show("请选择支付方式", Gattr.AppTitle); comboBox1.Focus(); isok = false; } } } } if (isok) { String payway = SIString.TryStr(this.comboBox1.SelectedItem); if (payway == "银行卡") { payway = "CRD"; } else { payway = "RMB"; } TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0); String ordername = Convert.ToInt64(ts.TotalSeconds).ToString(); if (MessageBox.Show("确定要充值?", Gattr.AppTitle, MessageBoxButtons.YesNo) == DialogResult.Yes) { t_member_info memberinfo = MemberService.Instance.RechargeMoney(tbMemberNo.Text.Trim(), tbPayAmount.Text.Trim(), ordername, payway); if (memberinfo.code == "1") { t_member_info memberinfo1 = MemberService.Instance.RechargeMoneyFinsh(tbMemberNo.Text.Trim(), ordername); if (memberinfo1.code == "1") { MessageBox.Show("充值成功,卡号:[" + tbMemberNo.Text.Trim() + "]充值金额[" + tbPayAmount.Text.Trim() + "]", Gattr.AppTitle); DialogResult = DialogResult.OK; //TODO:打印充值小票 Print(Gattr.BranchNo, tbMemberNo.Text.Trim(), SIString.TryDec(this.tbPayAmount.Text.Trim()), 0, SIString.TryDec(this.tbPayAmount.Text.Trim()) + SIString.TryDec(lbMemberBalance.Text.Trim())); LoggerHelper.Log("MsmkLogger", System.DateTime.Now.ToString() + "【" + Gattr.OperId + "】进行会员账户充值!充值成功,卡号:[" + tbMemberNo.Text.Trim() + "]充值金额[" + tbPayAmount.Text.Trim() + "]", LogEnum.SysLog); } else { MessageBox.Show(memberinfo1.info, Gattr.AppTitle); } } else { MessageBox.Show(memberinfo.info, Gattr.AppTitle); } } } }
/// <summary> /// 商品对帐 /// </summary> /// <param name="storeNo"></param> /// <param name="posId"></param> /// <param name="cashierId"></param> /// <param name="cashierName"></param> /// <param name="dtFrom"></param> /// <param name="dtTo"></param> /// <param name="intPrintLen"></param> /// <returns></returns> public List <string> ItemAccountStatement(string storeNo, string posId, string cashierId, string cashierName, DateTime dtFrom, DateTime dtTo, int intPrintLen) { int QtyLen = 6; //数量长度 int PrcLen = 6; //单价长度 int ItemLen = 15; //商品号 int CntLen = 6; // List <string> list2; List <string> list = new List <string>(); try { string str = ""; DataTable table = new DataTable(); table = base._dal.ItemAccountStatement(storeNo, cashierId, dtFrom, dtTo); if ((table == null) || (table.Rows.Count == 0)) { list.Add(str.PadLeft((intPrintLen < 0) ? 0 : intPrintLen, '-')); list.Add(Gfunc.PrintStrAlign("商品对帐 ", intPrintLen, TextAlign.Center)); str = ""; list.Add(str.PadLeft((intPrintLen < 0) ? 0 : intPrintLen, '-')); list.Add("收银员(" + cashierId + ")今天无收付款记录. "); return(list); } List <t_operator> cashierInfo = base._dal.GetOperatorInfo(cashierId, Gattr.BranchNo); list.Add(""); list.Add(Gfunc.PrintStrAlign(" 商品对帐单 ", intPrintLen, TextAlign.Center)); list.Add(Gfunc.PrintStrAlign("================", intPrintLen, TextAlign.Center)); str = ""; list.Add(str.PadLeft((intPrintLen < 0) ? 0 : intPrintLen, '-')); list.Add(" 机构: " + base._dal.GetBranchName(storeNo)); //list.Add(" 仓库: " + base._dal.GetBranchName(storeNo)); list.Add(" 收银机号: " + posId); list.Add(" 收 银 员:[" + cashierId + "]" + cashierInfo[0].oper_name.Trim()); list.Add(" 对账日期: " + DateTime.Today.ToString("yyyy-MM-dd")); str = ""; list.Add(str.PadLeft((intPrintLen < 0) ? 0 : intPrintLen, '-')); string item = (Gfunc.PrintStrAlign("品名", ItemLen, TextAlign.Left) + Gfunc.PrintStrAlign("售价", PrcLen, TextAlign.Right)) + Gfunc.PrintStrAlign("数量", QtyLen, TextAlign.Center) + Gfunc.PrintStrAlign("金额", CntLen, TextAlign.Right); list.Add(item); decimal num = 0M; decimal num2 = 0M; foreach (DataRow row in table.Rows) { decimal num6; string s = row["item_name"].ToString().Trim(); if (ItemLen < Encoding.Default.GetByteCount(s)) { s = SIString.SubChar(s, ItemLen); } string str4 = Gfunc.PrintStrAlign(s, ItemLen, TextAlign.Left); decimal num3 = SIString.TryDec(row["sale_price"]); string str5 = Gfunc.PrintStrAlign(num3.ToString(Gattr.PosSaleAmtPoint), PrcLen, TextAlign.Right); decimal num4 = SIString.TryDec(row["sale_qnty"]); num += (row["sale_way"].ToString() == "B") ? (num4 * -1M) : num4; string str6 = Gfunc.PrintStrAlign((row["sale_way"].ToString() == "B") ? (num6 = num4 * -1M).ToString("N0") : num4.ToString("N0"), QtyLen, TextAlign.Center); decimal num5 = num3 * num4; num2 += (row["sale_way"].ToString() == "B") ? (num5 * -1M) : num5; list.Add(str4 + str5 + str6 + Gfunc.PrintStrAlign((row["sale_way"].ToString() == "B") ? (num6 = num5 * -1M).ToString(Gattr.PosSaleAmtPoint) : num5.ToString(Gattr.PosSaleAmtPoint), CntLen, TextAlign.Right)); } list.Add(str.PadLeft((Gattr.PrtLen < 0) ? 0 : Gattr.PrtLen, '-')); string str8 = (Gfunc.PrintStrAlign("合计:", ItemLen, TextAlign.Left) + Gfunc.PrintStrAlign("", PrcLen, TextAlign.Right)) + Gfunc.PrintStrAlign(num.ToString("N0"), QtyLen, TextAlign.Center) + Gfunc.PrintStrAlign(num2.ToString(Gattr.PosSaleAmtPoint), CntLen, TextAlign.Right); list.Add(str8); list.Add(Gfunc.PrintStrAlign("==完==", Gattr.PrtLen, TextAlign.Center)); list2 = list; } catch (Exception exception) { throw exception; } return(list2); }