private bool _close = false; //线程终止标志 #endregion Fields #region Constructors //构造函数 public SeatExpenseForm(CSeat seat, int _seat_length, bool _seatLock, bool _auto_seat_card, DAO _dao) { seatLock = _seatLock; auto_seat_card = _auto_seat_card; seat_length = _seat_length; dao = _dao; if (seatLock) { m_Seats.Add(dao.get_seat("text", seat.text)); } else { string cmd_str = "((chainId is null and text='" + seat.text + "') or (chainId is not null and chainId='" + seat.chainId + "'))" + @" and (status=2 or status=6 or status=7 or status=8)"; var seats = dao.get_seats(cmd_str); m_Seats.AddRange(seats); } var pars = new List<string>(); pars.Add("paying"); var vals = new List<string>(); vals.Add("True"); int count = m_Seats.Count; string update_str = @"update [Seat] set paying='True' where "; for (int i = 0; i < count; i++ ) { update_str += "text='" + m_Seats[i].text + "'"; if (i != count - 1) update_str += " or "; } if (!dao.execute_command(update_str)) { BathClass.printErrorMsg("手牌状态更新失败,如有超时浴资,请删除手牌重新载入"); } InitializeComponent(); }
public ReserveOverDueForm(Seat seat) { dao = new DAO(LogIn.connectionString); m_seat = dao.get_seat("text='" + seat.text + "'"); InitializeComponent(); }
private void tool_open_seat() { var db_new = new BathDBDataContext(LogIn.connectionString); string text = tSeat.Text; m_Seat = db_new.Seat.FirstOrDefault(x => x.text == text); if (m_Seat == null || (m_Seat.status != 2 && m_Seat.status != 6 && m_Seat.status != 7 && m_Seat.status != 8)) { GeneralClass.printErrorMsg("手牌不存在或者不在使用中,不可查看消费!"); return; } var dao = new DAO(LogIn.connectionString); var s = dao.get_seat("text", m_Seat.text); OrderCheckForm orderCheckForm = new OrderCheckForm(s, LogIn.connectionString, LogIn.options); orderCheckForm.ShowDialog(); tSeat.Text = ""; }
//监控台位数据库改变 /*private void watchSeat() { if (m_connection == null) m_connection = new SqlConnection(LogIn.connectionString); if (m_connection.State != ConnectionState.Open) m_connection.Open(); SqlCommand cmd = m_connection.CreateCommand(); cmd.Notification = null;//清除 cmd.CommandText = "select id, oId, text, typeId, systemId, openTime, openEmployee, payTime, payEmployee, chainId, status From dbo.Seat"; //监控台位数据库 SqlDependency dependency = new SqlDependency(cmd); dependency.OnChange += new OnChangeEventHandler(seat_OnChange); //SqlDependency绑定的SqlCommand对象必须要执行一下,才能将SqlDependency对象的HasChange属性设为true SqlDataAdapter thisAdapter = new SqlDataAdapter(cmd); DataSet posDataSet = new DataSet(); thisAdapter.Fill(posDataSet, "Seat"); //刷新台位信息 if (this.WindowState != FormWindowState.Minimized) update_seats(); //刷新状态栏 setStatus(); } private delegate void watchSeatDelegate(); //监控台位数据库改变 private void seat_OnChange(object sender, SqlNotificationEventArgs e) { //因为是子线程,需要用invoke方法更新ui if (this.InvokeRequired) { this.Invoke(new watchSeatDelegate(watchSeat), null); } else { watchSeat(); } SqlDependency dependency = (SqlDependency)sender; //通知之后,当前dependency失效,需要重新设置通知 dependency.OnChange -= seat_OnChange; }*/ //点击台位按钮 private void btn_Click(object sender, EventArgs e) { var db_new = new BathDBDataContext(LogIn.connectionString); Button btn = sender as Button; btn.Enabled = false; btn.Enabled = true; var seat = db_new.Seat.FirstOrDefault(x => x.text == btn.Text); switch (seat.status) { case 2://正在使用 case 6://警告 case 7://押金离场 case 8://重新结账 var dao = new DAO(LogIn.connectionString); var s = dao.get_seat("text='" + seat.text + "'"); OrderCheckForm orderForm = new OrderCheckForm(s, LogIn.connectionString, LogIn.options); orderForm.ShowDialog(); break; default: break; } }
private void print_seat_bill(Seat seat) { DataGridView dgv = new DataGridView(); DataGridViewTextBoxColumn col = new DataGridViewTextBoxColumn(); col.HeaderText = "手牌号"; dgv.Columns.Add(col); DataGridViewTextBoxColumn col1 = new DataGridViewTextBoxColumn(); col1.HeaderText = "项目名称"; dgv.Columns.Add(col1); DataGridViewTextBoxColumn col2 = new DataGridViewTextBoxColumn(); col2.HeaderText = "技师"; dgv.Columns.Add(col2); DataGridViewTextBoxColumn col3 = new DataGridViewTextBoxColumn(); col3.HeaderText = "单价"; dgv.Columns.Add(col3); DataGridViewTextBoxColumn col4 = new DataGridViewTextBoxColumn(); col4.HeaderText = "数量"; dgv.Columns.Add(col4); DataGridViewTextBoxColumn col5 = new DataGridViewTextBoxColumn(); col5.HeaderText = "金额"; dgv.Columns.Add(col5); double money_pay = 0; var orders = db.Orders.Where(x => x.systemId == seat.systemId && !x.paid && x.deleteEmployee == null); foreach (var order in orders) { string[] row = new string[6]; row[0] = order.text; row[1] = order.menu; row[2] = order.technician; var menu = db.Menu.FirstOrDefault(x => x.name == order.menu); if (menu != null) row[3] = menu.price.ToString(); row[4] = order.number.ToString(); double money_tmp = 0; if (order.priceType == "每小时") { row[3] = order.money.ToString() + "/时"; money_tmp = Math.Ceiling((GeneralClass.Now - order.inputTime).TotalHours) * order.money; } else { money_tmp = order.money; } money_pay += money_tmp; row[5] = money_tmp.ToString(); dgv.Rows.Add(row); } List<string> printCols = new List<string>(); List<string> m_rooms = new List<string>(); printCols.Add("包厢"); printCols.Add("手牌"); printCols.Add("项目名称"); printCols.Add("技师"); printCols.Add("单价"); printCols.Add("数量"); printCols.Add("金额"); List<CSeat> seats = new List<CSeat>(); var dao = new DAO(LogIn.connectionString); seats.Add(dao.get_seat("text='" + seat.text + "'")); foreach (var s in seats) { m_rooms.Add(dao.get_seat_room(s.text)); } PrintSeatBill.Print_DataGridView(seats,m_rooms, null, "预打账单", dgv, printCols, money_pay.ToString(), LogIn.options.companyName); }