Exemple #1
0
        //上钟时如果有预约,删除预约
        public static string del_reservation(string roomId, string seatId)
        {
            try
            {
                var db = new BathDBDataContext(connectionString);

                var info = new List<string>();
                var t = db.TechReservation.FirstOrDefault(x => x.roomId == roomId && x.seatId == seatId && !x.proceeded.Value);
                if (t == null)
                    return "null";

                db.TechReservation.DeleteOnSubmit(t);
                db.SubmitChanges();

                return "true";
            }
            catch (System.Exception e)
            {
                return "false";
            }
        }
 private void do_work()
 {
     try
     {
         if (cl.GetItemChecked(0))//账单记录
         {
             db.Account.DeleteAllOnSubmit(db.Account.Where(x => x.payTime > st && x.payTime < et));
         }
         if (cl.GetItemChecked(1))//吧台消息记录
         {
             db.BarMsg.DeleteAllOnSubmit(db.BarMsg.Where(x => x.time > st && x.time < et));
         }
         if (cl.GetItemChecked(2))//售卡充值记录
         {
             db.CardSale.DeleteAllOnSubmit(db.CardSale.Where(x => x.payTime > st && x.payTime < et));
         }
         if (cl.GetItemChecked(3))//前台打印时间记录
         {
             db.CashPrintTime.DeleteAllOnSubmit(db.CashPrintTime.Where(x => x.time > st && x.time < et));
         }
         if (cl.GetItemChecked(4))//优惠券设置记录
         {
             db.Coupon.DeleteAllOnSubmit(db.Coupon.Where(x => x.issueDate > st && x.issueDate < et));
         }
         if (cl.GetItemChecked(5))//团购记录
         {
             db.GroupBuy.DeleteAllOnSubmit(db.GroupBuy.Where(x => x.issueDate > st && x.issueDate < et));
         }
         if (cl.GetItemChecked(6))//支出记录
         {
             db.Expense.DeleteAllOnSubmit(db.Expense.Where(x => x.inputDate > st && x.inputDate < et));
         }
         if (cl.GetItemChecked(7))//订单记录
         {
             db.HisOrders.DeleteAllOnSubmit(db.HisOrders.Where(x => x.inputTime > st && x.inputTime < et));
         }
         if (cl.GetItemChecked(8))//异常操作记录
         {
             db.Operation.DeleteAllOnSubmit(db.Operation.Where(x => x.opTime > st && x.opTime < et));
         }
         if (cl.GetItemChecked(9))//摄像头录像消息记录
         {
             db.ExecuteCommand("truncate table paymsg");
         }
         if (cl.GetItemChecked(10))//催钟记录
         {
             db.ExecuteCommand("truncate table roomcall");
         }
         if (cl.GetItemChecked(11))//房间预警记录
         {
             db.ExecuteCommand("truncate table roomwarn");
         }
         if (cl.GetItemChecked(12))//鞋吧消息记录
         {
             db.ExecuteCommand("truncate table shoemsg");
         }
         db.SubmitChanges();
     }
     catch (System.Exception e)
     {
         this.Invoke(new print_msg_delegate(BathClass.printErrorMsg), new object[] { e.ToString() });
     }
     finally
     {
         if (m_form != null)
         {
             this.Invoke(new no_par_delegate(close_form));
         }
     }
 }
Exemple #3
0
        //F6开牌
        private void tool_open_seat()
        {
            if (tSeat.Text == "")
            {
                return;
            }

            BathDBDataContext db_new = new BathDBDataContext(LogIn.connectionString);
            string            text   = tSeat.Text;

            tSeat.Text = "";

            var seat1 = db_new.HotelRoom.FirstOrDefault(x => x.text == text);
            var seat2 = db_new.HotelRoom.FirstOrDefault(x => x.oId == text);

            if (seat1 == null && seat2 == null)
            {
                BathClass.printErrorMsg("手牌不可用!");
                return;
            }

            if (seat1 != null)
            {
                var mtype = db_new.HotelRoomType.FirstOrDefault(x => x.id == seat1.typeId);

                switch (seat1.status)
                {
                case 1:    //可用
                case 3:    //已经结账
                    if (!BathClass.ToBool(db_new.Options.FirstOrDefault().允许手工输入手牌号开牌) && mtype.menuId != null)
                    {
                        BathClass.printErrorMsg("不允许手工输入手牌号开牌!");
                        break;
                    }
                    open_seat(seat1, db_new);
                    break;

                case 2:    //正在使用
                case 7:    //押金离场
                    if (!BathClass.getAuthority(db_new, LogIn.m_User, "完整点单") &&
                        !BathClass.getAuthority(db_new, LogIn.m_User, "可见本人点单"))
                    {
                        BathClass.printErrorMsg("权限不够");
                        break;
                    }

                    seat1.ordering = true;
                    db_new.SubmitChanges();

                    var orderForm = new HotelRoomOrderForm(m_Seat);
                    orderForm.ShowDialog();

                    seat1.ordering = false;
                    db_new.SubmitChanges();
                    break;

                case 4:    //锁定
                    BathClass.printErrorMsg("台位已经锁定!");
                    break;

                case 5:    //停用
                    BathClass.printErrorMsg("台位已经停用!");
                    break;

                case 6:    //警告
                    var orderCheckForm = new HotelRoomOrderCheckForm(m_Seat);
                    orderCheckForm.ShowDialog();
                    break;

                case 8:
                    BathClass.printErrorMsg("补救台位不能录单");
                    break;

                default:
                    break;
                }
            }
            else if (seat2 != null)
            {
                var mtype = db_new.HotelRoomType.FirstOrDefault(x => x.id == seat2.typeId);

                switch (seat2.status)
                {
                case 1:    //可用
                case 3:    //已经结账
                    open_seat(seat2, db_new);
                    break;

                case 2:    //正在使用
                case 7:    //押金离场
                    if (!BathClass.getAuthority(db_new, LogIn.m_User, "完整点单") &&
                        !BathClass.getAuthority(db_new, LogIn.m_User, "可见本人点单"))
                    {
                        BathClass.printErrorMsg("权限不够");
                        break;
                    }

                    seat2.ordering = true;
                    db_new.SubmitChanges();

                    var orderForm = new HotelRoomOrderForm(m_Seat);
                    orderForm.ShowDialog();

                    seat2.ordering = false;
                    db_new.SubmitChanges();
                    break;

                case 4:    //锁定
                    BathClass.printErrorMsg("台位已经锁定!");
                    break;

                case 5:    //停用
                    BathClass.printErrorMsg("台位已经停用!");
                    break;

                case 6:    //警告
                    var orderCheckForm = new HotelRoomOrderCheckForm(m_Seat);
                    orderCheckForm.ShowDialog();
                    break;

                case 8:
                    BathClass.printErrorMsg("补救台位不能录单");
                    break;

                default:
                    break;
                }
            }
        }
Exemple #4
0
        private void cancel_open(BathDBDataContext db_new, HotelRoom seat)
        {
            InputEmployeeByPwd inputEmployee = new InputEmployeeByPwd();

            if (BathClass.getAuthority(db_new, LogIn.m_User, "取消开牌") ||
                (inputEmployee.ShowDialog() != DialogResult.OK &&
                 BathClass.getAuthority(db_new, inputEmployee.employee, "取消开牌")))
            {
                if (seat.status != 2)
                {
                    BathClass.printErrorMsg("该台位不在使用中,不能取消开台!");
                    return;
                }

                if (db_new.Options.Count() != 0)
                {
                    Options options = db_new.Options.ToList()[0];
                    var     q       = options.取消开牌时限;
                    if (q != null && BathClass.Now(LogIn.connectionString) - seat.openTime >= TimeSpan.Parse("00:" + q.ToString() + ":00"))
                    {
                        BathClass.printErrorMsg("已超过取消开牌时限!");
                        return;
                    }
                }
                var orders = db_new.Orders.Where(x => x.systemId == seat.systemId);
                if (orders.Count() > 2)
                {
                    BathClass.printErrorMsg("已经点单,不能取消开台");
                    return;
                }

                if (BathClass.printAskMsg("确认取消开台?") != DialogResult.Yes)
                {
                    return;
                }

                Operation op = new Operation();

                if (inputEmployee.employee != null)
                {
                    op.employee = inputEmployee.employee.id;
                }
                else
                {
                    op.employee = LogIn.m_User.id;
                }
                op.seat         = seat.text;
                op.openEmployee = seat.openEmployee;
                op.openTime     = seat.openTime;
                op.explain      = "取消开牌";
                op.opTime       = BathClass.Now(LogIn.connectionString);
                db_new.Operation.InsertOnSubmit(op);

                db_new.Orders.DeleteAllOnSubmit(db_new.Orders.Where(x => x.systemId == seat.systemId));
                BathClass.reset_seat(seat);
                db_new.SubmitChanges();
                dgv_shoe_show();
            }
            else
            {
                BathClass.printErrorMsg("不具有取消开牌权限!");
            }
        }
