private Thread m_thread_seatCard;//手牌线程 public OpenSeatForm(CSeat seat, bool open) { m_open = open; //var db = new BathDBDataContext(LogIn.connectionString); m_Seats.Add(seat); seat_length = seat.text.Length; dao = new DAO(LogIn.connectionString); chainId = dao.chainId(); seatlock = LogIn.options.启用手牌锁.Value; lock_type = LogIn.options.手牌锁类型; auto_seat_card = MConvert <bool> .ToTypeOrDefault(LogIn.options.自动感应手牌, false); InitializeComponent(); seatBox.Enabled = MConvert <bool> .ToTypeOrDefault(LogIn.options.允许手工输入手牌号开牌, false); dgv_show(); }
//包厢管理 private void btnRoom_Click(object sender, EventArgs e) { var db = new BathDBDataContext(LogIn.connectionString); if (!BathClass.getAuthority(db, LogIn.m_User, "客房管理")) { GeneralClass.printErrorMsg("不具有权限"); return; } if (MConvert <bool> .ToTypeOrDefault(db.Options.FirstOrDefault().启用客房面板, false)) { RoomViewForm rvForm = new RoomViewForm(); rvForm.ShowDialog(); } else { var form = new CabViewForm(); form.ShowDialog(); } }
//获取当前所有已结账消费 public static double get_paid_expense(BathDBDataContext db, DateTime startTime, ref int count) { double money = 0; var accounts = db.Account.Where(x => x.payTime >= startTime && x.abandon == null); foreach (Account act in accounts) { count += act.systemId.Split('|').Count(); money += MConvert <double> .ToTypeOrDefault(act.cash, 0) - MConvert <double> .ToTypeOrDefault(act.changes, 0) + MConvert <double> .ToTypeOrDefault(act.bankUnion, 0) + MConvert <double> .ToTypeOrDefault(act.creditCard, 0) + MConvert <double> .ToTypeOrDefault(act.coupon, 0) + MConvert <double> .ToTypeOrDefault(act.zero, 0) + MConvert <double> .ToTypeOrDefault(act.server, 0) + MConvert <double> .ToTypeOrDefault(act.deducted, 0) + MConvert <double> .ToTypeOrDefault(act.wipeZero, 0); } return(Math.Round(money, 0)); }
//对话框载入 private void BounusDetailsTableForm_Load(object sender, EventArgs e) { List <Employee> es = new List <Employee>(); foreach (var em in db.Employee) { if (BathClass.getAuthority(db, em, "手工打折")) { es.Add(em); } } employee.Items.AddRange(es.Select(x => x.name).ToArray()); startTime.CustomFormat = "yyyy-MM-dd-HH:mm:ss"; endTime.CustomFormat = "yyyy-MM-dd-HH:mm:ss"; startTime.Value = Convert.ToDateTime(BathClass.Now(LogIn.connectionString).AddMonths(-1).ToShortDateString() + " 00:00:00"); use_pad = MConvert <bool> .ToTypeOrDefault(LogIn.options.启用客房面板, false); dgv_show(); }
//赠送 private void BTExtend_Click(object sender, EventArgs e) { if (wxUser == null) { BathClass.printErrorMsg("需要选择赠送对象!"); return; } if (dgv.CurrentCell == null) { BathClass.printErrorMsg("需要选择赠送优惠券种类!"); return; } string errorDesc = ""; var couponIds = new List <int>(); var openIds = new List <string>(); var numbers = new List <int>(); foreach (DataGridViewRow r in dgvExtend.Rows) { couponIds.Add(MConvert <int> .ToTypeOrDefault(r.Cells[2].Value, 0)); openIds.Add(r.Cells[0].Value.ToString()); numbers.Add(MConvert <int> .ToTypeOrDefault(r.Cells[4].Value, 1)); } bool success = WxCouponManagement.extendMultiCoupon(LogIn.connectionIP, LogIn.options.company_Code, couponIds, openIds, numbers, out errorDesc); if (!success) { BathClass.printErrorMsg(errorDesc); return; } BathClass.printInformation("优惠券赠送成功!"); this.DialogResult = DialogResult.OK; this.Close(); }
//对话框载入 private void MemberTypeForm_Load(object sender, EventArgs e) { offer.Items.AddRange(db.Promotion.Select(x => x.name).ToArray()); offer.SelectedIndex = 0; if (!newElement) { foreach (Control c in this.Controls) { if (c.GetType() == typeof(TextBox) || c.GetType() == typeof(DateTimePicker)) { var pro = m_Element.GetType().GetProperty(c.Name); if (pro == null) { continue; } var proVal = pro.GetValue(m_Element, null); if (proVal != null) { c.Text = proVal.ToString(); } } } userOneTime.Checked = MConvert <bool> .ToTypeOrDefault(m_Element.userOneTimeOneDay, false); LimitedTimesPerMonth.Checked = MConvert <bool> .ToTypeOrDefault(m_Element.LimitedTimesPerMonth, false); TimesPerMonth.Text = m_Element.TimesPerMonth.ToString(); credits.Checked = m_Element.credits; sms.Checked = MConvert <bool> .ToTypeOrDefault(m_Element.smsAfterUsing, false); var promotion = db.Promotion.FirstOrDefault(x => x.id == m_Element.offerId); if (promotion != null) { offer.Text = promotion.name; } } }
//编辑 private void ToolEdit_Click(object sender, EventArgs e) { if (dgv.CurrentCell == null) { BathClass.printErrorMsg("需要先选择优惠券所在行!"); return; } WxCoupon wxCoupon = new WxCoupon(); wxCoupon.id = MConvert <int> .ToTypeOrDefault(dgv.CurrentRow.Cells[0].Value, 0); wxCoupon.title = dgv.CurrentRow.Cells[1].Value.ToString(); wxCoupon.value = MConvert <double> .ToTypeOrDefault(dgv.CurrentRow.Cells[2].Value, 0); wxCoupon.descp = dgv.CurrentRow.Cells[3].Value.ToString(); var form = new CouponForm(wxCoupon, this); if (form.ShowDialog() == DialogResult.OK) { dgv_show(); } }
//对话框载入 private void SeatTypeForm_Load(object sender, EventArgs e) { menuId.Items.AddRange(db.Menu.Select(x => x.name).ToArray()); seatDepart.SelectedIndex = 0; menuId.SelectedIndex = 0; if (!newSeatType) { name.Text = m_SeatType.name; population.Text = m_SeatType.population.ToString(); seatDepart.Text = m_SeatType.department; depositMin.Text = m_SeatType.depositeAmountMin.ToString(); depositRequired.Checked = MConvert <bool> .ToTypeOrDefault(m_SeatType.depositeRequired, false); depositMin.Enabled = depositRequired.Checked; var menu = db.Menu.FirstOrDefault(x => x.id == m_SeatType.menuId); if (menu != null) { menuId.Text = menu.name; } } }
//对话框载入 private void SeatForm_Load(object sender, EventArgs e) { typeName.Items.AddRange(db.SeatType.Select(x => x.name).ToArray()); if (typeName.Items.Count != 0) { typeName.SelectedIndex = 0; } if (!newSeat) { id.Text = m_Seat.text; //if (m_Seat.name != null) name.Text = m_Seat.name; typeName.Text = db.SeatType.FirstOrDefault(x => x.id == m_Seat.typeId).name; oId.Text = m_Seat.oId; note.Text = m_Seat.note; } lock_type = LogIn.options.手牌锁类型; m_td = new Thread(new ThreadStart(seat_card_thread)); if (MConvert <bool> .ToTypeOrDefault(LogIn.options.启用手牌锁, false)) { m_td.Start(); } }
private void p_BtnDoneClicked(object sender, EventArgs e) { LogPanel logPanel = sender as LogPanel; var log = db.DepartmentLog.FirstOrDefault(x => x.id == logPanel.id); if (MConvert <bool> .ToTypeOrDefault(log.done, false)) { log.done = false; } else { log.done = true; log.urgent = false; log.doneDate = DateTime.Now; logPanel.set_btnUrgent_text("加急"); } db.SubmitChanges(); bool done = MConvert <bool> .ToTypeOrDefault(log.done, false); bool urgent = MConvert <bool> .ToTypeOrDefault(log.urgent, false); logPanel.set_panel_status(done, urgent, log.doneDate, log.urgentDate, log.dueTime); }
//对话框载入 private void EmployeeForm_Load(object sender, EventArgs e) { stock.Items.AddRange(db.Stock.Select(x => x.name).ToArray()); provider.Items.AddRange(db.Provider.Select(x => x.name).ToArray()); goodsCat.Items.AddRange(db.GoodsCat.Select(x => x.name).ToArray()); unit.Items.AddRange(db.Unit.Select(x => x.name).ToArray()); var employees = db.Employee.Select(x => x.name); checker.Items.AddRange(employees.ToArray()); transactor.Items.AddRange(employees.ToArray()); if (newStockin) { checker.Text = LogIn.m_User.name; transactor.Text = LogIn.m_User.name; } else { var goodsCatID = db.StorageList.FirstOrDefault(x => x.name == stockin.name).goodsCatId; var goodsCatName = db.GoodsCat.FirstOrDefault(x => x.id == goodsCatID).name; goodsCat.Text = goodsCatName; name.Text = stockin.name; stock.Text = db.Stock.FirstOrDefault(x => x.id == stockin.stockId).name; unit.Text = stockin.unit; unit.Text = stockin.amount.ToString(); cost.Text = stockin.cost.ToString(); amount.Text = stockin.amount.ToString(); money.Text = stockin.money.ToString(); provider.Text = MConvert <string> .ToTypeOrDefault(db.Provider.FirstOrDefault(x => x.id == stockin.providerId).name, ""); checker.Text = stockin.checker; transactor.Text = stockin.transactor; dtPickerIntoStock.Value = stockin.date; } }
private void TextDays_TextChanged(object sender, EventArgs e) { int d = MConvert <int> .ToTypeOrDefault(TextDays.Text.Trim(), 1); days.Value = Convert.ToDateTime(DateTime.Now.AddDays(d).ToString("yyyy-MM-dd") + " 12:00:00"); }
//对话框载入 private void MenuForm_Load(object sender, EventArgs e) { techRatioCat.SelectedIndex = 0; unit.Items.AddRange(db.Unit.Select(x => x.name).ToArray()); if (!newMenu) { name.Text = m_menu.name; unit.Text = m_menu.unit; catgory.Text = db.Catgory.FirstOrDefault(x => x.id == m_menu.catgoryId).name; technician.Checked = m_menu.technician; waiter.Checked = MConvert <bool> .ToTypeOrDefault(m_menu.waiter, false); price.Text = m_menu.price.ToString(); note.Text = m_menu.note; timeLimitHour.Text = m_menu.timeLimitHour.ToString(); timeLimitMiniute.Text = m_menu.timeLimitMiniute.ToString(); timeLimitType.Text = m_menu.timeLimitType; if (Convert.ToBoolean(m_menu.addAutomatic)) { addAutomatic.Checked = true; addType.Text = m_menu.addType; if (addType.Text == "按时间") { addMoney.Text = m_menu.addMoney.ToString(); } } if (technician.Checked) { if (m_menu.techRatioCat != null) { techRatioCat.Text = m_menu.techRatioCat; } if (m_menu.techRatioType != null) { techRatioType.Text = m_menu.techRatioType; } if (m_menu.onRatio != null) { onRatio.Text = m_menu.onRatio.ToString(); } if (orderRatio.Text != null) { orderRatio.Text = m_menu.orderRatio.ToString(); } } waiterRatio.Enabled = waiter.Checked; waiterRatioType.Enabled = waiter.Checked; if (waiter.Checked) { waiterRatioType.SelectedIndex = MConvert <int> .ToTypeOrDefault(m_menu.waiterRatioType, 0); waiterRatio.Text = m_menu.waiterRatio.ToString(); } dgv_show(); } timeLimitHour.Enabled = addAutomatic.Checked; timeLimitMiniute.Enabled = addAutomatic.Checked; techRatioType.Enabled = (techRatioCat.Text == "按比例"); }
//添加储值卡 private void btnAdd_Click(object sender, EventArgs e) { double paid_money = get_paid_money(); if (paid_money >= m_money) { BathClass.printErrorMsg("刷卡金额已经足够!"); return; } if (id.Text != "") { m_member = dao.get_CardInfo("CI_CardNo='" + id.Text + "'"); } else { string card_data = ""; string company_code = LogIn.options.companyCode; bool st = false; var cardType = memberSetting.cardType; if (cardType == "SLE4442") { st = ICCard.read_data_4442(company_code, ref card_data); } else if (cardType == "M1") { st = ICCard.read_data_M1(company_code, ref card_data); } if (!st) { return; } m_member = dao.get_CardInfo("CI_CardNo='" + card_data + "'"); } if (m_member == null) { BathClass.printErrorMsg("非本公司卡!"); return; } if (m_member.state == "挂失") { BathClass.printErrorMsg("卡已挂失,无法使用!"); return; } if (m_member.state == "入库") { BathClass.printErrorMsg("卡已入库,但未激活,无法使用!"); return; } if (m_member.state == "停用") { BathClass.printErrorMsg("卡已停用,无法使用!,新卡卡号为:" + m_member.CI_Special1 + ",补卡时间为:" + m_member.CI_SpecialDate1.Value.ToString("yyyy-MM-dd HH:mm")); return; } string memberType = ""; var t = dao.get_MemberType("id=" + m_member.CI_CardTypeNo); if (t != null) { memberType = t.name; } if (t != null && MConvert <bool> .ToTypeOrDefault(t.userOneTimeOneDay, false) && dao.exist_instance("CardCharge", "datediff(day,CC_InputDate,getdate())=0 and cc_itemExplain!='售卡收' and cc_cardno='" + m_member.CI_CardNo + "'")) { BathClass.printErrorMsg("此卡被限定一天只能使用一次,今天已经使用过!"); return; } if (t != null && MConvert <bool> .ToTypeOrDefault(t.LimitedTimesPerMonth, false) && dao.get_memberCard_useTimes_this_month(m_member.CI_CardNo) >= t.TimesPerMonth) { BathClass.printErrorMsg("此卡被限定每月只能使用" + t.TimesPerMonth + "次,本月已达额度!"); return; } if (m_memberList.Keys.Contains(m_member.CI_CardNo)) { BathClass.printErrorMsg("已经添加卡号为" + m_member.CI_CardNo + "的会员卡,不能重复添加!"); return; } if (m_use_finger_pwd) { var form = new MemberFingerForm(m_member); form.ShowDialog(); if (!form.verified) { BathClass.printErrorMsg("验证指纹失败!"); return; } } var cc = dao.get_CardCharges("CC_CardNo='" + m_member.CI_CardNo + "'"); double debit = MConvert <int> .ToTypeOrDefault(cc.Sum(x => x.CC_DebitSum), 0); double lend = MConvert <int> .ToTypeOrDefault(cc.Sum(x => x.CC_LenderSum), 0); double balance = debit - lend; var c = MConvert <int> .ToTypeOrDefault(m_member.CI_CreditsUsed, 0); var cu = memberSetting.money.Value; int cs = (int)(lend / cu - c); double hasto_money = 0; if (balance <= m_money - paid_money) { hasto_money = balance; } else { hasto_money = m_money - paid_money; } m_memberList[m_member.CI_CardNo] = hasto_money; dgv.Rows.Add(m_member.CI_CardNo, m_member.CI_Name, m_member.CI_Telephone, memberType, balance, cs, hasto_money); id.Text = ""; }
//微信赠送项目明细 private void find_groupBuy_donor() { dgv.Columns.Clear(); add_cols_to_dgv(dgv, "编号"); add_cols_to_dgv(dgv, "发生时间"); add_cols_to_dgv(dgv, "项目名称"); add_cols_to_dgv(dgv, "打折员工"); add_cols_to_dgv(dgv, "打折时间"); add_cols_to_dgv(dgv, "技师号"); add_cols_to_dgv(dgv, "手牌号"); add_cols_to_dgv(dgv, "数量"); add_cols_to_dgv(dgv, "金额"); add_cols_to_dgv(dgv, "输入员工"); add_cols_to_dgv(dgv, "结账单号"); add_cols_to_dgv(dgv, "单据号"); if (cboxBill.Checked && tbBill.Text != "") { var o = db.HisOrders.FirstOrDefault(x => x.billId == tbBill.Text); if (o == null) { BathClass.printErrorMsg("输入单据号不存在!"); return; } dgv.Rows.Add(o.id, o.inputTime, o.menu, o.donorEmployee, o.donorTime, o.technician, o.text, o.number, o.money, o.inputEmployee, o.accountId, o.billId); return; } IQueryable <YouSoftBathGeneralClass.Menu> menuList = db.Menu.OrderBy(x => x.catgoryId); if (menu.SelectedIndex != 0) { var catId = db.Catgory.FirstOrDefault(x => x.name == menu.Text).id; menuList = db.Menu.Where(x => x.catgoryId == catId); } var orders = db.HisOrders.Where(x => x.donorExplain != null && x.donorExplain == Constants.GROUPBUY_DONOR); orders = orders.Where(x => x.inputTime >= lastTime && x.inputTime <= thisTime && x.deleteEmployee == null); foreach (var m in menuList) { var ol = orders.Where(x => x.menu == m.name); foreach (HisOrders o in ol) { dgv.Rows.Add(o.id, o.inputTime, m.name, o.donorEmployee, o.donorTime, o.technician, o.text, o.number, o.money, o.inputEmployee, o.accountId, o.billId); } } if (!MConvert <bool> .ToTypeOrDefault(LogIn.options.录单输入单据编号, false)) { dgv.Columns[11].Visible = false; } }
//检查库存 private void check_storageList() { try { var db = new BathDBDataContext(LogIn.connectionString); string msg = ""; var main_stock = db.Stock.FirstOrDefault(x => x.main != null && x.main.Value); if (main_stock == null) { return; } var main_stock_id = main_stock.id; var stockIns = db.StockIn.Where(x => x.stockId == main_stock_id); var stockOuts = db.StockOut.Where(x => x.stockId == main_stock_id); var orderStockOuts = db.OrderStockOut.Where(x => x.stockId == main_stock_id && x.deleteEmployee == null); var pans = db.Pan.Where(x => x.stockId == main_stock_id); var msl = db.StorageList.Where(x => x.minAmount != null); foreach (var sl in msl) { double number_Ins = 0; double number_Outs = 0; double number_OrderOuts = 0; double number_pans = 0; string name = sl.name; var name_stockIns = stockIns.Where(x => x.name == name).Where(x => x.amount != null); if (name_stockIns.Any()) { number_Ins = name_stockIns.Sum(x => x.amount).Value; } var name_stockOuts = stockOuts.Where(x => x.name == name).Where(x => x.amount != null); if (name_stockOuts.Any()) { number_Outs = MConvert <double> .ToTypeOrDefault(name_stockOuts.Sum(x => x.amount), 0); } var name_orderStockOuts = orderStockOuts.Where(x => x.name == name).Where(x => x.amount != null); if (name_orderStockOuts.Any()) { number_OrderOuts = MConvert <double> .ToTypeOrDefault(name_orderStockOuts.Sum(x => x.amount), 0); } var name_pans = pans.Where(x => x.name == name).Where(x => x.amount != null); if (name_pans.Any()) { number_pans = MConvert <double> .ToTypeOrDefault(name_pans.Sum(x => x.amount), 0); } double number_now = number_Ins + number_pans - number_Outs - number_OrderOuts; if (sl.minAmount >= number_now) { msg += main_stock.name + ":" + sl.name + "的库存量为" + number_now.ToString() + ";已小于最低库存量:" + sl.minAmount + "\n"; } } if (msg != "") { MessageBox.Show(msg); } } catch (System.Exception e) { BathClass.printErrorMsg(e.Message); } }
//发送短信线程 private void sendMsg_thread() { try { String TypeStr = ""; String CopyRightToCOM = ""; String CopyRightStr = "//上海迅赛信息技术有限公司,网址www.xunsai.com//"; this.Invoke(new delegate_no_para(show_smsMsgForm)); this.Invoke(new delegate_msgForm_addMsg(msgForm_addMsg), new object[] { "正在连接短信猫......." }); if (SmsClass.Sms_Connection(CopyRightStr, uint.Parse(smsPort[3].ToString()), uint.Parse(smsBaud), out TypeStr, out CopyRightToCOM) != 1) { this.Invoke(new delegate_no_para(close_smsMsgForm)); BathClass.printErrorMsg("短信猫连接失败,请重试!"); return; } List <string> phones = new List <string>(); string phone = ""; string fileName = "短信发送-" + DateTime.Now.ToString("yyMMddHHmm") + ".txt"; IOUtil.insert_file(" 卡号 姓名 电话 短信", fileName); int i = 0; string txtStart = TextMsgStart.Text.Trim(); if (txtStart != "") { i = MConvert <int> .ToTypeOrDefault(txtStart, 1) - 1; } string sent_flag = "成功"; while (!stop_flag) { if (i >= dgv.Rows.Count) { break; } if (smsMsgForm.IsDisposed) { SmsClass.Sms_Disconnection(); break; } sent_flag = "成功"; DataGridViewRow r = dgv.Rows[i]; this.Invoke(new delegate_change_current_cell(change_current_cell), new object[] { i }); this.Invoke(new delegate_change_row_color(change_row_color), new object[] { r, Color.Cyan }); phone = MConvert <string> .ToTypeOrDefault(r.Cells[2].Value, ""); if (phone.Length != 11 || phones.Contains(phone)) { i++; this.Invoke(new delegate_change_row_color(change_row_color), new object[] { r, Color.OrangeRed }); continue; } if (SmsClass.Sms_Send(phone, msg.Text) == 0) { sent_flag = "失败"; this.Invoke(new delegate_change_row_color(change_row_color), new object[] { r, Color.OrangeRed }); } else { phones.Add(phone); this.Invoke(new delegate_change_row_color(change_row_color), new object[] { r, Color.LightGreen }); } this.Invoke(new delegate_msgForm_addMsg(msgForm_addMsg), new object[] { "卡号:" + MConvert <string> .ToTypeOrDefault(r.Cells[0].Value, "") + ",姓名:" + MConvert <string> .ToTypeOrDefault(r.Cells[1].Value, "") + ",电话:" + phone + ",发送:" + sent_flag }); IOUtil.insert_file(MConvert <string> .ToTypeOrDefault(r.Cells[0].Value, "") + " " + MConvert <string> .ToTypeOrDefault(r.Cells[1].Value, "") + " " + phone + " " + sent_flag, fileName); i++; } IOUtil.insert_file("一共发送:" + phones.Count.ToString() + "条短信", fileName); this.Invoke(new delegate_msgForm_addMsg(msgForm_addMsg), new object[] { "发送结束,正在关闭短信猫!" }); SmsClass.Sms_Disconnection(); this.Invoke(new delegate_msgForm_addMsg(msgForm_addMsg), new object[] { "短信发送结束,短信猫关闭成功!" }); } catch (System.Exception e) { BathClass.printErrorMsg(e.Message); } }
/// <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 //{ //} } }
//对话框载入 private void Form1_Load(object sender, EventArgs e) { connectionIP = IOUtil.get_config_by_key(ConfigKeys.KEY_CONNECTION_IP); if (connectionIP == "") { PCListForm pCListForm = new PCListForm(); if (pCListForm.ShowDialog() != DialogResult.OK) { this.Close(); return; } connectionIP = pCListForm.ip; IOUtil.set_config_by_key(ConfigKeys.KEY_CONNECTION_IP, connectionIP); } dao = new DAO(connectionString); if (!dao.check_net()) { BathClass.printErrorMsg("连接IP不对或者网络不通,请重试!"); this.Close(); return; } _options = dao.get_options(); m_company = _options.companyName; print_tech_msg = MConvert <bool> .ToTypeOrDefault(options.打印技师派遣单, false); user_card = MConvert <bool> .ToTypeOrDefault(options.启用员工服务卡, false); IPHostEntry ipe = Dns.GetHostEntry(Dns.GetHostName()); foreach (var ip in ipe.AddressList) { m_ip = ip.ToString(); if (System.Text.RegularExpressions.Regex.IsMatch(m_ip, "[0-9]{1,3}//.[0-9]{1,3}//.[0-9]{1,3}//.[0-9]{1,3}")) { break; } } setMax(); //dgv.ColumnHeadersDefaultCellStyle.Font = new Font("宋体", 20); //dgv.RowsDefaultCellStyle.Font = new Font("宋体", 20); //dgv_show(); m_thread = new Thread(new ThreadStart(detect_msg)); m_thread.IsBackground = true; m_thread.Start(); m_thread_tech = new Thread(new ThreadStart(detect_tech_index)); m_thread_tech.IsBackground = true; m_thread_tech.Start(); clock_timer = new System.Timers.Timer(); clock_timer.Interval = 1000; clock_timer.Elapsed += new System.Timers.ElapsedEventHandler(clock_timer_Elapsed); clock_timer.Enabled = true; m_player = new SoundPlayer(); techId.Focus(); m_thread_clearMemory = new Thread(new ThreadStart(clear_Memory)); m_thread_clearMemory.IsBackground = true; m_thread_clearMemory.Start(); SplitGender.SplitterDistance = SplitGender.Width * 2 / 3; create_tech_panel(); }
private void order_menu(CMenu menu) { string pars = "menu,text,systemId,number,money,inputTime,paid"; string vals = "'" + menu.name + "','" + m_Seat.text + "','" + m_Seat.systemId + "',1," + menu.price + ",getdate(),'False'"; if (inputBillId) { var form = new InputNumberStr("输入单据编号"); if (form.ShowDialog() != DialogResult.OK) { BathClass.printErrorMsg("需要输入单据编号"); return; } pars += ",billId"; vals += ",'" + form.str + "'"; } if (menu.technician) { pars += ",technician"; if (!m_has_user) { InputEmployee techForm = new InputEmployee("请输入技师号..."); if (techForm.ShowDialog() != DialogResult.OK) { BathClass.printErrorMsg("需要选择技师!"); return; } vals += ",'" + techForm.employee.id + "'"; } else { vals += ",'" + m_user.id + "'"; } //是否需要输入点钟轮钟 if (inputTechType) { var form = new DianLunForm(); if (form.ShowDialog() != DialogResult.OK) { BathClass.printErrorMsg("需要输入上钟类型!"); return; } pars += ",techType"; vals += ",'" + form.tech_type + "'"; } } if (!m_has_user && MConvert <bool> .ToTypeOrDefault(menu.waiter, false)) { InputEmployee techForm = new InputEmployee("请输入服务员工号..."); if (techForm.ShowDialog() != DialogResult.OK) { BathClass.printErrorMsg("需要输入录单员!"); return; } pars += ",inputEmployee"; vals += ",'" + techForm.employee.id + "'"; } else { pars += ",inputEmployee"; vals += ",'" + m_user.id + "'"; } string cmd_str = @"insert into [Orders](" + pars + ") values(" + vals + ")"; if (!dao.execute_command(cmd_str)) { BathClass.printErrorMsg("录单失败,请重试!"); return; } //BathClass.find_combo_duplicated(m_con_str, m_Seat.systemId, m_Seat.text); BathClass.find_combo(m_con_str, m_Seat.systemId, m_Seat.text); dgvExpense_show(); Thread td = new Thread(delegate() { print_kitchen(menu); }); td.Start(); }
//确定 private void btnOk_Click(object sender, EventArgs e) { if (btnOk.Text == "读卡") { get_member(); } else if (btnOk.Text == "激活") { if (m_use_finder_pwd && m_finger == null) { if (BathClass.printAskMsg("系统指定需要使用指纹密码,是否确定放弃录入指纹?") != DialogResult.Yes) { return; } } var m_waiter = dao.get_Employee("id='" + tb_waiter.Text + "'"); if (m_waiter == null) { BathClass.printErrorMsg("输入服务员工号不存在!"); return; } if (tb_cash.Text.Trim() == "" && tb_bank.Text.Trim() == "") { BathClass.printErrorMsg("需要输入金额!"); return; } double card_val = find_card_value(MConvert <double> .ToTypeOrDefault(balance.Text, 0)); if (card_val != -1 && MConvert <double> .ToTypeOrDefault(tb_cash.Text, 0) + MConvert <double> .ToTypeOrDefault(tb_bank.Text, 0) < card_val) { BathClass.printErrorMsg("付款金额不足"); return; } string pars = ""; string vals = ""; pars = "memberId"; vals = "'" + m_member.CI_CardNo + "'"; pars += ",payEmployee"; vals += ",'" + m_waiter.id + "'"; pars += ",payTime"; vals += ",getdate()"; pars += ",macAddress"; vals += ",'" + PCUtil.getMacAddr_Local() + "'"; Dictionary <string, string> pay_info = new Dictionary <string, string>(); if (tb_bank.Text.Trim() != "") { pars += ",bankUnion"; vals += ",'" + tb_bank.Text + "'"; pay_info["银联"] = tb_bank.Text; } if (tb_cash.Text.Trim() != "") { pars += ",cash"; vals += ",'" + tb_cash.Text + "'"; pay_info["现金"] = tb_cash.Text; } if (balance.Text != "") { pars += ",balance"; vals += ",'" + balance.Text + "'"; } if (tb_seat.Text != "") { pars += ",seat"; vals += ",'" + tb_seat.Text + "'"; } string cmd_str = @"insert into [CardSale](" + pars + ") values(" + vals + ")"; if (m_finger == null || m_finger == "") { m_finger = "null"; } else { m_finger = "'" + m_finger + "'"; } cmd_str += @"update [CardInfo] set state='在用',CI_Password="******" where CI_CardNo='" + id.Text + "'"; if (!dao.execute_command(cmd_str)) { BathClass.printErrorMsg("会员激活失败,请重试!"); return; } string seat = null; if (tb_seat.Text != "") { seat = tb_seat.Text; } PrintMemberActivateMsg.Print_DataGridView(id.Text, type.Text, balance.Text, LogIn.m_User.id, DateTime.Now.ToString("MM-dd HH:mm"), LogIn.options.companyName, pay_info, seat); this.DialogResult = DialogResult.OK; } else if (btnOk.Text == "退卡") { if (BathClass.printAskMsg("确定退还卡号:" + m_member.CI_CardNo + "?") != DialogResult.Yes) { return; } if (dao.exist_instance("CardCharge", "CC_CardNo='" + m_member.CI_CardNo + "' and (CC_ItemExplain='会员刷卡' or CC_ItemExplain='会员打折')")) { BathClass.printErrorMsg("已有消费记录,不能退卡"); return; } string cmd_str = @" update cardSale set abandon='" + LogIn.m_User.id + "' where id in (select top 1 id from cardsale where memberId='" + id.Text + "' order by id desc)"; cmd_str += @"update [CardInfo] set state='入库' where CI_CardNo='" + id.Text + "'"; if (!dao.execute_command(cmd_str)) { BathClass.printErrorMsg("退卡失败,请重试!"); return; } this.DialogResult = DialogResult.OK; } }
//确定 private void btnOk_Click(object sender, EventArgs e) { if (name.Text.Trim() == "") { BathClass.printErrorMsg("需要输入姓名"); name.Focus(); return; } if (deposit.Text.Trim() == "" && TextBank.Text.Trim() == "") { BathClass.printErrorMsg("需要输入押金"); deposit.Focus(); return; } var seat = dao.get_seat("text", roomNumber.Text); if (seat == null) { BathClass.printErrorMsg("房间号" + roomNumber.Text + "不存在"); return; } if (seat.status != SeatStatus.AVILABLE && seat.status != SeatStatus.PAIED && seat.status != SeatStatus.RESERVE) { BathClass.printErrorMsg("房间号" + roomNumber.Text + "不可用"); return; } if (seat.status == SeatStatus.RESERVE && name.Text != seat.name) { if (BathClass.printAskMsg("开房客人信息与预定客人信息不一致,是否继续?") != DialogResult.Yes) { return; } } if (name.Text == "") { BathClass.printErrorMsg("需要输入客人姓名!"); return; } int cardNo = 0; byte[] buff = new byte[200]; //int rt = RoomProRFL.initializeUSB(1); string BDate = DateTime.Now.ToString("yyMMddHHmm"); string EDate = days.Value.ToString("yyMMddHHmm"); int hotelId = MConvert <int> .ToTypeOrDefault(IOUtil.get_config_by_key(ConfigKeys.KEY_HOTELID), -1); if (hotelId == -1) { BathClass.printErrorMsg("未定义酒店标志!"); return; } //rt = RoomProRFL.ReadCard(1, buff); //if (rt != 0) //{ // BathClass.printErrorMsg("未放置房卡或者房卡异常!"); // return; //} int rt = RoomProRFL.GuestCard(1, hotelId, cardNo, 0, 0, 1, BDate, EDate, seat.oId, buff); RoomProRFL.Buzzer(1, 40); if (rt != 0) { BathClass.printErrorMsg("开房失败!"); return; } if (seat.status == SeatStatus.PAIED) { dao.reset_seat("text='" + seat.text + "'"); //BathClass.reset_seat(seat); //dc_new.SubmitChanges(); } string systemId = dao.systemId(); StringBuilder sb = new StringBuilder(); double money_deposit = MConvert <double> .ToTypeOrDefault(deposit.Text, 0); double money_bank = MConvert <double> .ToTypeOrDefault(TextBank.Text, 0); sb.Append(@" update [Seat] set openEmployee='"); sb.Append(LogIn.m_User.id); sb.Append("', openTime=getdate(), systemId='"); sb.Append(systemId); sb.Append(@"',chainId='").Append(chainId).Append("',deposit=").Append(money_deposit.ToString()). Append(",depositBank=").Append(money_bank.ToString()).Append(",status=2,name='"); sb.Append(name.Text).Append("'"); sb.Append(",dueTime='").Append(days.Value.ToString("yyyy-MM-dd HH:mm:ss") + "'"); if (phone.Text.Trim() != "") { sb.Append(",phone='").Append(phone.Text.Trim()).Append("'"); } //seat.phone = phone.Text.Trim(); sb.Append(" where text='").Append(roomNumber.Text).Append("'"); sb.Append(" insert into [SystemIds](systemId) values('" + systemId + "') "); var menu = dao.get_seat_menu(seat.text); //SeatType seatType = dc_new.SeatType.FirstOrDefault(x => x.id == seat.typeId); //var menu = dc_new.Menu.FirstOrDefault(x => x.id == seatType.menuId); if (!CheckZhong.Checked && menu != null) { sb.Append(@" insert into [Orders](menu, text,systemId,number,money,inputTime,inputEmployee,paid) "); sb.Append(@"values('" + menu.name + "','" + seat.text + "','" + systemId + "',1," + menu.price + ",getdate(),'"); sb.Append(LogIn.m_User.id + "','False')"); } else if (CheckZhong.Checked) { var zhong_menu = dao.get_Menu("name", "钟点房"); sb.Append(@" insert into [Orders](menu, text,systemId,number,money,inputTime,inputEmployee,paid) "); sb.Append(@"values('" + zhong_menu.name + "','" + seat.text + "','" + systemId + "',1," + zhong_menu.price + ",getdate(),'"); sb.Append(LogIn.m_User.id + "','False')"); } //dc_new.SubmitChanges(); if (!dao.execute_command(sb.ToString())) { BathClass.printErrorMsg("开房失败,请重试!"); return; } string now = DateTime.Now.ToString("yyy-MM-dd HH:ss"); PrintRoomDepositReceipt.Print_DataGridView("押金单客人联", seat, LogIn.m_User.name, name.Text, phone.Text, now, days.Value.ToString("yyyy-MM-dd HH:mm"), deposit.Text, LogIn.options.companyName); PrintRoomDepositReceipt.Print_DataGridView("押金单存根联", seat, LogIn.m_User.name, name.Text, phone.Text, now, days.Value.ToString("yyyy-MM-dd HH:mm"), deposit.Text, LogIn.options.companyName); this.DialogResult = DialogResult.OK; this.Close(); }
//显示清单 private void dgv_show() { DateTime dt_et = DateTime.Parse(et.Value.Date.ToString("yyyy-MM-dd") + " 23:59:59"); dgv.Rows.Clear(); double totalLossAmout = 0; string stockSel = stockTree.SelectedNode.Text; if (stockSel == "所有仓库") { //BathClass.printErrorMsg("请选择仓库"); return; } else { int selId = db.Stock.FirstOrDefault(x => x.name == stockSel).id; var stockIns = db.StockIn.Where(x => x.stockId == selId).Where(x => x.date <= dt_et); var stockOuts = db.StockOut.Where(x => x.stockId == selId).Where(x => x.date <= dt_et); var orderStockOuts = db.OrderStockOut.Where(x => x.stockId == selId && x.deleteEmployee == null).Where(x => x.date <= dt_et); var pans = db.Pan.Where(x => x.stockId == selId).Where(x => x.date < dt_et); var name_Ins = stockIns.Select(x => x.name); var name_outs = stockOuts.Select(x => x.name); var name_OOuts = orderStockOuts.Select(x => x.name); var name_all = name_Ins.Union(name_outs).Union(name_OOuts).Distinct(); foreach (var name in name_all) { double number_Ins = 0; double number_Outs = 0; double number_OrderOuts = 0; double number_pans = 0; var name_stockIns = stockIns.Where(x => x.name == name).Where(x => x.amount != null); if (name_stockIns.Any()) { number_Ins = name_stockIns.Sum(x => x.amount).Value; } var name_stockOuts = stockOuts.Where(x => x.name == name).Where(x => x.amount != null); if (name_stockOuts.Any()) { number_Outs = MConvert <double> .ToTypeOrDefault(name_stockOuts.Sum(x => x.amount), 0); } var name_orderStockOuts = orderStockOuts.Where(x => x.name == name).Where(x => x.amount != null); if (name_orderStockOuts.Any()) { number_OrderOuts = MConvert <double> .ToTypeOrDefault(name_orderStockOuts.Sum(x => x.amount), 0); } var name_pans = pans.Where(x => x.name == name).Where(x => x.amount != null); if (name_pans.Any()) { number_pans = MConvert <double> .ToTypeOrDefault(name_pans.Sum(x => x.amount), 0); } double number_Ins_last = 0; //上月结存 double number_Outs_last = 0; //上月结存 double number_Sale_last = 0; //上月结存 double number_pans_last = 0; //上月结存 double number_Ins_this = 0; //本月进货 double number_Outs_this = 0; //本月出货 double number_Sale_this = 0; //销售消耗 double number_pans_this = 0; //销售消耗 double unitPrice = 0; //产品单价 double totalCost = 0; //产品总价 #region 月数据 //var first_day_this_month = DateTime.Now.AddDays(1 - DateTime.Now.Day); var first_day_this_month = dt_et.AddDays(1 - DateTime.Now.Day); var stockIns_last = name_stockIns.Where(x => x.date < first_day_this_month); if (stockIns_last.Any()) { number_Ins_last = stockIns_last.Sum(x => x.amount).Value; } var stockOuts_last = name_stockOuts.Where(x => x.date < first_day_this_month); if (stockOuts_last.Any()) { number_Outs_last = MConvert <double> .ToTypeOrDefault(stockOuts_last.Sum(x => x.amount), 0); } var orderStockOuts_last = name_orderStockOuts.Where(x => x.date < first_day_this_month); if (orderStockOuts_last.Any()) { number_Sale_last = MConvert <double> .ToTypeOrDefault(orderStockOuts_last.Sum(x => x.amount), 0); } var pans_last = name_pans.Where(x => x.date < first_day_this_month); if (pans_last.Any()) { number_pans_last = MConvert <double> .ToTypeOrDefault(pans_last.Sum(x => x.amount), 0); } #endregion #region 本月数据 var stockIns_this = name_stockIns.Where(x => x.date >= first_day_this_month); if (stockIns_this.Any()) { number_Ins_this = stockIns_this.Sum(x => x.amount).Value; } var stockOuts_this = name_stockOuts.Where(x => x.date >= first_day_this_month); if (stockOuts_this.Any()) { number_Outs_this = MConvert <double> .ToTypeOrDefault(stockOuts_this.Sum(x => x.amount), 0); } var orderStockOuts_this = name_orderStockOuts.Where(x => x.date >= first_day_this_month); if (orderStockOuts_this.Any()) { number_Sale_this = MConvert <double> .ToTypeOrDefault(orderStockOuts_this.Sum(x => x.amount), 0); } var pans_this = name_pans.Where(x => x.date >= first_day_this_month); if (pans_this.Any()) { number_pans_this = MConvert <double> .ToTypeOrDefault(pans_this.Sum(x => x.amount), 0); } #endregion #region 损耗金额 var cost = db.StockIn.OrderByDescending(x => x.date).FirstOrDefault(x => x.name == name); if (cost != null) { unitPrice = MConvert <double> .ToTypeOrDefault(cost.cost, 0); totalCost = unitPrice * (-number_pans_this); totalLossAmout += totalCost; } #endregion //仓库 名称 上月结存 本月进货 本月出货 销售消耗 本月盘点损耗 现有库存 单价 损耗金额 dgv.Rows.Add(stockSel, name, number_Ins_last + number_pans_last - number_Outs_last - number_Sale_last, number_Ins_this, number_Outs_this, number_Sale_this, -number_pans_this, number_Ins + number_pans - number_Outs - number_OrderOuts, unitPrice, totalCost ); } } dgv.Rows.Add(" "); dgv.Rows.Add("汇总信息", "", "", "", "", "", "", "", "", "总金额"); dgv.Rows.Add("", "", "", "", "", "", "", "", "", totalLossAmout.ToString()); BathClass.set_dgv_fit(dgv); }
//换积分 private void btnCredits_Click(object sender, EventArgs e) { if (dgv.CurrentCell == null) { BathClass.printErrorMsg("需要选择会员卡!"); return; } string id = dgv.CurrentRow.Cells[0].Value.ToString(); var member = dao.get_CardInfo("CI_CardNo='" + id + "'"); var mt = dao.get_MemberType("id=" + member.CI_CardTypeNo); //var member = db.CardInfo.FirstOrDefault(x => x.CI_CardNo == id); //var mt = db.MemberType.FirstOrDefault(x => x.id == member.CI_CardTypeNo); if (!mt.credits) { BathClass.printErrorMsg("所选择的卡类型不能积分!"); return; } double cs = 0; var cu = MemberForm.memberSetting.money.Value; var cexpense = dao.get_CardCharges("CC_CardNo='" + id + "'"); //var cexpense = db.CardCharge.Where(y => y.CC_CardNo == id); var cvs = cexpense.Sum(y => y.expense); if (cvs.HasValue) { double cds = cvs.Value; if (member.CI_CreditsUsed == null) { cs = cds / cu; } else { cs = cds / cu - member.CI_CreditsUsed.Value; } } if (creditsUsing.Text == "") { BathClass.printErrorMsg("需要输入积分!"); return; } int csu = MConvert <int> .ToTypeOrDefault(creditsUsing.Text, 0); if (csu > cs) { BathClass.printErrorMsg("积分不够"); return; } //cs -= csu; string cmd_str = ""; if (member.CI_CreditsUsed == null) { cmd_str += @"update [CardInfo] set CI_CreditsUsed=" + csu + " where CI_CardNo='" + id + "'"; } //member.CI_CreditsUsed = csu; else { cmd_str += @"update [CardInfo] set CI_CreditsUsed=" + (member.CI_CreditsUsed + csu) + " where CI_CardNo='" + id + "'"; } //member.CI_CreditsUsed += csu; //db.SubmitChanges(); if (!dao.execute_command(cmd_str)) { BathClass.printErrorMsg("会员换积分失败!"); return; } dgv_show(); //this.DialogResult = DialogResult.OK; }
private void do_dgv_Show() { totalMoney = 0; var db = new BathDBDataContext(LogIn.connectionString); try { if (stockSel == "所有仓库") { var sos = db.StockOut.Where(x => x.date >= dt_st && x.date <= dt_et).OrderBy(x => x.id).AsQueryable(); if (proName != "") { sos = sos.Where(x => x.name.Contains(proName)); if (sos == null) { return; } } foreach (var so in sos) {////单号0, 名称1, 类别2, 单位3, 数量4, 单价5,金额6,仓库7,日期8,审核9,,备注10 object[] dgvRow = new object[11]; dgvRow[0] = so.id; dgvRow[1] = so.name; dgvRow[2] = getCatgoryByName(db, so.name); dgvRow[3] = so.unit; dgvRow[4] = so.amount; dgvRow[5] = getPriceByName(db, so.name); dgvRow[6] = MConvert <double> .ToTypeOrDefault(dgvRow[4], 0) * MConvert <double> .ToTypeOrDefault(dgvRow[5], 0); totalMoney += MConvert <double> .ToTypeOrDefault(dgvRow[6], 0); dgvRow[7] = getStockByName(db, so.name); dgvRow[8] = so.date; dgvRow[9] = so.checker; dgvRow[10] = so.note; this.Invoke(new delegate_add_row(add_row), (object)dgvRow); } } else { int selId = db.Stock.FirstOrDefault(x => x.name == stockSel).id; var sos = db.StockOut.Where(x => x.date >= dt_st && x.date <= dt_et).Where(x => x.stockId == selId).OrderBy(x => x.id).AsQueryable(); if (proName != "") { sos = sos.Where(x => x.name.Contains(proName)); if (sos == null) { return; } } foreach (var so in sos) {////单号0, 名称1, 类别2,单位3, 进价4,数量5,金额6,仓库7,日期8,审核9,,备注10 object[] dgvRow = new object[11]; dgvRow[0] = so.id; dgvRow[1] = so.name; dgvRow[2] = getCatgoryByName(db, so.name); dgvRow[3] = so.unit; dgvRow[4] = so.amount; dgvRow[5] = getPriceByName(db, so.name); dgvRow[6] = MConvert <double> .ToTypeOrDefault(dgvRow[4], 0) * MConvert <double> .ToTypeOrDefault(dgvRow[5], 0); totalMoney += MConvert <double> .ToTypeOrDefault(dgvRow[6], 0); dgvRow[7] = getStockByName(db, so.name); dgvRow[8] = so.date; dgvRow[9] = so.checker; dgvRow[10] = so.note; this.Invoke(new delegate_add_row(add_row), (object)dgvRow); } } string [] subTotalRow1 = { "" }; this.Invoke(new delegate_add_row(add_row), (object)subTotalRow1); string[] subTotalRow2 = { "", "", "", "", "", "", "总金额" }; this.Invoke(new delegate_add_row(add_row), (object)subTotalRow2); string [] subTotalRow3 = { "", "", "", "", "", "", totalMoney.ToString() }; this.Invoke(new delegate_add_row(add_row), (object)subTotalRow3); //this.Invoke(new delegate_set_dgv_fit(BathClass.set_dgv_fit), dgv); } catch (Exception ex) { //MessageBox.Show(ex.Message); //m_Thread.Abort(); } //subTotal(db); }
//点击台位按钮 private void btn_Click(object sender, EventArgs e) { Button btn = sender as Button; btn.Enabled = false; btn.Enabled = true; //BathDBDataContext db_new = new BathDBDataContext(LogIn.connectionString); //m_Seat = db_new.Seat.FirstOrDefault(x => x.text == btn.Text); m_Seat = dao.get_seat("text", btn.Text); SeatStatus status = m_Seat.status; switch (status) { case SeatStatus.AVILABLE: //可用 case SeatStatus.PAIED: //已经结账 BathClass.printErrorMsg("手牌未开牌"); break; case SeatStatus.USING: //正在使用 case SeatStatus.DEPOSITLEFT: //押金离场 if (!dao.get_authority(LogIn.m_User, "完整点单") && !dao.get_authority(LogIn.m_User, "可见本人点单")) { BathClass.printErrorMsg("权限不够!"); break; } if (MConvert <bool> .ToTypeOrDefault(m_Seat.paying, false)) { BathClass.printErrorMsg("正在结账!"); break; } //if (BathClass.ToBool(m_Seat.ordering)) //{ // BathClass.printErrorMsg("正在录单!"); // break; //} //m_Seat.ordering = true; //db_new.SubmitChanges(); OrderForm orderForm = new OrderForm(m_Seat, LogIn.m_User, LogIn.connectionString, false); orderForm.ShowDialog(); //m_Seat.ordering = false; //db_new.SubmitChanges(); break; case SeatStatus.LOCKING: //锁定 BathClass.printErrorMsg("手牌已经锁定!"); break; case SeatStatus.STOPPED: //停用 BathClass.printErrorMsg("台位已经停用!"); break; case SeatStatus.WARNING: //警告 OrderCheckForm orderCheckForm = new OrderCheckForm(m_Seat, LogIn.connectionString, LogIn.options); orderCheckForm.ShowDialog(); break; case SeatStatus.REPAIED: BathClass.printErrorMsg("补救台位不能录单"); break; default: break; } }
//查询 private void dgv_show() { dgv.Rows.Clear(); List <Account> accountList = findAccount(); if (!accountList.Any()) { return; } //第一部分:账单部分 double totalMoney = 0; foreach (var act in accountList) { var money = BathClass.get_account_money(act); string act_text = string.Join("\n", act.text.Split('|').ToArray()); var money_str = ""; if (act.cash != null) { if (act.changes == null) { money_str += act.cash + "现"; } else { money_str += act.cash - act.changes + "现"; } } if (act.bankUnion != null) { money_str = money_str == "" ? money_str + act.bankUnion + "银" : money_str + "\n" + act.bankUnion + "银"; } if (act.creditCard != null) { money_str = money_str == "" ? money_str + act.creditCard + "卡" : money_str + "\n" + act.creditCard + "卡"; } if (act.coupon != null) { money_str = money_str == "" ? money_str + act.coupon + "券" : money_str + "\n" + act.coupon + "券"; } if (act.groupBuy != null) { money_str = money_str == "" ? money_str + act.groupBuy + "团" : money_str + "\n" + act.groupBuy + "团"; } if (act.zero != null) { money_str = money_str == "" ? money_str + act.zero + "挂" : money_str + "\n" + act.zero + "挂"; } if (act.server != null) { money_str = money_str == "" ? money_str + act.server + "招" : money_str + "\n" + act.server + "招"; } if (act.wipeZero != null) { money_str = money_str == "" ? money_str + act.wipeZero + "抹" : money_str + "\n" + act.wipeZero + "抹"; } dgv.Rows.Add(act.id, act_text, act.payTime.ToString("MM-dd HH:mm"), money_str); totalMoney += money; } dgv.Rows.Add("合计", "", "", totalMoney); totalMoney = 0; dgv.Rows.Add(); //第二部分:订单部分 var orders = db.HisOrders.Where(x => idList.Contains(x.accountId.Value) && x.deleteEmployee == null); var menus = orders.Select(x => x.menu).Distinct(); foreach (var menu in menus) { var menu_orders = orders.Where(x => x.menu == menu); var tmp_menu = db.Menu.FirstOrDefault(x => x.name == menu); double t_number = menu_orders.Sum(x => x.number); double money = BathClass.get_orders_money(accountList, menu_orders.ToList()); double t_money = 0; if (tmp_menu != null) { t_money = t_number * tmp_menu.price; } dgv.Rows.Add(menu, t_number, t_money, money); totalMoney += money; } //第三部分:售卡部分 double card_cash = 0, card_bank = 0; var cardsale = db.CardSale.Where(x => (x.macAddress == macAdd || x.macAddress == null) && x.payTime >= lastTime && x.payTime <= thisTime); var cardsale_free = cardsale.Where(x => x.note == "赠送卡"); if (cardsale_free.Any()) { dgv.Rows.Add("赠送卡", cardsale_free.Count()); } cardsale = cardsale.Where(x => x.note == null); //dgv.Rows.Add(MConvert<int>.ToTypeOrDefault(balance).ToString() + "会员卡", card_balance.Count(), "", card_balance_money); var balance_list = cardsale.Select(x => x.balance).Distinct(); foreach (var balance in balance_list) { var card_balance = cardsale.Where(x => x.balance == balance); double card_balance_money = 0; var card_balance_cash = card_balance.Where(x => x.cash != null); if (card_balance_cash.Any()) { double cash = card_balance_cash.Sum(x => x.cash).Value; card_balance_money += cash; card_cash += cash; } var card_balance_bank = card_balance.Where(x => x.bankUnion != null); if (card_balance_bank.Any()) { double bank = card_balance_bank.Sum(x => x.bankUnion).Value; card_balance_money += bank; card_bank += bank; } totalMoney += card_balance_money; dgv.Rows.Add(MConvert <int> .ToTypeOrDefault(balance, 0) + "会员卡", card_balance.Count(), "", card_balance_money); } dgv.Rows.Add("合计", "", "", totalMoney); dgv.Rows.Add(); //第四部分:汇总部分 string[] cashRow = { "现金", "", "", card_cash.ToString() }; string[] bankRow = { "银联", "", "", card_bank.ToString() }; string[] cardRow = { "储值卡", "", "", "0" }; string[] couponRow = { "优惠券", "", "", "0" }; string[] groupBuyRow = { "团购优惠", "", "", "0" }; string[] discountRow = { "挂账", "", "", "0" }; string[] serverRow = { "免单", "", "", "0" }; string[] otherRow = { "扣卡", "", "", "0" }; string[] wipeRow = { "抹零", "", "", "0" }; double act_money = card_bank + card_cash; double tmp_Money = Convert.ToDouble(accountList.Where(x => x.cash != null).Sum(x => x.cash)); cashRow[3] = (Convert.ToDouble(cashRow[3]) + tmp_Money).ToString(); act_money += tmp_Money; tmp_Money = Convert.ToDouble(accountList.Where(x => x.changes != null).Sum(x => x.changes)); cashRow[3] = (Convert.ToDouble(cashRow[3]) - tmp_Money).ToString(); act_money -= tmp_Money; tmp_Money = Convert.ToDouble(accountList.Where(x => x.bankUnion != null).Sum(x => x.bankUnion)); bankRow[3] = (Convert.ToDouble(bankRow[3]) + tmp_Money).ToString(); act_money += tmp_Money; tmp_Money = Convert.ToDouble(accountList.Where(x => x.creditCard != null).Sum(x => x.creditCard)); cardRow[3] = tmp_Money.ToString(); act_money += tmp_Money; tmp_Money = Convert.ToDouble(accountList.Where(x => x.coupon != null).Sum(x => x.coupon)); couponRow[3] = tmp_Money.ToString(); act_money += tmp_Money; tmp_Money = Convert.ToDouble(accountList.Where(x => x.groupBuy != null).Sum(x => x.groupBuy)); groupBuyRow[3] = tmp_Money.ToString(); act_money += tmp_Money; tmp_Money = Convert.ToDouble(accountList.Where(x => x.zero != null).Sum(x => x.zero)); discountRow[3] = tmp_Money.ToString(); act_money += tmp_Money; tmp_Money = Convert.ToDouble(accountList.Where(x => x.server != null).Sum(x => x.server)); serverRow[3] = tmp_Money.ToString(); act_money += tmp_Money; tmp_Money = Convert.ToDouble(accountList.Where(x => x.deducted != null).Sum(x => x.deducted)); otherRow[3] = tmp_Money.ToString(); act_money += tmp_Money; tmp_Money = Convert.ToDouble(accountList.Where(x => x.wipeZero != null).Sum(x => x.wipeZero)); wipeRow[3] = tmp_Money.ToString(); act_money += tmp_Money; dgv.Rows.Add(cashRow); dgv.Rows.Add(bankRow); dgv.Rows.Add(cardRow); dgv.Rows.Add(couponRow); dgv.Rows.Add(groupBuyRow); dgv.Rows.Add(discountRow); dgv.Rows.Add(serverRow); dgv.Rows.Add(otherRow); dgv.Rows.Add(wipeRow); dgv.Rows.Add("合计", "", "", act_money); BathClass.set_dgv_fit(dgv); }
//F6开牌 private void tool_open_seat() { //BathDBDataContext db_new = new BathDBDataContext(LogIn.connectionString); string text = tSeat.Text; m_Seat = dao.get_seat("text='" + text + "' or oId='" + text + "'"); //m_Seat = db_new.Seat.FirstOrDefault(x => x.text == text || x.oId == text); if (m_Seat == null) { BathClass.printErrorMsg("手牌不可用!"); return; } switch (m_Seat.status) { case SeatStatus.AVILABLE: //可用 case SeatStatus.PAIED: //已经结账 BathClass.printErrorMsg("手牌未开牌"); break; case SeatStatus.USING: //正在使用 case SeatStatus.DEPOSITLEFT: //押金离场 if (!dao.get_authority(LogIn.m_User, "完整点单") && !dao.get_authority(LogIn.m_User, "可见本人点单")) { BathClass.printErrorMsg("权限不够!"); break; } if (MConvert <bool> .ToTypeOrDefault(m_Seat.paying, false)) { BathClass.printErrorMsg("正在结账!"); break; } //if (BathClass.ToBool(m_Seat.ordering)) //{ // BathClass.printErrorMsg("正在录单!"); // break; //} //m_Seat.ordering = true; //db_new.SubmitChanges(); OrderForm orderForm = new OrderForm(m_Seat, LogIn.m_User, LogIn.connectionString, false); orderForm.ShowDialog(); //m_Seat.ordering = false; //db_new.SubmitChanges(); break; case SeatStatus.LOCKING: //锁定 BathClass.printErrorMsg("手牌已经锁定!"); break; case SeatStatus.STOPPED: //停用 BathClass.printErrorMsg("手牌已经停用!"); break; case SeatStatus.WARNING: //警告 OrderCheckForm orderCheckForm = new OrderCheckForm(m_Seat, LogIn.connectionString, LogIn.options); orderCheckForm.ShowDialog(); break; case SeatStatus.REPAIED: BathClass.printErrorMsg("补救台位不能录单"); break; default: break; } tSeat.Text = ""; }
//发送单条短信 private void BtnSendOneMsg_Click(object sender, EventArgs e) { stop_flag = true; if (dgv.CurrentCell == null) { return; } String TypeStr = ""; String CopyRightToCOM = ""; String CopyRightStr = "//上海迅赛信息技术有限公司,网址www.xunsai.com//"; smsPort = IOUtil.get_config_by_key(ConfigKeys.KEY_SMSPORT); smsBaud = IOUtil.get_config_by_key(ConfigKeys.KEY_SMSBAUD); if (smsPort == "" || smsBaud == "") { SMmsForm smsForm = new SMmsForm(); if (smsForm.ShowDialog() != DialogResult.OK) { return; } smsPort = IOUtil.get_config_by_key(ConfigKeys.KEY_SMSPORT); smsBaud = IOUtil.get_config_by_key(ConfigKeys.KEY_SMSBAUD); } if (smsPort == "" || smsBaud == "" || msg.Text == "") { return; } if (SmsClass.Sms_Connection(CopyRightStr, uint.Parse(smsPort[3].ToString()), uint.Parse(smsBaud), out TypeStr, out CopyRightToCOM) != 1) { this.Invoke(new delegate_no_para(close_smsMsgForm)); BathClass.printErrorMsg("短信猫连接失败,请重试!"); return; } DataGridViewRow r = dgv.CurrentRow; change_row_color(r, Color.Cyan); string phone = MConvert <string> .ToTypeOrDefault(r.Cells[2].Value, ""); if (phone.Length != 11) { BathClass.printErrorMsg("电话号码格式不正确,需要11位电话号码"); change_row_color(r, Color.OrangeRed); } if (SmsClass.Sms_Send(phone, msg.Text) == 0) { BathClass.printErrorMsg("发送失败!"); change_row_color(r, Color.OrangeRed); } else { BathClass.printInformation("发送成功!"); change_row_color(r, Color.LightGreen); } SmsClass.Sms_Disconnection(); }
private void do_dgv_Show() { try { DateTime dt_et = DateTime.Parse(et.Value.ToString("yyyy-MM-dd") + " 23:59:59"); DateTime dt_st_thisMonth = DateTime.Parse(dt_et.ToString("yyyy-MM-") + "01 00:00:00"); DateTime dt_et_lastMonth = DateTime.Parse(dt_et.AddDays(-dt_et.Day).ToString("yyyy-MM-dd ") + "23:59:59"); DateTime dt_st_lastMonth = DateTime.Parse("2013-01-01 00:00:01"); double totalMoneyLastMonth = 0; double totalMoneyOutThisMonth = 0; double totalMoneyLeftThisMonth = 0; var db = new BathDBDataContext(LogIn.connectionString); var goods = db.StorageList.AsQueryable(); if (goodsCatSel != "所有类别") { int selId = db.GoodsCat.FirstOrDefault(x => x.name == goodsCatSel).id; goods = goods.Where(x => x.goodsCatId == selId); } if (goods_name_sel != "") { goods = goods.Where(x => x.name.Contains(goods_name_sel)); } var mainStock = db.Stock.FirstOrDefault(x => x.main != null && x.main.Value); var goodsNames = goods.Select(x => x.name); if (goodsNames == null) { return; } foreach (var name in goodsNames) { object[] dgvRow = new object[14]; var storageList = db.StorageList.FirstOrDefault(x => x.name == name); var goods_cat = db.GoodsCat.FirstOrDefault(x => x.id == storageList.goodsCatId); if (goods_cat == null) { continue; } var unit_stock = db.StockIn.FirstOrDefault(x => x.name == name); string unit_name = ""; if (unit_stock != null) { unit_name = unit_stock.unit; } dgvRow[0] = name; dgvRow[1] = goods_cat.name; dgvRow[2] = unit_name; dgvRow[4] = getStockByName(name, dt_st_lastMonth, dt_et, db).unitPrice; dgvRow[3] = getStockByName(name, dt_st_lastMonth, dt_et_lastMonth, db).stockleft; dgvRow[5] = getStockByName(name, dt_st_lastMonth, dt_et_lastMonth, db).totalMoney; totalMoneyLastMonth += MConvert <double> .ToTypeOrDefault(dgvRow[5], 0); dgvRow[6] = MConvert <double> .ToTypeOrDefault(db.StockOut.Where(x => x.name == name).Where(x => x.date >= dt_st_thisMonth && x.date < dt_et).Sum(x => x.amount), 0); dgvRow[7] = getStockByName(name, dt_st_lastMonth, dt_et, db).unitPrice; dgvRow[8] = MConvert <double> .ToTypeOrDefault(dgvRow[6], 0) * MConvert <double> .ToTypeOrDefault(dgvRow[7], 0); totalMoneyOutThisMonth += MConvert <double> .ToTypeOrDefault(dgvRow[8], 0); dgvRow[9] = getStockByName(name, dt_st_lastMonth, dt_et, db).stockleft; dgvRow[10] = getStockByName(name, dt_st_lastMonth, dt_et, db).unitPrice; dgvRow[11] = getStockByName(name, dt_st_lastMonth, dt_et, db).totalMoney; totalMoneyLeftThisMonth += (double)dgvRow[11]; dgvRow[12] = storageList.minAmount; dgvRow[13] = storageList.note; this.Invoke(new delegate_add_row(add_row), (object)dgvRow); } string[] sbutotalrow1 = { "" }; this.Invoke(new delegate_add_row(add_row), (object)sbutotalrow1); string[] sbutotalrow2 = { "汇总信息", "", "", "", "", "总金额", "", "", "总金额", "", "", "总金额" }; this.Invoke(new delegate_add_row(add_row), (object)sbutotalrow2); string[] sbutotalrow3 = { "", "", "", "", "", totalMoneyLastMonth.ToString(), "", "", totalMoneyOutThisMonth.ToString(), "", "", totalMoneyLeftThisMonth.ToString() }; this.Invoke(new delegate_add_row(add_row), (object)sbutotalrow3); } catch (Exception ex) { BathClass.printErrorMsg(ex.Message); } }