/// <summary> /// 更新订单状态 /// </summary> /// <param name="helper">订单状态操作类</param> /// <param name="orderStateEnum">要更新的订单状态</param> protected virtual bool UpdateState(OrderStateHelper helper, OrderStateEnum orderStateEnum) { bool result = false; result = new OrderInfoBll().UpdateValue(helper.OrderId, orderStateEnum); return(result); }
void listview_DoubleClick(object sender, EventArgs e) { //得到双击的listview ListView listview = sender as ListView; //然后去设计窗口,给listview控件设置属性,MUltiSelect=false,(multiline)只允许选择一个,不许多选 ListViewItem item = listview.SelectedItems[0]; //拿到双击的项了,当项被双击后,被选择,这里注意:我们定义的item就可以拿到上面item存储的tag信息 int tableId = Convert.ToInt32(item.Tag); //获得餐桌编号,给业务逻辑层开单使用 //如果当前餐桌是空闲状态,就进行开单操作 if (item.ImageIndex == 0) { OrderInfoBll oiBll = new OrderInfoBll(); if (oiBll.Kaidan(tableId)) { //打开开单界面 //当前餐桌的状态改为占用 //这里注意,点开了开单界面,并不代表下单了,可能并没有下单, //使用委托事件,必须在开单界面点击了下单,才可以更换图片 //继续往下执行打开点菜窗体 } } else { //如果不是空闲状态,就进行加菜操作,一样也是打开点菜窗体 } OrderInfoList orderInfoList = OrderInfoList.Create(); orderInfoList.Tag = tableId;//将餐桌编号传递过去,用于进行订单编号的查找,这样才能加菜点菜 orderInfoList.GetTableFreeEvent += GetTableFree; orderInfoList.Show(); orderInfoList.Focus(); }
private void listview_DoubleClick(object sender, EventArgs e) { //得到双击的listview ListView listView = sender as ListView; //当项被双击后,会被选择,得到当前选择的ListViewItem ListViewItem item = listView.SelectedItems[0]; int tableId = Convert.ToInt32(item.Tag); //如果当前餐桌是空闲状态,则进行开单操作 if (item.ImageIndex == 0) { OrderInfoBll oiBll = new OrderInfoBll(); if (oiBll.KaiDan(tableId)) { //将当前餐桌的状态改为占用 item.ImageIndex = 1; } } else { //如果不是空闲状态,则进行加菜操作 } //打开点菜窗体 OrderInfoList orderInfoList = new OrderInfoList(); orderInfoList.Tag = tableId;//将餐桌编号传递过去,用于进行订单编号的查找 orderInfoList.Show(); }
//增加消费 private void btnAddConsumption_Click(object sender, EventArgs e) { // ListView lv = (ListView)(tabMain.SelectedTab.Controls[0]); //房间的对象 RoomInfo room = (RoomInfo)(tabMain.SelectedTab.Tag); //餐桌的对象 if (lv.SelectedItems.Count <= 0)//没选中餐桌 { md.MsgDivShow("请选中要增加消费的餐桌", 1); return; } DeskInfo dk = (lv.SelectedItems[0].Tag as DeskInfo); if (dk.DeskState == 0) { md.MsgDivShow("请选择开单后的餐桌进行增加消费", 1); return; } //根据餐桌的id查询该餐桌对应的订单的id OrderInfoBll orderBll = new OrderInfoBll(); object objOrderId = orderBll.GetOrderIdByDeskId(dk.DeskId); FrmAddConsumption fac = FrmAddConsumption.Single(dk.DeskName, Convert.ToInt32(objOrderId)); //增加消费之后=======刷新 fac.FormClosed += new FormClosedEventHandler(fbi_FormClosed); //!!!!!!!!!必须刷新 fac.Show(); //显示增加消费的窗体 }
private void btnMoney_Click(object sender, EventArgs e) { TabPage tp = tabControl1.SelectedTab; ListView lv = tp.Controls[0] as ListView; if (lv.SelectedItems.Count <= 0) { MessageBox.Show("请选中"); return; } if ((lv.SelectedItems[0].Tag as DeskInfo).DeskState != 1) { MessageBox.Show("请选择开单的餐桌"); return; } MyEventArgs mea_add = new MyEventArgs(); FrmAddMoney fam = new FrmAddMoney(); mea_add.Name = (lv.SelectedItems[0].Tag as DeskInfo).DeskName; OrderInfoBll obll = new OrderInfoBll(); int orde = obll.GetOrderIdByDeskId((lv.SelectedItems[0].Tag as DeskInfo).DeskId); mea_add.Temp = orde; this.evtFam += new EventHandler(fam.SetText); if (this.evtFam != null) { this.evtFam(this, mea_add); fam.FormClosed += new FormClosedEventHandler(fam_Formclose); fam.ShowDialog(); } }
void lvTableInfo_DoubleClick(object sender, EventArgs e) { //获取餐桌编号 var lv1 = sender as ListView; var lvi = lv1.SelectedItems[0]; if (lvi.ImageIndex == 0) { int tableId = Convert.ToInt32(lvi.Tag); //MessageBox.Show(tableId.ToString()); //餐桌空闲 //开单,向数据库orderinfo表中添加数据 //并将餐桌状态改为使用中 OrderInfoBll oiBll = new OrderInfoBll(); oiBll.KaiDan(tableId); //更新项的图标为占用 lvi.ImageIndex = 1; //设置提示信息 lvi.ToolTipText = lvi.Tag.ToString() + "号桌 " + (lvi.ImageIndex == 0 ? "空闲" : "使用中"); } FrmOrderDish frmOrderDish = new FrmOrderDish(); frmOrderDish.Tag = lvi.Tag; frmOrderDish.ShowDialog(); }
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; } }
void lvTableInfo_DoubleClick(object sender, EventArgs e) { //获取被点的餐桌项 var lv1 = sender as ListView; var lvi = lv1.SelectedItems[0]; //获取餐桌编号 int tableId = Convert.ToInt32(lvi.Tag); OrderInfoBll oiBll = new OrderInfoBll(); if (lvi.ImageIndex == 0) { //当前餐桌为空闲则开单 //1、开单,向orderinfo表插入数据 //2、修改餐桌状态为占用 int orderId = oiBll.KaiDan(tableId); //单号 lvi.Tag = orderId; //3、更新项的图标为占用 lv1.SelectedItems[0].ImageIndex = 1; } else { //当前餐桌已经占用,则进行点菜操作 根据tableid获取orderid lvi.Tag = oiBll.GetOrderIdByTableId(tableId); } //4、打开点菜窗体 FormOrderDish formOrderDish = new FormOrderDish(); //将单号传入 formOrderDish.Tag = lvi.Tag; formOrderDish.CloseEvrnt += LoadHallInfo; formOrderDish.Show(); }
//上帝结账 private void btnGuestPay_Click(object sender, EventArgs e) { ListView lv = (ListView)(tabMain.SelectedTab.Controls[0]); //房间的对象 RoomInfo room = (RoomInfo)(tabMain.SelectedTab.Tag); //餐桌的对象 if (lv.SelectedItems.Count <= 0)//没选中餐桌 { md.MsgDivShow("请选中要结账的餐桌", 1); return; } DeskInfo dk = (lv.SelectedItems[0].Tag as DeskInfo); if (dk.DeskState == 0)//没有选中就餐的餐桌 { md.MsgDivShow("请选择就餐的餐桌进行结账", 1); return; } //结账了--显示窗体 //获取订单的id OrderInfoBll orderBll = new OrderInfoBll(); object objOrderId = orderBll.GetOrderIdByDeskId(dk.DeskId); FrmGuestPay fgp = FrmGuestPay.Single(Convert.ToInt32(objOrderId), dk.DeskId, dk.DeskName); fgp.FormClosed += new FormClosedEventHandler(fbi_FormClosed);//刷新 fgp.Show();//结账的窗体就显示出来 }
//增加消费 private void btnAddConsumption_Click(object sender, EventArgs e) { // ListView lv = (ListView)(tabMain.SelectedTab.Controls[0]); //房间的对象 RoomInfo room = (RoomInfo)(tabMain.SelectedTab.Tag); //餐桌的对象 if (lv.SelectedItems.Count <= 0)//没选中餐桌 { md.MsgDivShow("请选中要增加消费的餐桌", 1); return; } DeskInfo dk = (lv.SelectedItems[0].Tag as DeskInfo); if (dk.DeskState == 0) { md.MsgDivShow("请选择开单后的餐桌进行增加消费", 1); return; } //根据餐桌的id查询该餐桌对应的订单的id OrderInfoBll orderBll = new OrderInfoBll(); object objOrderId = orderBll.GetOrderIdByDeskId(dk.DeskId); FrmAddConsumption fac = FrmAddConsumption.Single(dk.DeskName, Convert.ToInt32(objOrderId)); //增加消费之后=======刷新 fac.FormClosed += new FormClosedEventHandler(fbi_FormClosed);//!!!!!!!!!必须刷新 fac.Show();//显示增加消费的窗体 }
private void LvTableInfo_DoubleClick(object sender, EventArgs e) { //获取被点的餐桌项 ListView lv1 = sender as ListView; ListViewItem lvi = lv1.SelectedItems[0]; //获取餐桌编号 int tableId = Convert.ToInt32(lv1.SelectedItems[0].Tag); OrderInfoBll oiBll = new OrderInfoBll(); int orderId; if (lvi.ImageIndex == 0) { //当前餐桌空闲需要开单 //1.开单向OrderInfo中写入,同时更新餐桌状态 //获得订单号存到items项的Tag属性中 orderId = oiBll.CreaterOder(tableId); //2.更新餐桌的图标为占用 lv1.SelectedItems[0].ImageIndex = 1; } else { //当前餐桌已经占用,则需要点菜 orderId = oiBll.GetOrderIdByTableTid(tableId); } //2.打开点菜页面 FormOrderDish formOrderDish = new FormOrderDish(); formOrderDish.Tag = orderId; formOrderDish.ShowDialog();//模态打开 }
//上帝结账 private void btnGuestPay_Click(object sender, EventArgs e) { ListView lv = (ListView)(tabMain.SelectedTab.Controls[0]); //房间的对象 RoomInfo room = (RoomInfo)(tabMain.SelectedTab.Tag); //餐桌的对象 if (lv.SelectedItems.Count <= 0)//没选中餐桌 { md.MsgDivShow("请选中要结账的餐桌", 1); return; } DeskInfo dk = (lv.SelectedItems[0].Tag as DeskInfo); if (dk.DeskState == 0)//没有选中就餐的餐桌 { md.MsgDivShow("请选择就餐的餐桌进行结账", 1); return; } //结账了--显示窗体 //获取订单的id OrderInfoBll orderBll = new OrderInfoBll(); object objOrderId = orderBll.GetOrderIdByDeskId(dk.DeskId); FrmGuestPay fgp = FrmGuestPay.Single(Convert.ToInt32(objOrderId), dk.DeskId, dk.DeskName); fgp.FormClosed += new FormClosedEventHandler(fbi_FormClosed); //刷新 fgp.Show(); //结账的窗体就显示出来 }
private void OrderDishList_Load(object sender, EventArgs e) { //根据餐桌编号获取餐桌名称和餐桌所属厅包的名称,在窗体上面进行提示! TableInfoBll tiBll = new TableInfoBll(); TableInfo ti = new TableInfo(); ti.TId = Convert.ToInt32(this.Tag); List <TableInfo> list = new List <TableInfo>(); list = tiBll.GetList(ti); string tableTitleById = list[0].TTitle; string hallTypeById = list[0].HallType; lblOrderDish.Text = "正在查看【" + hallTypeById + "】【" + tableTitleById + "】号的点菜详情!"; this.Text = "【" + hallTypeById + "】【" + tableTitleById + "】"; //加载所有已点菜品,包含未下单的 OrderInfoBll oiBll = new OrderInfoBll(); //根据餐桌id获取订单id int orderId = oiBll.GetOidByTid(Convert.ToInt32(this.Tag)); gvOrderDishInfo.AutoGenerateColumns = false; gvOrderDishInfo.DataSource = oiBll.GetOrderDetail(orderId); //计算点菜总金额 GetOrderMoney(); }
private void FrmAddMoney_FormClosing(object sender, FormClosingEventArgs e) { if (!string.IsNullOrEmpty(labSumMoney.Text) && labSumMoney.Text != "0") { OrderInfoBll obll = new OrderInfoBll(); obll.UpdateMoney(Convert.ToInt32(labDeskId.Text), Convert.ToDecimal(labSumMoney.Text)); } }
public DataManager() { GoodsInfoBLL = new GoodsInfoBll(); NoReceiveMoneyBLL = new NoReceiveMoneyBll(); ProfitsInfoBLL = new ProfitsInfoBll(); SortInfoBLL = new SortInfoBll(); UserInfoBLL = new UserInfoBll(); WholeSalerInfoBLL = new WholeSalerInfoBll(); UnitInfoBLL = new UnitInfoBll(); OrderInfoBLL = new OrderInfoBll(); }
/// <summary> /// 确定开单 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnOK_Click(object sender, EventArgs e) { //做三件事情 //1更改餐桌状态 DeskInfoBll dkbll = new DeskInfoBll(); bool dkFlag = dkbll.UpdateDeskStateByDeskId(this.ID, 1); //2添加一个订单 OrderInfoBll orbll = new OrderInfoBll(); OrderInfo o = new OrderInfo(); o.SubTime = System.DateTime.Now; o.DelFlag = 0; o.OrderMoney = 0; o.OrderState = 1; o.Remark = txtPersonCount.Text + txtDescription.Text; o.SubBy = 1; int orderId = orbll.AddOrderInfo(o); //3添加一个中间表 R_Order_DeskBll rodbll = new R_Order_DeskBll(); R_Order_Desk rod = new R_Order_Desk(); rod.DeskId = this.ID; rod.OrderId = orderId; bool rodFlag = rodbll.AddOrderDesk(rod); if (dkFlag && rodFlag) { MessageBox.Show("开单成功"); } else { MessageBox.Show("开单失败"); } if (ckbMeal.Checked) { FrmAddMoney frm_money = new FrmAddMoney(); mea_money.Name = labDeskName.Text; //餐桌的编号 mea_money.Temp = orderId; //订单id this.evtFrmmoney += new EventHandler(frm_money.SetText); if (this.evtFrmmoney != null) { this.evtFrmmoney(this, mea_money); frm_money.FormClosed += new FormClosedEventHandler(frm_money_formclosed); frm_money.ShowDialog(); } } else { } }
private FrmGuestPay(int orderId, int deskId, string deskName) { InitializeComponent(); //显示订单的编号 labOrderId.Text = orderId.ToString();//订单的单号(订单的id) labdkId.Text = deskId.ToString();//餐桌的id存储起来 labDeskName.Text = deskName;//餐桌的编号 //根据订单的id查询消费的总金额 OrderInfoBll oBll = new OrderInfoBll(); labMoney.Text = oBll.GetMoneyByOrderId(orderId).ToString();//显示消费金额 lblMoney.Text = labMoney.Text;//结账的金额 }
//窗体关闭的时候更新消费总金额到订单表 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); //上面就没有必要显示什么消息了。 } }
private FrmGuestPay(int orderId, int deskId, string deskName) { InitializeComponent(); //显示订单的编号 labOrderId.Text = orderId.ToString(); //订单的单号(订单的id) labdkId.Text = deskId.ToString(); //餐桌的id存储起来 labDeskName.Text = deskName; //餐桌的编号 //根据订单的id查询消费的总金额 OrderInfoBll oBll = new OrderInfoBll(); labMoney.Text = oBll.GetMoneyByOrderId(orderId).ToString(); //显示消费金额 lblMoney.Text = labMoney.Text; //结账的金额 }
public void SetText(object sender, EventArgs e) { MyEventArgs mea_jiezhang = e as MyEventArgs; DeskInfo dk = mea_jiezhang.Obj as DeskInfo; this.dkId = dk.DeskId; labDeskName.Text = dk.DeskName; OrderInfoBll obll = new OrderInfoBll(); int orderId = obll.GetOrderIdByDeskId(this.dkId); labOrderId.Text = orderId.ToString(); decimal money = obll.GetMoney(orderId); labMoney.Text = money.ToString(); lblMoney.Text = money.ToString(); }
private void btnAccounts_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(txtMoney.Text)) { MessageBox.Show("想吃霸王餐做你的美梦去吧"); return; } if (Convert.ToDecimal(txtMoney.Text) < Convert.ToDecimal(lblMoney.Text)) { MessageBox.Show("这点钱只能买个茶叶蛋"); return; } //餐桌状态改变 DeskInfoBll dbll = new DeskInfoBll(); bool dkFlag = dbll.UpdateDeskStateByDeskId(this.dkId, 0); OrderInfo order = new OrderInfo(); if (cmbMemmber.SelectedIndex != 0) { MemmberInfo mem = cmbMemmber.SelectedItem as MemmberInfo; order.OrderMemId = mem.MemmberId; //会员的id order.DisCount = mem.MemDiscount; //折扣 //会员的余额. decimal money = Convert.ToDecimal(mem.MemMoney) - Convert.ToDecimal(lblMoney.Text); //判断给你们了 //更新会员卡内的钱 MemmberInfoBll memBll = new MemmberInfoBll(); bool memFlag = memBll.UpdateMoneyByMemId(mem.MemmberId, money); } //订单的状态改变,钱,会员的id,折扣 order.EndTime = System.DateTime.Now;//结束时间 order.OrderId = Convert.ToInt32(labOrderId.Text); order.OrderMoney = Convert.ToDecimal(lblMoney.Text); OrderInfoBll obll = new OrderInfoBll(); bool oFlag = obll.UpdateOrderInfoMoney(order); if (dkFlag && oFlag) { MessageBox.Show("结账成功"); } else { MessageBox.Show("失败"); } }
private void MoneyMenu_Click(object sender, EventArgs e) { var listView = tabControl1.SelectedTab.Controls[0] as ListView; try { var lvTable = listView.SelectedItems[0]; if (lvTable.ImageIndex == 0) { MessageBox.Show("餐桌还未使用,无法结账"); return; } OrderInfoBll bll = new OrderInfoBll(); int tableId = Convert.ToInt32(lvTable.Tag); int orderId = bll.GetOrderIdByTableId(tableId); #region 显示结账界面 TabPage tabPage = new TabPage(); tabPage.Text = "结账付款"; tabPage.Name = "page5"; if (!IsInto(tabPage.Name)) { FormOrderPay page = new FormOrderPay(); //注册关闭事件 page.close += Close; page.Refresh += LoadHallInfo; page.Name = "formpage"; page.TopLevel = false; page.FormBorderStyle = FormBorderStyle.None; tabPage.Controls.Add(page); page.Tag = orderId; page.Show(); tabControl1.TabPages.Add(tabPage); } //选中该选项卡 this.tabControl1.SelectedTab = tabControl1.TabPages["page5"]; #endregion } catch { MessageBox.Show("请选择要结账的厅包"); } }
//结账 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 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 LvTableInfo_DoubleClick_New_Order(object sender, EventArgs e) { //Get the number of table var lvl = sender as ListView; int tableId = Convert.ToInt32(lvl.SelectedItems[0].Tag); //Insert a new order item in orderinfo table //Update the status of table as occupied OrderInfoBll oiBll = new OrderInfoBll(); oiBll.NewOrder(tableId); //Update the table image lvl.SelectedItems[0].ImageIndex = 1; //Insert order info to OrderInfo table //Update the status of the table }
private void Lv_DoubleClick(object sender, EventArgs e) { ListView lv = sender as ListView; ListViewItem lvi = lv.SelectedItems[0]; //获取餐桌ID int TId = Convert.ToInt32(lvi.Tag); OrderInfoBll oiBll = new OrderInfoBll(); OrderInfoFrm oiFrm = new OrderInfoFrm(); if (lvi.ImageIndex == 0) { //添加订单数据并获取订单ID int OId = oiBll.KaiDan(TId); oiFrm.Tag = OId; lvi.ImageIndex = 1; } else { oiFrm.Tag = oiBll.GetOidByTableId(TId); } oiFrm.Show(); }
private void menuOrder_Click(object sender, EventArgs e) { OrderInfoBll oiBll = new OrderInfoBll(); //先找到选中的标签页,再找到listView,再找到选中的项,项中存储了餐桌编号,由餐桌编号查到订单编号 var listView = tabHallInfo.SelectedTab.Controls[0] as ListView; var lvTable = listView.SelectedItems[0]; if (lvTable.ImageIndex == 0) { MessageBox.Show("餐桌还未使用,无法结账"); return; } int tableId = Convert.ToInt32(lvTable.Tag); int orderId = oiBll.GetOidByTableId(tableId); //打开付款窗体 OrderPayFrm formOrderPay = new OrderPayFrm(); formOrderPay.Tag = orderId; formOrderPay.Refresh += LoadHallInfo; formOrderPay.Show(); }
private void ListView_DoubleClick(object sender, EventArgs e) { ListView listView = sender as ListView; ListViewItem listViewItem = listView.SelectedItems[0]; int tId = Convert.ToInt32(listViewItem.Tag); OrderInfoBll oiBll = new OrderInfoBll(); if (listViewItem.ImageIndex == 0) { if (oiBll.KaiDan(tId)) { listViewItem.ImageIndex = 1; } } else { } OrderInfoList oiList = new OrderInfoList(); oiList.Tag = tId; oiList.Show(); }
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; } }
private void menuOrder_Click(object sender, EventArgs e) { //现在到选中的标签页,在找到listview,找到选中的项,相中存储了餐桌编号,由餐桌编号查找到订单编号 OrderInfoBll oiBll = new OrderInfoBll(); ListView listview = tcHallInfo.SelectedTab.Controls[0] as ListView; var lvtable = listview.SelectedItems[0]; if (lvtable.ImageIndex == 0) { MessageBox.Show("餐桌还未使用,无法结账."); return; } int tableId = Convert.ToInt32(listview.SelectedItems[0].Tag); int orderId = oiBll.GetOrderIdByTableTid(tableId); FormOrderPay formOrderPay = new FormOrderPay(); formOrderPay.Tag = orderId; formOrderPay.Refresh += LoadHallInfo; formOrderPay.ShowDialog(); }
private void ListView_DoubleClick(object sender, EventArgs e) { var listView = sender as ListView; var item = listView.SelectedItems[0]; var tableId = Convert.ToInt32(item.Tag); //0状态为空闲 开单 //1状态为非空闲 加菜 if (item.ImageIndex == 0) { //更改餐桌显示状态 item.ImageIndex = 1; var oiBll = new OrderInfoBll(); oiBll.KaiDan(tableId); } //显示界面 var oiList = FormFactory.CreateOrderInfoList(); oiList.Tag = tableId; oiList.Show(); oiList.Focus(); }
private void btnXls_Click(object sender, EventArgs e) { ////因为这个数据导出可能出现意外,并且导出时间可能比较长,所以决定开一个线程去做 //开了线程之后发现无法弹出保存路径对话框,无奈,于是放弃 //Control.CheckForIllegalCrossThreadCalls = false; //Thread thOutputXls = new Thread(OutputXls); //thOutputXls.IsBackground = false; //thOutputXls.Start(); DialogResult result = MessageBox.Show("点击【确定】将把会员数据,菜品数据导出为xls表格!", "数据导出提示!", MessageBoxButtons.OKCancel); if (result == DialogResult.OK) { #region 弹出保存窗口对话框,选择保存路径,创建工作本 /*******************************************************/ /*******************************************************/ /*******************************************************/ //弹出保存对话框 SaveFileDialog sfd = new SaveFileDialog(); sfd.Title = "请选择要保存的路径,默认为桌面"; sfd.InitialDirectory = @"C:\Users\Administrator\Desktop"; sfd.Filter = "xls表格文件|*.xls|所有文件|*.*"; sfd.ShowDialog(); //获得保存文件的路径 string path = sfd.FileName; if (path == "")//打开了对话框,但是没有选择地址 { return; } //创建工作本 HSSFWorkbook workbook = new HSSFWorkbook(); //如果用户选择了保存路径,则开始进行保存操作 #endregion #region 表格样式操作 //导出:将数据库中的数据,存储到一个excel中 //2、生成excel //生成workbook //生成sheet //遍历集合,生成行。(一个对象就是一行) //根据对象生成单元格,一个属性对应一个单元格 //样式表 /*****************************************************************************/ /******************表格样式操作*********************************************/ /*****************************************************************************/ /************/ //表头标题样式操作(水平垂直居中,黄色背景,字体颜色黑色,微软雅黑加粗,字体大小18) /*************/ var styleTitle = workbook.CreateCellStyle(); //style.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Left;//左对齐 //style.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Right;//右对齐 styleTitle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center;//居中 //垂直居中 styleTitle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; // //字体样式设置 HSSFFont fontTitle = (HSSFFont)workbook.CreateFont(); fontTitle.FontName = "微软雅黑"; //字体 fontTitle.FontHeightInPoints = 18; //字号 fontTitle.Color = HSSFColor.Red.Index; //颜色 红色 fontTitle.IsBold = true; //加粗 // font.Underline = NPOI.SS.UserModel.FontUnderlineType.Double;//下划线 // font.IsStrikeout = true;//删除线 // font.IsItalic = true;//斜体 //将字体样式加入表头样式中 styleTitle.SetFont(fontTitle); //背景色设置 //styleTitle.FillBackgroundColor = HSSFColor.Yellow.Index;//背景色 styleTitle.FillForegroundColor = HSSFColor.Yellow.Index; //前景色 styleTitle.FillPattern = NPOI.SS.UserModel.FillPattern.SolidForeground; //填充方式 AltBars /****************/ //表格列头样式操作 /****************/ //表格列头样式操作(水平垂直居中,蓝色背景,字体颜色白色,黑体,字体大小16) var styleHeader = workbook.CreateCellStyle(); styleHeader.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; //水平居中 styleHeader.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; //垂直居中 styleHeader.FillForegroundColor = HSSFColor.Blue.Index; //前景色 styleHeader.FillPattern = NPOI.SS.UserModel.FillPattern.SolidForeground; //填充方式 AltBars HSSFFont fontHeader = (HSSFFont)workbook.CreateFont(); fontHeader.FontName = "黑体"; //字体 fontHeader.FontHeightInPoints = 12; //字号 fontHeader.Color = HSSFColor.White.Index; //颜色 fontHeader.IsBold = true; //加粗 styleHeader.SetFont(fontHeader); /*****************/ /****************/ /*****************/ //*表脚样式*// /*****************/ var styleFoot = workbook.CreateCellStyle(); styleFoot.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; //水平居中 styleFoot.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; //垂直居中 styleFoot.FillForegroundColor = HSSFColor.Blue.Index; //前景色 styleFoot.FillPattern = NPOI.SS.UserModel.FillPattern.SolidForeground; //填充方式 AltBars HSSFFont fontFoot = (HSSFFont)workbook.CreateFont(); fontFoot.FontName = "黑体"; //字体 fontFoot.FontHeightInPoints = 10; //字号 fontFoot.Color = HSSFColor.White.Index; //颜色 fontFoot.IsBold = true; //加粗 styleFoot.SetFont(fontFoot); /*****************/ /****************/ /*****************/ //*表格正文样式*// /*****************/ var styleBody = workbook.CreateCellStyle(); styleBody.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; //水平居中 styleBody.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; //垂直居中 HSSFFont fontBody = (HSSFFont)workbook.CreateFont(); fontBody.FontName = "宋体"; //字体 fontBody.FontHeightInPoints = 12; //字号 fontBody.Color = HSSFColor.Black.Index; //颜色 fontBody.IsBold = true; //加粗 styleBody.SetFont(fontBody); /*****************/ /****************/ /******************************************************************************/ /***************************表格样式操作***************************************/ /*****************************************************************************/ #endregion #region 会员信息表存储 /***********************创建工作表,在一个工作本里面可以有多张表*************************/ /******************************************************************************************************************************************/ /******************************************************************************************************************************************/ /******************************************************************************************************************************************/ /*********************************************/ /**************会员信息表*********************/ /*********************************************/ //1、查询数据 //保存会员信息表 MemberInfoBll meiBll = new MemberInfoBll(); MemberInfo mei = new MemberInfo(); var listMemberInfo = meiBll.GetList(mei); //创建工作表 //NPOI.SS.UserModel.ISheet sheet = workbook.CreateSheet("管理员"); ISheet sheet = workbook.CreateSheet("会员信息表"); //创建标题行 IRow row = sheet.CreateRow(0); //合并单元格 sheet.AddMergedRegion(new CellRangeAddress(0, 0, 0, 5)); ICell cellTitle = row.CreateCell(0); cellTitle.SetCellValue("会员信息记录表"); row.HeightInPoints = 22;//表头标题行高 //应用样式 cellTitle.CellStyle = styleTitle; //创建列名称 IRow row1 = sheet.CreateRow(1); row1.HeightInPoints = 20;//表列头行高 //创建单元格 //设置名称 //应用样式 //设置列的宽度 //SetColumnWidth()方法有两个参数,第一个是列的索引,从0开始。注意第二个参数,是以1/256为单位。 ICell cellId = row1.CreateCell(0); cellId.SetCellValue("编号"); cellId.CellStyle = styleHeader; sheet.SetColumnWidth(0, 10 * 256); ICell cellName = row1.CreateCell(1); cellName.SetCellValue("会员名称"); cellName.CellStyle = styleHeader; sheet.SetColumnWidth(1, 20 * 256); ICell cellPhone = row1.CreateCell(2); cellPhone.SetCellValue("会员手机号"); cellPhone.CellStyle = styleHeader; sheet.SetColumnWidth(2, 25 * 256); ICell cellMoney = row1.CreateCell(3); cellMoney.SetCellValue("会员余额"); cellMoney.CellStyle = styleHeader; sheet.SetColumnWidth(3, 18 * 256); ICell cellType = row1.CreateCell(4); cellType.SetCellValue("会员类型"); cellType.CellStyle = styleHeader; sheet.SetColumnWidth(4, 20 * 256); ICell cellDiscount = row1.CreateCell(5); cellDiscount.SetCellValue("享受折扣"); cellDiscount.CellStyle = styleHeader; sheet.SetColumnWidth(5, 18 * 256); //遍历集合,生成行 int index = 2;//索引,0,1是表头。所以从2开始。 foreach (var item in listMemberInfo) { //创建下面每行单元格的值 var row2 = sheet.CreateRow(index++); var cell0 = row2.CreateCell(0); cell0.SetCellValue(item.MId); cell0.CellStyle = styleBody; var cell1 = row2.CreateCell(1); cell1.SetCellValue(item.MName); var cell2 = row2.CreateCell(2); cell2.SetCellValue(item.MPhone); var cell3 = row2.CreateCell(3); cell3.SetCellValue(item.MMoney.ToString()); var cell4 = row2.CreateCell(4); cell4.SetCellValue(item.TypeTitle); var cell5 = row2.CreateCell(5); cell5.SetCellValue((item.TypeDiscount * 10).ToString() + "折"); } /**表页脚**/ //创建标题行 IRow row3 = sheet.CreateRow(index); //合并单元格 sheet.AddMergedRegion(new CellRangeAddress(index, index, 0, 5)); ICell cellFoot = row3.CreateCell(0); cellFoot.SetCellValue("欢迎使用!如有建议或需求反馈可以联系梦雨客服QQ:1517680389"); row3.HeightInPoints = 22;//表头标题行高 //应用样式 cellFoot.CellStyle = styleFoot; /**********/ /*********************************************/ /**************会员信息表*********************/ /*********************************************/ #endregion #region 菜品信息表储存 /******************************************************************************************************************************************/ /******************************************************************************************************************************************/ /******************************************************************************************************************************************/ /*********************************************/ /**************菜品信息表*********************/ /*********************************************/ //关于菜品信息表,需要显示基本的菜品信息,这里我是想加入每个菜品在一段时间内的点菜频率的 //感觉有了点菜频率统计,还是蛮使用 //只是一直没想出来更好的统计方案,暂时也就没有做,现在就只是单纯的输出吧 //1.查询数据 DishInfoBll diBll = new DishInfoBll(); DishInfo di = new DishInfo(); var listDishInfo = diBll.GetList(di); //2.创建工作表 ISheet sheetDish = workbook.CreateSheet("菜品信息表"); //3.创建标题行 IRow rowDish0 = sheetDish.CreateRow(0); //合并单元格 sheetDish.AddMergedRegion(new CellRangeAddress(0, 0, 0, 3)); ICell cellDishTitle = rowDish0.CreateCell(0); cellDishTitle.SetCellValue("菜品信息记录表"); rowDish0.HeightInPoints = 22;//表头标题行高 //应用样式 cellDishTitle.CellStyle = styleTitle; //4.创建列名称 IRow rowDish1 = sheetDish.CreateRow(1); rowDish1.HeightInPoints = 20;//表列头行高 //创建单元格 //设置名称 //应用样式 //设置列的宽度 //SetColumnWidth()方法有两个参数,第一个是列的索引,从0开始。注意第二个参数,是以1/256为单位。 ICell cellDishId = rowDish1.CreateCell(0); cellDishId.SetCellValue("编号"); cellDishId.CellStyle = styleHeader; sheetDish.SetColumnWidth(0, 10 * 256); ICell cellNameDishTitle = rowDish1.CreateCell(1); cellNameDishTitle.SetCellValue("菜品名称"); cellNameDishTitle.CellStyle = styleHeader; sheetDish.SetColumnWidth(1, 30 * 256); ICell cellDishType = rowDish1.CreateCell(2); cellDishType.SetCellValue("所属菜系"); cellDishType.CellStyle = styleHeader; sheetDish.SetColumnWidth(2, 25 * 256); ICell cellDishPrice = rowDish1.CreateCell(3); cellDishPrice.SetCellValue("菜品单价"); cellDishPrice.CellStyle = styleHeader; sheetDish.SetColumnWidth(3, 18 * 256); //遍历集合,生成行 int indexDish = 2;//索引,0,1是表头。所以从2开始。 foreach (var item in listDishInfo) { //创建下面每行单元格的值 var rowDish2 = sheetDish.CreateRow(indexDish++); var cell0 = rowDish2.CreateCell(0); cell0.SetCellValue(item.DId); cell0.CellStyle = styleBody; var cell1 = rowDish2.CreateCell(1); cell1.SetCellValue(item.DTitle); var cell2 = rowDish2.CreateCell(2); cell2.SetCellValue(item.TypeTitle); var cell3 = rowDish2.CreateCell(3); cell3.SetCellValue(item.DPrice.ToString() + "元"); } /**表页脚**/ //创建标题行 IRow rowDish3 = sheetDish.CreateRow(indexDish); //合并单元格 sheetDish.AddMergedRegion(new CellRangeAddress(indexDish, indexDish, 0, 3)); ICell cellDishFoot = rowDish3.CreateCell(0); cellDishFoot.SetCellValue("欢迎使用!如有建议或需求反馈可以联系梦雨客服QQ:1517680389"); rowDish3.HeightInPoints = 22;//表头标题行高 //应用样式 cellDishFoot.CellStyle = styleFoot; /*********************************************/ /**************菜品信息表*********************/ /*********************************************/ #endregion #region 点菜记录表存储 /******************************************************************************************************************************************/ /******************************************************************************************************************************************/ /******************************************************************************************************************************************/ /*********************************************/ /**************点菜记录表*********************/ /*********************************************/ //这个主要是用来存储点菜记录的,我觉得每个酒店都应该记录一下,加入发生食品中毒等意外事件,可以查一查,做个参考啥的 //然后也能看出每天生意的大概情况,因为我自己的交接班功能,还没有一个整体方案,所以这个表还是可以参考的 //另外需要注意的是,如果客户先点击了缓存清理,那么只能可能就没有数据了。缓存清理会把所有已经付钱的订单全部删除。 //所以需要在缓存清理按钮上增加窗口弹出提示! //1.查询数据 OrderInfoBll oiBll = new OrderInfoBll(); var listOrderInfo = oiBll.GetOrderInfo(); //2.创建工作表 ISheet sheetOrder = workbook.CreateSheet("下单信息表"); //3.创建标题行 IRow rowOrder0 = sheetOrder.CreateRow(0); //合并单元格 sheetOrder.AddMergedRegion(new CellRangeAddress(0, 0, 0, 4)); ICell cellOrderTitle = rowOrder0.CreateCell(0); cellOrderTitle.SetCellValue("点菜下单信息记录表"); rowOrder0.HeightInPoints = 22;//表头标题行高 //应用样式 cellOrderTitle.CellStyle = styleTitle; //4.创建列名称 IRow rowOrder1 = sheetOrder.CreateRow(1); rowOrder1.HeightInPoints = 20;//表列头行高 //创建单元格 //设置名称 //应用样式 //设置列的宽度 //SetColumnWidth()方法有两个参数,第一个是列的索引,从0开始。注意第二个参数,是以1/256为单位。 ICell cellOrderId = rowOrder1.CreateCell(0); cellOrderId.SetCellValue("编号"); cellOrderId.CellStyle = styleHeader; sheetOrder.SetColumnWidth(0, 10 * 256); ICell cellOrderDate = rowOrder1.CreateCell(1); cellOrderDate.SetCellValue("下单时间"); cellOrderDate.CellStyle = styleHeader; sheetOrder.SetColumnWidth(1, 30 * 256); ICell cellOrderMember = rowOrder1.CreateCell(2); cellOrderMember.SetCellValue("会员姓名"); cellOrderMember.CellStyle = styleHeader; sheetOrder.SetColumnWidth(2, 15 * 256); ICell cellOrderPhone = rowOrder1.CreateCell(3); cellOrderPhone.SetCellValue("会员手机号"); cellOrderPhone.CellStyle = styleHeader; sheetOrder.SetColumnWidth(3, 25 * 256); ICell cellOrderMoney = rowOrder1.CreateCell(4); cellOrderMoney.SetCellValue("菜单总金额"); cellOrderMoney.CellStyle = styleHeader; sheetOrder.SetColumnWidth(4, 15 * 256); //遍历集合,生成行 int indexOrder = 2;//索引,0,1是表头。所以从2开始。 foreach (var item in listOrderInfo) { //创建下面每行单元格的值 var rowOrder2 = sheetOrder.CreateRow(indexOrder++); var cell0 = rowOrder2.CreateCell(0); cell0.SetCellValue(item.OId); cell0.CellStyle = styleBody; var cell1 = rowOrder2.CreateCell(1); cell1.SetCellValue(item.ODate.ToString()); var cell2 = rowOrder2.CreateCell(2); cell2.SetCellValue(item.MemberName); var cell3 = rowOrder2.CreateCell(3); cell3.SetCellValue(item.MemberPhone); var cell4 = rowOrder2.CreateCell(4); cell4.SetCellValue(item.OMoney.ToString() + "元"); } /**表页脚**/ //创建标题行 IRow rowOrder3 = sheetOrder.CreateRow(indexOrder); //合并单元格 sheetOrder.AddMergedRegion(new CellRangeAddress(indexOrder, indexOrder, 0, 4)); ICell cellOrderFoot = rowOrder3.CreateCell(0); cellOrderFoot.SetCellValue("欢迎使用!如有建议或需求反馈可以联系梦雨客服QQ:1517680389"); rowOrder3.HeightInPoints = 22;//表头标题行高 //应用样式 cellOrderFoot.CellStyle = styleFoot; /*********************************************/ /**************点菜记录表*********************/ /*********************************************/ /******************************************************************************************************************************************/ /******************************************************************************************************************************************/ /******************************************************************************************************************************************/ #endregion #region 写入文件保存 //是否成功标志 bool flag = false; try { FileStream file = new FileStream(path, FileMode.Create, FileAccess.Write); workbook.Write(file); file.Dispose();//使用完要释放资源,或者使用using(){} flag = true; } catch { MessageBox.Show("保存出错!\n请关闭其他xls文件,再重试!"); flag = false; } /*******************************************************/ if (flag) { //操作完成,导出成功提示 MessageBox.Show("数据导出成功!导出路径如下:\n" + path + "\n敬请及时查收!"); } #endregion } }
//窗体关闭的时候更新消费总金额到订单表 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); //上面就没有必要显示什么消息了。 } }
public FrmOrderPay() { InitializeComponent(); oiBll = new OrderInfoBll(); }