Exemple #5
0
        //定时轮询
        private void detect_msg()
        {
            while (true)
            {
                try
                {
                    var dc  = new BathDBDataContext(connectionString);
                    var job = dc.Job.FirstOrDefault(x => x.ip == m_ip);
                    if (job == null)
                    {
                        m_msg = dc.TechMsg.FirstOrDefault(x => !x.read);
                    }
                    else
                    {
                        m_msg = dc.TechMsg.FirstOrDefault(x => !x.read &&
                                                          (x.techType == job.name || (x.techId != null && x.techId != "" &&
                                                                                      dc.Employee.FirstOrDefault(y => y.id == x.techId).jobId == job.id)));
                    }

                    if (m_msg == null)
                    {
                        this.Invoke(new delegate_no_param(unable_msg_btn), null);
                        continue;
                    }

                    var tech = dc.Employee.FirstOrDefault(x => x.msgId == m_msg.id);
                    if (tech == null && job != null)
                    {
                        tech = dc.Employee.FirstOrDefault(x => x.id == m_msg.techId);
                        if (tech == null)
                        {
                            if (m_msg.gender == null || m_msg.gender.Trim() == "" || m_msg.gender == "无" || m_msg.gender == "女")
                            {
                                var tLst = dc.TechIndex.FirstOrDefault(x => x.dutyid == job.id && x.gender == "女").ids.Split('%').ToList();

                                foreach (var techIds in tLst)
                                {
                                    var tech_id = techIds.Split('=');
                                    if (tech_id[1] == "F")
                                    {
                                        continue;
                                    }

                                    var tmp_tech = dc.Employee.FirstOrDefault(x => x.id == tech_id[0]);
                                    if (tmp_tech.techStatus == "空闲" || tmp_tech.techStatus == null)
                                    {
                                        tech            = tmp_tech;
                                        tech.techStatus = "待钟";
                                        tech.techMenu   = m_msg.menu;
                                        tech.room       = m_msg.room;
                                        tech.seat       = m_msg.seat;
                                        tech.msgId      = m_msg.id;

                                        m_msg.techId = tech.id;
                                        dc.SubmitChanges();

                                        this.Invoke(new delegate_create_tech_panel_gender(create_tech_panel_gender),
                                                    new object[] { dc, "女", SplitGender.Panel1 });
                                        //this.Invoke(new delegate_no_param(create_tech_panel));
                                        break;
                                    }
                                }
                            }
                            else if (m_msg.gender == "男")
                            {
                                var tLst = dc.TechIndex.FirstOrDefault(x => x.dutyid == job.id && x.gender == "男").ids.Split('%').ToList();

                                foreach (var techIds in tLst)
                                {
                                    var tech_id = techIds.Split('=');
                                    if (tech_id[1] == "F")
                                    {
                                        continue;
                                    }
                                    var tmp_tech = dc.Employee.FirstOrDefault(x => x.id == tech_id[0]);
                                    if (tmp_tech.techStatus == "空闲" || tmp_tech.techStatus == null)
                                    {
                                        tech            = tmp_tech;
                                        tech.techStatus = "待钟";
                                        tech.techMenu   = m_msg.menu;
                                        tech.room       = m_msg.room;
                                        tech.seat       = m_msg.seat;
                                        tech.msgId      = m_msg.id;

                                        m_msg.techId = tech.id;
                                        dc.SubmitChanges();

                                        this.Invoke(new delegate_create_tech_panel_gender(create_tech_panel_gender),
                                                    new object[] { dc, "男", SplitGender.Panel2 });
                                        //this.Invoke(new delegate_no_param(create_tech_panel));
                                        break;
                                    }
                                }
                            }
                        }
                        else
                        {
                            tech.techStatus = "待钟";
                            tech.techMenu   = m_msg.menu;
                            tech.room       = m_msg.room;
                            tech.seat       = m_msg.seat;
                            tech.msgId      = m_msg.id;

                            m_msg.techId = tech.id;
                            dc.SubmitChanges();

                            Control sp = SplitGender.Panel1;
                            if (tech.gender == "男")
                            {
                                sp = SplitGender.Panel2;
                            }

                            this.Invoke(new delegate_create_tech_panel_gender(create_tech_panel_gender),
                                        new object[] { dc, tech.gender, sp });
                            //this.Invoke(new delegate_no_param(create_tech_panel));
                        }
                    }
                    this.Invoke(new delegate_no_param(showMessage));
                    play();
                    if (print_tech_msg)
                    {
                        print_msg(dc);
                    }
                }
                catch
                {
                }
            }
        }
Exemple #6
0
        //上传ClearTable数据
        private void run_clearTable()
        {
            while (true)
            {
                try
                {
                    var      db            = new BathDBDataContext(connectionString);
                    long     maxId         = -1;
                    DateTime clearTime     = DateTime.Now;
                    var      uploadRecords = db.UploadRecords.FirstOrDefault(x => x.tableName == "ClearTable");
                    if (uploadRecords != null)
                    {
                        maxId = MConvert <long> .ToTypeOrDefault(uploadRecords.maxId, -1);

                        clearTime = MConvert <DateTime> .ToTypeOrDefault(uploadRecords.clearTime, clearTime);
                    }
                    else
                    {
                        uploadRecords           = new UploadRecords();
                        uploadRecords.tableName = "ClearTable";
                        db.UploadRecords.InsertOnSubmit(uploadRecords);
                        db.SubmitChanges();
                    }

                    var clearTables  = db.ClearTable.Where(x => x.id > maxId);
                    var _clearTables = db.ClearTable.Where(x => x.id == maxId && x.clearTime != clearTime);
                    clearTables = clearTables.Union(_clearTables).Distinct();

                    bool changed = false;
                    foreach (var clearTable in clearTables)
                    {
                        bool sucess = false;
                        while (!sucess)
                        {
                            sucess = upload_json(BathClass.ConvertToJsonString(clearTable), "ClearTable");
                            if (sucess)
                            {
                                changed = true;
                                if (maxId < clearTable.id)
                                {
                                    maxId = clearTable.id;
                                    uploadRecords.maxId = clearTable.id;
                                }
                                if (clearTable.clearTime != clearTime)
                                {
                                    clearTime = clearTable.clearTime;
                                    uploadRecords.clearTime = clearTable.clearTime;
                                }
                                db.SubmitChanges();
                            }
                        }
                    }
                    if (changed)
                    {
                        db.SubmitChanges();
                    }
                }
                catch (System.Exception ex)
                {
                }
            }
        }
Exemple #7
0
        //上传会员卡销售
        private void run_cardSale()
        {
            while (true)
            {
                try
                {
                    var db = new BathDBDataContext(connectionString);

                    long maxId         = -1;
                    var  abandonIds    = new List <long>();
                    var  uploadRecords = db.UploadRecords.FirstOrDefault(x => x.tableName == "CardSale");
                    if (uploadRecords != null)
                    {
                        maxId = MConvert <long> .ToTypeOrDefault(uploadRecords.maxId, -1);

                        if (uploadRecords.abandonId != null)
                        {
                            var idArray = uploadRecords.abandonId.Split(Constants.SplitChar);
                            abandonIds = Array.ConvertAll <string, long>(idArray, delegate(string s) { return(MConvert <long> .ToTypeOrDefault(s, -1)); }).ToList();
                        }
                    }
                    else
                    {
                        uploadRecords           = new UploadRecords();
                        uploadRecords.tableName = "CardSale";
                        db.UploadRecords.InsertOnSubmit(uploadRecords);
                        db.SubmitChanges();
                    }

                    #region 更新abandonIds,去除掉夜审之前的,以免abandonIds过长

                    var maxTime = DateTime.Parse("2013-01-01 00:00:00");
                    if (db.ClearTable.Any())
                    {
                        maxTime = db.ClearTable.Max(x => x.clearTime);
                    }
                    var max_passed_id = db.CardSale.Where(x => x.payTime <= maxTime).Max(x => x.id);
                    abandonIds.RemoveAll(x => x <= max_passed_id);

                    var _idArray = Array.ConvertAll <long, string>(abandonIds.ToArray(), delegate(long s) { return(s.ToString()); });
                    uploadRecords.abandonId = string.Join(Constants.SplitChar.ToString(), _idArray);
                    db.SubmitChanges();

                    #endregion

                    var cardSales  = db.CardSale.Where(x => x.id > maxId);
                    var _cardSales = db.CardSale.Where(x => x.payTime >= maxTime && x.abandon != null && !abandonIds.Contains(x.id));
                    cardSales = cardSales.Union(_cardSales).Distinct();

                    bool changed = false;
                    foreach (var cardSale in cardSales)
                    {
                        bool sucess = false;
                        while (!sucess)
                        {
                            sucess = upload_json(BathClass.ConvertToJsonString(cardSale), "CardSale");
                            if (sucess)
                            {
                                changed = true;
                                if (maxId < cardSale.id)
                                {
                                    maxId = cardSale.id;
                                    uploadRecords.maxId = cardSale.id;
                                }
                                if (cardSale.abandon != null && cardSale.id >= max_passed_id)
                                {
                                    uploadRecords.abandonId += Constants.SplitChar + cardSale.id.ToString();
                                }
                            }
                        }
                    }
                    if (changed)
                    {
                        db.SubmitChanges();
                    }
                }
                catch (System.Exception ex)
                {
                }
            }
        }
Exemple #8
0
        //每隔1秒监听一次
        private void watch_Timer_Elapsed(object sender, EventArgs e)
        {
            Thread.CurrentThread.IsBackground = true;
            BathDBDataContext dc = new BathDBDataContext(connectionString);
            if (dc.PayMsg.Count() != 0)
            {
                watch_Timer.Interval = ts.Seconds * 1000;
                PayMsg msg = dc.PayMsg.ToList().Last();
                string path = dir + GeneralClass.Now.ToShortDateString() + "\\" + msg.systemId + ".avi";

                recording = true;
                video.StartKinescope(path);
                recordTime = GeneralClass.Now;

                dc.PayMsg.DeleteAllOnSubmit(dc.PayMsg.ToArray());
                dc.SubmitChanges();
            }
            if (recording && GeneralClass.Now - recordTime >= ts)
            {
                watch_Timer.Interval = 100;
                recording = false;
                video.StopKinescope();
            }
        }
