Khách sạn của bạn đang chuẩn bị khai trương. Bạn cần 1 phần mềm để quản lý công việc thu chi, quản lý phòng để tránh việc thất thoát và hạn chế số lượng nhân viên. Với phần mềm quản lý khách sạn, nhân viên của bạn sẽ không còn phải mất nhiều thời gian cho công việc ghi chép sổ sách và bạn có thể biết ngay lập tức tình hình kinh doanh mà không phải chờ đến các báo cáo từ nhân viên.
                
              
                                            
                                
            
                       
            
                 20 trang
20 trang | 
Chia sẻ: nhungnt | Lượt xem: 2440 | Lượt tải: 1 
              
            Bạn đang xem nội dung tài liệu Đề tài Quản lý khách sạn, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Nhóm 06
Tên đề tài : quản lý khách sạn
01 : Tướng Hải Hoàng Sa Nhóm Trưởng
02: Trần Phi Hổ
03 : Phan Thanh Bình
04: Nguyễn Minh Đức
ĐỀ TÀI: QUẢN LÝ KHÁCH SẠN
 Mục lục
Đặc tả yêu cầu đề tài
1/ Giới thiệu	 
2/ Yêu cầu
Phân tích yêu cầu
1/ Yêu cầu hệ thống	 
2/ Yêu cầu chương trình	 
Mô hình FHD:	
Mô hình dữ liệu:	
a/ Mô hình quan niệm:	
b/ Mô hình vật lý:	
c/ Mô tả các bảng dữ liệu:	
Mô tả các Srored Procedure:	
………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………Đặt tả yêu cầu đề tài 
1/ Giới thiệu:
Khách sạn của bạn đang chuẩn bị khai trương. Bạn cần 1 phần mềm để quản lý công việc thu chi, quản lý phòng để tránh việc thất thoát và hạn chế số lượng nhân viên. Với phần mềm quản lý khách sạn, nhân viên của bạn sẽ không còn phải mất nhiều thời gian cho công việc ghi chép sổ sách và bạn có thể biết ngay lập tức tình hình kinh doanh mà không phải chờ đến các báo cáo từ nhân viên.
2/ Yêu cầu:
Quản trị hệ thống:
Phân quyền tới từng nhân viên.
Khôi phục và lưu trử dử liệu.
Thiết lập các thông số phục vụ cho hoạt động của khách sạn.
Quản lý phòng:
Theo dỏi tình trạng từng phòng trong khách sạn.
Thêm mới, cập nhật, tra cứu thông tin.
Quản lý khách:
Thông tin về khách hàng.
Số phòng đang ở.
Tính tiền:
Tổng hợp hóa đơn thanh toán tiền phòng và các dịch vụ khác.
In báo cáo doanh thu theo yêu cầu.
Phân tích yêu cầu
1/ Yêu cầu hệ thống:
Phần cứng:
CPU: 450-megahertz (MHz) Pentium II-class processor trở lên.
RAM: 96 MB.
Phần mềm:
HĐH: Microsoft Windows 2000 trở lên.
.NET Framework 1.1 
Microsoft SQL Server
2/ Yêu cầu chương trình:
Mô hình FHD:
Mô hình dữ liệu:
a/ Mô hình quan niệm:
b/ Mô hình vật lý:
c/ Mô tả các bảng dữ liệu:
Mô tả các Stored Procedure:
1/ pr_check_login: kiểm tra đăng nhập vào hệ thống
CREATE proc pr_check_login
@msnv varchar(30),@password varchar(30)
as
select * from NHANVIEN where (MSNV=@msnv and Matkhau = @password)
GO
Input: mã số và mật khẩu nhân viên.
Output: nhân viên có mã số và mật khẩu đúng với tham số truyền vào.
2/ pr_del_KH: xoá khách hàng
CREATE procedure pr_del_KH
@MSKH	numeric	
as
begin
	if NOT EXISTS (select * from CHITIETTHUEPHONG where MSKH=@MSKH) 
	delete from KHACHHANG where MSKH = @MSKH
	else
	print 'Khach hang dang ton tai trong CSDL '
	if (@@error0)
	print 'Loi.... Ko xoa duoc'
