예제 #1
0
        public ActionResult Create()
        {
            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.KHACHHANG_THEM))
            {
                return(RedirectToAction("ViewDenied", "QLKS"));
            }
            var model = new KhachHangModel();

            model.Ma = _khachHangServices.GenMaKhachHang();
            return(View(model));
        }
예제 #2
0
        public ActionResult Create(DatPhongModel model)
        {
            if (!_quyenServices.Authorize((int)EnumQuyen.DATPHONG_THEM))
            {
                TempData["Message"]  = "Bạn không có quyền truy cập chức năng này";
                TempData["NotiType"] = "error"; //success là class trong bootstrap
                return(RedirectToAction("ViewDenied", "QLKS"));
            }
            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";
                if (model.LOAIPHONG_ID == null)
                {
                    model.DanhSachLoaiPhong = _loaiPhongServices.PrepareSelectListLoaiPhong(0);
                }
                else
                {
                    model.DanhSachLoaiPhong = _loaiPhongServices.PrepareSelectListLoaiPhong(model.LOAIPHONG_ID);
                }
                return(View("Create", model));
            }

            var item    = AutoMapper.Mapper.Map <DATPHONG>(model);
            var results = db.Database.SqlQuery <sp_Result_ThongKePhong>("exec ThongKePhong @tungay, @denngay", new SqlParameter("@tungay", model.ngaydukienden), new SqlParameter("@denngay", model.ngaydukiendi)).ToList();

            foreach (var i in results)
            {
                if (i.ID == model.LOAIPHONG_ID && i.SoPhongTrong < model.SoPhong)
                {
                    if (model.LOAIPHONG_ID == null)
                    {
                        model.DanhSachLoaiPhong = _loaiPhongServices.PrepareSelectListLoaiPhong(0);
                    }
                    else
                    {
                        model.DanhSachLoaiPhong = _loaiPhongServices.PrepareSelectListLoaiPhong(model.LOAIPHONG_ID);
                    }
                    TempData["Message"]  = "Không đủ đặt " + model.SoPhong + " phòng. Chỉ còn lại " + i.SoPhongTrong + " phòng.";
                    TempData["NotiType"] = "danger";
                    return(View("Create", model));
                }
            }
            var khachhang = new KhachHangModel();

            khachhang.Ma          = _khachHangServices.GenMaKhachHang();
            khachhang.Ten         = model.tenkhachhang;
            khachhang.SoCMT       = model.socmt;
            khachhang.SoDienThoai = model.sodienthoai;
            khachhang.Email       = model.email;
            var khachHangItem = AutoMapper.Mapper.Map <KHACHHANG>(khachhang);

            db.KHACHHANGs.Add(khachHangItem);
            db.SaveChanges();
            item.KHACHHANG = khachHangItem;
            var nguoidungItem = db.NGUOIDUNGs.Find((int)Session["ID"]);

            item.NGUOIDUNG        = nguoidungItem;
            item.LOAITINHTRANG_ID = (int)EnumLoaiTinhTrang.CHUACHECKIN;
            item.ThoiGianDat      = DateTime.Now;
            db.DATPHONGs.Add(item);
            //

            db.SaveChanges();
            _lichSuServices.LuuLichSu((int)Session["ID"], (int)EnumLoaiHanhDong.THEM, item.GetType().ToString());
            TempData["Message"]  = "Thêm mới thành công";
            TempData["NotiType"] = "success";
            return(RedirectToAction("List"));
        }
예제 #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"));
        }