Exemple #9
0
        //点单
        //public static string set_seat_orderObjects(string seat_text, string infor, string user, string order_techId)
        public static string set_seat_orderObjects(string roomId, string seat_text, string infor, string user, string order_techId)
        {
            try
            {
                var db = new BathDBDataContext(connectionString);
                var m_Seat = db.Seat.FirstOrDefault(x => x.text == seat_text);

                string[] strs = infor.Split('|');
                for (int i = 0; i < strs.Length; i = i + 7)
                {
                    int id = Convert.ToInt32(strs[i]);
                    string menu = strs[i + 1];
                    string tech = strs[i + 2];
                    double number = Convert.ToDouble(strs[i + 3]);
                    double money = Convert.ToDouble(strs[i + 4]);
                    string billId = strs[i + 5];
                    string st = strs[i + 6].ToString();

                    Orders order;
                    if (id == -1)
                    {
                        order = new Orders();

                        order.menu = menu;
                        order.text = seat_text;
                        order.systemId = m_Seat.systemId;
                        order.inputTime = DateTime.Now;
                        order.inputEmployee = user;
                        order.paid = false;

                        //if (roomId != "" && roomId != "null")
                        //    order.roomId = roomId;

                        if (tech != "" && tech != "null")
                        {
                            order.technician = tech;
                            if (order_techId != "null" && tech == order_techId)
                                order.techType = "点钟";
                        }

                        if (billId != "" && billId != "null")
                            order.billId = billId;

                        if (st != "null")
                            order.startTime = Convert.ToDateTime(st);
                    }
                    else
                        order = db.Orders.FirstOrDefault(x => x.id == id);

                    if (order == null)
                        continue;
                    order.number = number;
                    order.money = money;

                    if (id == -1)
                    {
                        var _order = db.Orders.FirstOrDefault(x => x.menu == order.menu &&
                            x.money == order.money &&
                            x.inputEmployee == order.inputEmployee &&
                            x.number == order.number &&
                            x.systemId == order.systemId &&
                            x.text == order.text);
                        if (_order != null && (order.inputTime - _order.inputTime).TotalSeconds <= 40)
                            continue;
                        db.Orders.InsertOnSubmit(order);

                        //Thread td = new Thread(delegate() { print_kitchen(order); });
                        //td.IsBackground = true;
                        //td.Start();
                    }
                    db.SubmitChanges();

                }
                //find_combo(db, m_Seat);

                return "true";
            }
            catch (System.Exception ex)
            {
                insert_file("time=" + DateTime.Now.ToString()+"\n");
                insert_file(infor);
                insert_file("error=" + ex.ToString());
                insert_file("\n");
                return "false";
            }
        }
Exemple #10
0
        //设置接收到客房预警信息
        public static string set_room_warned(string roomId)
        {
            try
            {
                var db = new BathDBDataContext(connectionString);

                var warn = db.RoomWarn.FirstOrDefault(x => x.room == null || (x.room != null && !x.room.Contains(roomId)));
                if (warn != null)
                {
                    if (warn.room == null)
                        warn.room = roomId;
                    else
                        warn.room += "|" + roomId;
                }

                db.SubmitChanges();

                return "true";
            }
            catch (System.Exception e)
            {
                return "false";
            }
        }
Exemple #11
0
        //设置客房催钟已读
        public static string set_room_called(string roomId, string seatId)
        {
            try
            {
                var db = new BathDBDataContext(connectionString);
                var call = db.RoomCall.FirstOrDefault(x => x.roomId == roomId && x.seatId == seatId && !x.read);

                if (call == null)
                    return "null";

                call.read = true;
                db.SubmitChanges();

                return "true";
            }
            catch (System.Exception e)
            {
                return "false";
            }
        }
Exemple #12
0
        //发送消息给技师房
        public static string send_tech_msg(string techId, string serveType, string techType, 
            string number, string roomId, string seatId,string gender)
        {
            try
            {
                var db = new BathDBDataContext(connectionString);

                var m_TechMsg = new TechMsg();

                m_TechMsg.time = DateTime.Now;
                m_TechMsg.techId = techId;
                m_TechMsg.type = serveType;
                m_TechMsg.room = roomId;
                m_TechMsg.seat = seatId;
                m_TechMsg.techType = techType;
                m_TechMsg.gender = gender;
                //m_TechMsg.number = Convert.ToInt32(number);
                m_TechMsg.menu = number;
                m_TechMsg.read = false;
                db.TechMsg.InsertOnSubmit(m_TechMsg);
                db.SubmitChanges();

                return "true";
            }
            catch (System.Exception e)
            {
                return "false";
            }
        }
Exemple #13
0
        public static string send_log(string msg, string depart, string sender, 
            string img1Url,string img2Url,string img3Url)
        {
            string res = "T";
            try
            {
                var db = new BathDBDataContext(connectionString);

                var log = new DepartmentLog();
                log.date = DateTime.Now;
                log.departId = db.Department.FirstOrDefault(x => x.name == depart).id;
                log.msg = msg;
                if (sender != "F")
                    log.sender = db.Employee.FirstOrDefault(x => x.id == sender).name;

                if (img1Url != "F")
                    log.imgUrl = img1Url;
                if (img2Url != "F")
                    log.img2Url = img2Url;
                if (img3Url != "F")
                    log.img3Url = img3Url;

                db.DepartmentLog.InsertOnSubmit(log);
                db.SubmitChanges();
                res = log.id.ToString();
            }
            catch (System.Exception e)
            {
                res = "F";
            }

            return res;
        }
Exemple #14
0
        //给吧台发送消息
        public static string send_barMsg(string roomId, string seatId, string msg, string time)
        {
            try
            {
                var db = new BathDBDataContext(connectionString);
                var barMsg = new BarMsg();

                barMsg.roomId = roomId;
                barMsg.seatId = seatId;
                barMsg.msg = msg;
                barMsg.read = false;
                barMsg.time = Convert.ToDateTime(time);

                db.BarMsg.InsertOnSubmit(barMsg);
                db.SubmitChanges();

                return "true";
            }
            catch (System.Exception e)
            {
                return "false";
            }
        }
Exemple #15
0
        //确定
        private void btnOk_Click(object sender, EventArgs e)
        {
            if (catId.Text == "")
            {
                BathClass.printErrorMsg("需要选择商品类别");
                return;
            }

            m_goods.name = name.Text.Trim();
            try
            {
                m_goods.minAmount = Convert.ToInt32(minAmount.Text.Trim());
            }
            catch
            {
                m_goods.minAmount = null;
            }
            m_goods.note       = note.Text.Trim();
            m_goods.goodsCatId = db.GoodsCat.FirstOrDefault(x => x.name == catId.Text).id;


            if (newGoods)
            {
                if (db.StorageList.FirstOrDefault(x => x.name == m_goods.name) != null)
                {
                    BathClass.printErrorMsg("已经存在此名称的商品!");
                    name.SelectAll();
                    return;
                }
                db.StorageList.InsertOnSubmit(m_goods);
            }

            if (amount.Text.Trim() != "")
            {
                if (amount.Text.Trim() == "")
                {
                    BathClass.printErrorMsg("需要输入数量!");
                    return;
                }

                if (stock.Text == "")
                {
                    BathClass.printErrorMsg("需要选择仓库!");
                    return;
                }

                StockIn inStock = new StockIn();
                inStock.name = name.Text;
                if (cost.Text != "")
                {
                    inStock.cost = Convert.ToDouble(cost.Text);
                }
                inStock.amount     = Convert.ToDouble(amount.Text);
                inStock.stockId    = db.Stock.FirstOrDefault(x => x.name == stock.Text).id;
                inStock.note       = stockNote.Text;
                inStock.date       = DateTime.Now;
                inStock.transactor = LogIn.m_User.id;
                inStock.checker    = LogIn.m_User.id;

                string unit_text = ComboUnit.Text.Trim();
                if (unit_text != "")
                {
                    inStock.unit = unit_text;
                    if (!db.Unit.Any(x => x.name == unit_text))
                    {
                        var unit_instance = new Unit();
                        unit_instance.name = unit_text;
                        db.Unit.InsertOnSubmit(unit_instance);
                    }
                }

                if (money.Text.Trim() != "")
                {
                    inStock.money = Convert.ToDouble(money.Text.Trim());
                }
                db.StockIn.InsertOnSubmit(inStock);
            }
            db.SubmitChanges();
            if (newGoods)
            {
                name.Text              = "";
                catId.SelectedIndex    = -1;
                provider.SelectedIndex = -1;
                minAmount.Text         = "";
                note.Text              = "";
                cost.Text              = "";
                amount.Text            = "";
                stock.SelectedIndex    = -1;
                stockNote.Text         = "";
                money.Text             = "";
                name.Focus();
                db.SubmitChanges();
                m_form.dgv_show();
                m_goods = new StorageList();
            }
            else
            {
                this.DialogResult = DialogResult.OK;
                this.Close();
            }
        }