end
GO
Input: Mã số khách hàng.
Output: không.
3/ pr_del_LoaiPhong: xóa loại phòng
CREATE procedure pr_del_LoaiPhong
	@MSLOAIPHONG	char(2)	
as
begin
	if NOT EXISTS (select * from TRANGBITRANGTB where MSLOAIPHONG=@MSLOAIPHONG) and NOT EXISTS (select * from DMPHONG where MSLOAIPHONG=@MSLOAIPHONG)
	delete from LOAIPHONG where MSLOAIPHONG = @MSLOAIPHONG
else
	print 'Loai phong dang ton tai trong CSDL '
	if (@@error0)
	print 'Loi.... Ko xoa duoc'
end
GO
Input: Mã số loại phòng.
Output: không.
4/ pr_del_NhanVien: xóa nhân viên
CREATE procedure pr_del_NhanVien
	@MSNV	char(10)	
	as
	begin
	if NOT EXISTS (select * from HDTHANHTOANPHONG where MSNV=@MSNV) and NOT EXISTS (select * from THUEPHONG where MSNV=@MSNV)
	delete from NHANVIEN where MSNV = @MSNV
	else
	print 'Nhan vien dang ton tai trong CSDL '
	if (@@error0)
	print 'Loi.... Ko xoa duoc'
	end
GO
Input: Mã số nhân viên.
Output: không.
5/ pr_del_Phong: xóa phòng
CREATE proc pr_del_Phong
@msPhong varchar(10)
as
	delete from DMPHONG
	where MSPHONG=@msPhong
GO
Input: Mã số phòng.
Output: không.
6/ pr_del_THIETBI_DV: xóa trang thiết bị
CREATE procedure pr_del_THIETBI_DV
	@MSTB	char(3)	
	as
	begin
	declare @a	numeric
	set @a = @MSTB
	if NOT EXISTS (select * from CHITIETTHANHTOAN where MSTB=@a) and NOT EXISTS (select * from TRANGBITRANGTB where MSTB=@a)
	delete from THIETBI_DV where MSTB = @a
	else
	print 'Thiet bi_dich vu dang ton tai trong CSDL '
	if (@@error0)
	print 'Loi.... Ko xoa duoc'
	end
GO
Input: Mã số trang thiết bị.
Output: không.
7/ pr_del_THUEPHONG: xóa hợp đồng thuê phòng
CREATE procedure pr_del_THUEPHONG
	@SOHDONGTHUEPHONG	numeric	
	as
	begin
	declare @a	numeric
	set @a = @SOHDONGTHUEPHONG
	if NOT EXISTS (select * from SUDUNGDV where SOHDONGTHUEPHONG=@a) and NOT EXISTS (select * from CHITIETTHUEPHONG where SOHDONGTHUEPHONG=@a) and NOT EXISTS (select * from HDTHANHTOANPHONG where SOHDONGTHUEPHONG=@a)
	delete from THUEPHONG where SOHDONGTHUEPHONG = @a
	else
	print 'So hop dong thue phong dang ton tai trong CSDL '
	if (@@error0)
	print 'Loi.... Ko xoa duoc'
	end
GO
Input: Mã số khách hàng.
Output: không.
8/ pr_ins_CHITIETTHUEPHONG: thêm mới hoặc cập nhật chi tiết thuê phòng
CREATE procedure pr_ins_CHITIETTHUEPHONG
	@option 	char(1),
	@SOHDONGTHUEPHONG	numeric,
	@MSKH	numeric,
	@VAITRO	char(1)
	as
	begin
	if (@option=1)
	insert into CHITIETTHUEPHONG(SOHDONGTHUEPHONG,MSKH,VAITRO) values (@SOHDONGTHUEPHONG,@MSKH,@VAITRO)
	else if (@option=2)
	Update CHITIETTHUEPHONG set VAITRO=@VAITRO where SOHDONGTHUEPHONG = @SOHDONGTHUEPHONG and MSKH=@MSKH
	else 
	print 'Loi'
	if (@@error0)
	print 'Loi'
	end
