コード例 #1
0
ファイル: SalerForm.cs プロジェクト: AirlandKK/bookstoreSYS
        /// <summary>
        /// 导入书本
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btn_daoru_Click(object sender, EventArgs e)
        {
            int  allNum = 0;    //统计书本总数
            bool b      = true; //用于判断书本是否存在
            //如果按的是“回车键”
            //获取条形码
            string barCode = this.txt_shangping.Text;

            if (true)
            {
                //购物列表中不存在该书本
                //根据输入的条形码,查询书本信息
                DataTable dt_books = BooksBLL.SelectBooksTypeByBarCode(barCode);
                //未查询到书本
                if (dt_books.Rows.Count == 0)
                {
                    MessageBox.Show("书本未找到,请检查条形码是否正确!", "温馨提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }
                if (dt_books.Rows[0]["StockNum"].ToString() == "0")
                {
                    MessageBox.Show("书本以售空,请及时补货", "温馨提示");
                    return;
                }

                bool flag = true;
                //书本是否存在于购物车 计算书本数量
                for (int i = 0; i < this.lv_sales.Items.Count; i++)
                {
                    //判断添加书本数量是否超过库存
                    if (dt_books.Rows[0]["BooksName"].ToString() == this.lv_sales.Items[i].SubItems[2].Text)
                    {
                        string goodsName = dt_books.Rows[0]["BooksName"].ToString();
                        int    stockNum  = BooksBLL.GetStockNumByBooksName(goodsName);;
                        if (stockNum == num)
                        {
                            MessageBox.Show("库存数不足", "温馨提示");
                            b    = false;
                            flag = false;
                            break;
                        }
                        else
                        {
                            if (flag)
                            {
                                this.lv_sales.Items[i].SubItems[6].Text = (int.Parse(this.lv_sales.Items[i].SubItems[6].Text) + 1).ToString();
                                num++;            //书本存在则数量加  1
                                b        = false; //如果书本存在则把布尔变量b--赋值为false
                                discount = double.Parse(dt_books.Rows[0]["Discount"].ToString());
                                price    = double.Parse(dt_books.Rows[0]["SalePrice"].ToString()) * discount;
                                //显示金额信息
                                this.lbl_money.Text = sum.ToString();
                            }
                        }
                    }
                    else
                    {
                        //初始化数量
                        num = 1;
                    }
                }
                if (b)
                {
                    //创建购物项
                    ListViewItem item = new ListViewItem(dt_books.Rows[0]["BarCode"].ToString());
                    item.SubItems.Add(dt_books.Rows[0]["BooksID"].ToString());
                    item.SubItems.Add(dt_books.Rows[0]["BooksName"].ToString());
                    item.SubItems.Add(dt_books.Rows[0]["TypeName"].ToString());
                    item.SubItems.Add(dt_books.Rows[0]["SalePrice"].ToString());
                    item.SubItems.Add(dt_books.Rows[0]["Discount"].ToString());
                    item.SubItems.Add(num.ToString());

                    //for (int i = 0; i < lv_sales.Items.Count; i++)
                    //{
                    //    //记录书本ID,结算时需要用到该值
                    //    id1[i] = int.Parse(dt_goods.Rows[0]["BooksID"].ToString());
                    //}
                    //添加至购物车列表
                    this.lv_sales.Items.Add(item);
                }
                //获取ListView(书本)中所有行并显示
                for (int i = 0; i < this.lv_sales.Items.Count; i++)
                {
                    allNum += int.Parse(this.lv_sales.Items[i].SubItems[6].Text);
                }
                DataTable dt = VipBll.SetVipByMobile(this.txt_vip.Text);
                if (flag)
                {
                    allGoodsNum    = allNum;
                    lbl_goods.Text = allNum.ToString();
                    discount       = double.Parse(dt_books.Rows[0]["Discount"].ToString());
                    price          = double.Parse(dt_books.Rows[0]["SalePrice"].ToString()) * discount;
                    //求和
                    sum += (price);                                                                       //得到真实总价

                    sum4 = sum;                                                                           //将现在的总价赋给临时变量,sum4来处理积分抵扣显示数据
                    if (checkBox1.Checked == true)                                                        //若选择抵扣
                    {
                        if (sum > int.Parse(dt.Rows[0][4].ToString()) * 0.1)                              //如果真实总价大于积分抵扣
                        {
                            sum4 -= int.Parse(dt.Rows[0][4].ToString()) * 0.1;                            //临时总价被抵扣
                            this.jifenxianshi.Text = "积分已抵扣" + int.Parse(dt.Rows[0][4].ToString()) * 0.1; //显示抵扣积分
                        }
                        if (sum <= int.Parse(dt.Rows[0][4].ToString()) * 0.1)                             //表示总价小于积分
                        {
                            sum4 = 0;
                            this.jifenxianshi.Text = "积分已抵扣" + sum; //显示抵扣积分
                            bijiao = false;                         //标记 总价小于积分
                        }
                    }
                    if (checkBox1.Checked == false)
                    {
                        sum4 = sum;                        //还原价格
                    }
                    this.lbl_money.Text = sum4.ToString(); //显示改变的价格
                }
            }
        }