コード例 #1
0
        /// <summary>
        /// 根据订单的id查询该订单的总金额和数量
        /// </summary>
        /// <param name="orderId"></param>
        /// <returns></returns>
        public R_OrderInfo_Product GetMoneyAndCount(int orderId)
        {
            string sql = "select count(*),sum(ProPrice*UnitCount) from R_OrderInfo_Product inner join ProductInfo on ProductInfo.ProId= R_OrderInfo_Product.ProId where R_OrderInfo_Product.DelFlag=0 and OrderId=" + orderId;

            R_OrderInfo_Product rop = null;

            using (SQLiteDataReader reader = Sqlitehelper.ExecuteReader(sql))
            {
                if (reader.HasRows)
                {
                    while (reader.Read())
                    {
                        rop    = new R_OrderInfo_Product();
                        rop.CT = Convert.ToInt32(reader[0]);

                        if (DBNull.Value == reader[1])
                        {
                            rop.MONEY = 0;
                        }
                        else
                        {
                            rop.MONEY = Convert.ToDecimal(reader[1]);
                        }
                    }
                }
            }

            return(rop);
        }
コード例 #2
0
ファイル: FrmAddMoney.cs プロジェクト: bailangfc/ceshi
 //点菜
 private void dgvProduct_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
 {
     if (dgvProduct.SelectedRows.Count > 0)
     {
         //首先获取该餐桌的订单id
         //int id = this.ID;
         //获取点菜的菜的id
         int proId = Convert.ToInt32(dgvProduct.SelectedRows[0].Cells[0].Value);
         //插入到订单和菜单的中间表
         //数量
         int count = string.IsNullOrEmpty(txtCount.Text) || txtCount.Text == "1" ? 1 : Convert.ToInt32(txtCount.Text);
         R_OrderInfo_ProductBLL bll  = new R_OrderInfo_ProductBLL();
         R_OrderInfo_Product    roip = new R_OrderInfo_Product();
         roip.OrderId   = this.ID;
         roip.DelFlag   = 0;
         roip.ProId     = proId;
         roip.State     = 0;
         roip.SubTime   = System.DateTime.Now;
         roip.UnitCount = count;
         // bll.AddR_OrderInfo_Product(roip);
         if (bll.AddR_OrderInfo_Product(roip))
         {
             LoadROrderProduct();
             txtCount.Text = "";
         }
         else
         {
             MessageBox.Show("点菜失败");
         }
     }
 }
コード例 #3
0
        /// <summary>
        /// 查询该餐桌点的所有的菜
        /// </summary>
        /// <param name="orderId">订单的id</param>
        /// <returns>菜对象集合</returns>
        public List <R_OrderInfo_Product> GetProduct(int orderId)
        {
            string sql = "select ROrderProId,ProName,ProPrice,UnitCount,ProUnit,CatName,R_OrderInfo_Product.SubTime from  R_OrderInfo_Product inner join ProductInfo on ProductInfo.ProId=R_OrderInfo_Product.ProId inner join CategoryInfo on ProductInfo.CatId=CategoryInfo.CatId where R_OrderInfo_Product.DelFlag=0 and OrderId=@OrderId";
            List <R_OrderInfo_Product> list = new List <R_OrderInfo_Product>();

            SQLiteDataReader reader = SqliteHelper.ExecuteReader(sql, new SQLiteParameter("@OrderId", orderId));

            if (reader.HasRows)
            {
                while (reader.Read())
                {
                    R_OrderInfo_Product rop = new R_OrderInfo_Product();
                    rop.ROrderProId = Convert.ToInt32(reader["ROrderProId"]);
                    rop.CatName     = reader["CatName"].ToString();
                    rop.ProName     = reader["ProName"].ToString();
                    rop.ProPrice    = Convert.ToDecimal(reader["ProPrice"]);
                    rop.UnitCount   = Convert.ToDecimal(reader["UnitCount"]);
                    rop.ProUnit     = reader["ProUnit"].ToString();
                    rop.SubTime     = Convert.ToDateTime(reader["SubTime"]);
                    rop.ProMoney    = rop.ProPrice * rop.UnitCount;//总价
                    list.Add(rop);
                    //rop.MONEY=
                }
            }
            return(list);//
        }