GO
Input: số hợp đồng thuê phòng, mã số khách hàng, vai trò của khách hàng, lựa chọn thêm mới hay cập nhật.
	Nếu option=1: thêm mới
	Nếu option=2: cập nhật
Output: không.
9/ pr_ins_HDThanhToan: thêm hợp đồng thanh toán
CREATE procedure pr_ins_HDThanhToan
	@SOHDONGTHUEPHONG	numeric,
	@MSNV	char(10),
	@NGAYTHANHTOAN	datetime,
	@TIENPHONG	money
	as
	begin
	insert into HDTHANHTOANPHONG(SOHDONGTHUEPHONG,MSNV,NGAYTHANHTOAN,TIENPHONG) values (@SOHDONGTHUEPHONG,@MSNV,@NGAYTHANHTOAN,@TIENPHONG)
	if (@@error0)
	print 'Loi'
	end
GO
Input: số hợp đồng thuê phòng, mã số nhân viên, ngày thanh toán, tiền phòng.
Output: không.
10/ pr_ins_KH: thêm mới hoặc cập nhật khách hàng
CREATE procedure pr_ins_KH
	@option 	char(1),
	@MSKH	numeric	,
	@HOTENKH	nvarchar(50),
	@GIOITINHKH	char(1),
	@DIACHIKH	nvarchar(100),
	@CMND	char(10),
	@DIENTHOAIKH	varchar(15)
	as
	begin
	if (@option=1)
	insert into KHACHHANG(HOTENKH,GIOITINHKH,DIACHIKH,CMND,DIENTHOAIKH) values (@HOTENKH,@GIOITINHKH,@DIACHIKH,@CMND,@DIENTHOAIKH)
	else if (@option=2)
	Update KHACHHANG 	set HOTENKH = @HOTENKH, GIOITINHKH=@GIOITINHKH, DIACHIKH=@DIACHIKH, CMND=@CMND, DIENTHOAIKH=@DIENTHOAIKH WHERE MSKH=@MSKH
	else 
	print 'Loi'
	if (@@error0)
	print 'Loi'
	end
GO
Input: mã số, họ tên, giới tính, điện thoại, CMND, địa chỉ của khách hàng, lựa chọn thêm mới hay cập nhật.
	Nếu option=1: thêm mới
	Nếu option=2: cập nhật
Output: không.
11/ pr_ins_LoaiPhong: thêm mới hoặc cập nhật loại phòng
CREATE procedure pr_ins_LoaiPhong
	@option 	char(1),
	@MSLOAIPHONG	char(2)	,
	@LOAIPHONG	nvarchar(50),
	@GIATIEN	money
	as
	begin
	if (@option=1)
	insert into LOAIPHONG(MSLOAIPHONG,LOAIPHONG,GIATIEN) values (@MSLOAIPHONG,@LOAIPHONG,@GIATIEN)
	else if (@option=2)
	Update LOAIPHONG set LOAIPHONG=@LOAIPHONG, GIATIEN=@GIATIEN WHERE MSLOAIPHONG=@MSLOAIPHONG
	else 
	print 'Loi'
	if (@@error0)
	print 'Loi'
	end
GO
Input: mã số loại phòng, loại phòng, giá tiền, lựa chọn thêm mới hay cập nhật.
	Nếu option=1: thêm mới
	Nếu option=2: cập nhật