Exemple #16
0
        //上传会员卡销售
        private void run_cardSale()
        {
            while (true)
            {
                try
                {
                    var db = new BathDBDataContext(connectionString);

                    long maxId = -1;
                    var abandonIds = new List<long>();
                    var uploadRecords = db.UploadRecords.FirstOrDefault(x => x.tableName == "CardSale");
                    if (uploadRecords != null)
                    {
                        maxId = MConvert<long>.ToTypeOrDefault(uploadRecords.maxId, -1);
                        if (uploadRecords.abandonId != null)
                        {
                            var idArray = uploadRecords.abandonId.Split(Constants.SplitChar);
                            abandonIds = Array.ConvertAll<string, long>(idArray, delegate(string s) { return MConvert<long>.ToTypeOrDefault(s, -1); }).ToList();
                        }
                    }
                    else
                    {
                        uploadRecords = new UploadRecords();
                        uploadRecords.tableName = "CardSale";
                        db.UploadRecords.InsertOnSubmit(uploadRecords);
                        db.SubmitChanges();
                    }

                    #region 更新abandonIds,去除掉夜审之前的,以免abandonIds过长

                    var maxTime = DateTime.Parse("2013-01-01 00:00:00");
                    if (db.ClearTable.Any())
                        maxTime = db.ClearTable.Max(x => x.clearTime);
                    var max_passed_id = db.CardSale.Where(x => x.payTime <= maxTime).Max(x => x.id);
                    abandonIds.RemoveAll(x => x <= max_passed_id);

                    var _idArray = Array.ConvertAll<long, string>(abandonIds.ToArray(), delegate(long s) { return s.ToString(); });
                    uploadRecords.abandonId = string.Join(Constants.SplitChar.ToString(), _idArray);
                    db.SubmitChanges();

                    #endregion

                    var cardSales = db.CardSale.Where(x => x.id > maxId);
                    var _cardSales = db.CardSale.Where(x => x.payTime >= maxTime && x.abandon != null && !abandonIds.Contains(x.id));
                    cardSales = cardSales.Union(_cardSales).Distinct();

                    bool changed = false;
                    foreach (var cardSale in cardSales)
                    {
                        bool sucess = false;
                        while (!sucess)
                        {
                            sucess = upload_json(BathClass.ConvertToJsonString(cardSale), "CardSale");
                            if (sucess)
                            {
                                changed = true;
                                if (maxId < cardSale.id)
                                {
                                    maxId = cardSale.id;
                                    uploadRecords.maxId = cardSale.id;
                                }
                                if (cardSale.abandon != null && cardSale.id >= max_passed_id)
                                {
                                    uploadRecords.abandonId += Constants.SplitChar + cardSale.id.ToString();
                                }
                            }
                        }
                    }
                    if (changed)
                        db.SubmitChanges();
                }
                catch (System.Exception ex)
                {

                }
            }
        }
Exemple #17
0
        //上传账单数据
        private void run_account()
        {
            while (true)
            {
                try
                {
                    var db = new BathDBDataContext(connectionString);

                    long maxId = -1;
                    var abandonIds = new List<long>();
                    var account_uploadRecords = db.UploadRecords.FirstOrDefault(x => x.tableName == "Account");
                    if (account_uploadRecords != null)
                    {
                        maxId = MConvert<long>.ToTypeOrDefault(account_uploadRecords.maxId, -1);
                        if (account_uploadRecords.abandonId != null)
                        {
                            var idArray = account_uploadRecords.abandonId.Split(Constants.SplitChar);
                            abandonIds = Array.ConvertAll<string, long>(idArray, delegate(string s) { return MConvert<long>.ToTypeOrDefault(s, -1); }).ToList();
                        }
                    }
                    else
                    {
                        account_uploadRecords = new UploadRecords();
                        account_uploadRecords.tableName = "Account";
                        db.UploadRecords.InsertOnSubmit(account_uploadRecords);
                        db.SubmitChanges();
                    }

                    #region 更新abandonIds,去除掉夜审之前的,以免abandonIds过长

                    var maxTime = DateTime.Parse("2013-01-01 00:00:00");
                    if (db.ClearTable.Any())
                        maxTime = db.ClearTable.Max(x => x.clearTime);
                    var max_passed_account_id = db.Account.Where(x => x.payTime <= maxTime).Max(x => x.id);
                    abandonIds.RemoveAll(x => x <= max_passed_account_id);

                    var _idArray = Array.ConvertAll<long, string>(abandonIds.ToArray(), delegate(long s) { return s.ToString(); });
                    account_uploadRecords.abandonId = string.Join(Constants.SplitChar.ToString(), _idArray);
                    db.SubmitChanges();

                    #endregion

                    var accounts = db.Account.Where(x => x.id > maxId);
                    var _accounts = db.Account.Where(x => x.payTime >= maxTime && x.abandon != null && !abandonIds.Contains(x.id));
                    accounts = accounts.Union(_accounts).Distinct();

                    bool changed = false;
                    foreach (var account in accounts)
                    {
                        bool sucess = false;
                        while (!sucess)
                        {
                            sucess = upload_json(BathClass.ConvertToJsonString(account), "account");
                            if (sucess)
                            {
                                changed = true;
                                if (maxId < account.id)
                                {
                                    maxId = account.id;
                                    account_uploadRecords.maxId = account.id;
                                }
                                if (account.abandon != null && account.id >= max_passed_account_id)
                                {
                                    account_uploadRecords.abandonId += Constants.SplitChar + account.id.ToString();
                                }
                            }
                        }
                    }

                    if (changed)
                        db.SubmitChanges();
                }
                catch (System.Exception ex)
                {
                    IOUtil.insert_file(BathClass.getErrorFileName(), DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "run_account" + ex.Message);
                }
            }
        }
Exemple #18
0
        //查找套餐
        public static void find_combo(BathDBDataContext db, Seat m_Seat)
        {
            db.Orders.DeleteAllOnSubmit(db.Orders.Where(x => x.systemId == m_Seat.systemId && x.menu.Contains("套餐")));
            var orders = db.Orders.Where(x => x.systemId == m_Seat.systemId && x.deleteEmployee == null);
            orders = orders.Where(x => !x.inputEmployee.Contains("电脑") && !x.menu.Contains("套餐"));
            foreach (Orders tmp_order in orders)
            {
                if (tmp_order.comboId != null)
                {
                    tmp_order.comboId = null;
                    tmp_order.money = db.Menu.FirstOrDefault(x => x.name == tmp_order.menu).price * tmp_order.number;
                }
            }
            db.SubmitChanges();

            var order_menus = orders.Where(x => x.comboId == null).Select(x => x.menu);
            var menus = db.Menu;
            var comboList = db.Combo.OrderByDescending(x => x.freePrice);
            foreach (Combo combo in comboList)
            {
                if (combo.priceType == "消费满免项目")
                {
                    if (get_seat_expense_for_combo(db, combo, m_Seat) < combo.expenseUpTo)
                        continue;

                    var freeIds = 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);
                        if (tmp_order == null) continue;
                        tmp_order.comboId = combo.id;
                        tmp_order.money = 0;
                    }
                }
                else
                {
                    List<int> menuIds = disAssemble(combo.menuIds);
                    var combo_menus = menus.Where(x => menuIds.Contains(x.id)).Select(x => x.name);
                    if (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);
                            tmp_order.comboId = combo.id;
                            if (combo.priceType == "免项目")
                            {
                                var freeIds = disAssemble(combo.freeMenuIds);
                                var freeMenus = db.Menu.Where(x => freeIds.Contains(x.id)).Select(x => x.name);
                                if (freeMenus.Contains(tmp_order.menu))
                                    tmp_order.money = 0;
                            }
                        }
                        if (combo.priceType == "减金额")
                        {
                            Orders comboOrder = new Orders();
                            comboOrder.menu = "套餐" + combo.id.ToString() + "优惠";
                            comboOrder.text = m_Seat.text;
                            comboOrder.systemId = m_Seat.systemId;
                            comboOrder.number = 1;
                            comboOrder.inputTime = DateTime.Now;
                            comboOrder.inputEmployee = "套餐";
                            comboOrder.paid = false;
                            comboOrder.comboId = combo.id;
                            comboOrder.money = Convert.ToDouble(combo.price) - combo.originPrice;

                            db.Orders.InsertOnSubmit(comboOrder);
                        }
                    }
                }
            }
            db.SubmitChanges();
        }
Exemple #19
0
        //确定
        private void okBtn_Click(object sender, EventArgs e)
        {
            if (name.Text == "")
            {
                BathClass.printErrorMsg("需要选择商品名称");
                return;
            }

            if (amount.Text.Trim() == "")
            {
                BathClass.printErrorMsg("需要输入数量!");
                return;
            }

            if (stock.Text == "")
            {
                BathClass.printErrorMsg("需要选择仓库!");
                return;
            }

            if (transactor.Text == "")
            {
                BathClass.printErrorMsg("需要输入经手人!");
                return;
            }

            if (checker.Text == "")
            {
                BathClass.printErrorMsg("需要输入审核!");
                return;
            }


            if (provider.Text.Trim() == "")
            {
                BathClass.printErrorMsg("需要选择供应商!");
                return;
            }
            stockin.name = name.Text;
            stockin.cost = MConvert <double> .ToTypeOrDefault(cost.Text.Trim(), 0);

            stockin.amount = MConvert <double> .ToTypeOrDefault(amount.Text.Trim(), 0);

            stockin.unit       = unit.Text;
            stockin.stockId    = db.Stock.FirstOrDefault(x => x.name == stock.Text).id;
            stockin.note       = note.Text;
            stockin.date       = dtPickerIntoStock.Value;
            stockin.transactor = transactor.Text;
            stockin.checker    = checker.Text;
            stockin.money      = totalmoney;

            //StockIn inStock = new StockIn();
            if (newStockin)
            {
                if (db.Unit.Where(x => x.name == unit.Text.Trim()).Count() == 0)
                {
                    Unit u = new Unit();
                    u.name = unit.Text.Trim();
                    db.Unit.InsertOnSubmit(u);
                    db.SubmitChanges();
                }

                var p = db.Provider.FirstOrDefault(x => x.name == provider.Text.Trim());
                if (p == null)
                {
                    p      = new Provider();
                    p.name = provider.Text.Trim();
                    var form = new ProviderForm(db, p);
                    if (form.ShowDialog() != DialogResult.OK)
                    {
                        return;
                    }
                    db.Provider.InsertOnSubmit(p);
                    db.SubmitChanges();
                }
                stockin.providerId = p.id;
                db.StockIn.InsertOnSubmit(stockin);
                db.SubmitChanges();
                stockin = new StockIn();
                goodsCat.SelectedIndex = -1;
                name.Text              = "";
                stock.SelectedIndex    = -1;
                unit.Text              = "";
                amount.Text            = "";
                provider.SelectedIndex = -1;
                cost.Text              = "";
                money.Text             = "";
                checker.Text           = "";
                transactor.Text        = "";
                note.Text              = "";
                checker.Text           = LogIn.m_User.name;
                transactor.Text        = LogIn.m_User.name;
            }
            else
            {
                db.SubmitChanges();
                this.DialogResult = DialogResult.OK;
                this.Close();
            }
        }