コード例 #4
0
ファイル: FrmAddMoney.cs プロジェクト: chenmo1378/ItcastCater
        //双击左侧菜单添加消费项目
        private void dgvProduct_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            R_OrderInfo_Product rop = new R_OrderInfo_Product();
            //获取当前选中的菜的id
            string strId = dgvProduct.SelectedRows[0].Cells[0].Value.ToString();

            rop.ProId = Convert.ToInt32(strId);
            //获取点菜的数量
            rop.UnitCount = string.IsNullOrEmpty(txtCount.Text) || txtCount.Text == "1" ? 1 : Convert.ToInt32(txtCount.Text);//判断是否能转换成功===我省略了.
            //订单的id
            rop.OrderId = this.ordId;
            //把这些数据全部插入到订单和菜单的中间表去.
            //其他的数据
            rop.DelFlag = 0;
            rop.State   = 0;
            rop.SubTime = DateTime.Now;
            R_OrderInfo_ProductBLL bll = new R_OrderInfo_ProductBLL();

            //如果菜添加成功了,就要在窗体的右侧显示点的什么菜
            if (bll.AddOrderProduct(rop))
            {
                //刷新右侧的菜单
                //添加菜成功后要刷新--窗体加载的时候要刷新. 主界面还要查询
                LoadOrderProduct();
                txtCount.Text = "";
            }
            else
            {
                MessageBox.Show("对不起点菜失败");
            }
        }
コード例 #5
0
        private void dgvProduct_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            int proId = Convert.ToInt32(dgvProduct.SelectedRows[0].Cells[0].Value.ToString());
            R_OrderInfo_Product rop = new R_OrderInfo_Product();

            rop.OrderId = Convert.ToInt32(labDeskId.Text); //订单的id

            rop.ProId = proId;                             //产品的id
            //,,DelFlag,SubTime,State,UnitCount

            rop.DelFlag = 0;
            rop.SubTime = System.DateTime.Now;
            rop.State   = 0;
            if (string.IsNullOrEmpty(txtCount.Text) || txtCount.Text == "0" || txtCount.Text == "1")
            {
                rop.UnitCount = 1;
            }
            else
            {
                rop.UnitCount = Convert.ToInt32(txtCount.Text);//有异常--坑,
            }
            R_OrderInfo_ProductBll bll = new R_OrderInfo_ProductBll();

            bll.AddROrderInfoProduct(rop);
            LoadROrderInfoProductByOrderId(Convert.ToInt32(rop.OrderId));//查询点的什么产品
        }
コード例 #6
0
        /// <summary>
        /// 根据订单的id查询总数量和总金额
        /// </summary>
        /// <param name="orderId">订单的id</param>
        /// <returns></returns>
        public R_OrderInfo_Product GetMoneyAndCount(int orderId)
        {
            string sql = "select count(*),sum(UnitCount*ProPrice)from R_OrderInfo_Product inner join ProductInfo on R_OrderInfo_Product.ProId=ProductInfo.ProId where OrderId=@OrderId";
            //释放
            SQLiteDataReader    sda = SqliteHelper.ExecuteReader(sql, new SQLiteParameter("@OrderId", orderId));
            R_OrderInfo_Product r   = null;

            if (sda.HasRows)
            {
                while (sda.Read())
                {
                    try
                    {
                        r       = new R_OrderInfo_Product();
                        r.CT    = Convert.ToInt32(sda[0]);
                        r.MONEY = Convert.ToDecimal(sda[1]);
                    }
                    catch   //没有消费时会报错 ,try一下
                    {
                        r       = new R_OrderInfo_Product();
                        r.CT    = 0;
                        r.MONEY = 0;
                    }
                }
            }
            return(r);
        }
コード例 #7
0
ファイル: FrmMoney1.cs プロジェクト: xc1499715227/testgit
        private void LoadROrderProduct()
        {
            R_OrderInfo_ProductBLL bll = new R_OrderInfo_ProductBLL();
            //计算总金额还有总数量
            R_OrderInfo_Product r = bll.GetMoneyAndCount(this.ID);

            label1.Text = "亲,您共消费了" + r.MONEY.ToString() + "元";//总金额
        }
コード例 #8
0
        //关系转对象
        private R_OrderInfo_Product RowToROrderInfoProduct(DataRow dr)
        {
            R_OrderInfo_Product rop = new R_OrderInfo_Product();

            rop.CatName     = dr["CatName"].ToString();
            rop.ProPrice    = Convert.ToDecimal(dr["ProPrice"]);
            rop.ProUnit     = dr["ProUnit"].ToString();
            rop.ROrderProId = Convert.ToInt32(dr["ROrderProId"]);
            rop.SubTime     = Convert.ToDateTime(dr["SubTime"]);
            rop.UnitCount   = Convert.ToDecimal(dr["UnitCount"]);
            rop.ProName     = dr["ProName"].ToString();
            rop.ProMoney    = rop.ProPrice * rop.UnitCount;//这个菜的总价
            return(rop);
        }