Output: không.
12/ pr_ins_NV: thêm mới hoặc cập nhật nhân viên
CREATE procedure pr_ins_NV
	@option 	char(1),
	@MSNV	char(10)	,
	@HOTENNV	nvarchar(100),
	@MatKhau	varchar(20),
	@NGAYSINHNV	datetime,
	@GIOITINHNV	char(1),
	@DIACHINV	nvarchar(50),
	@DIENTHOAINV	varchar(15),
	@NGAYVAOLAM	DATETIME,
	@HINH	varchar(500)
	as
	begin
	if (@option=1)
	insert into NHANVIEN(MSNV,HOTENNV,MatKhau,NGAYSINHNV,GIOITINHNV,DIACHINV,DIENTHOAINV,NGAYVAOLAM,HINH) values (@MSNV,@HOTENNV,@MatKhau,@NGAYSINHNV,@GIOITINHNV,@DIACHINV,@DIENTHOAINV,@NGAYVAOLAM,@HINH)
	else if (@option=2)
	Update NHANVIEN set HOTENNV = @HOTENNV, MatKhau=@MatKhau, NGAYSINHNV=@NGAYSINHNV, GIOITINHNV=@GIOITINHNV, DIACHINV=@DIACHINV, DIENTHOAINV=@DIENTHOAINV, NGAYVAOLAM=@NGAYVAOLAM, HINH=@HINH WHERE MSNV=@MSNV
	else 
	print 'Loi'
	if (@@error0)
	print 'Loi'
	end
GO
Input: mã số, họ tên, mật khẩu, ngày sinh,giới tính, địa chỉ, điện thoại, ngày vào làm, hình của nhân viên, lựa chọn thêm mới hay cập nhật.
	Nếu option=1: thêm mới
	Nếu option=2: cập nhật
Output: không.
13/ pr_ins_Phong: thêm mới hoặc cập nhật phòng
CREATE procedure pr_ins_Phong
	@option 	char(1),
	@MSPHONG	char(10)	,
	@MSLOAIPHONG char(2),
	@TINHTRANG char(1)
	as
	begin
	if (@option=1)
	insert into DMPHONG(MSLOAIPHONG,MSPHONG,TINHTRANG) values (@MSLOAIPHONG,@MSPHONG,@TINHTRANG)
	else if (@option=2)
	Update DMPHONG set MSLOAIPHONG=@MSLOAIPHONG, TINHTRANG=@TINHTRANG WHERE MSPHONG=@MSPHONG
	else 
	print 'Loi'
	if (@@error0)
	print 'Loi'
	end
GO
Input: mã số phòng, mã số loại phòng, tình trạng phòng, lựa chọn thêm mới hay cập nhật.
	Nếu option=1: thêm mới
	Nếu option=2: cập nhật
Output: không.
14/ pr_ins_SuDung_DV: thêm mới hoặc cập nhật tình hình sử dụng các dịch vụ của khách
CREATE procedure pr_ins_SuDung_DV
	@option 	char(1),
	@SOHDONGTHUEPHONG	numeric,
	@MSTB	char(3),
	@NGAYSD	datetime,
	@SOLUONG	int
	as
	begin
	if (@option=1)
	insert into SUDUNGDV(SOHDONGTHUEPHONG,MSTB,NGAYSD,SOLUONG) values (@SOHDONGTHUEPHONG,@MSTB,@NGAYSD,@SOLUONG)
	else if (@option=2)
	Update SUDUNGDV	set MSTB=@MSTB,NGAYSD=@NGAYSD, SOLUONG=@SOLUONG WHERE SOHDONGTHUEPHONG = @SOHDONGTHUEPHONG
	else 
	print 'Loi'
	if (@@error0)
	print 'Loi'
	end
GO
Input: số hợp đồng thuê phòng, mã số thiết bị, ngày sử dụng, số lượng, lựa chọn thêm mới hay cập nhật.
	Nếu option=1: thêm mới
	Nếu option=2: cập nhật
Output: không.
15/ pr_ins_TBTrangTB: thêm mới hoặc cập nhật trang bị các thiết bị cho loại phòng
CREATE procedure pr_ins_TBTrangTB
	@option 	char(1),
	@MSLOAIPHONG	char(2),
	@MSTB	char(3),
	@SOLUONG	numeric
	as
	begin
	if (@option=1)
	insert into TRANGBITRANGTB(MSLOAIPHONG,MSTB,SOLUONG) values (@MSLOAIPHONG,@MSTB,@SOLUONG)
	else if (@option=2)
	Update TRANGBITRANGTB set SOLUONG=@SOLUONG where MSLOAIPHONG = @MSLOAIPHONG and MSTB=@MSTB
	else if (@option=3)
	delete from TRANGBITRANGTB where MSLOAIPHONG = @MSLOAIPHONG and MSTB=@MSTB
	else 
	print 'Loi'
	if (@@error0)
	print 'Loi'
	end
