private void btnOk_Click(object sender, EventArgs e) { //首先改变餐桌状态 DeskInfoBLL dkBll = new DeskInfoBLL(); bool dkFlag = dkBll.UpdateDeskInfoStateByDeskId(Convert.ToInt32(labId.Text), 1); //添加一个订单 返回该订单ID OrderInfo order =new OrderInfo(); order.BeginTime = System.DateTime.Now;//订单的开始时间 order.DelFlag = 0;//删除标识 order.DisCount = 0;//折扣==针对会员 order.OrderMoney = 0;//订单消费的金额默认值为0 order.OrderState = 1;//订单状态1===使用 order.Remark = txtPersonCount.Text + "个" + txtDescription.Text;//备注 order.SubBy = 1;//提交人默认1 order.SubTime = System.DateTime.Now; OrderInfoBll oBll = new OrderInfoBll(); //获得订单的id object orderIdObj = oBll.AddOrderInfo(order); //为餐桌和订单的中间表添加一条记录 R_Order_Desk rod = new R_Order_Desk(); rod.DeskId = Convert.ToInt32(labId.Text);//餐桌的id rod.OrderId = Convert.ToInt32(orderIdObj);//订单的id ordId = rod.OrderId;//存储订单的id R_Order_DeskBll rodBll = new R_Order_DeskBll(); bool rodFlag = rodBll.AddR_Order_Desk(rod); if (dkFlag && rodFlag) { md.MsgDivShow("开单成功", 1, Bind); } else { md.MsgDivShow("开单失败,请联系程序员", 1); return; } }
/// <summary> /// 根据订单的id更新订单的消费金额和点菜时间 /// </summary> /// <param name="order">订单的对象</param> /// <returns></returns> public int UpdateMoneyAndTime(OrderInfo order) { string sql = "update OrderInfo set BeginTime=@BeginTime,OrderMoney=@OrderMoney where DelFlag=0 and OrderId=@OrderId"; SqlParameter[] ps = { new SqlParameter("@BeginTime",order.BeginTime), new SqlParameter("@OrderMoney",order.OrderMoney), new SqlParameter("@OrderId",order.OrderId) }; return SqlHelper.ExecuteNonQuery(sql, ps); }
/// <summary> /// 更新订单中的数据 /// </summary> /// <param name="order">订单的对象</param> /// <returns></returns> public int UpdateOrderInfo(OrderInfo order) { string sql = "update OrderInfo set OrderState=@OrderState,OrderMemberId=@OrderMemberId,EndTime=@EndTime,OrderMoney=@OrderMoney,DisCount=@DisCount where OrderId=@OrderId"; SqlParameter[] ps = { new SqlParameter("@OrderState",order.OrderState), new SqlParameter("@OrderMemberId",order.OrderMemberId), new SqlParameter("@EndTime",order.EndTime), new SqlParameter("@OrderMoney",order.OrderMoney), new SqlParameter("@DisCount",order.DisCount), new SqlParameter("@OrderId",order.OrderId) }; return SqlHelper.ExecuteNonQuery(sql, ps); }
//添加一个订单 /// <summary> /// 添加一个订单 /// </summary> /// <param name="order">订单的对象</param> /// <returns>添加一个订单后返回的是该订单的主键的id</returns> public object AddOrderInfo(OrderInfo order) { string sql = "insert into OrderInfo (SubTime,Remark,OrderState,DelFlag,SubBy,BeginTime,OrderMoney,DisCount) values(@SubTime,@Remark,@OrderState,@DelFlag,@SubBy,@BeginTime,@OrderMoney,@DisCount);select @@identity"; //注意这个sql语句!!!!!!!!!!!!!!1是两个语句,还有一个select语句//select @@Identity 返回自动递增字段的值 //准备参数 SqlParameter[] ps = { new SqlParameter("@SubTime",order.SubTime), new SqlParameter("@Remark",order.Remark), new SqlParameter("@OrderState",order.OrderState), new SqlParameter("@DelFlag",order.DelFlag), new SqlParameter("@SubBy",order.SubBy), new SqlParameter("@BeginTime",order.BeginTime), new SqlParameter("@OrderMoney",order.OrderMoney), new SqlParameter("@DisCount",order.DisCount) }; return SqlHelper.ExecuteScalar(sql, ps); }
//结账 private void btnAccounts_Click(object sender, EventArgs e) { //餐桌状态发生改变 DeskInfoBLL dkbll = new DeskInfoBLL(); bool dkResult = dkbll.UpdateDeskInfoStateByDeskId(Convert.ToInt32(labdkId.Text), 0); //订单状态发生改变 OrderInfoBll orderBll = new OrderInfoBll(); OrderInfo order = new OrderInfo(); order.EndTime = System.DateTime.Now;//当前的时间 order.OrderMoney = Convert.ToDouble(lblMoney.Text);//结账后的金额 order.OrderState = 2;//状态 order.OrderId = Convert.ToInt32(labOrderId.Text); if (cmbMember.SelectedIndex != 0) { //获取选中的会员对象 MemberInfo mem = (MemberInfo)cmbMember.SelectedItem; order.OrderMemberId = mem.MemberId;//会员的id order.DisCount = mem.MemDiscount;//折扣 //根据会员的id更新该会员的金额 MemberInfoBl memBll = new MemberInfoBl(); //得到会员的金额 double money = Convert.ToDouble(labyuMoney.Text) - Convert.ToDouble(lblMoney.Text); //更新会员余额 memBll.UpdateMemberMoneyById(mem.MemberId, money);//==不接收了 } //更新订单中的金额 bool orderResult = orderBll.UpdateOrderInfo(order); //会员结账----更改会员余额 //改变订单对应的订单和菜单的中间表中的菜的状态 R_Order_ProductBll ropBll = new R_Order_ProductBll(); bool ropResult = ropBll.UpdateR_Order_ProductDelFlagByOrderId(Convert.ToInt32(labOrderId.Text)); if (dkResult && orderResult & ropResult) { md.MsgDivShow("顾客结账成功", 1); } else { md.MsgDivShow("结账失败了", 1); } }
//窗体关闭的时候更新消费总金额到订单表 private void FrmAddConsumption_FormClosed(object sender, FormClosedEventArgs e) { if (!string.IsNullOrEmpty(labSumMoney.Text)) { OrderInfoBll oBll = new OrderInfoBll(); OrderInfo order = new OrderInfo(); order.BeginTime = System.DateTime.Now; order.OrderMoney = Convert.ToDouble(labSumMoney.Text);//消费金额 order.OrderId = Convert.ToInt32(labOrderId.Text);//订单Id bool result = oBll.UpdateMoneyAndTime(order); //上面就没有必要显示什么消息了。 } }