Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
 //在使用会员卡和优惠券结账时,发送消息给摄像头进行录像
 public static bool sendMessageToCamera(DAO dao, string systemId)
 {
     string cmd_str = "insert into [PayMsg](systemId, ip) values('" + systemId + "','" + PCUtil.getLocalIp() + "')";
     if (!dao.execute_command(cmd_str))
     {
         return false;
     }
     return true;
 }
Ejemplo n.º 3
0
        //查找套餐
        public static void find_combo(string con_str, string systemId, string text)
        {
            var db = new BathDBDataContext(con_str);
            var dao = new DAO(con_str);
            var orders = db.Orders.Where(x => x.systemId == systemId && x.deleteEmployee == null && !x.inputEmployee.Contains("电脑"));

            StringBuilder sb = new StringBuilder();
            sb.Append("delete from [Orders] where systemId='" + systemId + "' and menu like '套餐%优惠%'");
            sb.Append("update [Orders] set comboId=null, money=number*(select price from [Menu] where name=menu) ");
            sb.Append(@"where inputEmployee not like '%电脑%' and menu not like '套餐%优惠%' and systemId='");
            sb.Append(systemId);
            sb.Append(@"' and deleteEmployee is null and comboId is not null ");

            var menus = db.Menu;
            var comboList = db.Combo.OrderByDescending(x => x.freePrice);

            List<int> ids = new List<int>();
            foreach (Combo combo in comboList)
            {
                #region 消费满免项目
                if (combo.priceType == "消费满免项目")
                {
                    if (get_seat_expense_for_combo(db, combo, systemId) < combo.expenseUpTo) continue;

                    var freeIds = BathClass.disAssemble(combo.freeMenuIds);
                    var combo_menus = menus.Where(x => freeIds.Contains(x.id)).Select(x => x.name);
                    foreach (var combo_menu in combo_menus)
                    {
                        var tmp_order = orders.FirstOrDefault(x => x.menu == combo_menu && !ids.Contains(x.id));
                        if (tmp_order == null) continue;

                        sb.Append(" update [Orders] set comboId=" + combo.id + ",money=0 where id=" + tmp_order.id);
                        ids.Add(tmp_order.id);
                    }
                }
                #endregion

                #region 其他两种套餐形式:免项目、减金额
                else
                {
                    List<int> menuIds = disAssemble(combo.menuIds);
                    var combo_menus = menus.Where(x => menuIds.Contains(x.id)).Select(x => x.name);
                    var order_menus = orders.Where(x => !ids.Contains(x.id)).Select(x => x.menu);
                    while (combo_menus.All(x => order_menus.Any(y => y == x)))
                    {
                        foreach (var combo_menu in combo_menus)
                        {
                            var tmp_order = orders.FirstOrDefault(x => x.menu == combo_menu && !ids.Contains(x.id));
                            sb.Append(" update [Orders] set comboId=" + combo.id + " where id=" + tmp_order.id);
                            ids.Add(tmp_order.id);
                            if (combo.priceType == "免项目")
                            {
                                var freeIds = BathClass.disAssemble(combo.freeMenuIds);
                                var freeMenus = db.Menu.Where(x => freeIds.Contains(x.id)).Select(x => x.name);
                                if (freeMenus.Contains(tmp_order.menu))
                                    sb.Append(" update [Orders] set money=0 where id=" + tmp_order.id);
                            }
                        }
                        if (combo.priceType == "减金额")
                        {
                            sb.Append("insert into [Orders](menu,text,systemId,number,inputTime,inputEmployee,paid,comboId,money)");
                            sb.Append(" values('套餐" + combo.id.ToString() + "优惠','");
                            sb.Append(text + "','" + systemId + "',1,getdate(),'套餐','False'," + combo.id +","+
                                (Convert.ToDouble(combo.price) - combo.originPrice).ToString() + ")");
                        }
                        order_menus = orders.Where(x => !ids.Contains(x.id)).Select(x => x.menu);
                    }
                }
                #endregion
            }

            if (!dao.execute_command(sb.ToString()))
            {
                BathClass.printErrorMsg("查找套餐失败");
                return;
            }
        }
Ejemplo n.º 4
0
        //对话框载入
        private void OrderForm_Load(object sender, EventArgs e)
        {
            dao = new DAO(m_con_str);
            if (!dao.execute_command("update [Seat] set ordering='True' where text='" + m_Seat.text + "'"))
            {
                BathClass.printErrorMsg("手牌状态更新失败!");
                return;
            }
            m_options = dao.get_options();
            if (typeList.Count == 0)
                typeList = dao.get_catgories(null);
                //typeList = db.Catgory.Select(x => x.name).ToList();

            dgvExpense.Columns[11].Visible = MConvert<bool>.ToTypeOrDefault(m_options.启用客房面板, false);
            inputBillId = MConvert<bool>.ToTypeOrDefault(m_options.录单输入单据编号, false);
            inputTechType = MConvert<bool>.ToTypeOrDefault(m_options.录单区分点钟轮钟, false);
            string local_ip = BathClass.get_local_ip();
            stock = dao.get_Stock("select * from [Stock] where ips='"+local_ip+"'");

            this.Invoke(new no_par_delegate(initial_ui), null);

            //MessageBox.Show((DateTime.Now - st).TotalMilliseconds.ToString());
        }