public List <string> SelectIDList = new List <string>();//将被选中的桌子的消费ID存放进集合 //桌子点击事件 public void btntalbe_MouseDown(object sender, MouseEventArgs e) { PassValue.count_select_ordering = 0; DeskControl.DeskControl dc = (DeskControl.DeskControl)sender; if (e.Button == MouseButtons.Left) { if (!dc.picCheck.Visible) { dc.picCheck.Visible = true; if (!SelectIDList.Contains(dc.lbTableID.Text)) { SelectIDList.Add(dc.lbTableID.Text);//添加的时候,如果不包含才能添加 PassValue.count_select_ordering += 1; } } else { dc.picCheck.Visible = false; if (SelectIDList.Contains(dc.lbTableID.Text)) { SelectIDList.Remove(dc.lbTableID.Text);//删除的时候,只有包含才能删除 PassValue.count_select_ordering -= 1; } } } }
private void Btn_Find_Click(object sender, EventArgs e) { int n = this.Width;//总宽度 DeskControl.DeskControl dcdc2 = new DeskControl.DeskControl(); int w = dcdc2.Width; //控件宽度 int h = dcdc2.Height; //控件高度 int item = w / 5; //控件间距 int item2 = h / 5; int t = (n - item) / (w + item); //控件个数 int y = n - (item + w) * t; //右边间距 this.panelTables.Controls.Clear(); TableidList.Clear(); PeopleList.Clear(); SizeList.Clear(); SubtotalList.Clear(); SelectIDList.Clear(); if (string.IsNullOrEmpty(this.Txt_Find.Text)) { AddTable(); } else { List <Table> personsTable = httpReq.HttpGet <List <Table> >("tables"); List <Status> personsStatus = httpReq.HttpGet <List <Status> >("statuses"); for (int i = 0; i < personsStatus.Count(); i++) { if (personsStatus[i].table.name.Equals(this.Txt_Find.Text) && personsStatus[i].consumption == null && personsStatus[i].state == "idle") { TableidList.Add(personsStatus[i].table.id); //桌子ID SizeList.Add(personsStatus[i].table.size.ToString()); //大小 } } if (TableidList.Count() != 0)//判断是否有空的桌子,如果有的情况 { for (int j = 0; j < TableidList.Count(); j++) { DeskControl.DeskControl dc = new DeskControl.DeskControl(); dc.Location = new System.Drawing.Point(item + (y - item) / 2 + (item + w) * (j % t), item2 * 2 + (item2 + h) * (j / t)); //桌子控件坐标位置[动态坐标] this.panelTables.Controls.Add(dc); //tab里面添加构造好的桌子 dc.MouseDown += new MouseEventHandler(btntalbe_MouseDown); //桌子的点击触发事件 for (int c = 0; c < personsTable.Count(); c++) { if (personsTable[c].id == TableidList[j]) { dc.lbName.Text = personsTable[c].name; //桌子名 dc.lbNumber.Text = personsTable[c].room.name; //包间名 dc.lbTableID.Text = personsTable[c].id; //桌子ID dc.lbPeople.Text = "人数:0/" + SizeList[j] + " ¥" + "0.00"; dc.picDesk.Image = Properties.Resources.idle; dc.lbStatus.Text = "idle"; } } } } else { MessageBox.Show("您输入的桌号不存在或未消费!"); } } }
public void AddTable() { int n = this.Width;//总宽度 DeskControl.DeskControl dcdc2 = new DeskControl.DeskControl(); int w = dcdc2.Width; //控件宽度 int h = dcdc2.Height; //控件高度 int item = w / 5; //控件间距 int item2 = h / 5; int t = (n - item) / (w + item); //控件个数 int y = n - (item + w) * t; //右边间距 TableidList.Clear(); PeopleList.Clear(); SizeList.Clear(); SubtotalList.Clear(); List <Table> personsTable = httpReq.HttpGet <List <Table> >("tables"); List <Status> personsStatus = httpReq.HttpGet <List <Status> >("statuses"); for (int i = 0; i < personsStatus.Count(); i++) { if (personsStatus[i].consumption != null && personsStatus[i].consumption.id != PassValue.consumptionid && personsStatus[i].state == "dining") { //判断是否是合并单,如果是合并单的话就直接 if (personsStatus[i].consumption.merge != null) { continue; } TableidList.Add(personsStatus[i].table.id); //桌子ID ConsumptionList.Add(personsStatus[i].consumption.id); //消费ID PeopleList.Add(personsStatus[i].consumption.people); //人数 SizeList.Add(personsStatus[i].table.size.ToString()); //大小 SubtotalList.Add(personsStatus[i].consumption.subtotal); //总价 } } if (TableidList.Count() != 0)//判断是否有消费的桌子,如果有的情况 { for (int j = 0; j < TableidList.Count(); j++) { DeskControl.DeskControl dc = new DeskControl.DeskControl(); dc.Location = new System.Drawing.Point(item + (y - item) / 2 + (item + w) * (j % t), item2 * 2 + (item2 + h) * (j / t)); //桌子控件坐标位置[动态坐标] this.panelTables.Controls.Add(dc); //tab里面添加构造好的桌子 dc.MouseDown += new MouseEventHandler(btntalbe_MouseDown); //桌子的点击触发事件 dc.lbConsumption.Text = ConsumptionList[j]; //消费ID for (int c = 0; c < personsTable.Count(); c++) { if (personsTable[c].id == TableidList[j]) { dc.lbName.Text = personsTable[c].name; //桌子名 dc.lbNumber.Text = personsTable[c].room.name; //包间名 dc.lbTableID.Text = personsTable[c].id; //桌子ID dc.lbPeople.Text = PeopleList[j].ToString() + "/" + SizeList[j] + " ¥" + SubtotalList[j]; dc.picDesk.Image = Properties.Resources.dining; dc.lbStatus.Text = "dining"; } } } } }
public void AddTable() { int n = this.Width;//总宽度 DeskControl.DeskControl dcdc2 = new DeskControl.DeskControl(); int w = dcdc2.Width;//控件宽度 int h = dcdc2.Height;//控件高度 int item = w / 5;//控件间距 int item2 = h / 5; int t = (n - item) / (w + item);//控件个数 int y = n - (item + w) * t;//右边间距 TableidList.Clear(); PeopleList.Clear(); SizeList.Clear(); SubtotalList.Clear(); List<Table> personsTable = httpReq.HttpGet<List<Table>>("tables"); List<Status> personsStatus = httpReq.HttpGet<List<Status>>("statuses"); for (int i = 0; i < personsStatus.Count(); i++) { if (personsStatus[i].consumption != null && personsStatus[i].consumption.id != PassValue.consumptionid && personsStatus[i].state == "dining") { //判断是否是合并单,如果是合并单的话就直接 if (personsStatus[i].consumption.merge != null) { continue; } TableidList.Add(personsStatus[i].table.id);//桌子ID ConsumptionList.Add(personsStatus[i].consumption.id);//消费ID PeopleList.Add(personsStatus[i].consumption.people);//人数 SizeList.Add(personsStatus[i].table.size.ToString());//大小 SubtotalList.Add(personsStatus[i].consumption.subtotal);//总价 } } if (TableidList.Count() != 0)//判断是否有消费的桌子,如果有的情况 { for (int j = 0; j < TableidList.Count(); j++) { DeskControl.DeskControl dc = new DeskControl.DeskControl(); dc.Location = new System.Drawing.Point(item + (y - item) / 2 + (item + w) * (j % t), item2 * 2 + (item2 + h) * (j / t));//桌子控件坐标位置[动态坐标] this.panelTables.Controls.Add(dc);//tab里面添加构造好的桌子 dc.MouseDown += new MouseEventHandler(btntalbe_MouseDown);//桌子的点击触发事件 dc.lbConsumption.Text = ConsumptionList[j];//消费ID for (int c = 0; c < personsTable.Count(); c++) { if (personsTable[c].id == TableidList[j]) { dc.lbName.Text = personsTable[c].name;//桌子名 dc.lbNumber.Text = personsTable[c].room.name;//包间名 dc.lbTableID.Text = personsTable[c].id;//桌子ID dc.lbPeople.Text = PeopleList[j].ToString() + "/" + SizeList[j] + " ¥" + SubtotalList[j]; dc.picDesk.Image = Properties.Resources.dining; dc.lbStatus.Text = "dining"; } } } } }
public void ChooseDesk() { string status = ""; foreach (Control ctl in this.panelDesk.Controls) { if (ctl is DeskControl.DeskControl) { DeskControl.DeskControl dcdc = (DeskControl.DeskControl)ctl; if (dcdc.picCheck.Visible == true) { status = dcdc.lbStatus.Text; break; } } } if (string.IsNullOrEmpty(status)) { this.BtnOpenTables.Enabled = this.BtnOrder.Enabled = this.BtnCheckout.Enabled = false; //先初始化 this.BtnOpenTables.Image = Properties.Resources.开台13; //不可以开台 this.BtnOrder.Image = Properties.Resources.点菜13; //不可以点菜 this.BtnCheckout.Image = Properties.Resources.结账13; //不可以结账 } else { this.BtnOpenTables.Enabled = this.BtnOrder.Enabled = this.BtnCheckout.Enabled = true;//先初始化 switch (status) { case "idle": this.BtnOpenTables.Image = Properties.Resources.开台11; //可以开台 this.BtnOrder.Image = Properties.Resources.点菜13; //不可以点菜 this.BtnCheckout.Image = Properties.Resources.结账13; //不可以结账 this.BtnOrder.Enabled = this.BtnCheckout.Enabled = false; //设置是否可用 break; case "ordering": this.BtnOpenTables.Image = Properties.Resources.开台13; //不可以开台 this.BtnOrder.Image = Properties.Resources.点菜11; //可以点菜 this.BtnCheckout.Image = Properties.Resources.结账13; //不可以结账 this.BtnOpenTables.Enabled = this.BtnCheckout.Enabled = false; //设置是否可用 break; case "dining": this.BtnOpenTables.Image = Properties.Resources.开台13; //不可以开台 this.BtnOrder.Image = Properties.Resources.点菜11; //可以点菜 this.BtnCheckout.Image = Properties.Resources.结账11; //可以结账 this.BtnOpenTables.Enabled = false; //设置是否可用 break; } } }
/// <summary> /// 单独开台操作 /// </summary> private void BtnOpenTables_Click(object sender, EventArgs e) { PassValue.count_select_idle = 0; PassValue.selectedtableid.Clear(); if (CurrentChooseDesk.Count > 0) { foreach (Control ct in this.panelDesk.Controls) { if (ct is DeskControl.DeskControl) { DeskControl.DeskControl dc = (DeskControl.DeskControl)ct; if (CurrentChooseDesk.Keys.Contains(dc.lbTableID.Text) && dc.lbStatus.Text == "idle") { PassValue.count_select_idle = CurrentChooseDesk.Count; PassValue.selectedtableid.Add(dc.lbTableID.Text); } } } } if (PassValue.count_select_idle > 0) { if (string.IsNullOrEmpty(PassValue.consumptionid)) { PassValue.desk = PassValue.selectedtableid.ToArray();//将集合转换为string数组 OpenTables ot = new OpenTables(); ot.Owner = this; ot.ShowDialog(); } else { Messagebox mb = new Messagebox(); PassValue.MessageInfor = "请选择空桌!"; mb.Show(); } } else { Messagebox mb = new Messagebox(); PassValue.MessageInfor = "请选择空桌!"; mb.Show(); } //选中默认 ChooseCurrent(); }
//桌子的点击事件 public void btntalbe_MouseDown(object sender, MouseEventArgs e) { DeskControl.DeskControl dc = (DeskControl.DeskControl)sender; consumptionsid = dc.Tag.ToString(); if (e.Button == MouseButtons.Left) { if (dc.picCheck.Visible == false) { foreach (Control ctl in this.panelTables.Controls) { if (ctl is DeskControl.DeskControl) { DeskControl.DeskControl dcdc = (DeskControl.DeskControl)ctl; if (ctl.Tag.ToString() == consumptionsid && ctl.Tag != null) { dcdc.picCheck.Visible = true; //PassValue.count_select_ordering += 1; } } } if (SelectIDList.Contains(dc.lbConsumption.Text) == false) { SelectIDList.Add(dc.lbConsumption.Text);//添加的时候,如果不包含才能添加 } } else { foreach (Control ctl in this.panelTables.Controls) { if (ctl is DeskControl.DeskControl) { DeskControl.DeskControl dcdc = (DeskControl.DeskControl)ctl; if (ctl.Tag.ToString() == consumptionsid && ctl.Tag != null) { dcdc.picCheck.Visible = false; //PassValue.count_select_ordering -= 1; } } } if (SelectIDList.Contains(dc.lbConsumption.Text) == true) { SelectIDList.Remove(dc.lbConsumption.Text);//删除的时候,只有包含才能删除 } } } }
/// <summary> /// 结账按钮 /// </summary> private void BtnCheckout_Click(object sender, EventArgs e) { bool choosedesk = false; foreach (Control ctl in this.panelDesk.Controls) { if (ctl is DeskControl.DeskControl) { DeskControl.DeskControl dcdc = (DeskControl.DeskControl)ctl; if (dcdc.lbStatus.Text == "dining" && dcdc.picCheck.Visible == true) { choosedesk = true; } } } if (choosedesk) { Member mb = new Member(PassValue.consumptionid); mb.Owner = this; mb.ShowDialog(); } }
public List <string> RestTableIDList = new List <string>();//将剩余的的桌子的桌子ID存放进集合 //桌子的点击事件 public void btntalbe_MouseDown(object sender, MouseEventArgs e) { DeskControl.DeskControl dc = (DeskControl.DeskControl)sender; if (e.Button == MouseButtons.Left) { if (!dc.picCheck.Visible) //未被选中的情况 { dc.picCheck.Visible = true; //选中 if (RestTableIDList.Contains(dc.lbTableID.Text)) { RestTableIDList.Remove(dc.lbTableID.Text); } } else//选中的情况 { dc.picCheck.Visible = false;//取消选中 if (!RestTableIDList.Contains(dc.lbTableID.Text)) { RestTableIDList.Add(dc.lbTableID.Text); } } } }
public List <string> SelectIDList = new List <string>();//将被选中的桌子的消费ID存放进集合 //桌子的点击事件 public void btntalbe_MouseDown(object sender, MouseEventArgs e) { DeskControl.DeskControl dc = (DeskControl.DeskControl)sender; if (e.Button == MouseButtons.Left) { if (!dc.picCheck.Visible) { dc.picCheck.Visible = true; if (!SelectIDList.Contains(dc.lbConsumption.Text)) { SelectIDList.Add(dc.lbConsumption.Text);//添加的时候,如果不包含才能添加 } } else { dc.picCheck.Visible = false; if (SelectIDList.Contains(dc.lbConsumption.Text)) { SelectIDList.Remove(dc.lbConsumption.Text);//删除的时候,只有包含才能删除 } } } }
//提交 private void Btn_Enter_Click(object sender, EventArgs e) { if (SelectIDList.Count > 0) { Desk d; d = (Desk)this.Owner; d.CurrentChooseDesk.Clear(); //添加桌子 foreach (Control ctl in this.panelTables.Controls) { if (ctl is DeskControl.DeskControl) { DeskControl.DeskControl dc = (DeskControl.DeskControl)ctl; if (dc.picCheck.Visible) { d.CurrentChooseDesk.Add(dc.lbTableID.Text, string.Format("{0}({1})", dc.lbName.Text, dc.lbNumber.Text)); } } } Consumption cp = new Consumption(); cp.id = this.Txt_ID.Text; cp.tables = new Table[SelectIDList.Count()]; cp.people = people; int i = 0; foreach (string id in SelectIDList) { Table table = new Table(); table.id = id; cp.tables[i++] = table; } HttpResult httpResult = httpReq.HttpPatch(string.Format("consumptions/{0}", cp.id), cp); if ((int)httpResult.StatusCode == 409) { MessageBox.Show("选择的桌子已被操作,请选择其他!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); AddTable(); return; } else if ((int)httpResult.StatusCode == 401) { LoginBusiness lg = new LoginBusiness(); lg.LoginAgain(); return; } else if ((int)httpResult.StatusCode == 0) { MessageBox.Show(string.Format("{0}{1}", httpResult.StatusDescription, httpResult.OtherDescription), "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); return; } MessageBox.Show("换台成功!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); d.Refresh_Method(); this.Close(); } else { MessageBox.Show("请先选择桌子!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); } }
//消台操作 private void Btn_Enter_Click(object sender, EventArgs e) { Desk d; d = (Desk)this.Owner; bool choose = false; ArrayList al = new ArrayList(); foreach (Control ctl in this.panelTables.Controls) { if (ctl is DeskControl.DeskControl) { DeskControl.DeskControl dcdc = (DeskControl.DeskControl)ctl; if (dcdc.picCheck.Visible) { choose = true; al.Add(dcdc.lbTableID.Text); } } } if (!choose) { Messagebox mb = new Messagebox(); PassValue.MessageInfor = "还未勾选桌子!"; mb.ShowDialog(); return; } foreach (string item in al) { d.CurrentChooseDesk.Remove(item); } Consumption cp = new Consumption(); cp.id = this.Txt_Master.Text; int count = RestTableIDList.Count(); cp.tables = new Table[count]; for (int i = 0; i < count; i++) { cp.tables[i] = new Table(); cp.tables[i].id = RestTableIDList[i]; } cp.people = PeopleList[0]; HttpResult httpResult; if (cp.tables.Count() == 0) { httpResult = httpReq.HttpDelete(string.Format("consumptions/{0}", PassValue.consumptionid)); } else { httpResult = httpReq.HttpPatch(string.Format("consumptions/{0}", this.Txt_Master.Text), cp); } if ((int)httpResult.StatusCode == 409) { MessageBox.Show("选择的桌子已被操作,将为您刷新!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); AddTable(); return; } else if ((int)httpResult.StatusCode == 401) { LoginBusiness lg = new LoginBusiness(); lg.LoginAgain(); return; } else if ((int)httpResult.StatusCode == 0) { MessageBox.Show(string.Format("{0}{1}", httpResult.StatusDescription, httpResult.OtherDescription), "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); return; } d.Refresh_Method(); this.Close(); PassValue.count_select_idle = 0;//被选中的桌子数量 PassValue.count_select_ordering = cp.tables.Count(); PassValue.selectedtableid.Clear(); d.lbInfor.Text = d.lbInfor.Text.Split('[')[0] + "[空桌]";//餐台名称 //人数 d.lbPeople.Text = "0人"; }
/// <summary> /// 桌子的点击事件 /// </summary> public void btntalbe_MouseDown(object sender, MouseEventArgs e) { DeskControl.DeskControl dc = (DeskControl.DeskControl)sender; consumptionsid = dc.lbConsumption.Text; PassValue.Tableid = ""; //先清空 PassValue.Tablename = ""; //先清空 PassValue.Tableid = dc.lbTableID.Text; var personsConsumption = httpReq.HttpGet <Consumption>(string.Format("consumptions/{0}", consumptionsid)); if (e.Button == MouseButtons.Left) { if (personsConsumption != null) //接受到的不为空 { string time_start = DateTime.Parse(personsConsumption.timestamp).ToString("MM-dd hh:mm"); //解析最后一次更新的时间格式 this.lbTime.Text = time_start.ToString(); //将时间赋值到右侧的信息栏里面去 } else//判断接受到的数据为空的情况 { this.lbTime.Text = ""; //右侧信息栏里面的时间为空 } string value = (string)PassValue.ht[dc.lbTableID.Text]; //从哈希表里面提取出房间号对应的桌子状态信息 //判断是否被选中 if (dc.picCheck.Visible == false) { if (value == "idle") //空桌 { this.dataGridView1.Rows.Clear(); //清空数据表缓存 PassValue.consumptionid = ""; foreach (Control ctl in this.panelDesk.Controls) { if (ctl is DeskControl.DeskControl) { DeskControl.DeskControl dcdc = (DeskControl.DeskControl)ctl; if (dcdc.lbConsumption.Text != "") { dcdc.picCheck.Visible = false; } } } dc.picCheck.Visible = true;//显示被选中 PassValue.count_select_idle += 1; //保存选中的桌子 if (LastIsidle == false) { CurrentChooseDesk.Clear(); CurrentChooseDesk = CurrentChooseDesk; } LastIsidle = true; if (CurrentChooseDesk.Keys.Contains(dc.lbTableID.Text) == false) { CurrentChooseDesk.Add(dc.lbTableID.Text, string.Format("{0}({1})", dc.lbName.Text, dc.lbNumber.Text)); CurrentChooseDesk = CurrentChooseDesk; } this.lbInfor.Text = dc.lbName.Text.ToString() + "(" + dc.lbNumber.Text.ToString() + ")[空闲]"; //餐台名称 this.lbTime.Text = ""; //开台时间 //人数 Match m = Regex.Match(dc.lbPeople.Text, @":([\s\S]*?)/"); if (m.Success) { this.lbPeople.Text = m.Result("$1").ToString() + "人"; } this.lbMoney.Text = ""; //消费金额为空 PassValue.selectedtableid.Add(dc.lbTableID.Text); //集合中添加桌子ID(桌子的唯一性) } else if (value == "ordering") //刚开台正在点菜 { LastIsidle = false; PassValue.count_select_ordering = 0; PassValue.count_select_idle = 0; this.dataGridView1.Rows.Clear(); //清空数据表缓存 consumptionsid = dc.lbConsumption.Text; if (dc.picCheck.Visible == false) //没有选中 { CurrentChooseDesk.Clear(); CurrentChooseDesk = new Dictionary <string, string>(); foreach (Control ctl in this.panelDesk.Controls) { if (ctl is DeskControl.DeskControl) { DeskControl.DeskControl dcdc = (DeskControl.DeskControl)ctl; dcdc.picCheck.Visible = false; PassValue.selectedtableid.Clear();//重新初始化 if (ctl.Tag.ToString() == consumptionsid && ctl.Tag != null) { dcdc.picCheck.Visible = true; PassValue.count_select_ordering += 1; if (CurrentChooseDesk.Keys.Contains(dcdc.lbTableID.Text) == false) { CurrentChooseDesk.Add(dcdc.lbTableID.Text, string.Format("{0}({1})", dcdc.lbName.Text, dcdc.lbNumber.Text)); CurrentChooseDesk = CurrentChooseDesk; } } } } } this.lbInfor.Text = dc.lbName.Text.ToString() + "(" + dc.lbNumber.Text.ToString() + ")[正在点菜]";//餐台名称 //人数 Match m = Regex.Match(dc.lbPeople.Text, @":([\s\S]*?)/"); if (m.Success) { this.lbPeople.Text = m.Result("$1").ToString() + "人"; } this.lbMoney.Text = ""; } else if (value == "dining")//已消费 { LastIsidle = false; PassValue.count_select_idle = 0; if (dc.picCheck.Visible == false)//没有选中 { CurrentChooseDesk.Clear(); CurrentChooseDesk = new Dictionary <string, string>(); foreach (Control ctl in this.panelDesk.Controls) { if (ctl is DeskControl.DeskControl) { DeskControl.DeskControl dcdc = (DeskControl.DeskControl)ctl; dcdc.picCheck.Visible = false; PassValue.selectedtableid.Clear();//重新初始化 if (ctl.Tag.ToString() == consumptionsid && ctl.Tag != null) { dcdc.picCheck.Visible = true; if (CurrentChooseDesk.Keys.Contains(dcdc.lbTableID.Text) == false) { CurrentChooseDesk.Add(dcdc.lbTableID.Text, string.Format("{0}({1})", dcdc.lbName.Text, dcdc.lbNumber.Text)); CurrentChooseDesk = CurrentChooseDesk; } } } } CurrentChooseDesk = CurrentChooseDesk; } this.lbInfor.Text = dc.lbName.Text.ToString() + "(" + dc.lbNumber.Text.ToString() + ")[就餐]";//餐台名称 //人数 int strpeople = dc.lbPeople.Text.IndexOf("/"); this.lbPeople.Text = dc.lbPeople.Text.Substring(0, strpeople).ToString() + "人"; int strmoney = dc.lbPeople.Text.IndexOf("¥"); this.lbMoney.Text = dc.lbPeople.Text.Substring(strmoney, dc.lbPeople.Text.Length - strmoney).ToString(); //对datagridviewx的设计 this.dataGridView1.RowsDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; this.dataGridView1.Rows.Clear();//清空数据表缓存 if (personsConsumption != null) { var lds = from item in personsConsumption.details group item by new { item.item.name, item.price } into g select new { name = g.Key.name, price = g.Key.price, quantity = g.Sum(p => Convert.ToDecimal(p.quantity)) }; foreach (var item in lds) { if (item.quantity > 0) { int index = this.dataGridView1.Rows.Add(); this.dataGridView1.Rows[index].Cells[0].Value = item.name; this.dataGridView1.Rows[index].Cells[1].Value = item.quantity; this.dataGridView1.Rows[index].Cells[2].Value = (decimal.Parse(item.price) * item.quantity).ToString("0.00"); } } this.dataGridView1.ClearSelection();//取消选中 } } this.lbOthers.Text = ""; PassValue.consumptionid = dc.lbConsumption.Text;//将消费ID传值给PassValue里面存储起来 } else//已经被选中的情况下 { //只有桌子的状态在闲置的情况下才能把选中的情况减去一个 if (dc.lbStatus.Text == "idle") { LastIsidle = true; PassValue.count_select_idle -= 1; dc.picCheck.Visible = false; //移除解除选中的桌子 if (CurrentChooseDesk.Keys.Contains(dc.lbTableID.Text)) { CurrentChooseDesk.Remove(dc.lbTableID.Text); CurrentChooseDesk = CurrentChooseDesk; } } else { LastIsidle = false; foreach (Control ctl in this.panelDesk.Controls) { if (ctl is DeskControl.DeskControl) { DeskControl.DeskControl dcdc = (DeskControl.DeskControl)ctl; dcdc.picCheck.Visible = false; PassValue.selectedtableid.Clear();//重新初始化 if (ctl.Tag.ToString() == consumptionsid && ctl.Tag != null) { dcdc.picCheck.Visible = false; PassValue.count_select_ordering -= 1; //移除解除选中的桌子 if (CurrentChooseDesk.Keys.Contains(dcdc.lbTableID.Text)) { CurrentChooseDesk.Remove(dcdc.lbTableID.Text); CurrentChooseDesk = CurrentChooseDesk; } } } } } this.lbInfor.Text = ""; this.lbPeople.Text = ""; this.lbMoney.Text = ""; this.lbOthers.Text = ""; this.lbTime.Text = "";//开台时间 this.dataGridView1.Rows.Clear(); //人数 Match m = Regex.Match(dc.lbPeople.Text, @":([\s\S]*?)/"); if (m.Success) { this.lbPeople.Text = m.Result("$1").ToString() + "人"; } this.lbMoney.Text = ""; //添加消费金额 PassValue.selectedtableid.Remove(dc.lbTableID.Text); //集合中删除桌子ID(桌子的唯一性) PassValue.consumptionid = ""; } } else if (e.Button == MouseButtons.Right)//鼠标右击菜单 { DeskControl.DeskControl dcdc = (DeskControl.DeskControl)sender; if (dcdc.picCheck.Visible == true) { this.contextMenuStripTables.Show(MousePosition);//显示右键菜单 PassValue.consumptionid = dc.lbConsumption.Text; //桌子右键菜单的可用性编辑 if (dc.lbStatus.Text == "idle") //空闲状态 { this.toolStripMenuItem1.Enabled = true; //开台 this.toolStripMenuItem2.Enabled = false; //点菜 this.toolStripMenuItem3.Enabled = true; //预定 this.toolStripMenuItem4.Enabled = false; //清台 this.toolStripMenuItem5.Enabled = false; //合并 } else if (dc.lbStatus.Text == "ordering") //正在点菜 { this.toolStripMenuItem1.Enabled = false; this.toolStripMenuItem2.Enabled = true; this.toolStripMenuItem3.Enabled = false; this.toolStripMenuItem4.Enabled = true; this.toolStripMenuItem5.Enabled = false; } else if (dc.lbStatus.Text == "dining") { this.toolStripMenuItem1.Enabled = false; this.toolStripMenuItem2.Enabled = true; this.toolStripMenuItem3.Enabled = false; this.toolStripMenuItem4.Enabled = false; this.toolStripMenuItem5.Enabled = true; } if (personsConsumption != null && personsConsumption.merge != null) { this.toolStripMenuItem6.Enabled = true;//拆分 } else { this.toolStripMenuItem6.Enabled = false; } //获取当前的桌子状态 var personsStatus = httpReq.HttpGet <List <Status> >("statuses"); if ((dc.lbStatus.Text == "dining" || dc.lbStatus.Text == "ordering") && personsConsumption.merge == null) { this.toolStripMenuItem8.Enabled = true;//改台 } else { this.toolStripMenuItem8.Enabled = false;//改台 } if (string.IsNullOrEmpty(PassValue.consumptionid)) { this.修改人数ToolStripMenuItem.Enabled = false; } else { this.修改人数ToolStripMenuItem.Enabled = true; } } } ChooseDesk(); }
//桌子的构造 public void AddTable() { int n = this.Width;//总宽度 DeskControl.DeskControl dcdc2 = new DeskControl.DeskControl(); int w = dcdc2.Width;//控件宽度 int h = dcdc2.Height;//控件高度 int item = w / 5;//控件间距 int item2 = h / 5; int t = (n - item) / (w + item);//控件个数 int y = n - (item + w) * t;//右边间距 TableidList.Clear(); PeopleList.Clear(); SizeList.Clear(); SubtotalList.Clear(); getstrstatus();//重新加载桌子状态 var jserStatus = new JavaScriptSerializer(); var personsStatus = jserStatus.Deserialize<List<Status>>(Str_Status);//重新获得桌子状态信息 getstrTables();//重新加载桌子信息 var jserTable = new JavaScriptSerializer(); var personsTable = jserTable.Deserialize<List<Table>>(Str_Tables);//重新获得桌子信息 JavaScriptSerializer jserConsumptions = new JavaScriptSerializer(); getconsumptionsid(); Consumption personsConsumptions = jserConsumptions.Deserialize<Consumption>(Str_consumptionsid); Consumption master = personsConsumptions.merge.master; string[] mTableIds = new string[master.tables.Count()]; int nn = 0; foreach (Table mTable in master.tables) { mTableIds[nn++] = mTable.id; } foreach (Table table in personsConsumptions.tables) { for (int i = 0; i < personsStatus.Count(); i++) { if (table.id.Equals(personsStatus[i].table.id)) { if (!mTableIds.Contains(table.id)) { TableidList.Add(personsStatus[i].table.id);//桌子ID ConsumptionList.Add(personsStatus[i].consumption.id);//消费ID PeopleList.Add(personsStatus[i].consumption.people);//人数 SizeList.Add(personsStatus[i].table.size.ToString());//大小 SubtotalList.Add(personsStatus[i].consumption.subtotal);//总价 } } } } for (int j = 0; j < TableidList.Count(); j++) { DeskControl.DeskControl dc = new DeskControl.DeskControl(); dc.Location = new System.Drawing.Point(item + (y - item) / 2 + (item + w) * (j % t), item2 * 2 + (item2 + h) * (j / t));//桌子控件坐标位置[动态坐标] this.panelTables.Controls.Add(dc);//tab里面添加构造好的桌子 dc.MouseDown += new MouseEventHandler(btntalbe_MouseDown);//桌子的点击触发事件 for (int c = 0; c < personsTable.Count(); c++) { if (personsTable[c].id == TableidList[j]) { if (personsConsumptions != null && personsConsumptions.merge != null) { if (personsConsumptions != null && personsConsumptions.merge != null) { if (master != null) { foreach (Table table in master.tables) { if (personsTable[c].id.Equals(table.id)) { dc.lbConsumption.Text = master.id; dc.Tag = dc.lbConsumption.Text; } } } Consumption[] branches = personsConsumptions.merge.branches; if (branches != null) { foreach (Consumption branch in branches) { foreach (Table table in branch.tables) { if (personsTable[c].id.Equals(table.id)) { dc.lbConsumption.Text = branch.id; dc.Tag = dc.lbConsumption.Text; } } } } } dc.lbName.Text = personsTable[c].name;//桌子名 dc.lbNumber.Text = personsTable[c].room.name;//包间名 dc.lbTableID.Text = personsTable[c].id;//桌子ID dc.lbPeople.Text = PeopleList[j].ToString() + "/" + SizeList[j] + " ¥" + SubtotalList[j]; dc.picDesk.Image = Properties.Resources.dining; dc.lbStatus.Text = "dining"; //dc.lbConsumption.Visible = true; } } } } }
/// <summary> /// 添加桌子按钮 /// </summary> public void AddTables() { int n = Screen.PrimaryScreen.Bounds.Width - this.panelstatus.Width - this.panelInformation.Width;//总宽度 DeskControl.DeskControl dcdc2 = new DeskControl.DeskControl(); int w = dcdc2.Width; //控件宽度 int h = dcdc2.Height; //控件高度 int item = w / 5; //控件间距 int item2 = h / 5; int t = (n - item) / (w + item); //控件个数 int y = n - (item + w) * t; //右边间距 //获取当前的桌子状态 var personsStatus = httpReq.HttpGet <List <Status> >("statuses"); //先清空所有缓存 PassValue.ht.Clear(); PassValue.roomnames.Clear(); PassValue.tablenames.Clear(); PassValue.tableides.Clear(); var personsTable = PassValue.Tables; for (int i = 0; i < personsTable.Count(); i++) { if (personsTable[i].floor.number == PassValue.ChooseFloor) //判断所属楼层是否等于点击的楼层 { PassValue.roomnames.Add(personsTable[i].room.name); //将此楼层里的房间名全部存储到roomname里面去 PassValue.tablenames.Add(personsTable[i].name); //将此楼层里的桌名全部存储到tablename里面去 PassValue.tableides.Add(personsTable[i].id); //将此楼层里的桌子ID全部存储到tableid里面去 } } for (int j = 0; j < PassValue.tableides.Count(); j++) { DeskControl.DeskControl dc = new DeskControl.DeskControl(); //开始添加桌子 dc.Location = new System.Drawing.Point(item + (y - item) / 2 + (item + w) * (j % t), item2 * 2 + (item2 + h) * (j / t)); //桌子控件坐标位置[动态坐标] this.panelDesk.Controls.Add(dc); //tab里面添加构造好的桌子 dc.lbName.Text = PassValue.tablenames[j].ToString(); //桌子名 dc.lbNumber.Text = PassValue.roomnames[j].ToString(); //包间名 dc.lbTableID.Text = PassValue.tableides[j].ToString(); //桌子ID if (personsStatus != null) { for (int c = 0; c < personsStatus.Count; c++) { //构造桌子People和颜色信息 if (personsStatus[c].table.id == PassValue.tableides[j]) { switch (personsStatus[c].state) { case "idle": dc.lbPeople.Text = "人数:0/" + personsStatus[c].table.size.ToString(); dc.lbStatus.Text = "idle"; foreach (Control ctl in this.panelDesk.Controls) { if (ctl is DeskControl.DeskControl) { DeskControl.DeskControl dcdc = (DeskControl.DeskControl)ctl; if (PassValue.selectedtableid.Contains(dcdc.lbTableID.Text)) { dcdc.picCheck.Visible = true; } } } break; case "ordering": dc.lbPeople.Text = "人数:" + personsStatus[c].consumption.people + "/" + personsStatus[c].table.size.ToString(); dc.picDesk.Image = Properties.Resources.ordering; dc.lbStatus.Text = "ordering"; break; case "dining": dc.lbPeople.Text = personsStatus[c].consumption.people + "/" + personsStatus[c].table.size.ToString() + " ¥" + personsStatus[c].consumption.subtotal; dc.picDesk.Image = Properties.Resources.dining; dc.lbStatus.Text = "dining"; break; case "reserved": dc.lbPeople.Text = "人数:" + personsStatus[c].booking.people + "/" + personsStatus[c].table.size.ToString(); dc.picDesk.Image = Properties.Resources.reserved; dc.lbStatus.Text = "reserved"; break; } //消费ID的构造 if (personsStatus[c].consumption == null) { dc.lbConsumption.Text = ""; dc.Tag = ""; } else { dc.lbConsumption.Text = personsStatus[c].consumption.id; dc.Tag = dc.lbConsumption.Text; } PassValue.ht.Add(dc.lbTableID.Text, personsStatus[c].state);//哈希表(桌号名,状态) } } //桌子的点击触发事件 dc.MouseDown += new MouseEventHandler(btntalbe_MouseDown); } } if (string.IsNullOrEmpty(PassValue.consumptionid)) { this.dataGridView1.Rows.Clear(); } }
/// <summary> /// 选中默认 /// </summary> public void ChooseCurrent() { CurrentChooseDesk = CurrentChooseDesk; if (CurrentChooseDesk.Count == 0) { return; } PassValue.Tableid = CurrentChooseDesk.First().Key.ToString(); Dictionary <string, string> al = CurrentChooseDesk; //最后一次点击的桌子 DeskControl.DeskControl lastChoose = null; //根据桌子ID选择选择桌子 foreach (Control ct in this.panelDesk.Controls) { if (ct is DeskControl.DeskControl) { DeskControl.DeskControl dc = (DeskControl.DeskControl)ct; if (al.Keys.Contains(dc.lbTableID.Text)) { dc.picCheck.Visible = true; consumptionsid = dc.lbConsumption.Text; PassValue.consumptionid = consumptionsid; } if (dc.lbTableID.Text == PassValue.Tableid) { lastChoose = dc; } } } if (lastChoose != null) { string state = "空闲"; switch (lastChoose.lbStatus.Text) { case "idle": state = "空闲"; this.lbTime.Text = ""; this.lbMoney.Text = "0.00"; this.lbPeople.Text = "0人"; break; case "ordering": state = "正在点菜"; break; case "dining": state = "用餐中"; break; } this.lbInfor.Text = string.Format("{0}({1})[{2}]", lastChoose.lbNumber.Text, lastChoose.lbName.Text, state); } else { this.lbInfor.Text = ""; this.lbPeople.Text = "0人"; this.lbMoney.Text = "0.00"; this.lbTime.Text = ""; } var personsConsumption = httpReq.HttpGet <Consumption>(string.Format("consumptions/{0}", consumptionsid)); //对datagridviewx的设计 this.dataGridView1.RowsDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; this.dataGridView1.Rows.Clear();//清空数据表缓存 if (personsConsumption == null) { //改变按钮状态 ChooseDesk(); return; } if (personsConsumption.tables.Count() > 0) { this.lbInfor.Text = personsConsumption.tables[0].number; } this.lbPeople.Text = personsConsumption.people.ToString() + "人"; this.lbMoney.Text = personsConsumption.total; this.lbTime.Text = personsConsumption.timestamp.Replace('T', ' '); var lds = from item in personsConsumption.details group item by new { item.item.name, item.price } into g select new { name = g.Key.name, price = g.Key.price, quantity = g.Sum(p => Convert.ToDecimal(p.quantity)) }; foreach (var item in lds) { if (item.quantity > 0) { int index = this.dataGridView1.Rows.Add(); this.dataGridView1.Rows[index].Cells[0].Value = item.name; this.dataGridView1.Rows[index].Cells[1].Value = item.quantity; this.dataGridView1.Rows[index].Cells[2].Value = (decimal.Parse(item.price) * item.quantity).ToString("0.00"); } } //如果有消费ID的话 根据消费ID来选中桌子 if (!string.IsNullOrEmpty(PassValue.consumptionid)) { PassValue.count_select_idle = 0; foreach (Control ct in this.panelDesk.Controls) { if (ct is DeskControl.DeskControl) { DeskControl.DeskControl dc = (DeskControl.DeskControl)ct; if (PassValue.consumptionid == dc.lbConsumption.Text) { dc.picCheck.Visible = true; if (CurrentChooseDesk.Keys.Contains(dc.lbTableID.Text) == false) { CurrentChooseDesk.Add(dc.lbTableID.Text, string.Format("{0}({1})", dc.lbName.Text, dc.lbNumber.Text)); } } } } CurrentChooseDesk = CurrentChooseDesk; } else //如果没有消费ID的话 就是统计空闲桌子的数量 { PassValue.count_select_idle = CurrentChooseDesk.Count; } ChooseDesk(); }
/// <summary> /// 添加桌子按钮 /// </summary> public void AddTables() { int n = Screen.PrimaryScreen.Bounds.Width - this.panelstatus.Width - this.panelInformation.Width;//总宽度 DeskControl.DeskControl dcdc2 = new DeskControl.DeskControl(); int w = dcdc2.Width;//控件宽度 int h = dcdc2.Height;//控件高度 int item = w / 5;//控件间距 int item2 = h / 5; int t = (n - item) / (w + item);//控件个数 int y = n - (item + w) * t;//右边间距 //获取当前的桌子状态 var personsStatus = httpReq.HttpGet<List<Status>>("statuses"); //先清空所有缓存 PassValue.ht.Clear(); PassValue.roomnames.Clear(); PassValue.tablenames.Clear(); PassValue.tableides.Clear(); var personsTable = PassValue.Tables; for (int i = 0; i < personsTable.Count(); i++) { if (personsTable[i].floor.number == PassValue.ChooseFloor)//判断所属楼层是否等于点击的楼层 { PassValue.roomnames.Add(personsTable[i].room.name);//将此楼层里的房间名全部存储到roomname里面去 PassValue.tablenames.Add(personsTable[i].name);//将此楼层里的桌名全部存储到tablename里面去 PassValue.tableides.Add(personsTable[i].id);//将此楼层里的桌子ID全部存储到tableid里面去 } } for (int j = 0; j < PassValue.tableides.Count(); j++) { DeskControl.DeskControl dc = new DeskControl.DeskControl();//开始添加桌子 dc.Location = new System.Drawing.Point(item + (y - item) / 2 + (item + w) * (j % t), item2 * 2 + (item2 + h) * (j / t));//桌子控件坐标位置[动态坐标] this.panelDesk.Controls.Add(dc);//tab里面添加构造好的桌子 dc.lbName.Text = PassValue.tablenames[j].ToString();//桌子名 dc.lbNumber.Text = PassValue.roomnames[j].ToString();//包间名 dc.lbTableID.Text = PassValue.tableides[j].ToString();//桌子ID if (personsStatus != null) { for (int c = 0; c < personsStatus.Count; c++) { //构造桌子People和颜色信息 if (personsStatus[c].table.id == PassValue.tableides[j]) { switch (personsStatus[c].state) { case "idle": dc.lbPeople.Text = "人数:0/" + personsStatus[c].table.size.ToString(); dc.lbStatus.Text = "idle"; foreach (Control ctl in this.panelDesk.Controls) { if (ctl is DeskControl.DeskControl) { DeskControl.DeskControl dcdc = (DeskControl.DeskControl)ctl; if (PassValue.selectedtableid.Contains(dcdc.lbTableID.Text)) { dcdc.picCheck.Visible = true; } } } break; case "ordering": dc.lbPeople.Text = "人数:" + personsStatus[c].consumption.people + "/" + personsStatus[c].table.size.ToString(); dc.picDesk.Image = Properties.Resources.ordering; dc.lbStatus.Text = "ordering"; break; case "dining": dc.lbPeople.Text = personsStatus[c].consumption.people + "/" + personsStatus[c].table.size.ToString() + " ¥" + personsStatus[c].consumption.subtotal; dc.picDesk.Image = Properties.Resources.dining; dc.lbStatus.Text = "dining"; break; case "reserved": dc.lbPeople.Text = "人数:" + personsStatus[c].booking.people + "/" + personsStatus[c].table.size.ToString(); dc.picDesk.Image = Properties.Resources.reserved; dc.lbStatus.Text = "reserved"; break; } //消费ID的构造 if (personsStatus[c].consumption == null) { dc.lbConsumption.Text = ""; dc.Tag = ""; } else { dc.lbConsumption.Text = personsStatus[c].consumption.id; dc.Tag = dc.lbConsumption.Text; } PassValue.ht.Add(dc.lbTableID.Text, personsStatus[c].state);//哈希表(桌号名,状态) } } //桌子的点击触发事件 dc.MouseDown += new MouseEventHandler(btntalbe_MouseDown); } } if (string.IsNullOrEmpty(PassValue.consumptionid)) { this.dataGridView1.Rows.Clear(); } }
private void Btn_Find_Click(object sender, EventArgs e) { int n = this.Width;//总宽度 DeskControl.DeskControl dcdc2 = new DeskControl.DeskControl(); int w = dcdc2.Width;//控件宽度 int h = dcdc2.Height;//控件高度 int item = w / 5;//控件间距 int item2 = h / 5; int t = (n - item) / (w + item);//控件个数 int y = n - (item + w) * t;//右边间距 this.panelTables.Controls.Clear(); TableidList.Clear(); PeopleList.Clear(); SizeList.Clear(); SubtotalList.Clear(); SelectIDList.Clear(); if (string.IsNullOrEmpty(this.Txt_Find.Text)) { AddTable(); } else { List<Table> personsTable = httpReq.HttpGet<List<Table>>("tables"); List<Status> personsStatus = httpReq.HttpGet<List<Status>>("statuses"); for (int i = 0; i < personsStatus.Count(); i++) { if (personsStatus[i].table.name.Equals(this.Txt_Find.Text) && personsStatus[i].consumption == null && personsStatus[i].state == "idle") { TableidList.Add(personsStatus[i].table.id);//桌子ID SizeList.Add(personsStatus[i].table.size.ToString());//大小 } } if (TableidList.Count() != 0)//判断是否有空的桌子,如果有的情况 { for (int j = 0; j < TableidList.Count(); j++) { DeskControl.DeskControl dc = new DeskControl.DeskControl(); dc.Location = new System.Drawing.Point(item + (y - item) / 2 + (item + w) * (j % t), item2 * 2 + (item2 + h) * (j / t));//桌子控件坐标位置[动态坐标] this.panelTables.Controls.Add(dc);//tab里面添加构造好的桌子 dc.MouseDown += new MouseEventHandler(btntalbe_MouseDown);//桌子的点击触发事件 for (int c = 0; c < personsTable.Count(); c++) { if (personsTable[c].id == TableidList[j]) { dc.lbName.Text = personsTable[c].name;//桌子名 dc.lbNumber.Text = personsTable[c].room.name;//包间名 dc.lbTableID.Text = personsTable[c].id;//桌子ID dc.lbPeople.Text = "人数:0/" + SizeList[j]+ " ¥" +"0.00"; dc.picDesk.Image = Properties.Resources.idle; dc.lbStatus.Text = "idle"; } } } } else { MessageBox.Show("您输入的桌号不存在或未消费!"); } } }
//桌子的构造 public void AddTable() { int n = this.Width;//总宽度 DeskControl.DeskControl dcdc2 = new DeskControl.DeskControl(); int w = dcdc2.Width; //控件宽度 int h = dcdc2.Height; //控件高度 int item = w / 5; //控件间距 int item2 = h / 5; int t = (n - item) / (w + item); //控件个数 int y = n - (item + w) * t; //右边间距 this.panelTables.Controls.Clear(); SelectIDList.Clear(); TableidList.Clear(); SizeList.Clear(); StatusList.Clear(); List <Table> personsTable = httpReq.HttpGet <List <Table> >("tables"); List <Status> personsStatus = httpReq.HttpGet <List <Status> >("statuses"); //排序 if (personsStatus != null) { personsStatus = personsStatus.OrderBy(r => r.table.name).ToList(); } for (int i = 0; i < personsStatus.Count(); i++) { if (personsStatus[i].consumption == null || personsStatus[i].consumption.id == this.Txt_ID.Text) { TableidList.Add(personsStatus[i].table.id); //桌子ID SizeList.Add(personsStatus[i].table.size.ToString()); //大小 StatusList.Add(personsStatus[i].state); //状态 if (personsStatus[i].consumption == null) { ConsumptionList.Add(""); PeopleList.Add(0); //人数 SubtotalList.Add("0.00"); //总价 } else { ConsumptionList.Add(personsStatus[i].consumption.id); //消费ID PeopleList.Add(personsStatus[i].consumption.people); //人数 SubtotalList.Add(personsStatus[i].consumption.subtotal); //总价 } } } for (int j = 0; j < TableidList.Count(); j++) { DeskControl.DeskControl dc = new DeskControl.DeskControl(); dc.Location = new System.Drawing.Point(item + (y - item) / 2 + (item + w) * (j % t), item2 * 2 + (item2 + h) * (j / t)); //桌子控件坐标位置[动态坐标] this.panelTables.Controls.Add(dc); //tab里面添加构造好的桌子 dc.MouseDown += new MouseEventHandler(btntalbe_MouseDown); //桌子的点击触发事件 dc.lbConsumption.Text = ConsumptionList[j]; //消费ID for (int c = 0; c < personsTable.Count(); c++) { if (personsTable[c].id == TableidList[j]) { dc.lbName.Text = personsTable[c].name; //桌子名 dc.lbNumber.Text = personsTable[c].room.name; //包间名 dc.lbTableID.Text = personsTable[c].id; //桌子ID dc.lbPeople.Text = PeopleList[j].ToString() + "/" + SizeList[j] + " ¥" + SubtotalList[j]; if (StatusList[j].Equals("ordering")) { dc.picDesk.Image = Properties.Resources.ordering; dc.lbStatus.Text = "ordering"; } else if (StatusList[j].Equals("dining")) { dc.picDesk.Image = Properties.Resources.dining; dc.lbStatus.Text = "dining"; } } } } }
//桌子的构造 public void AddTable() { int n = this.Width;//总宽度 DeskControl.DeskControl dcdc2 = new DeskControl.DeskControl(); int w = dcdc2.Width;//控件宽度 int h = dcdc2.Height;//控件高度 int item = w / 5;//控件间距 int item2 = h / 5; int t = (n - item) / (w + item);//控件个数 int y = n - (item + w) * t;//右边间距 this.panelTables.Controls.Clear(); SelectIDList.Clear(); TableidList.Clear(); SizeList.Clear(); StatusList.Clear(); List<Table> personsTable = httpReq.HttpGet<List<Table>>("tables"); List<Status> personsStatus = httpReq.HttpGet<List<Status>>("statuses"); //排序 if (personsStatus != null) { personsStatus = personsStatus.OrderBy(r => r.table.name).ToList(); } for (int i = 0; i < personsStatus.Count(); i++) { if (personsStatus[i].consumption == null || personsStatus[i].consumption.id == this.Txt_ID.Text) { TableidList.Add(personsStatus[i].table.id);//桌子ID SizeList.Add(personsStatus[i].table.size.ToString());//大小 StatusList.Add(personsStatus[i].state);//状态 if (personsStatus[i].consumption == null) { ConsumptionList.Add(""); PeopleList.Add(0);//人数 SubtotalList.Add("0.00");//总价 } else { ConsumptionList.Add(personsStatus[i].consumption.id); //消费ID PeopleList.Add(personsStatus[i].consumption.people);//人数 SubtotalList.Add(personsStatus[i].consumption.subtotal);//总价 } } } for (int j = 0; j < TableidList.Count(); j++) { DeskControl.DeskControl dc = new DeskControl.DeskControl(); dc.Location = new System.Drawing.Point(item + (y - item) / 2 + (item + w) * (j % t), item2 * 2 + (item2 + h) * (j / t));//桌子控件坐标位置[动态坐标] this.panelTables.Controls.Add(dc);//tab里面添加构造好的桌子 dc.MouseDown += new MouseEventHandler(btntalbe_MouseDown);//桌子的点击触发事件 dc.lbConsumption.Text = ConsumptionList[j];//消费ID for (int c = 0; c < personsTable.Count(); c++) { if (personsTable[c].id == TableidList[j]) { dc.lbName.Text = personsTable[c].name;//桌子名 dc.lbNumber.Text = personsTable[c].room.name;//包间名 dc.lbTableID.Text = personsTable[c].id;//桌子ID dc.lbPeople.Text = PeopleList[j].ToString() + "/" + SizeList[j] + " ¥" + SubtotalList[j]; if (StatusList[j].Equals("ordering")) { dc.picDesk.Image = Properties.Resources.ordering; dc.lbStatus.Text = "ordering"; } else if (StatusList[j].Equals("dining")) { dc.picDesk.Image = Properties.Resources.dining; dc.lbStatus.Text = "dining"; } } } } }
//查找 private void Btn_Find_Click(object sender, EventArgs e) { int n = this.Width;//总宽度 DeskControl.DeskControl dcdc2 = new DeskControl.DeskControl(); int w = dcdc2.Width; //控件宽度 int h = dcdc2.Height; //控件高度 int item = w / 5; //控件间距 int item2 = h / 5; int t = (n - item) / (w + item); //控件个数 int y = n - (item + w) * t; //右边间距 if (this.Txt_Find.Text == "") { AddTable(); } else { TableidList.Clear(); PeopleList.Clear(); SizeList.Clear(); SubtotalList.Clear(); RestTableIDList.Clear(); List <Table> personsTable = httpReq.HttpGet <List <Table> >("tables"); List <Status> personsStatus = httpReq.HttpGet <List <Status> >("statuses"); for (int i = 0; i < personsStatus.Count(); i++) { if (personsStatus[i].table.name.Equals(this.Txt_Find.Text) && personsStatus[i].consumption != null && personsStatus[i].consumption.id == PassValue.consumptionid) { TableidList.Add(personsStatus[i].table.id); //桌子ID ConsumptionList2.Add(personsStatus[i].consumption.id); //消费ID PeopleList.Add(personsStatus[i].consumption.people); //人数 SizeList.Add(personsStatus[i].table.size.ToString()); //大小 } } if (TableidList.Count() != 0)//判断是否有消费的桌子,如果有的情况 { for (int j = 0; j < TableidList.Count(); j++) { DeskControl.DeskControl dc = new DeskControl.DeskControl(); dc.Location = new System.Drawing.Point(item + (y - item) / 2 + (item + w) * (j % t), item2 * 2 + (item2 + h) * (j / t)); //桌子控件坐标位置[动态坐标] this.panelTables.Controls.Clear(); this.panelTables.Controls.Add(dc); //tab里面添加构造好的桌子 dc.MouseDown += new MouseEventHandler(btntalbe_MouseDown); //桌子的点击触发事件 dc.lbConsumption.Text = ConsumptionList2[j]; //消费ID for (int c = 0; c < personsTable.Count(); c++) { if (personsTable[c].id == TableidList[j]) { dc.lbName.Text = personsTable[c].name; //桌子名 dc.lbNumber.Text = personsTable[c].room.name; //包间名 dc.lbTableID.Text = personsTable[c].id; //桌子ID dc.lbPeople.Text = "人数:" + PeopleList[j].ToString() + "/" + SizeList[j]; dc.picDesk.Image = Properties.Resources.ordering; dc.lbStatus.Text = "ordering"; } } } } else { MessageBox.Show("查询有误!"); } } }
//查找 private void Btn_Find_Click(object sender, EventArgs e) { int n = this.Width;//总宽度 DeskControl.DeskControl dcdc2 = new DeskControl.DeskControl(); int w = dcdc2.Width;//控件宽度 int h = dcdc2.Height;//控件高度 int item = w / 5;//控件间距 int item2 = h / 5; int t = (n - item) / (w + item);//控件个数 int y = n - (item + w) * t;//右边间距 if (this.Txt_Find.Text == "") { AddTable(); } else { TableidList.Clear(); PeopleList.Clear(); SizeList.Clear(); SubtotalList.Clear(); RestTableIDList.Clear(); List<Table> personsTable = httpReq.HttpGet<List<Table>>("tables"); List<Status> personsStatus = httpReq.HttpGet<List<Status>>("statuses"); for (int i = 0; i < personsStatus.Count(); i++) { if (personsStatus[i].table.name.Equals(this.Txt_Find.Text) && personsStatus[i].consumption != null && personsStatus[i].consumption.id == PassValue.consumptionid) { TableidList.Add(personsStatus[i].table.id);//桌子ID ConsumptionList2.Add(personsStatus[i].consumption.id);//消费ID PeopleList.Add(personsStatus[i].consumption.people);//人数 SizeList.Add(personsStatus[i].table.size.ToString());//大小 } } if (TableidList.Count() != 0)//判断是否有消费的桌子,如果有的情况 { for (int j = 0; j < TableidList.Count(); j++) { DeskControl.DeskControl dc = new DeskControl.DeskControl(); dc.Location = new System.Drawing.Point(item + (y - item) / 2 + (item + w) * (j % t), item2 * 2 + (item2 + h) * (j / t));//桌子控件坐标位置[动态坐标] this.panelTables.Controls.Clear(); this.panelTables.Controls.Add(dc);//tab里面添加构造好的桌子 dc.MouseDown += new MouseEventHandler(btntalbe_MouseDown);//桌子的点击触发事件 dc.lbConsumption.Text = ConsumptionList2[j];//消费ID for (int c = 0; c < personsTable.Count(); c++) { if (personsTable[c].id == TableidList[j]) { dc.lbName.Text = personsTable[c].name;//桌子名 dc.lbNumber.Text = personsTable[c].room.name;//包间名 dc.lbTableID.Text = personsTable[c].id;//桌子ID dc.lbPeople.Text = "人数:" + PeopleList[j].ToString() + "/" + SizeList[j]; dc.picDesk.Image = Properties.Resources.ordering; dc.lbStatus.Text = "ordering"; } } } } else { MessageBox.Show("查询有误!"); } } }
//桌子的构造 public void AddTable() { int n = this.Width;//总宽度 DeskControl.DeskControl dcdc2 = new DeskControl.DeskControl(); int w = dcdc2.Width; //控件宽度 int h = dcdc2.Height; //控件高度 int item = w / 5; //控件间距 int item2 = h / 5; int t = (n - item) / (w + item); //控件个数 int y = n - (item + w) * t; //右边间距 TableidList.Clear(); PeopleList.Clear(); SizeList.Clear(); SubtotalList.Clear(); getstrstatus(); //重新加载桌子状态 var jserStatus = new JavaScriptSerializer(); var personsStatus = jserStatus.Deserialize <List <Status> >(Str_Status); //重新获得桌子状态信息 getstrTables(); //重新加载桌子信息 var jserTable = new JavaScriptSerializer(); var personsTable = jserTable.Deserialize <List <Table> >(Str_Tables); //重新获得桌子信息 JavaScriptSerializer jserConsumptions = new JavaScriptSerializer(); getconsumptionsid(); Consumption personsConsumptions = jserConsumptions.Deserialize <Consumption>(Str_consumptionsid); Consumption master = personsConsumptions.merge.master; string[] mTableIds = new string[master.tables.Count()]; int nn = 0; foreach (Table mTable in master.tables) { mTableIds[nn++] = mTable.id; } foreach (Table table in personsConsumptions.tables) { for (int i = 0; i < personsStatus.Count(); i++) { if (table.id.Equals(personsStatus[i].table.id)) { if (!mTableIds.Contains(table.id)) { TableidList.Add(personsStatus[i].table.id); //桌子ID ConsumptionList.Add(personsStatus[i].consumption.id); //消费ID PeopleList.Add(personsStatus[i].consumption.people); //人数 SizeList.Add(personsStatus[i].table.size.ToString()); //大小 SubtotalList.Add(personsStatus[i].consumption.subtotal); //总价 } } } } for (int j = 0; j < TableidList.Count(); j++) { DeskControl.DeskControl dc = new DeskControl.DeskControl(); dc.Location = new System.Drawing.Point(item + (y - item) / 2 + (item + w) * (j % t), item2 * 2 + (item2 + h) * (j / t)); //桌子控件坐标位置[动态坐标] this.panelTables.Controls.Add(dc); //tab里面添加构造好的桌子 dc.MouseDown += new MouseEventHandler(btntalbe_MouseDown); //桌子的点击触发事件 for (int c = 0; c < personsTable.Count(); c++) { if (personsTable[c].id == TableidList[j]) { if (personsConsumptions != null && personsConsumptions.merge != null) { if (personsConsumptions != null && personsConsumptions.merge != null) { if (master != null) { foreach (Table table in master.tables) { if (personsTable[c].id.Equals(table.id)) { dc.lbConsumption.Text = master.id; dc.Tag = dc.lbConsumption.Text; } } } Consumption[] branches = personsConsumptions.merge.branches; if (branches != null) { foreach (Consumption branch in branches) { foreach (Table table in branch.tables) { if (personsTable[c].id.Equals(table.id)) { dc.lbConsumption.Text = branch.id; dc.Tag = dc.lbConsumption.Text; } } } } } dc.lbName.Text = personsTable[c].name; //桌子名 dc.lbNumber.Text = personsTable[c].room.name; //包间名 dc.lbTableID.Text = personsTable[c].id; //桌子ID dc.lbPeople.Text = PeopleList[j].ToString() + "/" + SizeList[j] + " ¥" + SubtotalList[j]; dc.picDesk.Image = Properties.Resources.dining; dc.lbStatus.Text = "dining"; //dc.lbConsumption.Visible = true; } } } } }
//拆单 private void Btn_Enter_Click(object sender, EventArgs e) { if (SelectIDList != null) { if (SelectIDList.Count == 0) { MessageBox.Show("您未选择任何桌子!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); return; } Desk d; d = (Desk)this.Owner; getconsumptionsid(); //接受json数据 var jserConsumption = new JavaScriptSerializer(); var personsConsumption = jserConsumption.Deserialize <Consumption>(Str_consumptionsid); //解析json数据 if (personsConsumption.merge.branches.Count() > 1) { Merge mg = new Merge(); List <Consumption> branches = new List <Consumption>(); Consumption merge = new Consumption(); merge.id = this.Txt_Master.Text; Consumption master = new Consumption(); master.id = personsConsumption.merge.master.id; for (int j = 0; j < personsConsumption.merge.branches.Count(); j++) { Consumption branch = new Consumption(); branch.id = personsConsumption.merge.branches[j].id; branches.Add(branch); } for (int i = 0; i < SelectIDList.Count(); i++) { Consumption target = branches.Where(r => r.id == SelectIDList[i]).FirstOrDefault(); branches.Remove(target); //根据消费ID 移除桌子 foreach (Control ct in this.panelTables.Controls) { if (ct is DeskControl.DeskControl) { DeskControl.DeskControl dc = (DeskControl.DeskControl)ct; if (SelectIDList[i] == dc.lbConsumption.Text) { d.CurrentChooseDesk.Remove(dc.lbTableID.Text); } } } } mg.merge = merge; mg.master = master; mg.branches = branches.ToArray(); System.Net.WebHeaderCollection headers = new System.Net.WebHeaderCollection(); headers.Add("Authorization", PassValue.token); Post.PostHttp(headers, "consumptions/merge", mg); } else if (personsConsumption.merge.branches.Count() == 1) { Merge mg = new Merge(); List <Consumption> branches = new List <Consumption>(); Consumption merge = new Consumption(); merge.id = this.Txt_Master.Text; mg.merge = merge; mg.master = null; mg.branches = null; for (int i = 0; i < SelectIDList.Count(); i++) { //根据消费ID 移除桌子 foreach (Control ct in this.panelTables.Controls) { if (ct is DeskControl.DeskControl) { DeskControl.DeskControl dc = (DeskControl.DeskControl)ct; if (SelectIDList[i] == dc.lbConsumption.Text) { d.CurrentChooseDesk.Remove(dc.lbTableID.Text); } } } } System.Net.WebHeaderCollection headers = new System.Net.WebHeaderCollection(); headers.Add("Authorization", PassValue.token); Post.PostHttp(headers, "consumptions/merge", mg); } MessageBox.Show("拆单成功!"); d.Refresh_Method(); this.Close(); } }