Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 35 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
35
Dung lượng
731,98 KB
Nội dung
HỌC VIỆN KỸ THUẬT QUÂN SƯ KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO THƯC TẬP CƠ SỞ DỮ LIỆU ĐỀ TÀI: QUẢN LÝ KHÁCH SẠN Mục lục CHƯƠNG : ĐẶC TẢ HỆ THỐNG 1.1 Mục đích, yêu cầu Hệ thống quản lý khách sạn bao gồm quản lý phòng, loại phòng Quản lý thuê phòng, quản lý khách hàng, quản lý nhân viên Một phịng gọi nhiều dịch vụ, khách thuê nhiều phịng lần th Khi tốn dựa việc sử dụng dịch vụ khách hàng số ngày từ ta xuất hóa đơn tốn 1.2 Mơ tả hệ thống 1.2.1 Quy trình nghiệp vụ Hệ thống gồm chức quản lý: quản lý nhân viên, quản lý phòng, loại phòng, thuê phòng, dịch vụ việc sử dụng dịch vụ, khách hàng hóa đơn tốn 1.2.2 Quy tắc nghiệp vụ Những nghiệp vụ việc quản lý khách sạn bao gồm: - Nghiệp vụ cho thuê: (+) Cho khách thuê phòng: Khách hàng đặt phòng trước qua phương tiện(email…) đặt offline Nhân viên lễ tân kiểm tra thơng tin khách hàng (checkin) tiếp nhận Nhân viên lễ tân tiến hành nhập thông tin vào hệ thống (+) Tính tiền cho khách: Khi khách hàng u cầu tính tiền Xác định vị trí phịng khách Xác định dịch vụ đặt Tính tiền dựa loại dịch vụ giá phịng + số ngày In hóa đơn thu tiền khách Bên cạnh đó, cần thu dọn phòng, số phòng trống để xếp cho khách hàng 1.3 Đặc tả chức cần xây dựng Quản lý thuê phòng: đặt phòng, hủy đặt phòng, trả phòng, kiểm tra phòng trống, lập phiếu thuê phòng a) Thuê offline Nhân viên lễ tân kiểm tra danh sách phòng trống khách sạn Khách hàng lựa chọn phòng muốn thuê Nhân viên lễ tân lựa chọn chức “lập phiếu thuê” Khách hàng cung cấp đầy đủ thông tin để nhân viên lễ tân điền đầy đủ vào phiếu thuê: họ tên, địa chỉ, cmnd, sdt Nhân viên lễ tân lưu phiếu thuê, in lưu, giao cho khách hàng Sau có nhân viên đưa khách nhận phòng b) Thuê online Khách hàng đặt phòng online đến khách sạn nhận phòng Nhân viên lễ tân kiểm tra thông tin khách hàng đặt, đăng ký lập phiếu thuê làm thuê offline Quản lý nhân viên: thêm, sửa, xóa nhân viên, tìm kiếm Chức sử dụng cho quản trị viên muốn thêm nhân viên, có thay đổi thông tin nhân viên, sa thải nhân viên Người quản trị đăng nhập vào hệ thống tài khoản với quyền admin, lựa chọn chức phù hợp với yêu cầu: thêm, sửa, xóa, tìm kiếm Nếu thêm sửa, sau nhập đầy đủ thông tin nhân viên, người quản trị click “cập nhật”, thông tin nhân viên cập nhật vào bảng CSDL Nếu xóa nhân viên, yêu cầu người quản trị nhập vào mã nhân viên, sau lựa chọn xóa, hệ thống tự động cập nhật lại danh sách nhân viên khách sạn Nếu tìm kiếm nhân viên, người quản trị nhập vào mã nhân viên, hệ thống đưa thông tin nhân viên Quản lý khách hàng: thêm, sửa, xóa, tìm kiếm khách hàng Chức sử dụng muốn thêm khách hàng, có thay đổi thơng tin khách hàng, xóa thơng tin, tìm kiếm khách hàng Nhân viên lễ tân đăng nhập vào hệ thống tài khoản mình, lựa chọn chức phù hợp với yêu cầu: thêm, sửa, xóa, tìm kiếm Nếu thêm sửa, sau nhập đầy đủ thơng tin khách th phịng, nhân viên lễ tân click “cập nhật”, thông tin khách cập nhật vào bảng CSDL Nếu xóa khách hàng, yêu cầu nhân viên nhập xác mã khách hàng sau chọn xóa, thơng tin khách hàng xóa khỏi CSDL Nếu chọn tìm kiếm, yêu cầu nhân viên nhập mã khách hàng ấn tìm kiếm, hệ thống đưa thơng tin khách hàng Quản lý phịng: thêm, sửa, xóa phịng Nhân viên đăng nhập vào hệ thống tài khoản mình, lựa chọn chức phù hợp với yêu cầu: thêm, sửa, xóa Nếu lựa chọn thêm sửa thơng tin phịng Sau nhập điều chỉnh đầy đủ thông tin phòng cần điều chỉnh(hoặc thêm), nhân viên click vào “cập nhật”, thơng tin phịng khách sạn tự động thêm vào bảng CSDL Nếu nhân viên lựa chọn xóa u cầu nhân viên nhập xác mã phịng cần xóa, sau xác nhận, thơng tin phịng xóa khỏi bảng CSDL hệ thống Quản lý dịch vụ: thêm, sửa, xóa dịch vụ Nhân viên đăng nhập vào hệ thống tài khoản mình, lựa chọn chức phù hợp với yêu cầu: thêm, sửa, xóa Nếu chọn thêm sửa dịch vụ, sau nhập điều chỉnh đầy đủ thông tin dịch vụ khách sạn, nhân viên click vào “cập nhật”, thông tin dịch vụ cập nhật vào CSDL Nếu chọn xóa, nhân viên nhập xác mã dịch vụ cần xóa, sau xác nhận hệ thống xóa dịch vụ khỏi CSDL Quản lý thuê dịch vụ: đăng ký, hủy đăng ký sử dụng dịch vụ Khi khách hàng có yêu cầu muốn sử dụng dịch vụ, liên hệ với phận lễ tân Nhân viên lễ tân tìm kiếm dịch vụ mà khách hàng yêu cầu hệ thống dịch vụ khách sạn Nếu dịch vụ có khách sạn, nhân viên lễ tân lập phiếu đăng ký sử dụng dịch vụ cho khách hàng Sau sử dụng xong dịch vụ, nhân viên lễ tân có nhiệm vụ lập phiếu thu, in lưu, giao cho khách hàng Chi phí cho dịch vụ tính vào tổng tiền có hóa đơn tốn khách trả phịng CHƯƠNG : PHÂN TÍCH DỮ LIỆU HỆ THỐNG 2.1 Mô tả hệ thống dạng mối quan hệ liệu - Khách hàng đến khách sạn th phịng thơng qua phiếu th phịng - Mỗi phiếu đặt phòng phòng gồm: mã phiếu thuê, ngày lập, ngày đến, ngày đi, mã nhân viên chịu trách nhiệm đặt phòng cho khách, mã khách hàng - Khách sạn lưu lại thông tin khách hàng bao gồm: mã khách hàng, tên khách hàng, giới tính, số CMND, địa , số điện thoại, quốc tịch - Sau khách hàng trả phòng, nhân viên kiểm tra phịng lập hóa đơn, khách hàng phải tốn số tiền hóa đơn Mỗi hóa đơn gồm: mã hóa đơn, ngày lập, tổng tiền , mã nhân viên tốn hóa đơn đó, mã phiếu đặt phịng - Mỗi nhân viên lập nhiều hóa đơn - Mỗi phiếu đặt phịng đặt nhiều phịng phiếu đặt phịng tốn qua hóa đơn - Mỗi phịng có nhiều phiếu dịch vụ, phiếu dịch vụ có nhiều dịch vụ - Mỗi phịng có thơng tin sau: mã phịng, tình trạng Mỗi phịng thuộc loại phòng, loại phòng gồm: mã loại phòng, tên loại phịng, giá - Một khách đại diện cho đồn thể đặt nhiều phịng phịng cần khách cọc CMND nộp cho bên khách sạn - Khách sạn lưu trữ thông tin nhân viên bao gồm: mã nhân viên, tên nhân viên, tên tài khoản, mật khẩu, quyền, địa chỉ, số điện thoại, ngày sinh, giới tính, lương 2.2 Xây dựng mơ hình liên kết thực thể 2.3 Cách chuyển đổi từ ER sang mơ hình quan hệ * Các quy tắc chuyển đổi: - Quy tắc 1: Với kiểu liên kết 1:n Chuyển khóa LĐQH bên (cha) sang làm khóa ngoại LĐQH bên nhiều (con) - Quy tắc 2: Với kiểu liên kết n:n Chuyển mối liên kết thành LĐQH có thuộc tính thuộc tính mối liên kết, thêm thuộc tính khóa LĐQH có liên quan, khóa LĐQH thuộc tính thêm vào - Quy tắc 3: Với kiểu liên kết 1:1 + Cách 1: Chuyển khóa LĐQH sang làm khóa ngoại LĐQH ngược lại + Cách 2: Nhập kiểu thực thể mối liên kết thành LĐQH, chọn khóa cho phù hợp *Chuyển đổi mơ hình : - Khách hàng –Phiếu Đặt Phòng mqh – n nên chuyển mã khách hàng sang làm khóa ngoại bảng Phiếu Đặt Phòng - Phiếu Đặt Phòng - Phòng mối quan hệ n – n chuyển mối liên kết thành tập thực thể có tên Chi Tiết Phiếu Đặt bao gồm khóa mã chi tiết phiếu đặt , khóa ngoại mã phịng mã phiếu th ( mã chi tiết phiếu đặt ,ngày , mã phòng, mã phiếu đặt phòng, CMND) -Chi Tiết Phiếu Đặt với Phiếu Dịch Vụ mối quan hệ 1-n nên ta chuyển mã chi tiết phiếu đặt sang làm khóa ngoại bảng Phiếu Dịch Vụ -Phiếu dịch vụ – dịch vụ mối quan hệ n – n chuyển mối liên kết thành tập thực thể có tên Chi Tiết Phiếu Dịch Vụ (mã phiếu dv, mã dv, số lượng, thành tiền) - Nhân viên – Hóa Đơn quan hệ – n nên chuyển mã nhân viên sang làm khóa ngoại hóa đơn - Loại phòng – Phòng quan hệ – n nên chuyển mã loại phịng sang làm khóa ngoại phịng - Hóa Đơn – Phiếu Đặt Phịng quan hệ – nên chuyển mã phiếu đặt phòng sang làm khóa ngoại hóa đơn - Nhân viên – Phiếu đặt phòng quan hệ – n nên chuyển mã nhân viên sang làm khóa ngoại bảng phiếu đặt phòng - Phiếu Đặt Phòng – Phiếu dịch vụ quan hệ – n nên chuyển mã phiếu đặt phịng sang làm khóa ngoại Phiếu Dịch Vụ 2.4 Phân tích nhu cầu sử dụng thơng tin NHANVIEN ( MaNV , TenNV , TenTaiKhoan , MatKhau , Quyen , GioiTinh , NgaySinh, DiaChi , SDT, Luong ) HOADON ( MaHD , NgayLapHD , TongTienPhong , TongTienDichVu , TongTien, NgayThanhToan, MaNV , MaChiTietPhieuDat ) PHIEUDATPHONG ( MaPhieuDatPhong, NgayLapPhieuDatPhong, NgayDen, MaNV , MaKH ) KHACHHANG ( MaKH , TenKH , GioiTinh , DiaChi, CMND, QuocTich ) PHIEUDICHVU ( MaPhieuDV , MaChiTietPhieuDat , Ngay lap, TongTienDichVu) CHITIETPHIEUDV ( MaPhieuDV , MaDV , SoLuong , ThanhTien ) DICHVU ( MaDV , TenDV , DonGia) CHITIETPHIEUDAT (MaChiTietPhieuDat, NgayDi, MaPhong , HinhThucThue, SLNguoi, MaPhieuDatPhong ,CMND) PHONG ( MaPhong , TenPhong, TinhTrang , MaLoaiPhong ) LOAIPHONG ( MaLoaiPhong , TenLoaiPhong,MoTa, DonGia ) • KHACHHANG (MAKH, TENKH, GT, SDT, DIACHI) - Thỏa mãn 1NF khơng có thuộc tính đa trị - Thỏa mãn 2NF thỏa mã 1NF thuộc tính phụ thuộc đầy đủ vào khóa - Thỏa mãn 3NF thỏa mã 2NF thuộc tính khơng khóa phụ thuộc trực tiếp vào khóa - Thỏa mãn BCNF thỏa mã 3NF khơng có thuộc tính khóa phụ thuộc hàm vào thuộc tính khơng khóa • NHANVIEN (MANV, TENNV,TENTK, MATKHAU, QUYEN, NS, GT,DIACHI,SDT,LUONG) - Thỏa mãn 1NF khơng có thuộc tính đa trị - Thỏa mãn 2NF thỏa mã 1NF thuộc tính phụ thuộc đầy đủ vào khóa 10 end go Lấy danh sách tất khách hàng CREATE PROC [dbo].[getallCus] AS SELECT * FROM dbo.KhachHang go Xóa khách hàng thơng qua mã khách hàng CREATE PROC [dbo].[delCus](@MAKH VARCHAR(8)) AS BEGIN DELETE dbo.PhieuDichVu WHERE dbo.PhieuDichVu.MACHITIETPHIEUDAT = (SELECT dbo.CHITIETPHIEUDAT.MACHITIETPHIEUDAT FROM dbo.KhachHang JOIN dbo.PhieudatPhong ON PhieudatPhong.MaKH = KhachHang.MaKH JOIN dbo.CHITIETPHIEUDAT ON CHITIETPHIEUDAT.MAPHIEUDATPHONG = PhieudatPhong.MAPHIEUDATPHONG WHERE dbo.KhachHang.MaKH = @MaKH) DELETE dbo.HoaDon WHERE dbo.HoaDon.MAPHIEUDATPHONG = (SELECT dbo.PhieudatPhong.MAPHIEUDATPHONG FROM dbo.KhachHang JOIN dbo.PhieudatPhong ON PhieudatPhong.MaKH = KhachHang.MaKH WHERE dbo.KhachHang.MaKH = @MaKH) DELETE dbo.CHITIETPHIEUDAT WHERE dbo.CHITIETPHIEUDAT.MaPhieudatPhong = (SELECT dbo.PhieudatPhong.MaPhieudatPhong FROM dbo.KhachHang JOIN dbo.PhieudatPhong ON PhieudatPhong.MaKH = KhachHang.MaKH WHERE dbo.KhachHang.MaKH = @MAKH) DELETE dbo.PhieudatPhong WHERE @MaKH = dbo.PhieudatPhong.MaKH DELETE dbo.KhachHang WHERE MaKH=@MaKH END go 10 Cập nhật thông tin khách hàng thông qua mã khách hàng CREATE PROC [dbo].[updateCus](@MAKH VARCHAR(8), @TENKH NVARCHAR(30), @CMND CHAR(12), @DIACHI NVARCHAR(20), @SDT CHAR(12)) AS BEGIN UPDATE KhachHang SET TenKH=@TENKH WHERE MaKH=@MAKH; END go 21 Quản lý Nhân Viên Người quản lý thêm nhân viên mới, xóa, sửa, tìm kiếm nhân viên cũ giao diện Sau thực cập nhật, bấm nút Save để lưu thông tin Thông tin nhân viên lưu hiển thị bảng bên 13 Thêm nhân viên CREATE PROC [dbo].[addEmp](@MANV VARCHAR(8), @HOTEN NVARCHAR(30), @NGAYSINH DATE, @SDT CHAR(12)) AS BEGIN INSERT INTO NhanVien (MaNV, TENNV, NgaySinh, SDT) VALUES (@MANV, @HOTEN, @NGAYSINH, @SDT) END go 14 Cập nhật thông tin nhân viên thông qua mã nhân viên CREATE PROC [dbo].[updateEmp](@MANV VARCHAR(8), @HOTEN NVARCHAR(30), @NGAYSINH DATE, @SDT CHAR(12)) AS BEGIN UPDATE NhanVien SET TENNV=@HOTEN, NgaySinh=@NGAYSINH, SDT=@SDT WHERE MaNV=@MANV; END go 15 Xóa nhân viên thông qua mã nhân viên CREATE PROC [dbo].[delEmp](@manv varchar(8)) AS BEGIN DECLARE @mctptInSDDV NVARCHAR(8); SELECT @mctptInSDDV = dbo.PhieuDichVu.MaChiTietPhieudat FROM dbo.PhieuDichVu JOIN dbo.CHITIETPHIEUDAT ON CHITIETPHIEUDAT.MaChiTietPhieudat = PhieuDichVu.MaChiTietPhieudat JOIN dbo.PhieudatPhong ON PhieudatPhong.MAPHIEUDATPHONG = ChiTietPhieudat.MAPHIEUDATPHONG JOIN dbo.NhanVien ON NhanVien.MaNV = PhieudatPhong.MaNV AND dbo.NhanVien.MaNV = @manv DELETE dbo.PhieuDichVu WHERE dbo.PhieuDichVu.MaChiTietPhieudat = @mctptInSDDV end go Quản lý Người Dùng Giao diện dành cho người quản lý, dùng để xóa tài khoản nhân viên cập nhật thông tin tài khoản, mật nhân viên, sau phân quyền quản lý lễ tân Sau bấm Save để lưu thao tác vừa Người quản lý tìm kiếm thơng tin tài khoản nhân viên chọn nút Tìm Kiếm 22 16 Lấy thông tin account người dùng CREATE PROC [dbo].[getAcc1] as SELECT dbo.NhanVien.MaNV, dbo.NhanVien.TENNV, dbo.NhanVien.TenTk, dbo.NhanVien.MatKhau, CASE WHEN Quyen=0 THEN N'Lễ Tân' WHEN Quyen=1 THEN N'Quản Lý' END AS Quyen FROM dbo.NhanVien go 17 Cập nhật tài khoản CREATE PROC [dbo].[updateAcc](@MANV VARCHAR(8), @tenTK varchar(30), @matkhau varchar(30), @quyen bit) AS BEGIN UPDATE NhanVien SET TenTk=@tenTK, MatKhau=@matkhau, Quyen=@quyen WHERE MaNV=@MANV; END go 18 Lấy tên người dùng thông qua tài khoản mật CREATE PROC [dbo].[wellCome](@TenTk varchar(30), @MatKhau varchar(30)) as SELECT dbo.NhanVien.TENNV FROM dbo.NhanVien WHERE dbo.NhanVien.TenTk = @TenTk AND MatKhau = @MatKhau go 19 Lấy quyền truy cập người dùng CREATE PROC [dbo].[getPermission](@username varchar(30), @password varchar(30)) as select NhanVien.Quyen from NhanVien where NhanVien.TenTk = @username and NhanVien.MatKhau = @password go 23 Tạo Hóa Đơn Hình 3.1 Sơ đồ quy trình tốn Tạo hóa đơn cho khách hàng CREATE PROC [dbo].[creatBill](@maHD VARCHAR(8), @tienphong int, @tiendv int, @tongtien int , @ngaytt DATE, @mptp varchar(8)) AS INSERT dbo.HoaDon(MaHD, TongTienPhong, TongTienDichVu, TongTien, NGAYLAPHD, MaPhieudatPhong) VALUES (@maHD, @tienphong, @tiendv, @tongtien, @ngaytt, @mptp) SELECT dbo.HoaDon.MAHD, TongTienPhong, TongTienDichVu, TongTien, NGAYLAPHD, MaPhieudatPhong FROM dbo.HoaDon Go 24 Thống Kê Doanh Thu Giao diện dành cho người quản lý muốn xem thống kê thu tiền (bao gồm tổng tiền phòng, tổng tiền dịch vụ) khoảng ngày tùy chọn, sau bấm vào nút Thống Kê để hiển thị kết quả, cuối người quản lý in thống kê file exel cách chọn nút In Excel 11 Lấy doanh thu dịch vụ CREATE PROC [dbo].[getDoanhThuTienDV](@ngayvaochon date, @ngayrachon date) as begin SELECT Phong.TenPhong, dbo.DichVu.TenDV, dbo.PhieuDichVu.NgaySD, dbo.CHITIETPHIEUDV.SoLuong, dbo.CHITIETPHIEUDV.SoLuong*dbo.DichVu.DonGia AS tiendv FROM dbo.Phong JOIN dbo.ChiTietPhieuDat ON ChiTietPhieuDat.MaPhong = Phong.MaPhong JOIN dbo.PhieuDATPhong ON PhieuDATPhong.MAPHIEUDATPHONG = ChiTietPhieuDat.MAPHIEUDATPHONG JOIN dbo.PhieuDichVu ON PhieuDichVu.MaChiTietPhieuDAT = dbo.ChiTietPhieuDat.MaChiTietPhieuDAT JOIN dbo.CHITIETPHIEUDV on dbo.phieuDICHVU.MAPHIEUDV = CHITIETPHIEUDV.MAPHIEUDV JOIN dbo.DichVu ON dbo.DichVu.MaDV = CHITIETPHIEUDV.MAdv AND @ngayvaochon < NgaySD AND NgaySD < @ngayrachon end go 12 Lấy doanh thu tiền phòng CREATE PROC [dbo].[getDoanhThuTienPhong](@ngayvaochon date, @ngayrachon date) as SELECT phong.TenPhong, dbo.PHIEUDATPHONG.Ngayden, dbo.ChiTietPhieudat.Ngaydi, DATEDIFF(DAY, dbo.PHIEUDATPHONG.Ngayden, dbo.ChiTietPhieudat.Ngaydi) AS SoNgayO, dbo.LoaiPhong.DONGIA*DATEDIFF(DAY, dbo.ChiTietPhieudat.Ngaydi, dbo.PHIEUDATPHONG.Ngayden) AS TienPhong FROM dbo.Phong JOIN dbo.ChiTietPhieudat ON ChiTietPhieudat.MaPhong = Phong.MaPhong JOIN dbo.PHIEUDATPHONG ON PHIEUDATPHONG.MaPhieudatPhong = ChiTietPhieudat.MaPhieudatPhong join dbo.LOAIPHONG on LOAIPHONG.MALOAIPHONG = phong.MALOAIPHONG AND Ngayden > @ngayvaochon AND Ngaydi < @ngayrachon go 20 Lấy doanh thu dịch vụ theo phòng CREATE PROC [dbo].[ViewTienDV](@ngayvaochon date, @ngayrachon date) as SELECT Phong.TenPhong, SUM(dbo.CHITIETPHIEUDV.SoLuong*dbo.DichVu.DonGia) AS TongTienDV FROM dbo.Phong JOIN dbo.ChiTietPhieudat ON ChiTietPhieudat.MaPhong = Phong.MaPhong JOIN dbo.PhieudatPhong ON PhieudatPhong.MAPHIEUDATPHONG = ChiTietPhieudat.MAPHIEUDATPHONG join dbo.PHIEUDICHVU on PhieuDichVu.MaChiTietPhieudat = dbo.ChiTietPhieudat.MaChiTietPhieudat JOIN dbo.CHITIETPHIEUDV ON PhieuDichVu.MAPHIEUDV = dbo.CHITIETPHIEUDV.MAPHIEUDV JOIN dbo.DichVu ON dbo.DichVu.MaDV = CHITIETPHIEUDV.MaDV AND @ngayvaochon < NgaySD AND NgaySD < @ngayrachon 25 GROUP BY Phong.TenPhong go 21 Lấy doanh thu tiền phòng theo phòng CREATE PROC [dbo].[ViewTienPhong](@ngayvaochon date, @ngayrachon date) as SELECT phong.TenPhong, SUM(dbo.LOAIPHONG.DONGIA*DATEDIFF(DAY, dbo.PHIEUDATphong.Ngayden, dbo.CHITIETPHIEUDAT.NGAYDI)) AS TongTienPhong FROM dbo.Phong JOIN dbo.CHITIETPHIEUDAT ON CHITIETPHIEUDAT.MaPhong = Phong.MaPhong JOIN dbo.PHIEUDATphong ON PHIEUDATphong.MAPHIEUDATPHONG = CHITIETPHIEUDAT.MAPHIEUDATPHONG JOIn dbo.LOAIPHONG on LOAIPHONG.MALOAIPHONG = phong.MALOAIPHONG AND Ngayden > @ngayvaochon AND Ngaydi < @ngayrachon GROUP BY TenPhong ORDER BY TenPhong go 22 Lấy danh sách phịng có doanh thu lớn số tiền nhập CREATE PROC [dbo].[ViewDoanhThuTheoSoTienNhap](@ngayvaochon date, @ngayrachon DATE, @sotien VARCHAR(50)) as SELECT Phong.TenPhong, SUM(dbo.CHITIETPHIEUDV.SoLuong*dbo.DichVu.DonGia + dbo.loaiPhong.DONGIA*DATEDIFF(DAY, dbo.PHIEUDATPHONG.Ngayden, dbo.CHITIETPHIEUDAT.Ngaydi)) AS TongTien FROM dbo.Phong JOIN dbo.CHITIETPHIEUDAT ON CHITIETPHIEUDAT.MaPhong = Phong.MaPhong JOIN dbo.PHIEUDATPHONG ON PHIEUDATPHONG.MaPhieudatPhong = CHITIETPHIEUDAT.MaPhieudatPhong JOIN dbo.PhieuDichVu ON PhieuDichVu.MACHITIETPHIEUDAT = dbo.CHITIETPHIEUDAT.MACHITIETPHIEUDAT JOIn dbo.CHITIETPHIEUDV on CHITIETPHIEUDV.MAPHIEUDV = PHIEUDICHVU.MAPHIEUDV JOIN dbo.DichVu ON dbo.DichVu.MaDV = CHITIETPHIEUDV.MaDV JOIN dbo.LOAIPHONG on dbo.LOAIPHONG.MALOAIPHONG = PHONG.MALOAIPHONG AND Ngayden > @ngayvaochon AND Ngaydi < @ngayrachon GROUP BY Phong.TenPhong HAVING SUM(dbo.CHITIETPHIEUDV.SoLuong*dbo.DichVu.DonGia + dbo.LOAIPHONG.DONGIA*DATEDIFF(DAY, dbo.PHIEUDATPHONG.Ngayden, dbo.CHITIETPHIEUDAT.Ngaydi)) > @sotien go 3.3.2 Chức đặt phòng, trả phòng (Nguyễn Văn Thuận k17) Sau nhân viên tiếp tân nhận yêu cầu đặt phịng nhân viên lưu thơng tin khách hàng vào bảng khách hàng (bao gồm sđt, họ tên, địa chỉ, số cmnd), khách hàng lưu vào hệ thống bỏ qua bước Tiếp đến lập chi tiết phiếu đặt phòng cho khách cách bấm vào nút Đăng Ký Thuê, nhân viên nhập thơng tin (gồm có ngày đến, ngày đi, số người, ).Nhân viên dựa vào phòng trống phù hợp với yêu cầu khách để hồn thành chi tiết phiếu đặt phịng cho khách 26 Khi khách hàng đến bàn tiếp tân theo lịch để nhận phịng, nhân viên tiếp tân có nhiệm vụ đối chiếu thông tin khách với thông tin đặt, tìm kiếm sở liệu Nếu bấm nút Nhận Phòng đồng thời hướng dẫn khách lên phịng đặt Nếu khách hàng có u cầu hủy đặt phịng nhân viên mở giao diện Hủy Đặt Phịng, tìm đến phịng cần hủy bảng bên bấm nút Hủy Đặt Phòng Khi khách đến bàn tiếp tân để trả phòng, nhân viên chọn phịng cần trả tìm kiếm phịng cần trả bấm nút Trả Các Phòng Đã Chọn (hoặc Tất Cả Các Phịng) Hình 3.2 Sơ đồ quy trình đặt phịng 27 Procedure: Lấy danh sách chi tiết phiếu đặt phòng CREATE PROC [dbo].[getAll_CTPT] as SELECT dbo.ChiTietPhieuDAT.MaChiTietPhieuDAT, dbo.ChiTietPhieuDAT.NgayDI, CASE WHEN dbo.ChiTietPhieuDAT.HinhThucThue=0 THEN N'Offline' WHEN dbo.ChiTietPhieuDAT.HinhThucThue=1 THEN N'Online' end AS hinhthucthue, dbo.ChiTietPhieuDAT.SONGUOI, dbo.ChiTietPhieuDAT.MaPhong, dbo.ChiTietPhieuDAT.MAPHIEUDATPHONG FROM ChiTietPhieuDAT go Thêm chi tiết phiếu đặt phòng vào danh sách CREATE PROC [dbo].[add_CTPT](@mactpt varchar(8), @ngaydi date, @cmnd char(10), @htt bit, @slk tinyint, @maphong varchar(8), @mptp varchar(8)) as INSERT dbo.ChiTietPhieuDAT ( MaChiTietPhieuDAT ,NgayDI ,CMND,SONGUOI ,MaPhong , MaPhieuDATPhong ) VALUES ( @mactpt , MaChiTietPhieudat - varchar(8) @ngaydi, NgayDI - date @cmnd, cmnd - char(10) @htt , HinhThucThue - bit @slk , SoLuongKhach - tinyint @maphong , MaPhong - varchar(8) @mptp MaPhieuDATPhong - varchar(8) ) go Cập nhật chi tiết piếu đặt phịng thơng qua mã chi tiết phiếu đặt phòng CREATE PROC [dbo].[update_CTPT](@mactpt varchar(8), @ngaydi date, @htt bit, @slk tinyint, @maphong varchar(8), @mptp varchar(8)) as UPDATE dbo.CHITIETPHIEUDAT SET Ngaydi = @ngaydi , HinhThucThue=@htt , Songuoi=@slk , MaPhong =@maphong, MaPhieudatPhong=@mptp WHERE MaChiTietPhieudat = @mactpt go Lấy danh sách phòng trống CREATE PROC [dbo].[getFreeRoom] as SELECT dbo.Phong.MaPhong, dbo.Phong.TenPhong, dbo.LoaiPhong.TENLOAIPHONG, dbo.LoaiPhong.SoNguoi, dbo.Phong.DienTich, dbo.loaiPhong.DONGIA FROM dbo.Phong, dbo.LoaiPhong WHERE dbo.Phong.MALOAIPHONG = dbo.LoaiPhong.MaLoaiphong AND dbo.Phong.TinhTrang =0 go Lấy chi tiết phiếu đặt phòng từ mã phiếu đặt phòng CREATE PROC [dbo].[getCTPT_FrIdPT](@mpt varchar(8)) 28 as SELECT dbo.CHITIETPHIEUDAT.MaChiTietPhieudat, dbo.ChiTietPhieudat.Ngaydi, dbo.PHIEUDATPHONG.Ngayden, CASE WHEN dbo.CHITIETPHIEUDAT.HinhThucThue=0 THEN N'Offline' WHEN dbo.CHITIETPHIEUDAT.HinhThucThue=1 THEN N'Online' end AS hinhthucthue, dbo.CHITIETPHIEUDAT.SONGUOI, dbo.CHITIETPHIEUDAT.MaPhong, dbo.CHITIETPHIEUDAT.MAPHIEUDATPHONG FROM CHITIETPHIEUDAT, PHIEUDATPHONG WHERE PHIEUDATPHONG.MAPHIEUDATPHONG=@mpt and CHITIETPHIEUDAT.MAPHIEUDATPHONG = PHIEUDATPHONG.MAPHIEUDATPHONG go Tìm kiếm thơng tin chi tiết phiếu đặt phịng thơng qua mã chi tiết phiếu đặt phòng CREATE PROC [dbo].[Search_MaCtpt](@MaChiTietPhieuThue varchar(8)) AS SELECT dbo.CHITIETPHIEUDAT.MaChiTietPhieudat, dbo.PHIEUDATPHONG.NgayDEN, dbo.CHITIETPHIEUDAT.NgayDI, CASE WHEN dbo.CHITIETPHIEUDAT.HinhThucThue=0 THEN N'Offline' WHEN dbo.CHITIETPHIEUDAT.HinhThucThue=1 THEN N'Online' end AS hinhthucthue, dbo.CHITIETPHIEUDAT.SONGUOI, dbo.CHITIETPHIEUDAT.MaPhong, dbo.CHITIETPHIEUDAT.MAPHIEUDATPHONG FROM PHIEUDATPHONG, CHITIETPHIEUDAT WHERE MaChiTietPhieudat = @MaChiTietPhieuThue AND PHIEUDATPHONG.MAPHIEUDATPHONG = CHITIETPHIEUDAT.MAPHIEUDATPHONG go Tìm kiếm thơng tin chi tiết phiếu đặt phịng thơng qua mã phịng CREATE PROC [dbo].[Search_MaPhong](@MaPhong varchar(8)) AS SELECT dbo.CHITIETPHIEUDAT.MaChiTietPhieudat, dbo.PHIEUDATPHONG.NgayDEN, dbo.CHITIETPHIEUDAT.NgayDI, CASE WHEN dbo.CHITIETPHIEUDAT.HinhThucThue=0 THEN N'Offline' WHEN dbo.CHITIETPHIEUDAT.HinhThucThue=1 THEN N'Online' end AS hinhthucthue, dbo.CHITIETPHIEUDAT.SONGUOI, dbo.CHITIETPHIEUDAT.MaPhong, dbo.CHITIETPHIEUDAT.MaPhieuDATPhong FROM CHITIETPHIEUDAT, PHIEUDATPHONG WHERE MaPhong = @MaPhong AND PHIEUDATPHONG.MAPHIEUDATPHONG = CHITIETPHIEUDAT.MAPHIEUDATPHONG go Xóa chi tiết phiếu đặt phịng thơng qua mã chi tiết phiếu đặt phịng CREATE PROC [dbo].[delCTPT](@MaChiTietPhieuThue varchar(8)) AS BEGIN DELETE dbo.CHITIETPHIEUDAT WHERE @MaChiTietPhieuThue = CHITIETPHIEUDAT.MACHITIETPHIEUDAT END go Thay đổi trạng thái phịng có khách khơng có khách CREATE PROC [dbo].[changeStatusRoom](@maphong varchar(8)) as UPDATE dbo.Phong SET dbo.Phong.TinhTrang = CASE WHEN TinhTrang = THEN 29 WHEN TinhTrang = THEN END WHERE MaPhong = @maphong go 10 Lấy mã nhân viên từ tài khoản nhân viên CREATE PROC [dbo].[getIdEmpFrAcc](@tentk varchar(30), @matkhau varchar(30)) as SELECT dbo.NhanVien.MaNV FROM dbo.NhanVien WHERE TenTk=@tentk AND MatKhau=@matkhau go 11 Lấy thơng tin phiếu đặt phịng thơng qua mã khách hàng create PROC [dbo].[getPhieuThue2] as SELECT dbo.PhieuDATPhong.MaPhieuDATPhong, dbo.KhachHang.MaKH, dbo.KhachHang.TenKH FROM dbo.PhieuDATPhong, dbo.KhachHang WHERE dbo.KhachHang.MaKH = dbo.PhieuDATPhong.MaKH go 12 Thêm phiếu đặt phòng cho khách hàng CREATE PROC [dbo].[addPhieuThuePhong](@mptp varchar(8), @makh varchar(8), @manv varchar(8)) as INSERT dbo.PhieuDATPhong ( MaPhieuDATPhong , MaKH , MaNV ) VALUES ( @mptp, MaPhieuDatPhong - varchar(8) @makh, MaKH - varchar(8) @manv MaNV - varchar(8) ) go 13 Lấy thông tin phòng mà khách hàng đặt phòng CREATE proc [dbo].[Phong_Thue] (@MaKH varchar(8)) as begin select Phong.MaPhong, TenPhong, MaLoaiPhong, MaChiTietPhieudat from Phong, ChiTietPhieudat, PhieudatPhong where Phong.MaPhong = ChiTietPhieudat.MaPhong and ChiTietPhieudat.MaPhieudatPhong = PhieudatPhong.MaPhieudatPhong and PhieudatPhong.MaKH = @MaKH and phong.TinhTrang = end go 3.3.3 Chức quản lý phòng, loại phòng, Dịch vụ, loại dịch vụ (Lê Thanh Nam, Nguyễn Văn Thuận k16, Võ Trung Quân) Nếu khách hàng có yêu cầu sử dụng dịch vụ, nhân viên quầy tiếp tân cần chọn vào giao diện Dịch Vụ Phòng, tạo phiếu dịch vụ (bằng cách chọn mã dịch vụ, nhập số lượng, giá tiền, mã phòng), bấm nút Thêm Nhân viên sửa 30 xóa dịch vụ theo yêu cầu khách cách chọn nút Sửa Xóa Thao tác cuối bấm nút Save Quản lý Phòng Loại Phòng Người dùng thêm, sửa xóa, tìm kiếm phịng, loại phịng Các phịng, loại phịng có hiển thị bảng đặt bên Procedure: Đưa danh sách loại phòng CREATE PROC [dbo].[DSLoaiPhong] AS BEGIN SELECT * FROM LoaiPhong END go Xóa loại phịng thơng qua mã loại phịng CREATE PROC [dbo].[delTypeRoom](@MALOAIPHONG VARCHAR(8)) AS BEGIN DELETE dbo.LoaiPhong WHERE MaLoaiphong = @MALOAIPHONG END go Thêm loại phòng vào danh sách loại phòng CREATE PROC [dbo].[addTypeRoom](@MALOAIPHONG VARCHAR(8), @TENLOAIPHONG NVARCHAR(30), @SONGUOI TINYINT, @GHICHU NVARCHAR(250)) AS BEGIN INSERT INTO LoaiPhong(MaLoaiphong, TenLoaiphong, SoNguoi, mota) VALUES (@MALOAIPHONG,@TENLOAIPHONG ,@SONGUOI ,@GHICHU) END go Chỉnh sửa thông tin loại phịng thơng qua mã loại phịng CREATE PROC [dbo].[updateTypeRoom](@MALOAIPHONG VARCHAR(8), @TENLOAIPHONG NVARCHAR(30), @SONGUOI TINYINT, @GHICHU NVARCHAR(250)) AS BEGIN UPDATE LoaiPhong SET TenLoaiphong = @TENLOAIPHONG, SoNguoi= @SONGUOI, mota=@GHICHU WHERE MaLoaiphong = @MALOAIPHONG; END go Tìm kiếm loại phịng thơng qua tên loại phịng CREATE PROC [dbo].[TKtypeRoom](@TENLOAIPHONG VARCHAR(8)) AS BEGIN SELECT * FROM dbo.LoaiPhong WHERE TenLoaiphong = @TENLOAIPHONG 31 END go 11 Lấy danh sách phòng CREATE PROC [dbo].[DSPhong] AS BEGIN SELECT * FROM Phong END go 12 Xóa phịng thơng qua mã phịng CREATE PROC [dbo].[delRoom](@MAPHONG VARCHAR(8)) AS BEGIN DELETE dbo.Phong WHERE MaPhong= @MAPHONG END go 13 Thêm phòng vào danh sách CREATE PROC [dbo].[addRoom](@MAPHONG VARCHAR(8), @TENPHONG NVARCHAR(30), @TINHTRANG TINYINT, @DIENTICH INT, @MALOAI VARCHAR(8)) AS BEGIN INSERT INTO Phong(MaPhong, TenPhong, TinhTrang, DienTich, MALOAIPHONG) VALUES (@MAPHONG, @TENPHONG, @TINHTRANG, @DIENTICH, @MALOAI) END go 14 Chỉnh sửa phịng thơng qua mã phịng CREATE PROC [dbo].[updateRoom](@MAPHONG VARCHAR(8), @TENPHONG NVARCHAR(30), @TINHTRANG TINYINT, @DIENTICH INT, @MALOAI VARCHAR(8)) AS BEGIN UPDATE Phong SET TenPhong=@TENPHONG, TinhTrang= @TINHTRANG, DienTich=@DIENTICH, MaLoaiphong =@MALOAI WHERE MaPhong= @MAPHONG; END go 15 Tìm kiếm phịng thơng qua tên phịng CREATE PROC [dbo].[TKPhong](@TENPHONG VARCHAR(8)) AS BEGIN SELECT * FROM dbo.Phong WHERE TenPhong = @TENPHONG END go Quản lý Dịch Vụ Loại Dịch Vụ Người dùng thêm, sửa xóa, tìm kiếm dịch vụ, loại dịch vụ Các dịch vụ, loại dịch vụ có hiển thị bảng bên 32 Hình 3.3 Sơ đồ quy trình thêm dịch vụ Lấy danh sách dịch vụ CREATE PROC [dbo].[DichVu] AS BEGIN SELECT * FROM DichVu END go Xóa loại dịch vụ thơng qua mã dịch vụ CREATE PROC [dbo].[delTypeSer](@MADV VARCHAR(8)) AS BEGIN DELETE dbo.DichVu WHERE MaDV = @MADV 33 END go Thêm dịch vụ vào danh sách CREATE PROC [dbo].[addTypeSer](@MADV VARCHAR(8), @TENDV NVARCHAR(20)) AS BEGIN INSERT INTO DichVu(MaDV, TenDV) VALUES (@MADV, @TENDV) END go Chỉnh sửa dịch vụ thông qua mã dịch vụ CREATE PROC [dbo].[updateTypeSer](@MADV VARCHAR(8), @TENDV NVARCHAR(20)) AS BEGIN UPDATE dichvu SET TenDV=@TENDV WHERE MaDV = @MADV; END go 10 Tìm kiếm dịch vụ thơng qua tên dịch vụ CREATE PROC [dbo].[TKtypeService](@TENDV VARCHAR(8)) AS BEGIN SELECT * FROM dbo.DICHVU WHERE TenDV = @TENDV END Go -22 Lấy tên phòng có khách có sử dụng dịch vụ CREATE PROC [dbo].[DSTenPhongSDDV] AS BEGIN SELECT TenPhong FROM Phong WHERE Phong.TinhTrang = END go 23 Chỉnh sửa dịch vụ phịng thơng qua mã sử dụng dịch vụ CREATE PROC [dbo].[UpdateServiceRoom](@MASD VARCHAR(8), @NGAYSD DATE, @SOLUONG TINYINT, @GIATIEN int, @MADV VARCHAR(8), @MACTPT VARCHAR(8)) AS BEGIN UPDATE PHIEUDICHVU SET TONGTIENDICHVU = @GIATIEN WHERE MAPHIEUDV = @MASD UPDATE CHITIETPHIEUDV SET SOLUONG = @SOLUONG WHERE MAPHIEUDV = @MASD END go 34 24 Thêm dịch vụ phịng thơng qua mã chi tiết phiếu thuê CREATE PROC [dbo].[addServiceRoom](@MASD VARCHAR(8), @NGAYSD DATE,@SOLUONG TINYINT, @GIATIEN int,@MADV VARCHAR(8), @MACTPT VARCHAR(8)) AS BEGIN INSERT INTO PhieuDichVu(MAPHIEUDV, NgaySD, TONGTIENDICHVU, MaChiTietPhieudat) VALUES (@MASD, @NGAYSD,@SOLUONG * @GIATIEN, @MACTPT) INSERT INTO CHITIETPHIEUDV VALUES (@MASD, @MADV, @SOLUONG, @GIATIEN) END go 25 Xóa dịch vụ phịng thơng qua mã sử dụng CREATE PROC [dbo].[delServiceRoom](@MASD VARCHAR(8)) AS BEGIN DELETE dbo.PHIEUDICHVU WHERE MAPHIEUDV = @MASD END go 26 Lấy giá tiền dịch vụ cần sử dụng đơn giá * số lượng CREATE PROC [dbo].[GiaTienDV](@madv varchar(8), @soluong tinyint) as select distinct DichVu.DonGia*@soluong as giatien from DichVu where @madv = DichVu.MaDV go 27 Lấy mã dịch vụ thông qua tên dịch vụ CREATE PROC [dbo].[getMaDVtoTenDV](@TENDV NVARCHAR(20)) AS BEGIN SELECT DichVu.MaDV FROM DichVu WHERE DichVu.TenDV = @TENDV END go 35 ... Mục đích, yêu cầu Hệ thống quản lý khách sạn bao gồm quản lý phòng, loại phòng Quản lý thuê phòng, quản lý khách hàng, quản lý nhân viên Một phịng gọi nhiều dịch vụ, khách th nhiều phịng lần th... cho khách, trả phòng, lập phiếu dịch vụ, in hóa đơn cho khách, quản lý thông tin khách hàng 3.2.2 Người quản lý chung xem thống kê thu nhập khách sạn, quản lý tài khoản đăng nhập phận, quản lý. .. nhiệm đặt phòng cho khách, mã khách hàng - Khách sạn lưu lại thông tin khách hàng bao gồm: mã khách hàng, tên khách hàng, giới tính, số CMND, địa , số điện thoại, quốc tịch - Sau khách hàng trả phòng,