예제 #1
0
        public ActionResult Create(int fromCheckin = 0)
        {
            if (!_nguoiDungServices.isLoggedIn())
            {
                TempData["Message"]  = "Bạn chưa đăng nhập, vui lòng đăng nhập";
                TempData["NotiType"] = "danger"; //success là class trong bootstrap
                return(RedirectToAction("Login", "NguoiDung"));
            }
            if (!_quyenServices.Authorize((int)EnumQuyen.THUEPHONG_THEM))
            {
                return(RedirectToAction("ViewDenied", "QLKS"));
            }
            var model = new ThuePhongModel();
            var maxId = db.THUEPHONGs.Select(c => c.ID).DefaultIfEmpty(0).Max();
            var newId = (maxId + 1).ToString().PadLeft(7, '0');

            model.ma = "TP" + "-" + newId;
            if (fromCheckin == 0)
            {
                model.fromEdit          = "0";
                model.DanhSachLoaiPhong = _loaiPhongServices.PrepareSelectListLoaiPhong(0);
                model.fromCheckIn       = "0";
                model.KHACHHANG_ID      = 0;
                return(View(model));
            }
            else
            {
                model.fromEdit    = "0";
                model.fromCheckIn = fromCheckin.ToString();
                var datphongId    = fromCheckin;
                var datPhongItem  = db.DATPHONGs.Find(datphongId);
                var khachhangItem = datPhongItem.KHACHHANG;
                model.KHACHHANG_ID      = khachhangItem.ID;
                model.LOAIPHONG_ID      = datPhongItem.LOAIPHONG.ID;
                model.NgayDen           = datPhongItem.NgayDuKienDen;
                model.NgayDi            = datPhongItem.NgayDuKienDi;
                model.sdt               = khachhangItem.SoDienThoai;
                model.socmt             = khachhangItem.SoCMT;
                model.KHACHHANG_ID      = khachhangItem.ID;
                model.tenkhachhang      = khachhangItem.Ten;
                model.DanhSachLoaiPhong = _loaiPhongServices.PrepareSelectListLoaiPhong(datPhongItem.LOAIPHONG.ID);
                return(View(model));
            }
        }
예제 #2
0
        public ActionResult Edit(ThuePhongModel model)
        {
            if (!ModelState.IsValid)
            {
                TempData["Message"]  = "Có lỗi xảy ra! Vui lòng kiểm tra lại thông tin.";
                TempData["NotiType"] = "danger"; //success là class trong bootstrap
                return(View("Create", model));
            }
            ////update khachhang
            var item      = db.THUEPHONGs.Find(model.ID);
            var khachHang = db.KHACHHANGs.Find(model.KHACHHANG_ID);

            khachHang.SoCMT       = model.socmt;
            khachHang.SoDienThoai = model.sdt;
            khachHang.Ten         = model.tenkhachhang;

            db.SaveChanges();
            _lichSuServices.LuuLichSu((int)Session["ID"], (int)EnumLoaiHanhDong.SUA, item.GetType().ToString());
            TempData["Message"]  = "Cập nhật thành công";
            TempData["NotiType"] = "success";
            return(RedirectToAction("List", "ThuePhong"));
        }