Exemple #20
0
        //输入小费
        public static string make_tip(string seatTxt, string tech, string money)
        {
            try
            {
                var db = new BathDBDataContext(connectionString);
                var m_Seat = db.Seat.FirstOrDefault(x => x.text == seatTxt);
                var menu = db.Menu.FirstOrDefault(x => x.name == "小费");

                Orders order = new Orders();
                order.menu = menu.name;
                order.text = m_Seat.text;
                order.systemId = m_Seat.systemId;
                order.number = 1;
                order.money = Convert.ToDouble(money);
                order.inputTime = DateTime.Now;
                order.inputEmployee = tech;
                order.paid = false;
                order.technician = tech;

                db.Orders.InsertOnSubmit(order);
                db.SubmitChanges();

                return "true";
            }
            catch (System.Exception e)
            {
                return "false";
            }
        }
Exemple #21
0
        //上传账单数据
        private void run_account()
        {
            while (true)
            {
                try
                {
                    var db = new BathDBDataContext(connectionString);

                    long maxId                 = -1;
                    var  abandonIds            = new List <long>();
                    var  account_uploadRecords = db.UploadRecords.FirstOrDefault(x => x.tableName == "Account");
                    if (account_uploadRecords != null)
                    {
                        maxId = MConvert <long> .ToTypeOrDefault(account_uploadRecords.maxId, -1);

                        if (account_uploadRecords.abandonId != null)
                        {
                            var idArray = account_uploadRecords.abandonId.Split(Constants.SplitChar);
                            abandonIds = Array.ConvertAll <string, long>(idArray, delegate(string s) { return(MConvert <long> .ToTypeOrDefault(s, -1)); }).ToList();
                        }
                    }
                    else
                    {
                        account_uploadRecords           = new UploadRecords();
                        account_uploadRecords.tableName = "Account";
                        db.UploadRecords.InsertOnSubmit(account_uploadRecords);
                        db.SubmitChanges();
                    }

                    #region 更新abandonIds,去除掉夜审之前的,以免abandonIds过长

                    var maxTime = DateTime.Parse("2013-01-01 00:00:00");
                    if (db.ClearTable.Any())
                    {
                        maxTime = db.ClearTable.Max(x => x.clearTime);
                    }
                    var max_passed_account_id = db.Account.Where(x => x.payTime <= maxTime).Max(x => x.id);
                    abandonIds.RemoveAll(x => x <= max_passed_account_id);

                    var _idArray = Array.ConvertAll <long, string>(abandonIds.ToArray(), delegate(long s) { return(s.ToString()); });
                    account_uploadRecords.abandonId = string.Join(Constants.SplitChar.ToString(), _idArray);
                    db.SubmitChanges();

                    #endregion

                    var accounts  = db.Account.Where(x => x.id > maxId);
                    var _accounts = db.Account.Where(x => x.payTime >= maxTime && x.abandon != null && !abandonIds.Contains(x.id));
                    accounts = accounts.Union(_accounts).Distinct();

                    bool changed = false;
                    foreach (var account in accounts)
                    {
                        bool sucess = false;
                        while (!sucess)
                        {
                            sucess = upload_json(BathClass.ConvertToJsonString(account), "account");
                            if (sucess)
                            {
                                changed = true;
                                if (maxId < account.id)
                                {
                                    maxId = account.id;
                                    account_uploadRecords.maxId = account.id;
                                }
                                if (account.abandon != null && account.id >= max_passed_account_id)
                                {
                                    account_uploadRecords.abandonId += Constants.SplitChar + account.id.ToString();
                                }
                            }
                        }
                    }

                    if (changed)
                    {
                        db.SubmitChanges();
                    }
                }
                catch (System.Exception ex)
                {
                    IOUtil.insert_file(BathClass.getErrorFileName(), DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "run_account" + ex.Message);
                }
            }
        }
Exemple #22
0
        //处理预约
        public static string proceed_reservation(string techId, string seatId, string accept)
        {
            try
            {
                var db = new BathDBDataContext(connectionString);

                var tr = db.TechReservation.FirstOrDefault(x => !x.proceeded.Value && x.techId == techId && x.seatId == seatId);
                if (tr == null)
                    tr = db.TechReservation.FirstOrDefault(x => !x.proceeded.Value && x.techId == "轮钟" && x.seatId == seatId);

                if (tr == null)
                    return "null";

                tr.proceeded = true;

                if (accept == "true")
                    tr.accept = true;
                else
                    tr.accept = false;

                db.SubmitChanges();

                return "true";
            }
            catch (System.Exception e)
            {
                return "false";
            }
        }