GO
Input: mã số loại phòng, mã số thiết bị, số lượng, lựa chọn thêm mới hay cập nhật.
	Nếu option=1: thêm mới
	Nếu option=2: cập nhật
Output: không.
16/ pr_ins_THIETBI_DV: thêm mới hoặc cập nhật các thiết bị, dịch vụ
CREATE procedure pr_ins_THIETBI_DV
	@option 	char(1),
	@MSTB	char(3),
	@TENTHIETBI	nvarchar(50),
	@DVT	nvarchar(10),
	@GIATB	money,
	@THIETBICODINH	char(1)
	as
	begin
	if (@option=1)
	insert into THIETBI_DV(MSTB,TENTHIETBI,DVT,GIATB,THIETBICODINH) values (@MSTB,@TENTHIETBI,@DVT,@GIATB,@THIETBICODINH)
	else if (@option=2)
	Update THIETBI_DV 	set TENTHIETBI = @TENTHIETBI, DVT=@DVT,GIATB=@GIATB, THIETBICODINH=@THIETBICODINH WHERE MSTB=@MSTB
	else 
	print 'Loi'
	if (@@error0)
	print 'Loi'
	end
GO
Input: mã, tên thiết bị, đơn vị tính, giá, tình trạng thiết bị, lựa chọn thêm mới hay cập nhật.
	Nếu option=1: thêm mới
	Nếu option=2: cập nhật
Output: không.
17/ pr_ins_THUEPHONG: thêm mới hoặc cập nhật danh sách thuê phòng
CREATE procedure pr_ins_THUEPHONG
	@option 	char(1),
	@SOHDONGTHUEPHONG	numeric,
	@MSNV	char(10),
	@MSPHONG	char(10),
	@NGAYTHUE	datetime,
	@NGAYTRADK	datetime
	as
	begin
	if (@option=1)
	insert into THUEPHONG(MSNV,MSPHONG,NGAYTHUE,NGAYTRADK) values (@MSNV,@MSPHONG,@NGAYTHUE,@NGAYTRADK)
	else if (@option=2)
	Update THUEPHONG 	set MSNV = @MSNV, MSPHONG=@MSPHONG, NGAYTHUE=@NGAYTHUE, NGAYTRADK=@NGAYTRADK WHERE SOHDONGTHUEPHONG=@SOHDONGTHUEPHONG
	else 
	print 'Loi'
	if (@@error0)
	print 'Loi'
	end
GO
Input: số hợp đồng thuê phòng, mã số nhân viên, mã số phòng, ngày thuê, ngày dự kiến trả, lựa chọn thêm mới hay cập nhật.
	Nếu option=1: thêm mới
	Nếu option=2: cập nhật
