Beispiel #1
0
 /// <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;
             }
         }
     }
 }
Beispiel #2
0
        /// <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);
                    }
                }
            }
        }
Beispiel #3
0
        /// <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);
        }