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 static void reprint_bill(CSeat seat, DAO dao, bool use_pad) { if (seat.status != SeatStatus.PAIED) { BathClass.printErrorMsg("已经重新开牌,不能重打账单!"); return; } var account = dao.get_account("abandon is null and systemId like '%" + seat.systemId + "%'"); if (account == null) return; var seats_txt = account.text.Split('|'); string state_str = ""; int count = seats_txt.Count(); for (int i = 0; i < count; i++) { state_str += "text='" + seats_txt[i] + "'"; if (i != count - 1) state_str += " or "; } var seats_reprint = dao.get_seats(state_str); List<string> m_rooms = new List<string>(); foreach (var s in seats_reprint) { m_rooms.Add(dao.get_seat_room(s.text)); } DataGridView dgv = new DataGridView(); DataGridViewTextBoxColumn col = new DataGridViewTextBoxColumn(); col.HeaderText = "手牌"; dgv.Columns.Add(col); DataGridViewTextBoxColumn coll = new DataGridViewTextBoxColumn(); coll.HeaderText = "房间"; dgv.Columns.Add(coll); 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); List<string> printCols = new List<string>(); printCols.Add("手牌"); if (use_pad) printCols.Add("房间"); printCols.Add("项目名称"); printCols.Add("单价"); printCols.Add("数量"); printCols.Add("金额"); var use_disAssemble = MConvert<bool>.ToTypeOrDefault(LogIn.options.启用大项拆分, false); var co_name = LogIn.options.companyName; if (account != null) { try { var db = new BathDBDataContext(LogIn.connectionString); var orders = db.HisOrders.Where(x => x.deleteEmployee == null && x.accountId == account.id).OrderBy(x => x.text); foreach (var order in orders) { var cmenu = db.Menu.FirstOrDefault(x => x.name == order.menu); var price = ""; if (cmenu != null) { price = cmenu.price.ToString(); if (use_disAssemble && db.BigCombo.FirstOrDefault(x => x.menuid == cmenu.id) != null) { var substIDs = BathClass.disAssemble(db.BigCombo.FirstOrDefault(x => x.menuid == cmenu.id).substmenuid, Constants.SplitChar); for (int i = 0; i < substIDs.Count; i++) { var menu = db.Menu.FirstOrDefault(x => x.id == substIDs[i]); dgv.Rows.Add(order.text, order.roomId, menu.name, order.technician, menu.price, order.number, menu.price * MConvert<double>.ToTypeOrDefault(order.number, 0)); } continue; } } dgv.Rows.Add(order.text, order.roomId, order.menu, order.technician, price, order.number,order.money); } PrintBill.Print_DataGridView(seats_reprint, m_rooms,account, "存根单", dgv, printCols, co_name); } catch (System.Exception ex) { BathClass.printErrorMsg(ex.ToString()); } } else { double money = 0; try { var db = new BathDBDataContext(LogIn.connectionString); var orders = db.Orders.Where(x => x.text == seat.text && x.systemId != seat.systemId && x.deleteEmployee == null).OrderBy(x => x.text); foreach (var order in orders) { var cmenu = db.Menu.FirstOrDefault(x => x.name == order.menu); var price = ""; if (cmenu != null) price = cmenu.price.ToString(); dgv.Rows.Add(order.text, order.roomId, order.menu, order.technician, price, order.number, order.money); } if (dgv.Rows.Count != 0) { BathClass.printErrorMsg("未检测到转账单或者结账单"); return; } PrintSeatBill.Print_DataGridView(seats_reprint, m_rooms,"", "转账确认单", dgv, printCols, money.ToString(), co_name); } catch (System.Exception ex) { BathClass.printErrorMsg(ex.ToString()); } } }
/// <summary> /// 创建台位界面 /// </summary> /// <param name="dao">数据库连接</param> /// <param name="options">选项</param> /// <param name="seatPanel">面板</param> /// <param name="seatTab">标签页</param> /// <param name="btn_click">响应回调函数</param> /// <param name="cm">右键菜单</param> /// <param name="department">部门:桑拿部、客房部</param> public static void createSeatByDao(DAO dao, COptions options, Control seatPanel, TabControl seatTab, EventHandler btn_click,EventHandler btn_MouseHover, ContextMenuStrip cm, string department) { if (MConvert<bool>.ToTypeOrDefault(options.台位类型分页显示, false)) //台位类型是否分页显示 { seatPanel.Visible = false; seatTab.Visible = true; seatTab.Dock = DockStyle.Fill; List<CSeatType> seat_types = new List<CSeatType>(); if (department == null) seat_types = dao.get_seattypes(null, null); else seat_types = dao.get_seattypes("department", department); foreach (var stype in seat_types) { TabPage tp = create_seat_page(stype.name, seatTab); var seats = dao.get_seats("typeId", stype.id).OrderBy(x => x.text).ToList(); creat_seat_per_panel(seats, tp, btn_click,btn_MouseHover, cm); } } else { seatPanel.Visible = true; seatTab.Visible = false; seatPanel.Dock = DockStyle.Fill; //var seatTypes = dao.get_seattypes("department", department).Select(x => x.id).ToList(); List<CSeat> seats = new List<CSeat>(); if (department == null) { seats = dao.get_all_seats().OrderBy(x => x.typeId).ThenBy(x => x.text).ToList(); } else { seats = dao.get_seats("typeid in (select id from seattype where department='" + department + "')"). OrderBy(x => x.typeId).ThenBy(x => x.text).ToList(); } //var seats = dao.get_seats(null, null).OrderBy(x => x.typeId).ThenBy(x => x.text).ToList(); creat_seat_per_panel(seats, seatPanel, btn_click,btn_MouseHover, cm); //if (dao.has_hotel_department()) //{ // seatPanel.Visible = false; // seatTab.Visible = true; // seatTab.Dock = DockStyle.Fill; // TabPage tp = create_seat_page("桑拿部", seatTab); // var seatTypes = dao.get_seattypes("name", "桑拿部").Select(x => x.id).ToList(); // var seats = dao.get_seats("typeId", seatTypes).OrderBy(x => x.typeId).ThenBy(x => x.text).ToList(); // creat_seat_per_panel(seats, tp, btn_click, cm); // tp = create_seat_page("客房部", seatTab); // seatTypes = dao.get_seattypes("department", "客房部").Select(x => x.id).ToList(); // seats = dao.get_seats("typeId", seatTypes).OrderBy(x => x.typeId).ThenBy(x => x.text).ToList(); // //seatTypes = dc.SeatType.Where(x => x.department == "客房部").Select(x => x.id); // //seats = dc.Seat.Where(x => seatTypes.Contains(x.typeId)).OrderBy(x => x.typeId).ThenBy(x => x.text).ToList(); // creat_seat_per_panel(seats, tp, btn_click, cm); //} //else //{ //} } }