Exemple #23
0
        //宾客付款
        private void payTool_Click(object sender, EventArgs e)
        {
            BathDBDataContext dc = new BathDBDataContext(LogIn.connectionString);

            HintForm hintForm = new HintForm("请插入会员卡...");

            if (hintForm.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            MemberCardUsingForm memberCardUsingForm = new MemberCardUsingForm(Convert.ToDouble(moneyPayable.Text));

            if (memberCardUsingForm.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            if (m_Member == null)
            {
                m_Member = memberCardUsingForm.m_member;
            }

            Account account = new Account();

            account.text         = m_Seat.text;
            account.systemId     = m_Seat.systemId;
            account.openTime     = m_Seat.openTime.ToString();
            account.openEmployee = m_Seat.openEmployee;
            account.payTime      = DateTime.Now;
            account.payEmployee  = LogIn.m_User.id.ToString();
            account.macAddress   = PCUtil.getMacAddr_Local();
            if (m_promotion_Member != null)
            {
                account.promotionMemberId = m_promotion_Member.CI_CardNo;
                account.promotionAmount   = discount_money;
            }
            if (m_Member != null)
            {
                account.memberId = memberCardUsingForm.m_member.CI_CardNo;
            }

            account.creditCard = Convert.ToInt32(moneyPayable.Text);
            db.Account.InsertOnSubmit(account);

            db.SubmitChanges();

            var orderList = db.Orders.Where(x => x.systemId == m_Seat.systemId && !x.paid);

            foreach (Orders order in orderList)
            {
                order.paid      = true;
                order.accountId = account.id;
            }

            m_Seat.status = 3;
            var room = db.Room.FirstOrDefault(x => x.seat == m_Seat.text);

            if (room != null)
            {
                room.status = "等待清洁";
            }

            insert_member_infor(account);
            db.SubmitChanges();

            var act_old = dc.Account.FirstOrDefault(x => x.systemId == m_Seat.systemId && x.abandon != null);

            if (act_old == null)
            {
                printTool_Click("结账单");
                printTool_Click("存根单");
            }
            else
            {
                printTool_Click("补救单");
            }

            var act = dc.Account.FirstOrDefault(x => x.systemId == m_Seat.systemId && x.abandon == null);
        }
Exemple #24
0
        //预约技师
        public static string reserve_tech(string techId, string seatId, string roomId, string time, string gender)
        {
            try
            {
                var db = new BathDBDataContext(connectionString);

                var tr = new TechReservation();

                tr.techId = techId;
                tr.seatId = seatId;
                tr.roomId = roomId;
                tr.time = Convert.ToDateTime(time);
                tr.gender = gender;
                tr.proceeded = false;

                db.TechReservation.InsertOnSubmit(tr);
                db.SubmitChanges();

                return "true";
            }
            catch (System.Exception e)
            {
                return "false";
            }
        }
Exemple #25
0
        //确定
        private void okBtn_Click(object sender, EventArgs e)
        {
            if (name.Text == "" || phone.Text == "")
            {
                GeneralClass.printErrorMsg("需要输入姓名和电话");
                return;
            }

            if (newEmployee)
            {
                if (db.Employee.FirstOrDefault(x => x.id.ToString() == id.Text) != null)
                {
                    GeneralClass.printErrorMsg("已经存在此工号");
                    id.SelectAll();
                    id.Focus();
                    return;
                }
            }
            m_Employee.id        = id.Text;
            m_Employee.idCard    = idCard.Text;
            m_Employee.name      = name.Text;
            m_Employee.cardId    = cardId.Text;
            m_Employee.jobId     = db.Job.FirstOrDefault(x => x.name == job.Text).id;
            m_Employee.onDuty    = onDuty.Checked;
            m_Employee.phone     = phone.Text;
            m_Employee.note      = note.Text;
            m_Employee.salary    = salary.Text;
            m_Employee.gender    = gender.Text;
            m_Employee.entryDate = Convert.ToDateTime(entryDate.Value.ToShortDateString());
            m_Employee.email     = email.Text;
            m_Employee.birthday  = Convert.ToDateTime(birthday.Value.ToShortDateString());
            m_Employee.address   = address.Text;

            if (newEmployee)
            {
                m_Employee.password = IOUtil.GetMD5("12345678");
                db.Employee.InsertOnSubmit(m_Employee);

                db.SubmitChanges();
                m_Form.dgv_show();

                id.Text        = (m_Employee.id + 1).ToString();
                name.Text      = "";
                cardId.Text    = "";
                phone.Text     = "";
                onDuty.Checked = true;
                salary.Text    = "";
                idCard.Text    = "";
                email.Text     = "";
                address.Text   = "";
                note.Text      = "";
                //gender.Text = "男";
                //job.Text = job.Items[0].ToString();
                name.Focus();
                m_Employee = new Employee();
                return;
            }
            else
            {
                db.SubmitChanges();
                this.DialogResult = DialogResult.OK;
            }
        }
Exemple #26
0
        //修改技师状态
        public static string save_tech(string techId, string room, string seat, string status, string serverTime, string startTime)
        {
            //StringBuilder sb = new StringBuilder();
            try
            {
                //insert_file("enter save tech");
                //var dbLayer = new DBLayer(connectionString);
                //sb.Append("update [Employee] set techStatus='" + status + "'");
                var db = new BathDBDataContext(connectionString);
                var tech = db.Employee.FirstOrDefault(x => x.id.ToString() == techId);
                if (tech == null)
                    return "null";

                string old_status = tech.techStatus.Trim();
                if (room != "null")
                //    sb.Append(",room='" + room + "'");
                    tech.room = room;
                else
                //    sb.Append(",room=null");
                    tech.room = null;

                if (seat == "null")
                    //sb.Append(",seat=null");
                    tech.seat = null;
                else
                    //sb.Append(",seat='" + seat + "'");
                    tech.seat = seat;

                //insert_file(status.Trim());
                tech.techStatus = status.Trim();
                if (serverTime != "null")
                    //sb.Append(",serverTime=" + serverTime);
                    tech.serverTime = Convert.ToInt32(serverTime);
                else
                    //sb.Append(",serverTime=null");
                    tech.serverTime = null;

                if (startTime != "null")
                    //sb.Append(",startTime='" + startTime + "'");
                    tech.startTime = Convert.ToDateTime(startTime);
                else
                    //sb.Append(",startTime=null");
                    tech.startTime = null;

                var tech_index = db.TechIndex.FirstOrDefault(x => x.dutyid == tech.jobId && x.gender == tech.gender);
                List<string> old_index = null;
                if (tech_index != null)
                {
                    old_index = tech_index.ids.Split('%').ToList();
                    var tech_str = old_index.FirstOrDefault(x => x.Contains(tech.id + "="));
                    var tech_str_index = old_index.IndexOf(tech_str);
                    if (tech_str_index != -1)
                    {
                        if (tech.techStatus == "空闲")
                        {
                            if (old_status == "点钟")
                            {
                                old_index[tech_str_index] = tech.id + "=T";
                                tech_index.ids = string.Join("%", old_index.ToArray());
                            }
                            else
                            {
                                old_index.RemoveAt(tech_str_index);
                                old_index.Add(tech.id + "=T");
                                tech_index.ids = string.Join("%", old_index.ToArray());
                            }
                        }
                        else if (tech.techStatus == "点钟" || tech.techStatus == "轮钟" || tech.techStatus == "上钟")
                        {
                            old_index[tech_str_index] = tech.id + "=F";
                            tech_index.ids = string.Join("%", old_index.ToArray());
                        }
                    }
                    else
                    {
                        if (tech.techStatus == "空闲")
                        {
                            old_index.Add(tech.id + "=T");
                            tech_index.ids = string.Join("%", old_index.ToArray());
                        }
                    }
                }

                db.SubmitChanges();
                //insert_file("finish save tech");
                return "true";
            }
            catch(Exception e)
            {
                insert_file(e.Message);
                return "false";
            }
        }
Exemple #27
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.HotelRoom.FirstOrDefault(x => x.text == btn.Text);
            var mtype = db_new.HotelRoomType.FirstOrDefault(x => x.id == m_Seat.typeId);

            switch (m_Seat.status)
            {
            case 1:    //可用
            case 3:    //已经结账
                if (!BathClass.ToBool(db_new.Options.FirstOrDefault().允许手工输入手牌号开牌) && mtype.menuId != null)
                {
                    BathClass.printErrorMsg("不允许手工输入手牌号开牌!");
                    break;
                }
                open_seat(m_Seat, db_new);
                break;

            case 2:    //正在使用
            case 7:    //押金离场
                if (!BathClass.getAuthority(db_new, LogIn.m_User, "完整点单") &&
                    !BathClass.getAuthority(db_new, LogIn.m_User, "可见本人点单"))
                {
                    BathClass.printErrorMsg("权限不够");
                    break;
                }
                m_Seat.ordering = true;
                db_new.SubmitChanges();

                var orderForm = new HotelRoomOrderForm(m_Seat);
                orderForm.ShowDialog();


                m_Seat.ordering = false;
                db_new.SubmitChanges();
                break;

            case 4:    //锁定
                break;

            case 5:    //停用
                BathClass.printErrorMsg("台位已经停用!");
                break;

            case 6:    //警告
                var orderCheckForm = new HotelRoomOrderCheckForm(m_Seat);
                orderCheckForm.ShowDialog();
                break;

            case 8:    //重新结账
                BathClass.printErrorMsg("补救台位不能录单");
                break;

            default:
                break;
            }
        }
Exemple #28
0
        //宾客付款
        private void payTool_Click(object sender, EventArgs e)
        {
            BathDBDataContext dc = new BathDBDataContext(LogIn.connectionString);

            var seats = new List <HotelRoom>();

            seats = m_Seats;
            List <bool> keeps = new List <bool>();

            foreach (DataGridViewRow r in dgvChain.Rows)
            {
                keeps.Add(r.Cells[1].EditedFormattedValue.ToString() == "True");
            }

            PayForm payForm = new PayForm(seats, keeps, m_Member, discount_money);

            if (payForm.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            var ids     = string.Join("|", m_Seats.OrderBy(x => x.text).Select(x => x.systemId).ToArray());
            var act_old = dc.Account.FirstOrDefault(x => x.systemId == ids && x.abandon != null);
            var act     = dc.Account.FirstOrDefault(x => x.systemId == ids && x.abandon == null);

            if (act_old == null)
            {
                if (printBill)
                {
                    printTool_Click(dc, "结账单");
                }
                if (printStubBill)
                {
                    printTool_Click(dc, "存根单");
                }
                if (printShoe)
                {
                    List <string> seat_texts = new List <string>();
                    var           ts         = act.text.Split('|').ToList();
                    foreach (var tx in ts)
                    {
                        var s = m_Seats.FirstOrDefault(x => x.text == tx);
                        if (s == null)
                        {
                            continue;
                        }
                        int i = m_Seats.IndexOf(s);
                        if (dgvChain.Rows[i].Cells[1].EditedFormattedValue.ToString() == "False")
                        {
                            seat_texts.Add(tx);
                        }
                    }
                    PrintShoeMsg.Print_DataGridView(seat_texts, act.payEmployee, act.payTime.ToString(), companyName);
                }
            }
            else
            {
                printTool_Click(dc, "补救单");
            }

            sendMessageToShoes(act);

            //处理留牌
            bool kept = false;

            for (int i = 0; i < m_Seats.Count; i++)
            {
                if (dgvChain.Rows[i].Cells[1].EditedFormattedValue.ToString() == "False")
                {
                    continue;
                }

                kept = true;
                var s      = m_Seats[i];
                var seat   = dc.HotelRoom.FirstOrDefault(x => x.systemId == s.systemId);
                var orders = dc.Orders.Where(x => x.systemId == seat.systemId && x.priceType == "每小时");
                foreach (var order in orders)
                {
                    order.inputTime = GeneralClass.Now;
                    order.paid      = false;
                    order.accountId = null;
                }
                seat.status = 2;
            }
            if (kept)
            {
                dc.SubmitChanges();
            }

            //if (seats == m_Seats)
            this.DialogResult = DialogResult.OK;
            //else
            //{
            //    m_Seats.Remove(m_Seat);
            //    dgvChain_show();
            //    dgvChain.CurrentCell = null;
            //    chain = true;
            //    dgvExpense_show();
            //    setStatus();
            //}
        }
Exemple #29
0
        //确定
        private void btnOk_Click(object sender, EventArgs e)
        {
            if (db.CardInfo.FirstOrDefault(x => x.CI_CardNo == id.Text) != null)
            {
                BathClass.printErrorMsg("已经发行卡号为" + id.Text + "的卡");
                return;
            }

            bool st = false;
            var  ct = db.MemberSetting.FirstOrDefault().cardType;

            if (ct == "SLE4442")
            {
                st = ICCard.destribute_card_4442(company_code, id.Text);
            }
            else if (ct == "M1")
            {
                st = ICCard.destribute_card_M1(company_code, id.Text);
            }
            else if (ct == "CT")
            {
                st = true;
            }
            if (!st)
            {
                return;
            }

            CardInfo m_Element = new CardInfo();

            m_Element.CI_CardNo     = id.Text;
            m_Element.CI_CardTypeNo = db.MemberType.FirstOrDefault(x => x.name == memberType.Text).id;
            m_Element.state         = "入库";
            db.CardInfo.InsertOnSubmit(m_Element);

            CardCharge cardCharge = new CardCharge();

            cardCharge.CC_CardNo      = m_Element.CI_CardNo;
            cardCharge.CC_ItemExplain = "售卡收";
            if (money.Text != "")
            {
                cardCharge.CC_DebitSum = Convert.ToDouble(money.Text);
            }
            cardCharge.CC_LenderSum     = 0;
            cardCharge.CC_InputOperator = LogIn.m_User.id.ToString();
            cardCharge.CC_InputDate     = DateTime.Now;
            db.CardCharge.InsertOnSubmit(cardCharge);

            //if (money.Text != "")
            //{
            //    int sale_money = find_card_sale();
            //    if (sale_money != 0)
            //    {
            //        //CardCharge cardChargeSale = new CardCharge();
            //        //cardChargeSale.CC_CardNo = m_Element.CI_CardNo;
            //        //cardChargeSale.CC_ItemExplain = "优惠送";
            //        //cardChargeSale.CC_DebitSum = sale_money;
            //        //cardChargeSale.CC_LenderSum = 0;
            //        //cardChargeSale.CC_InputOperator = LogIn.m_User.id.ToString();
            //        //cardChargeSale.CC_InputDate = GeneralClass.Now;
            //        //cardChargeSale.systemId = m_Seat.systemId;
            //        //db.CardCharge.InsertOnSubmit(cardChargeSale);

            //        BathClass.printInformation("送" + sale_money + "元");
            //    }


            //    //CardSale cardSale = new CardSale();
            //    //cardSale.memberId = m_Element.CI_CardNo;
            //    //cardSale.balance = 0;
            //    //if (payType.Text == "现金")
            //        //cardSale.cash = Convert.ToDouble(money.Text);
            //    //else if (payType.Text == "银联")
            //        //cardSale.bankUnion = Convert.ToDouble(money.Text);

            //    //cardSale.payTime = GeneralClass.Now;
            //    //cardSale.payEmployee = LogIn.m_User.id.ToString();
            //    //cardSale.macAddress = PCUtil.getMacAddr_Local();
            //    //db.CardSale.InsertOnSubmit(cardSale);

            //    //var menu = db.Menu.FirstOrDefault(x => x.name == memberType.Text);
            //    //Orders order = new Orders();
            //    //order.menu = menu.name;
            //    //order.text = m_Seat.text;
            //    //order.systemId = m_Seat.systemId;
            //    //order.number = 1;
            //    //order.inputTime = BathClass.Now(LogIn.connectionString);
            //    //order.inputEmployee = LogIn.m_User.id.ToString();
            //    //order.paid = false;

            //    //if (money.Text == "")
            //    //    order.money = menu.price;
            //    //else
            //    //order.money = Convert.ToDouble(money.Text);

            //    //db.Orders.InsertOnSubmit(order);
            //}

            db.SubmitChanges();
            //this.DialogResult = DialogResult.OK;

            id.Text    = "";
            money.Text = "";
        }
Exemple #30
0
        //手工打折
        private void discountTool_Click(object sender, EventArgs e)
        {
            var      dc   = new BathDBDataContext(LogIn.connectionString);
            Employee oper = null;

            if (BathClass.getAuthority(dc, LogIn.m_User, "手工打折"))
            {
                oper = LogIn.m_User;
            }

            if (oper == null)
            {
                InputEmployeeByPwd inputEmployee = new InputEmployeeByPwd();
                if (inputEmployee.ShowDialog() != DialogResult.OK)
                {
                    return;
                }

                if (BathClass.getAuthority(dc, inputEmployee.employee, "手工打折"))
                {
                    oper = inputEmployee.employee;
                }
                else
                {
                    BathClass.printErrorMsg("没有手工打折权限");
                    return;
                }
            }
            if (oper == null)
            {
                return;
            }


            InputNumber inputNumberForm = new InputNumber("输入折扣率(<10)");

            if (inputNumberForm.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            double number       = inputNumberForm.number;
            double discountRate = 0;

            if (number < 1)
            {
                discountRate = number;
            }
            else
            {
                discountRate = number / 10.0;
            }
            var os = dc.Orders.Where(x => m_Seats.Select(y => y.systemId).Contains(x.systemId) && x.deleteEmployee == null);

            foreach (Orders o in os)
            {
                o.money = Math.Round(o.money * discountRate);
            }

            foreach (HotelRoom seat in m_Seats)
            {
                seat.discount         = inputNumberForm.number;
                seat.discountEmployee = oper.id;
            }

            Operation op = new Operation();

            op.employee     = oper.name;
            op.seat         = string.Join("|", m_Seats.Select(y => y.text).ToArray());
            op.openEmployee = string.Join("|", m_Seats.Select(y => y.openEmployee).ToArray());
            //op.openTime = seat.openTime;
            op.explain = "手工打折";
            op.note1   = number.ToString();
            op.note2   = string.Join("|", m_Seats.Select(y => y.systemId).ToArray());
            op.opTime  = BathClass.Now(LogIn.connectionString);
            dc.Operation.InsertOnSubmit(op);

            dc.SubmitChanges();
            dgvExpense_show(dc);
            setStatus(dc);
        }
Exemple #31
0
        public static void find_combo_duplicated(string con_str, string systemId, string text)
        {
            var db = new BathDBDataContext(con_str);

            db.Orders.DeleteAllOnSubmit(db.Orders.Where(x => x.systemId == systemId && x.menu.Contains("套餐")));
            var orders = db.Orders.Where(x => x.systemId == systemId && x.deleteEmployee == null);

            orders = orders.Where(x => !x.inputEmployee.Contains("电脑") && !x.menu.Contains("套餐"));
            foreach (Orders tmp_order in orders)
            {
                if (tmp_order.comboId != null)
                {
                    tmp_order.comboId = null;
                    tmp_order.money   = db.Menu.FirstOrDefault(x => x.name == tmp_order.menu).price *tmp_order.number;
                }
            }
            db.SubmitChanges();

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

            List <int> ids = new List <int>();

            foreach (Combo combo in comboList)
            {
                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;
                        }
                        tmp_order.comboId = combo.id;
                        tmp_order.money   = 0;
                        ids.Add(tmp_order.id);
                    }
                }
                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);
                    if (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);
                            tmp_order.comboId = combo.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))
                                {
                                    tmp_order.money = 0;
                                }
                            }
                        }
                        if (combo.priceType == "减金额")
                        {
                            Orders comboOrder = new Orders();
                            comboOrder.menu          = "套餐" + combo.id.ToString() + "优惠";
                            comboOrder.text          = text;
                            comboOrder.systemId      = systemId;
                            comboOrder.number        = 1;
                            comboOrder.inputTime     = DateTime.Now;
                            comboOrder.inputEmployee = "套餐";
                            comboOrder.paid          = false;
                            comboOrder.comboId       = combo.id;
                            comboOrder.money         = Convert.ToDouble(combo.price) - combo.originPrice;

                            db.Orders.InsertOnSubmit(comboOrder);
                        }
                    }
                }
            }
            db.SubmitChanges();
        }
