//监控台位数据库改变

        /*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 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 = "";
        }
Example #3
0
        //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 = "";
        }
Example #4
0
        //点击台位按钮
        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;
            }
        }