Пример #1
0
 /// <summary>
 /// 会员注册
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void btnSure_Click(object sender, EventArgs e)
 {
     if (txtMemberName.CheckNullOrEmpty() * txtMemArr.CheckData(@"^1\d{10}$", "手机号格式有误1") != 0)
     {
         if (memberManager.GetMemberByIdOrPhone(txtMemArr.Text.Trim()) != null)
         {
             MessageBox.Show("该手机号已经被注册!");
             return;
         }
         SMMembers member = new SMMembers()
         {
             MemberName    = txtMemberName.Text.Trim(),
             PhoneNumber   = txtMemArr.Text.Trim(),
             MemberAddress = string.IsNullOrEmpty(txtAddress.Text.Trim()) ? "地址不详" : txtAddress.Text.Trim()
         };
         member = memberManager.AddMember(member);
         if (member != null)
         {
             if (MessageBox.Show($"注册成功!会员账号是【{member.Memberid}】\r\n是否继续注册?", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes)
             {
                 txtMemArr.Text     = "";
                 txtMemberName.Text = "";
                 txtAddress.Text    = "";
                 txtMemberName.Focus();
             }
             ;
         }
         else
         {
             MessageBox.Show("注册失败请稍后再试!");
         }
     }
 }
Пример #2
0
        public SMMembers GetMembersById(int id)
        {
            string procName = "GetMembersById";

            SqlParameter[] sp = new SqlParameter[]
            {
                new SqlParameter("@MemberId", System.Data.SqlDbType.Int)
            };
            sp[0].Value = id;
            SMMembers     members = null;
            SqlDataReader reader  = SQLHelper.GetDataReader(procName, sp);

            while (reader.Read())
            {
                members = new SMMembers()
                {
                    MemberId      = Convert.ToInt32(reader["MemberId"]),
                    MemberAddress = reader["MemberAddress"].ToString(),
                    MemberName    = reader["MemberName"].ToString(),
                    MemberStatus  = Convert.ToInt32(reader["MemberStatus"]),
                    OpenTime      = Convert.ToDateTime(reader["OpenTime"]),
                    PhoneNumber   = reader["PhoneNumber"].ToString(),
                    Points        = Convert.ToInt32(reader["Points"])
                };
            }
            reader.Close();
            return(members);
        }
Пример #3
0
 /// <summary>
 /// 提交查询
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void btnSelectOK_Click(object sender, EventArgs e)
 {
     //有条件的查询
     if (txtSelect.Text != "")
     {
         //通过卡号或者电话号查询
         if (txtSelect.CheckData(@"^[1-9]\d*$", "会员卡号有误") != 0)
         {
             sm = manager.GetSMMemberByIdOrNum(txtSelect.Text.Trim());
             source.DataSource        = sm;
             dataGridView1.DataSource = null;
             dataGridView1.DataSource = source;
             txtSelect.Text           = "";
         }
         else if (txtSelect.CheckData(@"^[\u2E80-\u9FFF]+$", "姓名输入不正确") != 0)
         {
             //通过姓名查询
             sm = manager.GetMemberByrName(txtSelect.Text.Trim());
             source.DataSource        = sm;
             dataGridView1.DataSource = null;
             dataGridView1.DataSource = source;
             txtSelect.Text           = "";
         }
     }
     else
     {
         members = manager.GetMembers();
         CshVip();
     }
 }
Пример #4
0
 /// <summary>
 /// 确认注册
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void btnZC_Click(object sender, EventArgs e)
 {
     if (txtName.CheckNullOrEmpty() * txtMumber.CheckData(@"^1\d{10}$", "手机号格式有误") != 0)
     {
         if (manager.GetSMMemberByIdOrPhone(txtMumber.Text.Trim()) != null)
         {
             MessageBox.Show("手机号已经注册时会员!", "提示");
         }
         SMMembers members = new SMMembers()
         {
             MemberName    = txtName.Text.Trim(),
             PhoneNumber   = txtMumber.Text.Trim(),
             MemberAddress = string.IsNullOrEmpty(txtAddress.Text.Trim()) ? "地址不详" : txtAddress.Text.Trim()
         };
         if (manager.addMembers(members) != null)
         {
             if (MessageBox.Show($"会员注册成功!账号是【{members.MemberId}】\r\n是否继续注册", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes)
             {
                 txtName.Text    = "";
                 txtMumber.Text  = "";
                 txtAddress.Text = "";
                 txtName.Focus();
             }
             else
             {
                 this.Close();
             }
         }
         else
         {
             MessageBox.Show("会员注册失败!", "提示");
         }
     }
 }
Пример #5
0
 private void btnSure_Click(object sender, EventArgs e)
 {
     if (txtMemberName.CheckNullOrEmpty() * txtMemberTel.CheckData(@"^1\d{10}", "手机号格式有误!") == 1)
     {
         if (manager.GetMMemberByIdOrPhone(txtMemberTel.Text.Trim()) != null)
         {
             MessageBox.Show("该手机号已被注册!");
         }
         SMMembers members = new SMMembers()
         {
             MemberName    = txtMemberName.Text.Trim(),
             PhoneNumber   = txtMemberTel.Text.Trim(),
             MemberAddress = string.IsNullOrEmpty(txtAddress.Text.Trim()) ? "地址不详!":txtAddress.Text.Trim()
         };
         members = manager.AddMember(members);
         if (members != null)
         {
             if (MessageBox.Show($"注册成功!会员账号为{members.MemberId}\r\n是否继续注册?", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes)
             {
                 txtMemberName.Text = "";
                 txtMemberTel.Text  = "";
                 txtAddress.Text    = "";
                 txtMemberName.Focus();
             }
             else
             {
                 this.Close();
             }
         }
         else
         {
             MessageBox.Show("注册失败!请稍后重试......");
         }
     }
 }
Пример #6
0
        /// <summary>
        /// 结算
        /// </summary>
        /// <param name="sales"></param>
        /// <param name="members"></param>
        /// <returns></returns>
        public bool SaveSalerInfo(SalesList sales, SMMembers members)
        {
            List <string>         procList = new List <string>();
            List <SqlParameter[]> psList   = new List <SqlParameter[]>();

            //给消费主表中添加数据
            procList.Add("AddSalesList");
            SqlParameter[] saleSp = new SqlParameter[]
            {
                new SqlParameter("@SerialNum", SqlDbType.NVarChar, 50),
                new SqlParameter("@TotalMoney", SqlDbType.Decimal),
                new SqlParameter("@RealReceive", SqlDbType.Decimal),
                new SqlParameter("@ReturnMoney", SqlDbType.Decimal),
                new SqlParameter("@SalesPersonId", SqlDbType.Int)
            };
            saleSp[0].Value = sales.SerialNum;
            saleSp[1].Value = sales.TotalMoney;
            saleSp[2].Value = sales.RealReceive;
            saleSp[3].Value = sales.ReturnMoney;
            saleSp[4].Value = sales.SalesPersonId;
            psList.Add(saleSp);
            //给消费明细表中添加每次购物的详细数据
            foreach (SalesListDetail item in sales.salesLists)
            {
                procList.Add("AddSalesListDetail");
                SqlParameter[] sp = new SqlParameter[]
                {
                    new SqlParameter("@SerialNum", SqlDbType.NVarChar, 50),
                    new SqlParameter("@ProductId", SqlDbType.NVarChar, 50),
                    new SqlParameter("@ProductName", SqlDbType.NVarChar, 50),
                    new SqlParameter("@UnitPrice", SqlDbType.Decimal),
                    new SqlParameter("@Discount", SqlDbType.Int),
                    new SqlParameter("@Quantity", SqlDbType.Int),
                    new SqlParameter("@SubTotalMoney", SqlDbType.Decimal)
                };
                sp[0].Value = item.SerialNum;
                sp[1].Value = item.ProductId;
                sp[2].Value = item.ProductName;
                sp[3].Value = item.UnitPrice;
                sp[4].Value = item.Discount;
                sp[5].Value = item.Quantity;
                sp[6].Value = item.SubTotalMoney;
                psList.Add(sp);
            }
            //更新会员的积分
            if (members != null)
            {
                procList.Add("RefreshMemberPoint");
                SqlParameter[] sp = new SqlParameter[]
                {
                    new SqlParameter("@point", SqlDbType.Int),
                    new SqlParameter("@memberId", SqlDbType.Int)
                };
                sp[0].Value = members.Points;
                sp[1].Value = members.MemberId;
                psList.Add(sp);
            }
            return(SQLHelper.UpdateByTran(procList, psList));
        }
Пример #7
0
 public FrmUpdateVip(SMMembers member)
 {
     InitializeComponent();
     txtName.Focus();
     txtId.Text           = member.MemberId.ToString();
     txtName.GotFocus    += TxtName_GotFocus;
     txtNumber.GotFocus  += TxtName_GotFocus;
     txtAddress.GotFocus += TxtName_GotFocus;
     members              = member;
 }
Пример #8
0
 /// <summary>
 /// 修改会员状态
 /// </summary>
 /// <param name="members"></param>
 /// <returns></returns>
 public bool UpVIP(SMMembers members)
 {
     if (server.UpVIP(members) > 0)
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
Пример #9
0
        /// <summary>
        /// 修改会员状态
        /// </summary>
        /// <param name="members"></param>
        /// <returns></returns>
        public int UpVIP(SMMembers members)
        {
            string procName = "UpVIP";

            SqlParameter[] sp =
            {
                new SqlParameter("@memberStatus", members.MemberStatus),
                new SqlParameter("@memberId",     members.MemberId)
            };
            return(SQLHelper.ExecuteNonQuery(procName, sp));
        }
Пример #10
0
        /// <summary>
        /// 修改会员信息
        /// </summary>
        /// <param name="members"></param>
        /// <returns></returns>
        public int UpdateVip(SMMembers members)
        {
            string procName = "UpdateVip";

            SqlParameter[] sp =
            {
                new SqlParameter("@memberName",    members.MemberName),
                new SqlParameter("@phonrNaumber",  members.PhoneNumber),
                new SqlParameter("@memberAddress", members.MemberAddress),
                new SqlParameter("@memberId",      members.MemberId)
            };
            return(SQLHelper.ExecuteNonQuery(procName, sp));
        }
Пример #11
0
        /// <summary>
        /// 通过卡号电话查询会员信息
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public SMMembers GetSMMemberByIdOrNum(string id)
        {
            string procName = "GetMemberBysId";

            SqlParameter[] sp = new SqlParameter[]
            {
                new SqlParameter("@MemberId", SqlDbType.Int),
                new SqlParameter("@PhoneNumber", SqlDbType.NVarChar, 50)
            };
            if (id.Length == 11)
            {
                sp[0].Value = -1;
                sp[1].Value = id;
            }
            else
            {
                sp[0].Value = id;
                sp[1].Value = "";
            }

            SMMembers     members = new SMMembers();
            SqlDataReader reader  = SQLHelper.GetDataReader(procName, sp);

            while (reader.Read())
            {
                members.MemberId      = Convert.ToInt32(reader["MemberId"]);
                members.MemberAddress = reader["MemberAddress"].ToString();
                members.MemberName    = reader["MemberName"].ToString();
                int res = Convert.ToInt32(reader["MemberStatus"]);
                if (res == 1)
                {
                    members.MemberStatu = "正常";
                }
                else if (res == 0)
                {
                    members.MemberStatu = "已冻结";
                }
                else
                {
                    members.MemberStatu = "已注销";
                }
                members.OpenTime    = Convert.ToDateTime(reader["OpenTime"]);
                members.PhoneNumber = reader["PhoneNumber"].ToString();
                members.Points      = Convert.ToInt32(reader["Points"]);
            }
            reader.Close();
            return(members);
        }
Пример #12
0
        public SMMembers AddMember(SMMembers member)
        {
            string procName = "AddMember";

            SqlParameter[] sp = new SqlParameter[]
            {
                new SqlParameter("@MemberName", member.MemberName),
                new SqlParameter("@PhoneNumber", member.PhoneNumber),
                new SqlParameter("@MemberAddress", member.MemberAddress)
            };
            object res = SQLHelper.ExecuteScalar(procName, sp);

            if (res != null)
            {
                member.Memberid = Convert.ToInt32(res);
            }
            else
            {
                member = null;
            }
            return(member);
        }
Пример #13
0
        public bool SaveSaleInfo(SaleList objSaleList, SMMembers objSMMembers)
        {
            List <string> sqllist = new List <string>();
            string        mainsql = "insert into SalesList(SerialNum, TotalMoney, RealReceive, ReturnMoney, SalesPersonId) ";

            mainsql += "values('{0}', {1}, {2}, {3}, {4})";
            sqllist.Add(string.Format(mainsql, objSaleList.SerialNum, objSaleList.TotalMoney, objSaleList.RealReceive,
                                      objSaleList.ReturnMoney, objSaleList.SalesPersonId));
            foreach (SaleListDetail itemDetail in objSaleList.SaleListDetails)
            {
                string detailsql = "insert into SalesListDetail(SerialNum, ProductId, ProductName, UnitPrice, Discount, Quantity, SubTotalMoney) ";
                detailsql += "values('{0}','{1}', '{2}',{3}, {4}, {5}, {6})";
                detailsql  = string.Format(detailsql, itemDetail.SerialNum, itemDetail.ProductId, itemDetail.ProductName, itemDetail.UnitPrice,
                                           itemDetail.Discount, itemDetail.Quantity, itemDetail.SubTotalMoney);
                sqllist.Add(detailsql);
                string updatesql = "update ProductInventory Set TotalCount=TotalCount-{0} where ProductId='{1}'";
                updatesql = string.Format(updatesql, itemDetail.Quantity, itemDetail.ProductId);
                sqllist.Add(updatesql);
            }
            if (objSMMembers != null)
            {
                string pointsql = "update SMMembers Set Points+={0} where MemberId={1}";
                pointsql = string.Format(pointsql, objSMMembers.Points, objSMMembers.MemberId);
                sqllist.Add(pointsql);
            }

            try
            {
                return(SQLHelp.UpdateByTran(sqllist, null));
            }
            catch (SqlException ex)
            {
                throw new Exception("应用程序与数据库连接出错,具体内容: " + ex.Message);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #14
0
        public SMMembers GetMembersById(string id)
        {
            string procName = "GetMembersById";

            SqlParameter[] sp = new SqlParameter[]
            {
                new SqlParameter("@Memberid", System.Data.SqlDbType.Int),
                new SqlParameter("@PhoneNumber", System.Data.SqlDbType.NVarChar, 50)
            };
            if (id.Length == 11)
            {
                sp[0].Value = -1;
                sp[1].Value = id;
            }
            else
            {
                sp[0].Value = id;
                sp[1].Value = "";
            }
            SMMembers     members = null;
            SqlDataReader reader  = SQLHelper.DataReader(procName, sp);

            while (reader.Read())
            {
                members = new SMMembers()
                {
                    Memberid      = Convert.ToInt32(reader["Memberid"]),
                    MemberAddress = reader["MemberAddress"].ToString(),
                    MemberName    = reader["MemberName"].ToString(),
                    MemberStatus  = Convert.ToInt32(reader["MemberStatus"]),
                    OpenTime      = Convert.ToDateTime(reader["OpenTime"]),
                    PhoneNumber   = reader["PhoneNumber"].ToString(),
                    Points        = Convert.ToInt32(reader["Points"])
                };
            }
            reader.Close();
            return(members);
        }
Пример #15
0
        /// <summary>
        /// 查询会员信息
        /// </summary>
        /// <returns></returns>
        public List <SMMembers> GetMembers()
        {
            string procName = "GetAllTables";

            SqlParameter[] sp =
            {
                new SqlParameter("@tableName", "SMMembers")
            };
            SqlDataReader    reader  = SQLHelper.GetDataReader(procName, sp);
            List <SMMembers> members = new List <SMMembers>();

            while (reader.Read())
            {
                SMMembers sm = new SMMembers();
                sm.MemberId      = Convert.ToInt32(reader["MemberId"]);
                sm.MemberName    = reader["MemberName"].ToString();
                sm.Points        = Convert.ToInt32(reader["Points"]);
                sm.PhoneNumber   = reader["PhoneNumber"].ToString();
                sm.MemberAddress = reader["MemberAddress"].ToString();
                sm.OpenTime      = Convert.ToDateTime(reader["OpenTime"]);
                sm.MemberStatus  = Convert.ToInt32(reader["MemberStatus"]);
                if (sm.MemberStatus == 1)
                {
                    sm.MemberStatu = "正常";
                }
                else if (sm.MemberStatus == 0)
                {
                    sm.MemberStatu = "已冻结";
                }
                else
                {
                    sm.MemberStatu = "已注销";
                }
                members.Add(sm);
            }
            reader.Close();
            return(members);
        }
Пример #16
0
        public SMMembers GetSMMemberById(string smmemberId)
        {
            string sql = "select MemberId, MemberName, Points, PhoneNumber, MemberAddress, OpenTime, MemberStatus from ";

            sql += "SMMembers where MemberId={0}";
            sql  = string.Format(sql, smmemberId);
            SMMembers objSMMember = null;

            try
            {
                SqlDataReader objReader = SQLHelp.GetResult(sql, null);
                if (objReader.Read())
                {
                    objSMMember = new SMMembers()
                    {
                        MemberAddress = objReader["MemberAddress"].ToString(),
                        MemberId      = objReader["MemberId"].ToString(),
                        MemberName    = objReader["MemberName"].ToString(),
                        MemberStatus  = Convert.ToInt32(objReader["MemberStatus"]),
                        OpenTime      = Convert.ToDateTime(objReader["OpenTime"]),
                        PhoneNumber   = objReader["PhoneNumber"].ToString(),
                        Points        = Convert.ToInt32(objReader["Points"])
                    };
                }

                objReader.Close();
                return(objSMMember);
            }
            catch (System.Data.SqlClient.SqlException ex)
            {
                throw new Exception("应用程序与数据库连接出错,具体内容: " + ex.Message);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #17
0
        /// <summary>
        /// 结账
        /// </summary>
        /// <param name="objSaleList"></param>
        /// <param name="member"></param>
        /// <returns></returns>
        public bool SaveSaleInfo(SalesListMain objSaleList, SMMembers member)
        {
            List <string> sqlList = new List <string>();
            //【1】组合sql语句(插入主表)
            string mainSql = "insert into SalesList(SerialNum, TotalMoney, RealReceive, ReturnMoney, SalesPersonId) values('{0}',{1},{2},{3},{4})";

            mainSql = string.Format(mainSql, objSaleList.SeriaINum, objSaleList.TotalMoney, objSaleList.RealRecieve, objSaleList.ReturnMoney, objSaleList.SalesPersonId);
            sqlList.Add(mainSql);
            //【2】组合sql语句(插入明细表以及更新库存)
            foreach (SalesListDetail detail in objSaleList.ListDetail)
            {
                //插入明细表
                string detailSql = "insert into SalesListDetail(SerialNum, ProductId, ProductName, UnitPrice, Discount, Quantity, SubTotalMoney)";
                detailSql += " values('{0}','{1}','{2}',{3},{4},{5},{6})";
                detailSql  = string.Format(detailSql, detail.SeriaINum, detail.ProductId, detail.ProductName, detail.UnitPrice, detail.Discount, detail.Quantity, detail.SubTotalMoney);
                sqlList.Add(detailSql);
                //跟新库存
                string updateSql = $"update ProductInventory set TotalCount=TotalCount-{detail.Quantity} where ProductId='{detail.ProductId}'";
                sqlList.Add(updateSql);
            }
            //【3】更新客户积分
            if (member != null)
            {
                string pointSql = "update SMMembers set Points=Points+{0} where MemberId={1}";
                pointSql = string.Format(pointSql, member.Points, member.MemeberId);
                sqlList.Add(pointSql);
            }
            try
            {
                //【4】启用事务,返回结果
                return(SQLHelper.ExecuteTransaction(sqlList));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #18
0
        /// <summary>
        /// 通过姓名查询会员信息
        /// </summary>
        /// <param name="where"></param>
        /// <returns></returns>
        public SMMembers GetMemberByrName(string where)
        {
            string procName = "GetMemberByName";

            SqlParameter[] sp =
            {
                new SqlParameter("@memberName", where)
            };
            SMMembers     sm     = new SMMembers();
            SqlDataReader reader = SQLHelper.GetDataReader(procName, sp);

            while (reader.Read())
            {
                sm.MemberId      = Convert.ToInt32(reader["MemberId"]);
                sm.MemberName    = reader["MemberName"].ToString();
                sm.Points        = Convert.ToInt32(reader["Points"]);
                sm.PhoneNumber   = reader["PhoneNumber"].ToString();
                sm.MemberAddress = reader["MemberAddress"].ToString();
                sm.OpenTime      = Convert.ToDateTime(reader["OpenTime"]);
                int res = Convert.ToInt32(reader["MemberStatus"]);
                if (res == 1)
                {
                    sm.MemberStatu = "正常";
                }
                else if (res == 0)
                {
                    sm.MemberStatu = "已冻结";
                }
                else
                {
                    sm.MemberStatu = "已注销";
                }
            }
            reader.Close();
            return(sm);
        }
Пример #19
0
 /// <summary>
 /// 添加会员
 /// </summary>
 /// <param name="members"></param>
 /// <returns></returns>
 public SMMembers addMembers(SMMembers members)
 {
     return(server.addMembers(members));
 }
Пример #20
0
        private void Balance()
        {
            //显示结算窗口,考虑支付被取消或修改
            FrmBalance frm = new FrmBalance(txtPay.Text);

            if (frm.ShowDialog() != DialogResult.OK)
            {
                if (frm.Tag.ToString() == "Esc")//客户放弃购买(忘记带钱等)
                {
                    RestForm();
                }
            }
            else//正式进入结算环节
            {
                SMMembers members = null;
                if (frm.Tag.ToString().Contains("&"))//输入了会员卡号
                {
                    string[] info = frm.Tag.ToString().Split('&');
                    txtAmount.Text = info[0];
                    members        = new SMMembers()
                    {
                        MemberId = Convert.ToInt32(info[1]),
                        Points   = (int)(Convert.ToDouble(txtPay.Text) / 10.0)
                    };
                }
                else
                {
                    txtAmount.Text = frm.Tag.ToString();
                }
                //找零
                txtChange.Text = (Convert.ToDecimal(txtPay.Text) - Convert.ToDecimal(txtAmount.Text)).ToString();
                //创建消费对象
                SalesList saleObj = new SalesList()
                {
                    SerialNum     = txtSerialNum.Text,
                    TotalMoney    = Convert.ToDecimal(txtPay.Text.Trim()),
                    RealReceive   = Convert.ToDecimal(txtAmount.Text.Trim()),
                    ReturnMoney   = Convert.ToDecimal(txtChange.Text.Trim()),
                    SalesPersonId = Program.Sale.SalePersonId
                };
                //封装消费明细列表
                foreach (Produts item in productList)
                {
                    saleObj.ListDetail.Add(
                        new SalesListDetail()
                    {
                        SerialNum     = txtSerialNum.Text,
                        ProductId     = item.ProductId,
                        ProductName   = item.ProductName,
                        Quantity      = item.Quantity,
                        UnitPrice     = item.UnitPrice,
                        Discount      = item.Discount,
                        SubTotalMoney = item.SubTotal
                    }
                        );
                }
                try
                {
                    productManager.SaveSalerInfo(saleObj, members);
                }
                catch (Exception ex)
                {
                    MessageBox.Show($"保存销售数据的时候发生异常!{ex.Message}", "异常提示");
                    return;
                }
                //小票打印
                printDocument.Print();
                PrintPriview();
                //重置主界面
                RestForm();
            }
        }
Пример #21
0
 public SMMembers AddMember(SMMembers member)
 {
     return(memberServer.AddMember(member));
 }
Пример #22
0
        private void Balance()
        {
            //【1】打开UI界面:考虑取消或者修改的情况
            FrmBalance   frmBalance   = new FrmBalance(this.lblTotalMoney.Text);
            DialogResult dialogResult = frmBalance.ShowDialog();

            if (dialogResult == DialogResult.Cancel)
            {
                if (frmBalance.Tag.ToString() == "F4")//放弃购买:重新生成流水号,等待下一个客户
                {
                    RestForm();
                }
                else if (frmBalance.Tag.ToString() == "F5")//放弃部分商品
                {
                    this.txtProductId.Focus();
                }
            }
            else
            {
                //【2】正式结算
                SMMembers members = null;
                if (frmBalance.Tag.ToString().Contains("|"))//判断是否有会员卡
                {
                    string[] info = frmBalance.Tag.ToString().Split('|');
                    this.lblReceivedMoney.Text = info[0];
                    members = new SMMembers {
                        MemeberId = info[1], Points = (int)Convert.ToDouble(this.lblTotalMoney.Text.Trim()) / 10
                    };
                }
                else//不包含会员卡
                {
                    this.lblReceivedMoney.Text = frmBalance.Tag.ToString();
                }
                //显示找零
                this.lblReturnMoney.Text = (Convert.ToDecimal(this.lblReceivedMoney.Text.Trim()) - Convert.ToDecimal(this.lblTotalMoney.Text.Trim())).ToString();
                //【3】封装主表对象
                SalesListMain salesListMain = new SalesListMain
                {
                    SeriaINum     = this.lblSerialNum.Text,
                    TotalMoney    = Convert.ToDecimal(this.lblTotalMoney.Text.Trim()),
                    RealRecieve   = Convert.ToDecimal(this.lblReceivedMoney.Text.Trim()),
                    ReturnMoney   = Convert.ToDecimal(this.lblReturnMoney.Text.Trim()),
                    SalesPersonId = Program.currentSalesPerson.SalesPersonId,
                };
                //【4】封装明细表对象
                foreach (Product product in productList)
                {
                    salesListMain.ListDetail.Add(new SalesListDetail
                    {
                        SeriaINum     = this.lblSerialNum.Text,
                        ProductId     = product.ProductId,
                        ProductName   = product.ProductName,
                        Quantity      = product.Quantity,
                        UnitPrice     = product.UnitPrice,
                        Discount      = product.Discount,
                        SubTotalMoney = product.SubTotal,
                    });
                }

                //【5】调用后台
                try
                {
                    productService.SaveSaleInfo(salesListMain, members);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("保存数据发生异常" + ex.Message);
                }

                //【6】打印小票
                this.printDocument.Print();
                //【7】生成新的流水号
                RestForm();
            }
        }
Пример #23
0
        private void txtAmount_KeyDown(object sender, KeyEventArgs e)
        {
            txtAmount.Text = txtAmount.Text.Replace("\r\n", "");
            txtVip.Text    = txtVip.Text.Replace("\r\n", "");
            if (e.KeyCode == Keys.F1)
            {
                radMoney.Checked = true;
            }
            else if (e.KeyCode == Keys.F2)
            {
                radCard.Checked = true;
            }
            else if (e.KeyCode == Keys.F3)
            {
                radQRCode.Checked = true;
            }
            else if (e.KeyCode == Keys.Enter)//回车键:表示正常结算
            {
                if (txtAmount.CheckData(@"^(([1-9]\d*)|(\d*.\d{0,2}))$", "输入金额有误") != 0)
                {
                    if (txtAmount.Text.Contains(".") && txtAmount.Text.IndexOf(".") == txtAmount.Text.Length)
                    {
                        txtAmount.Text += "00";
                    }
                    else if (!txtAmount.Text.Contains("."))
                    {
                        txtAmount.Text += ".00";
                    }
                    txtAmount.Text = Convert.ToDecimal(txtAmount.Text).ToString("F2");
                    if (txtVip.Text.Length == 0)//判断不是会员
                    {
                        this.Tag = txtAmount.Text.Trim();
                    }
                    else//有会员卡号
                    {
                        if (txtVip.CheckData(@"^[1-9]\d*$", "会员卡号或者手机号有误") != 0)
                        {
                            //进一步判断会员是否正常、、自己完成
                            SMMembers members = memberManager.GetMembersById(txtVip.Text.Trim());
                            if (members != null)
                            {
                                if (members.MemberStatus == 1)
                                {
                                    this.Tag = $"{txtAmount.Text.Trim()}&{txtVip.Text.Trim()}";
                                }
                                else
                                {
                                    if (members.MemberStatus == 0)
                                    {
                                        MessageBox.Show($"会员【{txtVip.Text.Trim()}】被冻结!请联系管理员", "提示");
                                    }
                                    else
                                    {
                                        MessageBox.Show("会员【{txtVip.Text.Trim()}】被注销!请联系管理员", "提示");
                                        txtVip.Text = "";
                                        return;
                                    }
                                }
                            }
                            else
                            {
                                MessageBox.Show("会员【{txtVip.Text.Trim()}】不存在!请检查账号", "提示");
                                txtVip.Text = "";
                                return;
                            }
                        }

                        else
                        {
                            this.Tag = txtAmount.Text.Trim();
                        }
                    }
                    //证明客户付钱够了
                    if (Convert.ToDecimal(txtPay.Text) <= Convert.ToDecimal(txtAmount.Text))
                    {
                        this.DialogResult = DialogResult.OK;
                        this.Close();
                    }
                    else
                    {
                        MessageBox.Show("客户实际付款金额不足!", "注意");
                    }
                }
            }
            else if (e.KeyCode == Keys.Escape)
            {
                this.Tag = "Esc";
                this.Close();
            }
            else if (e.KeyCode == Keys.Tab)
            {
                SuperTextbox txt = sender as SuperTextbox;
                if (txt.Tag.ToString() == "vip")
                {
                    txtAmount.Focus();
                }
                else if (txt.Tag.ToString() == "pay")
                {
                    txtVip.Focus();
                }
            }
        }
Пример #24
0
        private void Balance()
        {
            FrmBalance objFrmBalance = new FrmBalance(this.lblTotalMoney.Text.Trim());

            if (objFrmBalance.ShowDialog() != DialogResult.OK)
            {
                if (objFrmBalance.Tag.ToString() == "F4")//用户放弃本次购买
                {
                    //重新生成流水号等待结算下一个客户
                    RestForm();
                }
                else if (objFrmBalance.Tag.ToString() == "F5")//用户放弃部分商品购买
                {
                    this.txtProductId.Focus();
                }
            }
            else //进入正式结算,获取用户的实付金额和会员卡
            {
                SMMembers objSMM = null;
                if (objFrmBalance.Tag.ToString().Contains('|'))//如果有会员卡号
                {
                    string[] info = objFrmBalance.Tag.ToString().Split('|');
                    this.lblReceivedMoney.Text = info[0];
                    objSMM = new SMMembers()//新建一个会员卡对象
                    {
                        MemberId = info[1],
                        Points   = (int)(Convert.ToDouble(this.lblTotalMoney.Text) / 10.0)
                    };
                }
                else
                {
                    this.lblReceivedMoney.Text = objFrmBalance.Tag.ToString();
                }
                //显示找零
                this.lblReturnMoney.Text = (Convert.ToDecimal(this.lblReceivedMoney.Text.Trim()) -
                                            Convert.ToDecimal(this.lblTotalMoney.Text)).ToString();
                SaleList objSaleList = new SaleList()
                {
                    SerialNum     = this.lblSerialNum.Text.Trim(),
                    TotalMoney    = Convert.ToDecimal(this.lblTotalMoney.Text.Trim()),
                    RealReceive   = Convert.ToDecimal(this.lblReceivedMoney.Text.Trim()),
                    ReturnMoney   = Convert.ToDecimal(this.lblReturnMoney.Text.Trim()),
                    SalesPersonId = Program.CurrentPerson.SalesPersonId
                };
                foreach (Product item in this.productlist)
                {
                    objSaleList.SaleListDetails.Add(new SaleListDetail()
                    {
                        SerialNum     = this.lblSerialNum.Text.Trim(),
                        ProductId     = item.ProductId,
                        ProductName   = item.ProductName,
                        Quantity      = item.Quantity,
                        Discount      = item.Discount,
                        SubTotalMoney = item.SubTotal,
                        UnitPrice     = item.UnitPrice
                    });
                }
                try
                {
                    objProductService.SaveSaleInfo(objSaleList, objSMM);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("保存销售数据到数据库时发生错误" + ex.Message, "错误信息");
                    return;
                }
                this.printDocument.Print(); //打印小票
                RestForm();                 //重置窗口
            }
        }
Пример #25
0
 public bool SaveSalerInfo(SalesList sales, SMMembers members)
 {
     return(server.SaveSalerInfo(sales, members));
 }
Пример #26
0
        public bool SaveSalerInfo(SalesList sales, SMMembers members)
        {
            List <string>         procList = new List <string>();
            List <SqlParameter[]> psList   = new List <SqlParameter[]>();

            //给消费主表中添加数据
            procList.Add("AddSalesList");
            SqlParameter[] saleSp = new SqlParameter[] {
                new SqlParameter("@SerialNum", SqlDbType.NVarChar, 50),
                new SqlParameter("@TotalMoney", SqlDbType.Decimal),
                new SqlParameter("@RealReceive", SqlDbType.Decimal),
                new SqlParameter("@ReturnMoney", SqlDbType.Decimal),
                new SqlParameter("@SalesPersonid", SqlDbType.Int)
            };
            saleSp[0].Value = sales.SerialNum;
            saleSp[1].Value = sales.TotalMoney;
            saleSp[2].Value = sales.RealReceive;
            saleSp[3].Value = sales.ReturnMoney;
            saleSp[4].Value = sales.SalesPersonId;
            psList.Add(saleSp);
            //给消费明细表中添加每次购物的详细数据
            foreach (SalesListDetail detail in sales.ListDetail)
            {
                procList.Add("AddSalesListDetail");
                SqlParameter[] detailList = new SqlParameter[] {
                    new SqlParameter("@SerialNum", SqlDbType.NVarChar, 50),
                    new SqlParameter("@Productid", SqlDbType.NVarChar, 50),
                    new SqlParameter("@ProductName", SqlDbType.NVarChar, 50),
                    new SqlParameter("@UnitPrice", SqlDbType.Decimal),
                    new SqlParameter("@Discount", SqlDbType.Float),
                    new SqlParameter("@Quantity", SqlDbType.Int),
                    new SqlParameter("@SubTotalMoney", SqlDbType.Decimal)
                };
                detailList[0].Value = detail.SerialNum;
                detailList[1].Value = detail.ProductId;
                detailList[2].Value = detail.ProductName;
                detailList[3].Value = detail.UnitPrice;
                detailList[4].Value = detail.Discount;
                detailList[5].Value = detail.Quantity;
                detailList[6].Value = detail.SubTotalMoney;
                psList.Add(detailList);
                //更新库存数据
                procList.Add("InventoryOut");
                SqlParameter[] inventorySp = new SqlParameter[]
                {
                    new SqlParameter("@Productid", SqlDbType.NVarChar, 50),
                    new SqlParameter("@TotalCount", SqlDbType.Int)
                };
                inventorySp[0].Value = detail.ProductId;
                inventorySp[1].Value = detail.Quantity;
                psList.Add(inventorySp);
            }
            //更新会员的积分
            if (members != null)
            {
                procList.Add("RefreshMemberPoint");
                SqlParameter[] memberSp = new SqlParameter[]
                {
                    new SqlParameter("@Points", SqlDbType.Int),
                    new SqlParameter("@Memberid", SqlDbType.Int)
                };
                memberSp[0].Value = members.Points;
                memberSp[1].Value = members.Memberid;
                psList.Add(memberSp);
            }
            return(SQLHelper.UpdateByTran(procList, psList));
        }
Пример #27
0
 //键盘事件
 private void txtVip_KeyDown(object sender, KeyEventArgs e)
 {
     txtAmount.Text = txtAmount.Text.Replace("\r\n", "");
     txtVip.Text    = txtVip.Text.Replace("\r\n", "");
     if (e.KeyCode == Keys.F1)
     {
         radMoney.Checked = true;//确定选中
     }
     else if (e.KeyCode == Keys.F2)
     {
         radCard.Checked = true;
     }
     else if (e.KeyCode == Keys.F3)
     {
         radQRCode.Checked = true;
     }
     else if (e.KeyCode == Keys.Enter)
     {
         if (txtAmount.CheckData(@"^(([1-9]\d*)|(\d*.\d{0,2}))$", "输入金额有误!") != 0)
         {
             if (txtAmount.Text.Contains(".") && txtAmount.Text.IndexOf(".") == txtAmount.Text.Length)
             {
                 txtAmount.Text += "00";
             }
             else if (!txtAmount.Text.Contains("."))
             {
                 txtAmount.Text += ".00";
             }
             txtAmount.Text = Convert.ToDecimal(txtAmount.Text).ToString("F2");
             if (txtVip.Text.Length == 0)//如果不是会员
             {
                 this.Tag = txtAmount.Text.Trim();
             }
             else//有会员
             {
                 if (txtVip.CheckData(@"^[1-9]\d*$", "会员卡号有误!或手机号有误!") != 0)
                 {
                     //进一步判断会员卡号是否正常
                     SMMembers members = memberManager.GetMembersById(txtVip.Text.Trim());
                     if (members == null)
                     {
                         this.Tag = $"{txtAmount.Text.Trim()}${txtVip.Text.Trim()}";
                     }
                     else
                     {
                         this.Tag = txtAmount.Text.Trim();
                     }
                 }
                 //卡号无误则
                 else
                 {
                     this.Tag = txtAmount.Text.Trim();
                 }
             }
             if (Convert.ToDecimal(txtPay.Text) <= Convert.ToDecimal(txtAmount.Text))
             {
                 this.DialogResult = DialogResult.OK;
                 this.Close();
             }
             else
             {
                 MessageBox.Show("客户所付金额不足!", "注意!");
             }
         }
     }
     else if (e.KeyCode == Keys.Escape)
     {
         this.Tag = "Esc";
         this.Close();
     }
     else if (e.KeyCode == Keys.Tab)
     {
         SuperText txt = sender as SuperText;
         if (txt.Tag.ToString() == "Vip")
         {
             txtAmount.Focus();
         }
         else if (txt.Tag.ToString() == "pay")
         {
             txtVip.Focus();
         }
     }
 }