Exemple #32
0
        //确定
        private void okBtn_Click(object sender, EventArgs e)
        {
            if (priceType.SelectedIndex == 1 && price.Text == "")
            {
                GeneralClass.printErrorMsg("需要输入价格");
                return;
            }

            if (priceType.SelectedIndex == 0 && dgvFreeItems.Rows.Count == 0)
            {
                GeneralClass.printErrorMsg("需要输入减免项目");
                return;
            }

            if (priceType.SelectedIndex == 2 && upTo.Text == "")
            {
                GeneralClass.printErrorMsg("需要输入价格");
                return;
            }

            if (priceType.SelectedIndex == 2 && dgvFreeItems3.Rows.Count == 0)
            {
                GeneralClass.printErrorMsg("需要输入减免项目");
                return;
            }

            if (priceType.SelectedIndex == 0 || priceType.SelectedIndex == 1)
            {
                m_Combo.menuIds     = ComboManagementForm.assembleCombo(menuIdList);
                m_Combo.originPrice = ComboManagementForm.getComboOriginPrice(db, menuIdList);
            }

            if (priceType.SelectedIndex == 0)
            {
                m_Combo.priceType   = "免项目";
                m_Combo.freeMenuIds = ComboManagementForm.assembleCombo(freeIdList);
                m_Combo.price       = m_Combo.originPrice - BathClass.get_combo_price(db, m_Combo);
            }
            else if (priceType.SelectedIndex == 1)
            {
                m_Combo.priceType   = "减金额";
                m_Combo.freeMenuIds = null;
                m_Combo.price       = Convert.ToDouble(price.Text);
            }
            else if (priceType.SelectedIndex == 2)
            {
                m_Combo.priceType   = "消费满免项目";
                m_Combo.menuIds     = ComboManagementForm.assembleCombo(menuIdList);
                m_Combo.freeMenuIds = ComboManagementForm.assembleCombo(freeIdList);
                m_Combo.expenseUpTo = Convert.ToDouble(upTo.Text);
            }
            m_Combo.freePrice = BathClass.get_combo_price(db, m_Combo);


            if (newCombo)
            {
                db.Combo.InsertOnSubmit(m_Combo);
            }
            db.SubmitChanges();

            this.DialogResult = DialogResult.OK;
            this.Close();
        }
Exemple #33
0
        //上传ClearTable数据
        private void run_clearTable()
        {
            while (true)
            {
                try
                {
                    var db = new BathDBDataContext(connectionString);
                    long maxId = -1;
                    DateTime clearTime = DateTime.Now;
                    var uploadRecords = db.UploadRecords.FirstOrDefault(x => x.tableName == "ClearTable");
                    if (uploadRecords != null)
                    {
                        maxId = MConvert<long>.ToTypeOrDefault(uploadRecords.maxId, -1);
                        clearTime = MConvert<DateTime>.ToTypeOrDefault(uploadRecords.clearTime, clearTime);
                    }
                    else
                    {
                        uploadRecords = new UploadRecords();
                        uploadRecords.tableName = "ClearTable";
                        db.UploadRecords.InsertOnSubmit(uploadRecords);
                        db.SubmitChanges();
                    }

                    var clearTables = db.ClearTable.Where(x => x.id > maxId);
                    var _clearTables = db.ClearTable.Where(x => x.id == maxId && x.clearTime != clearTime);
                    clearTables = clearTables.Union(_clearTables).Distinct();

                    bool changed = false;
                    foreach (var clearTable in clearTables)
                    {
                        bool sucess = false;
                        while (!sucess)
                        {
                            sucess = upload_json(BathClass.ConvertToJsonString(clearTable), "ClearTable");
                            if (sucess)
                            {
                                changed = true;
                                if (maxId < clearTable.id)
                                {
                                    maxId = clearTable.id;
                                    uploadRecords.maxId = clearTable.id;
                                }
                                if (clearTable.clearTime != clearTime)
                                {
                                    clearTime = clearTable.clearTime;
                                    uploadRecords.clearTime = clearTable.clearTime;
                                }
                                db.SubmitChanges();
                            }
                        }
                    }
                    if (changed)
                        db.SubmitChanges();
                }
                catch (System.Exception ex)
                {

                }
            }
        }
