public JsonRs ChangeRoom(int roomid, int CheckInID, string note, DateTime _tdate)
        {
            var rs = new JsonRs();


            using (var db = _connectionData.OpenDbConnection())
            {
                using (var tran = db.OpenTransaction())
                {
                    try
                    {
                        //khi doi phong capnhat trang thai cu ve5 va them 1 thằng mới Stt=2
                        var checkin = db.Single <tbl_CheckIn>(x => x.Id == CheckInID);
                        checkin.Leave_Date = _tdate;
                        var Listchangeroom   = new List <tbl_RoomChange>();
                        var listusingroonew  = new List <tbl_RoomUsing>();
                        var listusingroomold =
                            db.Select <tbl_RoomUsing>(x => x.status == 1 && x.CheckInID == CheckInID);
                        if (listusingroomold.Count == 0)
                        {
                            rs.Status  = "00";
                            rs.Message = "Không tìm thấy phòng củ vui lòng kiểm tra lại!";
                            return(rs);
                        }

                        foreach (tbl_RoomUsing t in listusingroomold)
                        {
                            t.status = 5;
                            var changeroom = new tbl_RoomChange()
                            {
                                SysHotelID   = t.SysHotelID,
                                creatorid    = 1,
                                customercode = t.customercode,
                                customerid   = t.customerid,
                                datecreated  = t.datecreated,
                                newroomid    = t.SysHotelID,
                                oldeoomid    = t.Id,
                            };
                            Listchangeroom.Add(changeroom);


                            var usingroomnew = new tbl_RoomUsing()
                            {
                                SysHotelID   = t.SysHotelID,
                                customercode = t.customercode,
                                customerid   = t.customerid,
                                datecreated  = t.datecreated,
                                roomid       = roomid,
                                status       = 1,
                                CheckInID    = t.CheckInID,
                                roomcode     = t.roomcode,
                                SysHotelCode = t.SysHotelCode,
                                Note         = note
                            };
                            listusingroonew.Add(usingroomnew);
                        }
                        //cập nhật trạng thái phòng mới
                        var listroom = new List <tbl_Room>();
                        var roomnew  = db.Single <tbl_Room>(x => x.Id == roomid);
                        roomnew.status       = 1;
                        roomnew.datePlanFrom = checkin.Arrive_Date; //cập nhật ngày đến
                        roomnew.datePlanTo   = checkin.Leave_Date;  // cập nhật ngày đi

                        //phòng cũ
                        var roomold = db.Single <tbl_Room>(x => x.Id == listusingroomold[0].roomid);
                        roomold.status = 0;
                        listroom.Add(roomnew);
                        listroom.Add(roomold);

                        //cập nhật lai trạng thái hai phòng mới
                        db.UpdateAll(listroom);

                        //cập nhật lại tragj Thái Using củ với Status về bằng 5
                        db.UpdateAll(listusingroomold);

                        // Thêm UsingRoommowis với Stt mới bằng 1
                        db.InsertAll(listusingroonew);

                        //thêm Using Change
                        db.InsertAll(Listchangeroom);
                        db.Update(checkin);
                        tran.Commit();
                        rs.Status  = "01";
                        rs.Message = "Đổi phòng cho khách hàng thành công. Lưu ý tất cả khách hàng trong phòng sẻ được chuyển tới phòng mới là : " + roomnew.Name;
                    }
                    catch (Exception e)
                    {
                        rs.Status  = "00";
                        rs.Message = "Đổi phòng thất bại. Vui lòng thực hiện lại!";
                        return(rs);
                    }
                }
            }

            return(rs);
        }
        public JsonRs AddUsingRoom(CustomeCheckInModel obj)
        {
            var rs = new JsonRs();


            using (var db = _connectionData.OpenDbConnection())
            {
                if (obj.CustomerId > 0)
                {
                    try
                    {
                        var usingroom = new tbl_RoomUsing();
                        usingroom.SysHotelID  = comm.GetHotelId();// obj.SysHotelID;
                        usingroom.CheckInID   = obj.CheckInID;
                        usingroom.customerid  = obj.CustomerId;
                        usingroom.datecreated = DateTime.Now;
                        usingroom.roomid      = obj.Roomid;
                        usingroom.status      = 2;
                        db.Insert(usingroom);
                        rs.Status  = "01";
                        rs.Message = "Thêm mới khách ở cùng thàng công.";
                        return(rs);
                    }
                    catch (Exception e)
                    {
                        rs.Status  = "00";
                        rs.Message = "Thêm mới khách ở cùng thất bại!";
                        return(rs);
                    }
                }
                else
                {
                    using (var tran = db.OpenTransaction())
                    {
                        DateTime DOB;
                        DateTime.TryParse(obj.DOB, CultureInfo.GetCultureInfo("vi-vn"), DateTimeStyles.None, out DOB);
                        try
                        {
                            var Customer = new tbl_Customer();
                            Customer.Name           = obj.Name;
                            Customer.CountryId      = obj.CountryId;
                            Customer.DOB            = DOB;
                            Customer.Address        = obj.Address;
                            Customer.Sex            = obj.Sex;
                            Customer.TeamSTT        = obj.TeamSTT;
                            Customer.TeamMergeSTT   = obj.TeamMergeSTT;
                            Customer.Email          = obj.Email;
                            Customer.IdentifyNumber = obj.IdentifyNumber;
                            Customer.Phone          = obj.Phone;
                            Customer.Address        = obj.Address;
                            Customer.Company        = obj.Company;
                            Customer.Status         = true;
                            Customer.TeamMergeSTT   = obj.TeamMergeSTT;
                            Customer.TeamSTT        = obj.TeamSTT;
                            Customer.Payer          = 0;
                            Customer.Status         = true;
                            Customer.ReservationID  = obj.CheckInID;
                            Customer.HotelCode      = comm.GetHotelCode();
                            Customer.SysHotelID     = comm.GetHotelId();

                            long idCustomer = db.Insert(Customer, true);

                            var usingroom = new tbl_RoomUsing();
                            usingroom.SysHotelID   = comm.GetHotelId();//Customer.SysHotelID;
                            usingroom.SysHotelCode = comm.GetHotelCode();
                            usingroom.CheckInID    = obj.CheckInID;
                            usingroom.customerid   = (int)idCustomer;// Customer.Id;
                            usingroom.datecreated  = DateTime.Now;
                            usingroom.roomid       = obj.Roomid;
                            usingroom.status       = 2;
                            db.Insert(usingroom);

                            /*
                             * var group = new tbl_CustomerGroup();
                             * group.Doan_ID = obj.TeamSTT;
                             * group.Gop_Doan_ID = obj.TeamMergeSTT;
                             * group.Customer_ID = Customer.Id;
                             * db.Insert(group);
                             */

                            tran.Commit();
                            rs.Status  = "01";
                            rs.Message = "Thêm mới khách ở cùng thàng công.";
                            return(rs);
                        }
                        catch (Exception)
                        {
                            tran.Rollback();
                            rs.Status  = "00";
                            rs.Message = "Thêm mới khách ở cùng thất bại!";
                            return(rs);
                        }
                    }
                }
            }
        }