コード例 #9
0
        /// <summary>
        /// 点菜,添加到订单表中
        /// </summary>
        /// <param name="rop"></param>
        /// <returns></returns>
        public int AddROrderInfoProduct(R_OrderInfo_Product rop)
        {
            var sql = "insert into R_OrderInfo_Product(OrderId,ProId,DelFlag,SubTime,State,UnitCount) values(@OrderId,@ProId,@DelFlag,@SubTime,@State,@UnitCount)";
            var ps  = new SQLiteParameter[] {
                new SQLiteParameter("@OrderId", rop.OrderId),
                new SQLiteParameter("@ProId", rop.ProId),
                new SQLiteParameter("@DelFlag", rop.DelFlag),
                new SQLiteParameter("@SubTime", rop.SubTime),
                new SQLiteParameter("@State", rop.State),
                new SQLiteParameter("@UnitCount", rop.UnitCount)
            };

            return(SqliteHelper.ExecuteNonQuery(sql, ps));
        }
コード例 #10
0
ファイル: FrmAddMoney.cs プロジェクト: ysyizhong/testgit
        //加载点的菜
        private void LoadROrderProduct()
        {
            R_OrderInfo_ProductBLL bll = new R_OrderInfo_ProductBLL();

            dgvROrderProduct.AutoGenerateColumns = false;
            dgvROrderProduct.DataSource          = bll.GetROrderInfoProduct(this.ID);
            //dgvROrderProduct.SelectedRows[0].Selected = false;

            //计算总金额还有总数量
            R_OrderInfo_Product r = bll.GetMoneyAndCount(this.ID);

            labSumMoney.Text = r.MONEY.ToString(); //总金额
            labCount.Text    = r.CT.ToString();    //总数量
        }
コード例 #11
0
ファイル: FrmAddMoney.cs プロジェクト: chenmo1378/ItcastCater
        //显示用户点的什么菜
        private void LoadOrderProduct()
        {
            R_OrderInfo_ProductBLL bll = new R_OrderInfo_ProductBLL();

            dgvROrderProduct.AutoGenerateColumns      = false; //禁止自动生成列
            dgvROrderProduct.DataSource               = bll.GetProduct(this.ordId);
            dgvROrderProduct.SelectedRows[0].Selected = false; //默认不选中

            //不为空
            R_OrderInfo_Product rop = bll.GetCountAndMoney(this.ordId);

            labSumMoney.Text = rop.MONEY.ToString(); //总金额
            labCount.Text    = rop.CT.ToString();    //点了多少个菜
        }
コード例 #12
0
        /// <summary>
        /// 查询点的菜,根据订单的id
        /// </summary>
        /// <param name="orderId">订单的id</param>
        /// <returns>菜的集合</returns>
        public List <R_OrderInfo_Product> GetROrderInfoProduct(int orderId)
        {
            string    sql = "select ROrderProId, ProName,ProPrice,UnitCount,ProUnit,CatName,R_OrderInfo_Product.SubTime from R_OrderInfo_Product inner join CategoryInfo on CategoryInfo.CatId=ProductInfo.CatId inner join ProductInfo on ProductInfo.ProId=R_OrderInfo_Product.ProId where R_OrderInfo_Product.DelFlag=0 and OrderId=@OrderId";
            DataTable dt  = SqliteHelper.ExecuteTable(sql, new SQLiteParameter("@OrderId", orderId));
            List <R_OrderInfo_Product> list = new List <R_OrderInfo_Product>();

            if (dt.Rows.Count > 0)
            {
                foreach (DataRow item in dt.Rows)
                {
                    R_OrderInfo_Product rop = RowToROrderInfoProduct(item);
                    list.Add(rop);
                }
            }
            return(list);
        }
コード例 #13
0
        /// <summary>
        /// 向中间表中插入一条数据,加菜
        /// </summary>
        /// <param name="roip">对象</param>
        /// <returns></returns>
        public int AddR_OrderInfo_Product(R_OrderInfo_Product roip)
        {
            string sql = "insert into R_OrderInfo_Product(OrderId,ProId,DelFlag,SubTime,State,UnitCount) values(@OrderId,@ProId,@DelFlag,@SubTime,@State,@UnitCount)";

            SQLiteParameter[] param =
            {
                new SQLiteParameter("@OrderId",   roip.OrderId),
                new SQLiteParameter("@ProId",     roip.ProId),
                new SQLiteParameter("@DelFlag",   roip.DelFlag),
                new SQLiteParameter("@SubTime",   roip.SubTime),
                new SQLiteParameter("@State",     roip.State),
                new SQLiteParameter("@UnitCount", roip.UnitCount)
            };

            return(SqliteHelper.ExecuteNonquery(sql, param));
        }
コード例 #14
0
        //显示点的什么菜
        /// <summary>
        ///
        /// </summary>
        /// <param name="p">订单的id</param>
        private void LoadROrderInfoProductByOrderId(int p)
        {
            R_OrderInfo_ProductBll bll = new R_OrderInfo_ProductBll();

            dgvROrderProduct.AutoGenerateColumns = false;
            dgvROrderProduct.DataSource          = bll.GetROrderInfoProduct(p);
            if (dgvROrderProduct.SelectedRows.Count > 0)
            {
                dgvROrderProduct.SelectedRows[0].Selected = false;
            }
            //没判断
            R_OrderInfo_Product rop = bll.GetMoneyAndCount(p);

            labSumMoney.Text = rop.MONEY.ToString();
            labCount.Text    = rop.CT.ToString();
        }