Exemple #34
0
        //取消开牌
        private void CtxCancelOpen_Click(object sender, EventArgs e)
        {
            BathDBDataContext db_new = new BathDBDataContext(LogIn.connectionString);
            var seat = getContextSenderSeat(db_new, sender);

            InputEmployeeByPwd inputEmployee = new InputEmployeeByPwd();

            if (inputEmployee.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            if (!BathClass.getAuthority(db_new, inputEmployee.employee, "取消开牌"))
            {
                BathClass.printErrorMsg(inputEmployee.employee.id + "不具有取消开台权限!");
                return;
            }

            if (seat.status != 2)
            {
                BathClass.printErrorMsg("该台位不在使用中,不能取消开台!");
                return;
            }

            var options = db_new.Options.FirstOrDefault();

            if (options != null)
            {
                var q = options.取消开牌时限;
                if (q != null && GeneralClass.Now - seat.openTime >= TimeSpan.Parse("00:" + q.ToString() + ":00"))
                {
                    BathClass.printErrorMsg("已超过取消开牌时限!");
                    return;
                }
            }
            var orders = db_new.Orders.Where(x => x.systemId == seat.systemId);

            if (orders.Count() > 2)
            {
                BathClass.printErrorMsg("已经点单,不能取消开台");
                return;
            }

            if (BathClass.printAskMsg("确认取消开台?") != DialogResult.Yes)
            {
                return;
            }

            Operation op = new Operation();

            op.employee     = inputEmployee.employee.id;
            op.seat         = seat.text;
            op.openEmployee = seat.openEmployee;
            op.openTime     = seat.openTime;
            op.explain      = "取消开牌";
            op.opTime       = BathClass.Now(LogIn.connectionString);
            db_new.Operation.InsertOnSubmit(op);

            db_new.Orders.DeleteAllOnSubmit(db_new.Orders.Where(x => x.systemId == seat.systemId));
            BathClass.reset_seat(seat);
            db_new.SubmitChanges();
        }
Exemple #35
0
        //确定
        private void okBtn_Click(object sender, EventArgs e)
        {
            int newId = Convert.ToInt32(id.Text);

            m_job.id   = newId;
            m_job.name = name.Text;
            m_job.note = note.Text;
            if (ip.Text == "")
            {
                m_job.ip = null;
            }
            else
            {
                m_job.ip = ip.Text;
            }

            if (ComboJobList.Text.Trim() != "")
            {
                var job_leader = db.Job.FirstOrDefault(x => x.name == ComboJobList.Text);
                if (job_leader != null)
                {
                    m_job.leaderId = job_leader.id;
                }
            }

            if (ComboDeparts.Text != "")
            {
                var depart = db.Department.FirstOrDefault(x => x.name == ComboDeparts.Text);
                if (depart != null)
                {
                    m_job.departId = depart.id;
                }
            }

            m_Authority.jobId = newId;
            foreach (Control p in cts)
            {
                foreach (Control ct in p.Controls)
                {
                    if (ct.GetType() == typeof(CheckBox))
                    {
                        var pro = m_Authority.GetType().GetProperty(ct.Text);
                        if (pro == null)
                        {
                            continue;
                        }

                        if (BathClass.getAuthority(db, LogIn.m_User, ct.Text))
                        {
                            pro.SetValue(m_Authority, ((CheckBox)ct).Checked, null);
                        }
                    }
                }
            }

            if (newJob)
            {
                db.Job.InsertOnSubmit(m_job);
                db.Authority.InsertOnSubmit(m_Authority);
            }

            db.SubmitChanges();
            this.DialogResult = DialogResult.OK;
        }
Exemple #36
0
        private void btnOk_Click(object sender, EventArgs e)
        {
            if (name.Text == "")
            {
                BathClass.printErrorMsg("需要选择商品名称");
                return;
            }

            if (amount.Text.Trim() == "")
            {
                BathClass.printErrorMsg("需要输入数量!");
                return;
            }

            if (stock.Text == "")
            {
                BathClass.printErrorMsg("需要选择仓库!");
                return;
            }

            if (transactor.Text == "")
            {
                BathClass.printErrorMsg("需要输入经手人!");
                return;
            }

            if (checker.Text == "")
            {
                BathClass.printErrorMsg("需要输入审核!");
                return;
            }

            if (provider.Text.Trim() == "")
            {
                BathClass.printErrorMsg("需要选择供应商!");
                return;
            }

            //StockIn inStock = new StockIn();
            inStock.name = name.Text;
            if (cost.Text != "")
            {
                inStock.cost = Convert.ToDouble(cost.Text);
            }
            inStock.amount = Convert.ToDouble(amount.Text);

            if (unit.Text != "")
            {
                inStock.unit = unit.Text;
            }

            inStock.stockId    = db.Stock.FirstOrDefault(x => x.name == stock.Text).id;
            inStock.note       = note.Text;
            inStock.date       = dtPickerIntoStock.Value;
            inStock.transactor = transactor.Text;
            inStock.checker    = checker.Text;
            inStock.money      = totalmoney;

            var p = db.Provider.FirstOrDefault(x => x.name == provider.Text.Trim());

            if (p == null)
            {
                p      = new Provider();
                p.name = provider.Text.Trim();
                var form = new ProviderForm(db, p);
                if (form.ShowDialog() != DialogResult.OK)
                {
                    return;
                }

                db.Provider.InsertOnSubmit(p);
                db.SubmitChanges();
            }
            inStock.providerId = p.id;
            db.SubmitChanges();
            this.DialogResult = DialogResult.OK;
        }
Exemple #37
0
        private void MainWindow_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);
            }

            db = new BathDBDataContext(connectionString);
            if (!db.DatabaseExists())
            {
                GeneralClass.printErrorMsg("连接IP不对或者网络不通,请重试!");
                connectionIP = "";
                IOUtil.set_config_by_key(ConfigKeys.KEY_CONNECTION_IP, connectionIP);
                this.Close();
                return;
            }

            dir = IOUtil.get_config_by_key(ConfigKeys.KEY_VIDEO_SAVE_DIR);
            if (dir == "")
                set_dir();

            if (dir == "")
            {
                this.Close();
                return;
            }
            if (!dir.EndsWith("\\"))
                dir += "\\";

            serverIp.Text = connectionIP;
            cacheDir.Text = dir;
            string pvs = IOUtil.get_config_by_key(ConfigKeys.KEY_VIDEO_TIMESPAN);
            if (pvs != "")
            {
                seconds.Text = pvs;
                ts = TimeSpan.Parse("00:00:" + pvs);
            }
            else
            {
                pvs = "30";
                seconds.Text = pvs;
                ts = TimeSpan.Parse("00:00:" + pvs);
                IOUtil.set_config_by_key(ConfigKeys.KEY_VIDEO_TIMESPAN, pvs);
            }

            db.PayMsg.DeleteAllOnSubmit(db.PayMsg.ToArray());
            db.SubmitChanges();
            video = new cVideo(panel1.Handle, panel1.Width, panel1.Height);
            if (video.StartWebCam())
            {
                video.get();
                video.Capparms.fYield = true;
                video.Capparms.fAbortLeftMouse = false;
                video.Capparms.fAbortRightMouse = false;
                video.Capparms.fCaptureAudio = false;
                video.Capparms.dwRequestMicroSecPerFrame = 0x9C40; // 设定帧率25fps: 1*1000000/25 = 0x9C40
                video.set();
            }

            watch_Timer = new System.Timers.Timer(100);
            watch_Timer.Elapsed += new ElapsedEventHandler(watch_Timer_Elapsed);
            watch_Timer.Start();
            watch_Timer.Enabled = true;
        }
Exemple #38
0
        //确定重新结账
        private void btnOk_Click(object sender, EventArgs e)
        {
            if (dgv.CurrentCell == null)
            {
                BathClass.printErrorMsg("未选中账单号");
                return;
            }

            var db_new = new BathDBDataContext(LogIn.connectionString);
            var act    = db_new.Account.FirstOrDefault(x => x.id.ToString() == dgv.CurrentRow.Cells[0].Value.ToString());

            if (act == null)
            {
                if (BathClass.printAskMsg("手牌未结账,是否直接恢复手牌?") != DialogResult.Yes)
                {
                    return;
                }
            }

            var texts = act.text.Split('|');
            var ids   = act.systemId.Split('|');

            //var seats = db_new.HotelRoom.Where(x => texts.Contains(x.text));
            for (int i = 0; i < texts.Count(); i++)
            {
                var s = db_new.HotelRoom.FirstOrDefault(x => x.text == texts[i]);
                if (s == null)
                {
                    continue;
                }

                if (s.status == 2 || s.status == 6 || s.status == 7)
                {
                    BathClass.printErrorMsg("手牌: " + s.text + "已经重新开牌,请先更换手牌");
                    return;
                }
                s.status   = 8;
                s.systemId = ids[i];
                var orders = db_new.HisOrders.Where(x => x.systemId == s.systemId);
                foreach (var order in orders)
                {
                    var ho = new Orders();
                    ho.menu           = order.menu;
                    ho.text           = order.text;
                    ho.systemId       = order.systemId;
                    ho.number         = order.number;
                    ho.priceType      = order.priceType;
                    ho.money          = order.money;
                    ho.technician     = order.technician;
                    ho.techType       = order.techType;
                    ho.inputTime      = order.inputTime;
                    ho.inputEmployee  = order.inputEmployee;
                    ho.deleteEmployee = order.deleteEmployee;
                    ho.donorEmployee  = order.donorEmployee;
                    ho.comboId        = order.comboId;
                    ho.paid           = false;
                    ho.accountId      = order.accountId;
                    ho.billId         = order.billId;
                    ho.stopTiming     = true;
                    ho.departmentId   = 1;
                    db_new.HisOrders.DeleteOnSubmit(order);
                    db_new.Orders.InsertOnSubmit(ho);
                }
            }
            act.abandon = m_user.id;
            var cc = db_new.CardCharge.Where(x => act.id.ToString() == x.CC_AccountNo);

            if (cc.Any())
            {
                db_new.CardCharge.DeleteAllOnSubmit(cc);
            }
            db_new.SubmitChanges();

            this.DialogResult = DialogResult.OK;
        }