Output: không.
18/ pr_list_KH: liệt kê danh sách khách hàng
CREATE proc pr_list_KH
as
select * from KHACHHANG
GO
Input: không.
Output: danh sách tất cả khách hàng có trong csdl.
19/ pr_list_KHSearch: liệt kê danh sách tên, giới tính, địa chỉ, CMND, điện thoại của khách hàng
CREATE proc pr_list_KHSearch
as
select HOTENKH 'HoTen', GIOITINHKH 'GioiTinh', DIACHIKH 'DiaChi', CMND, DIENTHOAIKH 'DienThoai' from KHACHHANG
GO
Input: không.
Output: danh sách tất cả tên, giới tính, địa chỉ, CMND, điện thoại của khách hàng có trong csdl.
20/ pr_list_LoaiPhong: liệt kê danh sách loại phòng
CREATE proc pr_list_LoaiPhong
as
select * from LOAIPHONG
GO
Input: không.
Output: danh sách tất cả loại phòng có trong csdl.
21/ pr_list_NV: liệt kê danh sách nhân viên
CREATE proc pr_list_NV
as
select * from NHANVIEN
GO
Input: không.
Output: danh sách tất cả nhân viên trong csdl.
22/ pr_list_Phong: liệt kê danh sách mã số phòng, thuộc loại phòng nào, tình trạng phòng
CREATE proc pr_list_Phong
as
select MSPHONG,TINHTRANG,LOAIPHONG.* from DMPHONG, LOAIPHONG
where LOAIPHONG.MSLOAIPHONG=DMPHONG.MSLOAIPHONG
GO
Input: không.
Output: danh sách mã số phòng, loại phòng, tình trạng của các phòng.
23/ pr_list_Phong_trong: liệt kê danh sách tất cả phòng trống
CREATE proc pr_list_Phong_trong
as
select * from DMPHONG
where TINHTRANG=0
GO
Input: không.
Output: danh sách tất cả phòng trống.
24/ pr_list_PhongSearch: liệt kê danh sách mã số phòng, thuộc loại phòng nào, tình trạng phòng và giá tiền của các phòng
CREATE proc pr_list_PhongSearch
as
select MSPHONG 'MaPhong',TINHTRANG 'TinhTrangTrong',LOAIPHONG.LOAIPHONG 'LoaiPhong',LOAIPHONG.GIATIEN 'GiaTien' from DMPHONG, LOAIPHONG
where LOAIPHONG.MSLOAIPHONG=DMPHONG.MSLOAIPHONG
GO
Input: không.
Output: danh sách mã số phòng, loại phòng, tình trạng phòng và giá tiền của các phòng.
25/ pr_list_SuDungDV: liệt kê danh sách các thông tin của một hợp đồng thuê phòng
CREATE proc pr_list_SuDungDV
@SOHDONGTHUEPHONG numeric
as
select SuDungDV.*, THIETBI_DV.*,NGAYTHUE from SuDungDV, THIETBI_DV, THUEPHONG
where SuDungDV.SOHDONGTHUEPHONG=@SOHDONGTHUEPHONG and SuDungDV.MSTB=THIETBI_DV.MSTB and THUEPHONG.SOHDONGTHUEPHONG=SuDungDV.SOHDONGTHUEPHONG
GO
Input: số hợp đồng thuê phòng.
Output: danh sách các thông tin của số hợp đồng thuê phòng.
26/ pr_list_TBTrangThietBi: liệt kê danh sách các trang thiết bị có trong từng loại phòng
CREATE proc pr_list_TBTrangThietBi
as
select tr.MSLOAIPHONG,tr.MSTB,l.LOAIPHONG,t.TENTHIETBI,tr.SOLUONG from LOAIPHONG l, THIETBI_DV t, TRANGBITRANGTB tr
where l.MSLOAIPHONG=tr.MSLOAIPHONG and t.MSTB=tr.MSTB
GO
Input: không.
Output: danh sách các trang thiết bị có trong từng loại phòng.
27/ pr_list_ThietBi: liệt kê danh sách thiết bị hoặc dịch vụ
CREATE proc pr_list_ThietBi
@option 	char(1)
as
begin
	if (@option=1)
	select * from THIETBI_DV where THIETBICODINH='1'
	else if (@option=2)
	select * from THIETBI_DV where THIETBICODINH='0'
	else
	select * from THIETBI_DV
end
GO
Input: lựa chọn liệt kê thiết bị hoặc dịch vụ.
	Nếu option=1: liệt kê thiết bị
	Nếu option=2: liệt kê dịch vụ
Output: danh sách thiết bị hoặc dịch vụ.
28/ pr_Phong_KH: liệt kê danh sách khách hàng hiện đang thuê phòng
CREATE procedure pr_Phong_KH
@msphong char(10)
as
begin
select Khachhang.*,vaitro,chitietthuephong.soHDongthuephong,thuephong.ngaythue,thuephong.ngaytradk
from thuephong,khachhang,chitietthuephong
where thuephong.soHDongthuephong not in (select soHDongthuephong from HDThanhtoanphong)
and thuephong.soHDongthuephong = chitietthuephong.soHDongthuephong
and khachhang.mskh = chitietthuephong.mskh
and msphong = @msphong
end
GO
Input: mã số phòng.
Output: danh sách tất cả khách hàng hiện đang thuê phòng có mã số phòng truyền vào.