예제 #3
0
        public ActionResult Create(ThuePhongModel model)
        {
            var fromCheckIn = Int32.Parse(model.fromCheckIn);

            if (!ModelState.IsValid)
            {
                if (fromCheckIn == 0)
                {
                    model.DanhSachLoaiPhong = _loaiPhongServices.PrepareSelectListLoaiPhong(0);
                    model.fromCheckIn       = "0";
                    model.fromEdit          = "0";
                    model.KHACHHANG_ID      = 0;
                }
                else
                {
                    model.fromEdit          = "0";
                    model.DanhSachLoaiPhong = _loaiPhongServices.PrepareSelectListLoaiPhong(fromCheckIn);
                }
                TempData["Message"]  = "Có lỗi xảy ra! Vui lòng kiểm tra lại thông tin.";
                TempData["NotiType"] = "danger"; //success là class trong bootstrap
                return(View("Create", model));
            }
            if (fromCheckIn == 0)
            {
                model.fromEdit = "0";
                var khachhangItem = new KHACHHANG();
                var nguoidung     = db.NGUOIDUNGs.Find((int)Session["ID"]);
                khachhangItem.Ma          = _khachHangServices.GenMaKhachHang();
                khachhangItem.Ten         = model.tenkhachhang;
                khachhangItem.SoCMT       = model.socmt;
                khachhangItem.SoDienThoai = model.sdt;
                db.KHACHHANGs.Add(khachhangItem);
                db.SaveChanges();
                var newThuePhongItem = new THUEPHONG();
                newThuePhongItem.KHACHHANG        = khachhangItem;
                newThuePhongItem.Ma               = model.ma;
                newThuePhongItem.NgayDen          = model.NgayDen;
                newThuePhongItem.NgayDi           = model.NgayDi;
                newThuePhongItem.NGUOIDUNG        = nguoidung;
                newThuePhongItem.ThoiGianThue     = DateTime.Now;
                newThuePhongItem.LOAITINHTRANG_ID = (int)EnumLoaiTinhTrang.CHUATHANHTOAN;
                db.THUEPHONGs.Add(newThuePhongItem);
                db.SaveChanges();
                foreach (var p in model.SelectedPhongs)
                {
                    var newChiTietThuePhong = new CHITIETTHUEPHONG();
                    var phong = db.PHONGs.Find(p);
                    newChiTietThuePhong.PHONG = phong;
                    newThuePhongItem.CHITIETTHUEPHONGs.Add(newChiTietThuePhong);
                }
                db.SaveChanges();
            }
            else
            {
                //check additional errors
                model.fromEdit = "0";
                var datphongItem = db.DATPHONGs.Find(fromCheckIn);
                var khachHang    = db.KHACHHANGs.Find(datphongItem.KHACHHANG.ID);
                var nguoidung    = db.NGUOIDUNGs.Find((int)Session["ID"]);
                khachHang.Ten         = model.tenkhachhang;
                khachHang.SoCMT       = model.socmt;
                khachHang.SoDienThoai = model.sdt;
                db.SaveChanges();
                var newThuePhongItem = new THUEPHONG();
                newThuePhongItem.KHACHHANG        = datphongItem.KHACHHANG;
                newThuePhongItem.Ma               = model.ma;
                newThuePhongItem.NgayDen          = model.NgayDen;
                newThuePhongItem.NgayDi           = model.NgayDi;
                newThuePhongItem.NGUOIDUNG        = nguoidung;
                newThuePhongItem.ThoiGianThue     = DateTime.Now;
                newThuePhongItem.LOAITINHTRANG_ID = (int)EnumLoaiTinhTrang.CHUATHANHTOAN;
                db.THUEPHONGs.Add(newThuePhongItem);
                db.SaveChanges();
                int temp = datphongItem.SoPhong.Value; //migrate temp rooms from reservation
                var selectedPhongsCopy = model.SelectedPhongs;
                foreach (var p in selectedPhongsCopy.ToList())
                {
                    if (temp > 0)
                    {
                        var phong = db.PHONGs.Find(p);
                        if (phong.LOAIPHONG.ID == datphongItem.LOAIPHONG.ID)
                        {
                            var newChiTietThuePhong = new CHITIETTHUEPHONG();
                            newChiTietThuePhong.PHONG = phong;
                            newThuePhongItem.CHITIETTHUEPHONGs.Add(newChiTietThuePhong);
                            selectedPhongsCopy.Remove(p);
                            temp--;
                        }
                    }
                }
                datphongItem.LOAITINHTRANG_ID = (int)EnumLoaiTinhTrang.DACHECKIN;
                foreach (var p in newThuePhongItem.CHITIETTHUEPHONGs)
                {
                    p.PHONG.LOAITINHTRANG_ID = (int)EnumLoaiTinhTrang.DATHUE;
                }

                db.SaveChanges();

                if (selectedPhongsCopy.Count() > 0)
                {
                    foreach (var p in selectedPhongsCopy)
                    {
                        var phong  = db.PHONGs.Find(p);
                        var result = db.Database.SqlQuery <sp_Result_ThongKePhong>("exec ThongKePhong @tungay, @denngay", new SqlParameter("@tungay", newThuePhongItem.NgayDen), new SqlParameter("@denngay", newThuePhongItem.NgayDi)).Where(c => c.ID == phong.LOAIPHONG.ID).FirstOrDefault();
                        if (result != null)
                        {
                            if (result.SoPhongTrong > 0)
                            {
                                var newChiTietThuePhong = new CHITIETTHUEPHONG();
                                var phongThue           = db.PHONGs.Find(p);
                                newChiTietThuePhong.PHONG = phongThue;
                                newThuePhongItem.CHITIETTHUEPHONGs.Add(newChiTietThuePhong);
                                db.SaveChanges();
                            }
                            else
                            {
                                model.DanhSachLoaiPhong = _loaiPhongServices.PrepareSelectListLoaiPhong(fromCheckIn);
                                TempData["Message"]     = "Không đủ phòng đặt thêm";
                                TempData["NotiType"]    = "danger"; //success là class trong bootstrap
                                return(View("Create", model));
                            }
                        }
                    }
                }
                //Lưu lịch sử hệ thống
                TempData["Message"]  = "Thêm mới thành công";
                TempData["NotiType"] = "success";
                _lichSuServices.LuuLichSu((int)Session["ID"], (int)EnumLoaiHanhDong.THEM, newThuePhongItem.GetType().ToString());

                //add new chitietthuephong
            }

            return(RedirectToAction("List", "ThuePhong"));
        }