コード例 #15
0
        private R_OrderInfo_Product RowToROrderInfo(DataRow dr)
        {
            var rop = new R_OrderInfo_Product
            {
                CatName     = dr["CatName"].ToString(),
                ProName     = dr["ProName"].ToString(),
                ProPrice    = Convert.ToDecimal(dr["ProPrice"]),
                ProUnit     = dr["ProUnit"].ToString(),
                UnitCount   = Convert.ToDecimal(dr["UnitCount"]),
                SubTime     = Convert.ToDateTime(dr["SubTime"]),
                ROrderProId = Convert.ToInt32(dr["ROrderProId"])
            };

            rop.ProMoney = rop.ProPrice * rop.UnitCount;

            return(rop);
        }
コード例 #16
0
        //
        /// <summary>
        /// 查消费的数量还有总价格
        /// </summary>
        /// <param name="orderId">订单的id</param>
        /// <returns>总数量和总价格</returns>
        public R_OrderInfo_Product GetCountAndMoney(int orderId)
        {
            string              sql    = "select count(*),sum(UnitCount*ProPrice) from R_OrderInfo_Product inner join ProductInfo on ProductInfo.ProId=R_OrderInfo_Product.ProId where R_OrderInfo_Product.DelFlag=0 and OrderId=@OrderId";
            SQLiteDataReader    reader = SqliteHelper.ExecuteReader(sql, new SQLiteParameter("@OrderId", orderId));
            R_OrderInfo_Product rop    = null;

            if (reader.HasRows)
            {
                while (reader.Read())
                {
                    rop       = new R_OrderInfo_Product();//这是个大坑
                    rop.CT    = reader.GetInt32(0);
                    rop.MONEY = reader.GetDecimal(1);
                }
            }
            return(rop);
        }
コード例 #17
0
ファイル: FrmAddMoney.cs プロジェクト: bailangfc/ceshi
        //退菜
        private void btnDeleteRorderPro_Click(object sender, EventArgs e)
        {
            //获取当前选中的id
            int id = Convert.ToInt32(dgvROrderProduct.SelectedRows[0].Cells[0].Value);
            R_OrderInfo_ProductBLL bll = new R_OrderInfo_ProductBLL();

            if (bll.UpdateROrderProduct(id))
            {
                MessageBox.Show("退菜成功");
                LoadROrderProduct();//刷新

                R_OrderInfo_Product r = bll.GetMoneyAndCount(this.ID);
                labSumMoney.Text = r.MONEY.ToString(); //总金额
                labCount.Text    = r.CT.ToString();    //总数量
            }
            else
            {
                MessageBox.Show("退菜失败");
            }
        }
コード例 #18
0
        private void dgvProduct_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            if (dgvProduct.SelectedRows.Count > 0)
            {
                //OrderId,ProId,DelFlag,SubTime,State,UnitCount
                var rop = new R_OrderInfo_Product();
                rop.OrderId = Convert.ToInt32(labOrderId.Text);
                rop.ProId   = Convert.ToInt32(dgvProduct.SelectedRows[0].Cells[0].Value);
                rop.DelFlag = 0;
                rop.SubTime = DateTime.Now;
                rop.State   = 0;
                if (txtCount.Text != "")
                {
                    try
                    {
                        rop.UnitCount = Convert.ToInt32(txtCount.Text) > 1 ? Convert.ToInt32(txtCount.Text) : 1;
                    }
                    catch
                    {
                        MessageBox.Show("消费数量输入错误");
                        return;
                    }
                }
                else
                {
                    rop.UnitCount = 1;
                }

                var bll = new R_OrderInfo_ProductBLL();
                bll.AddROrderInfoProduct(rop);
                LoadROrderInfoProductByOrderId(Convert.ToInt32(rop.OrderId));
            }
            else
            {
                MessageBox.Show("未选中行");
            }
        }
コード例 #19
0
 /// <summary>
 /// 点菜,添加到订单表中
 /// </summary>
 /// <param name="rop"></param>
 /// <returns></returns>
 public bool AddROrderInfoProduct(R_OrderInfo_Product rop)
 {
     return(dal.AddROrderInfoProduct(rop) > 0 ? true : false);
 }
コード例 #20
0
 /// <summary>
 /// 添加产品
 /// </summary>
 /// <param name="rop"></param>
 /// <returns></returns>
 public bool AddROrderInfoProduct(R_OrderInfo_Product rop)
 {
     return(rdal.AddROrderInfoProduct(rop) > 0);
 }