Nhóm 2-Khmt2-K5
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN ------ -----
BÁO CÁO BÀI TẬP LỚN MÔN : PHÂN TÍCH TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG TƯỢNG ĐỀ TÀI :
Quản lí khách sạn Ba Sao
THÀNH VIÊN TRONG NHÓM 2:
1. Nguyễn Đình Triệu 2. Nguyễn Thị Đào 3. Nguyễn Thị Nhâm 4. Lê Thanh Nghị
Hà Nội, ngày tháng năm 2012
GVHD:Ths.Nguyễn Thị Thanh Bình
Page 1
Nhóm 2-Khmt2-K5
GVHD:Ths.Nguyễn Thị Thanh Bình
Page 2
Nhóm 2-Khmt2-K5
MỤC LỤC Lời mở đầu................................................................4 A. PHÂN TÍCH THIẾT KẾ HỆ THỐNG QUẢN LÝ KHÁCH SẠN BA SAO ....................................5 I. CƠ CẤU TỔ CHỨC CỦA HỆ THỐNG KHÁCH SẠN BA SAO NỮ HOÀNG.......5 1. Giới thiệu về cơ cấu tổ chức của khách sạn Nữ Hoàng.......................................5 3. Những câu hỏi phỏng vấn các đối tượng.................................................................8 II. HOẠT ĐỘNG CỦA KHÁCH SẠN NỮ HOÀNG...................................................10 III. MÔ HÌNH PHẤN RÃ CHỨC NĂNG.....................................................................12 IV. MÔ TẢ CHỨC NĂNG LÁ.....................................................................................13 V. MÔ HÌNH DỮ LIỆU MỨC KHUNG CẢNH..........................................................16 VI. MÔ HÌNH DỮ LIỆU MỨC ĐỈNH............................................. ĐỈNH...................................................... ................. ................ ..........17 ..17 VII. MÔ HÌNH DỮ LIỆU MỨC MỨC DƯỚI ĐỈNH................................................. ĐỈNH......................................................... ...........18 ...18 VIII. MÔ HÌNH LIÊN KẾT THỰC THỂ.....................................................................22
B. THIẾT KẾ CÀI ĐẶT PHẦN MỀM QUẢN LÝ KHÁCH SẠN BA SAO. ........................................28 I. Xác định chức năng và yêu cầu của phần mềm.........................................................28 mềm........................................................ .28 II. Chi tiết về giao diện và các chức năng của phần mềm quản lý.................................28
GVHD:Ths.Nguyễn Thị Thanh Bình
Page 3
Nhóm 2-Khmt2-K5
Lời mở đầu Trong thời đại công nghiệp hóa hiện đại hóa, ngành công nghệ thông tin đã có những bước tiến vượt bậc. Máy tính đã trở thành công cụ hỗ trợ rất hiệu quả, ứng dụng của nó chiếm phần lớn trong các lĩnh vực như kinh doanh, quản lý hay nghiên cứu khoa học. Máy tính giúp con người xây dựng nên các chương trình quản lý ứng dụng xây dựng dựa trên các công công cụ ngôn ngữ lập trình. Khi xây dựng một chương trình quản lý hay phần mềm ứng dụng thì bước đầu tiên vô cùng quan trọng đó là khâu phân tích và thiết kế hệ thống nó có ý nghĩa quyết định đối với sự thành công của hệ thống phần phần mềm, bước tiếp theo không thể thiếu thiếu là xây dựng và cài đặt phần mềm dựa trên ngôn ngữ lập trình phù hợp. Trong học kỳ này, thật may mắn chúng em đã học và nghiên các bước của quá trình phân tích và thiết kế hệ hệ thống, hơn nữa làm quen với ngôn ngữ lập trình trình hướng đối tượng. Chúng em đã nhận thức được ý nghĩa của việc phân tích thiết kế hệ thống khi xây dựng hệ thống và những vượt trội của ngôn ngữ lập trình hướng đối tượng so với những ngôn ngữ lập trình khác. Dựa trên những kiến thức cơ bản và sự dạy dỗ , chỉ bảo tận tình của cô Nguyễn Thị Thanh Bình chúng em đã thiết kế và cài đặt được phần mềm quản lý khách sạn vì là sản phẩm đầu tay nên trong quá trình xây dựng và thiết kế phần mềm chương trình của chúng em còn rất nhiều thiếu xót. Chúng em rất mong nhận được sự đánh giá và ý kiến đóng góp của thầy cô để chúng em có thể hoàn thành tốt hơn những sản phẩm tiếp theo. Cuối cùng em xin gửi lời lời cảm ơn chân thành nhất tới cô đã giúp đỡ chúng chúng em hoàn thành tốt bài tập lớn vừa qua. Em xin chân thành cảm ơn!
GVHD:Ths.Nguyễn Thị Thanh Bình
Page 4
Nhóm 2-Khmt2-K5
A. PHÂN TÍCH THIẾT KẾ HỆ THỐNG QUẢN LÝ KHÁCH SẠN BA SAO
I. CƠ CẤU TỔ CHỨC CỦA HỆ THỐNG KHÁCH SẠN BA SAO NỮ HOÀNG 1. Giới thiệu về cơ cấu tổ chức của khách sạn Nữ Hoàng Khách sạn Nữ Hoàng được đánh giá là khách sạn 3 sao. Hiện tại khách sạn có hơn 100 phòng cho thuê. Khách sạn phục vụ cả khách trong nước và khách nước ngoài. Khách sạn có nhiều loại dịch vụ (ẩm thực, vui chơi giải trí…) đem lại sự tươi mới khi khách hàng đến với khách sạn. Sự hài lòng của khách hàng là quan tâm hàng đầu của khách sạn. Vì vậy công tác quản lý là một trong những vấn đề rất quan trọng, đòi hỏi phải có những mô hình quản lý hợp lý và linh hoạt. ♦ Khảo sát hệ thống khách khách sạn 3 sao nhằm nhằm mục đích tìm hiểu các nội dung sau: + Cơ cấu tổ chức của hệ thống khách sạn. ♦ Nguồn dữ liệu: + Tham khảo thông tin từ nguồn internet, sách , báo… + Đi khảo sát trực tiếp tại khách sạn thông qua phỏng vấn một số người có nghiệp vụ liên quan đến quy trình quản lý trong khách sạn.
Sau khi tìm hiểu hệ thống của khách sạn 3 sao Nữ Hoàng có cơ cấu như sau:
GVHD:Ths.Nguyễn Thị Thanh Bình
Page 5
Nhóm 2-Khmt2-K5
Gồm các phòng ban sau: 1. 2. 3. 4. 5. 6. 7. 8. 9. Sơ
Phòng giám đốc Phòng phó giám đốc Trưởng phòng tài chính nhân sự Trưởng phòng kinh doanh Kế toán trưởng Trưởng bộ phận tiếp tân Trưởng bộ phận phục vụ Trưởng bếp Trưởng bộ phận quầy bar
đồ cụ thể của các phòng ban như sau:
GIÁM ĐỐC
PHÓ GIÁM ĐỐC
Trưởng phòng tài chính nhân sự
Trưởng bộ phận tiếp tân
NV lễ tân
Trưởng phòng kinh doanh
Trưởng bộ phận phục vụ
NV phục vụ
GVHD:Ths.Nguyễn Thị Thanh Bình
Kế toán trưởng
Trưởng bếp
Trưởng bộ phần quầy bar
NV bếp
NV trực quầy
Bảo vệ
Page 6
Nhóm 2-Khmt2-K5
2. Nhiệm vụ của từng bộ phận trong cơ cấu của khách sạn. . Giám đốc Khách sạn Có nhiệm vụ quản lý trực tiếp khách sạn, mọi vấn đề của khách sạn đều phải thông qua giám đốc và giám đốc có quyền quyết định tất cả mọi thông tin xử lý trong khách sạn. . Bộ phận tiếp tân Có nhiệm vụ hoàn thành công việc đăng ký, giao phòng cho khách và nhận lại phòng, lập phiếu, hóa đơn thanh toán và thu tiền của khách, nhận những yêu cầu của khách, giới thiệu và giải đáp những thắc mắc của khách. . Bộ phận bảo vệ Bảo vệ có nhiệm vụ giữ xe, khuân hành lý và giữ gìn an ninh trật tự trong khách sạn. Theo dõi các thiết bị của khách sạn và chịu trách nhiệm về hệ thống ánh sáng. . Bộ phận phục vụ Kiểm tra và dọn vệ sinh phòng. Phục vụ ăn, uống, giặt ủi đưa đón khách bằng xe của khách sạn khi khách có yêu cầu. . Bộ phận quầy ba Quản lý hoạt động vui chơi giải trí, các câu lạc bộ. . Bộ phận bếp Chịu trách nhiệm về hoạt động nấu ăn trong khách sạn. . Kế toán trưởng GVHD:Ths.Nguyễn Thị Thanh Bình
Page 7
Nhóm 2-Khmt2-K5
Quản lý sổ sách, thống kê dữ liệu, nhận quyết định từ bên giám đốc, phó giám đốc.
. Trưởng phòng kinh doanh Quản lý hoạt động kinh doanh cho khách sạn, đưa ra những phương án , kế khoạch kinh doanh cho khách sạn. . Trưởng phòng tài chính nhân sự Quản lý về tài chính, nhân sự trong khách sạn 3. Những câu hỏi phỏng vấn các đối tượng. .Phòng giám đốc hoặc phó giám đốc: 1. Anh (chị ) cho biết nếu như khách hàng không có khả năng thanh toán thì khách sạn có những biện pháp nào? 2. Anh (chị) cho biết khách sạn Nữ Hoàng có những tiêu chuẩn nào đạt khách sạn mang tầm cỡ quốc tế hay không? 3. Anh (chị) cho biết có sự khác biệt giữa khách trong nước và khách ngoại quốc hay không? .Phòng tài chính nhân sự: 4. Anh (chị ) cho biết tiêu chuẩn tuyển nhân viên của khách sạn Nữ Hoàng? 5. Anh (chị) cho biết nguồn vốn của khách sạn lấy từ đâu? 6. Anh (chị) cho biết cách sử lý khi nhân viên khách sạn phạm lỗi? .Bộ phận kinh doanh: 7. Anh (chị) cho biết kế hoạch sắp tới của khách sạn là gì?
GVHD:Ths.Nguyễn Thị Thanh Bình
Page 8
Nhóm 2-Khmt2-K5
8. Anh (chị) cho biết dự án nào thành công nhất gần đây của phòng kinh doanh đem lại cho khách sạn. 9. Anh (chị) cho biết để lập ra kế hoạch kinh doanh mới cần những điều kiện gì? .Phòng kế toán: 10. Việc quản lý nguồn thu chi trong khách sạn diễn ra như thế nào? Có những thuận lợi và khó khăn gì? 11. Hàng tháng khách sạn thường tri tiêu vào những khoản nào nhiều nhất? .Bộ phận tiếp tân: 12.Những khó khăn khi gặp phải với khách hàng thường là gì và phải giải quyết như thế nào? 13. Phòng tiếp tân làm nhiệm vụ gì trong khách sạn? 14. Trang phục của nhân viên tiếp tân trong khách sạn như thế nào? 15. Biểu hiện của nhân viên tiếp tân đối khách hàng phải như thế nào? Bộ phận phục vụ: 16.Công việc của bộ phận phục vụ là gì? 17. Những khó khăn hay mắc phải trong công việc là gì? .Bộ phận bếp: 18.Thực phẩm của khách sạn được nhập từ đâu? 19. Thực đơn của khách sạn có phong cách gì khác biệt hay không? 20. Điều kiện để trở thành đầu bếp trong khách sạn? .Bộ phận quầy ba: 21. Bộ phận quầy ba thường làm những việc gì? GVHD:Ths.Nguyễn Thị Thanh Bình
Page 9
Nhóm 2-Khmt2-K5
22. Lượng khách hàng tối đa trong ngày là bao nhiêu? 23. Điều kiện của nhân viên quầy ba là gì?
Bộ phận bảo vệ: 24.Bộ phận bảo vệ phải quản lý ở những khu vực nào? 25. Điều kiện của nhân viên bảo vệ là gì? 26. Những thuận lợi và khó khăn khi trong công việc là gì?
II. HOẠT ĐỘNG CỦA KHÁCH SẠN NỮ HOÀNG Quản lý thuê, trả phòng : Khi khách hàng đến thuê đặt phòng, bộ phận quản lý sẽ kiểm tra thông tin khách hàng sau khi kiểm tra thông tin khách hàng thì kiểm tra yêu cầu khách hàng. Nếu yêu cầu khách hàng không đáp ứng thì đưa ra thông báo từ chối, nếu đáp ứng thì lập phiếu thuê cho khách hàng. Thông tin trên phiếu thuê gồm có: số phiếu thuê, ngày lập, mã khách hàng, tên khách hàng, số chứng minh thư nhân dân, địa chỉ khách hàng, đối với những khách nước ngoài yêu cầu số hộ chiếu, số tiền đặt trước, mã nhân viên, họ tên nhân viên, yêu cầu. Phiếu thuê được lập làm hai bản, một bản cho khách hàng, một bản lưu lại. Khách hàng có thể thuê nhiều lần khi có nhu cầu và có thể thuê nhiều phòng, mỗi lần thuê sẽ có một phiếu thuê được lập. Khi khách hàng trả phòng hóa đơn thanh toán sẽ được lập cho khách hàng. Thông tin hóa đơn gồm: số hóa đơn, số phiếu sử dụng dịch vụ, mã khách hàng, tên khách hàng, mã nhân viên, tên nhân viên, tên khách hàng, số chứng minh thư nhân dân, số hộ chiếu đối với khách nước ngoài, tổng tiền dịch vụ, tổng tiền thuê phòng, tổng tiền thanh toán, ghi chú. Hóa đơn được lập làm hai bản, một bản giao cho khách hàng một bản giữ lại. Quản lý dịch vụ: Khách hàng sử dụng dịch vụ thì sẽ lập phiếu sử dụng dịch vụ, sẽ lập hai phiếu một đưa cho khách hàng và một khách sạn giữ .Phiếu sử dụng dịch vụ bao gồm các thông tin: số phiếu sử dụng dịch vụ, ngày lập, mã khách GVHD:Ths.Nguyễn Thị Thanh Bình
Page 10
Nhóm 2-Khmt2-K5
hàng, họ tên khách hàng, số chứng minh thư nhân dân, số hộ chiếu, thông tin về dịch vụ{ mã dịch vụ, tên dịch vụ, ngày sử dụng, thời lượng sử dụng}, tổng tiền, ghi chú. Mỗi phiếu thuê có thể có nhiều phiếu sử dụng dịch vụ. Ngoài ra còn phải thêm dịch vụ nếu là dịch vụ mới, xóa dịch vụ nếu dịch vụ không còn và sửa chữa dịch vụ cho phù hợp với yêu cầu khách hàng. Quản lý khách hàng : Khi khách hàng thuê đến thuê phòng ở khách sạn, bộ phận quản lý khách hàng sẽ nhập và lưu trữ thông tin về khách hàng. Khi cần thiết có thể sửa chữa và xóa thông tin khách hàng. Thông tin khách hàng gồm: mã khách hàng, tên khách hàng, số chứng minh thư nhân dân, số hộ chiếu nếu là người nước ngoài, quốc tịch, địa chỉ, điện thoại. Khi khách hàng trả phòng thì thông tin này vẫn được lưu lại hệ thống sau một thời gian quy định sẽ khách sạn sẽ reset lại thông tin khách hàng sẽ bị xóa. Quản lý nhân viên: Để theo dõi và quản lý nhân viên làm việc, khách sạn thực hiện thêm mới vào danh sách khi có nhân viên mới được tuyển, sửa đổi thông tin khi có những biến đổi xảy ra và xóa bỏ nhân viên khi không còn phục vụ cho công ty như hết hạn hợp đồng hay bị sa thải. Các thông tin về nhân viên bao gồm: mã nhân viên, tên nhân viên, đĩa chỉ, số điện thoại, các mô tả khác. Quản lý phòng : Nhập mới thông tin phòng, sửa chữa thông tin phòng, xóa bỏ thông tin phòng. Thông tin về phòng do ban quản lý cung cấp gồm các thông tin: Số phòng, loại phòng, diện tích, tình trạng phòng, đơn giá phòng. Có thể tìm kiếm thông tin phòng khi cần. Quản lý tiện nghi : Khi có tiện nghi mới thì thực hiện thêm mới tiện nghi. Nếu một tiện nghi không còn sử dụng nữa thì xóa thông tin tiện nghi đó đi. Thông tin tiện nghi cũng có thể được sửa chữa. Thông tin tiện nghi bao gồm: mã tiện nghi, tên tiện nghi, tình trạng tiện nghi, số lượng hiện có. Thống kê: Để tiện theo dõi việc kinh doanh của khách sạn, hàng tháng bộ phận báo cáo thống kê lấy thông tin từ các bộ phận khác và có nhiệm vụ thống kê khách GVHD:Ths.Nguyễn Thị Thanh Bình
Page 11
Nhóm 2-Khmt2-K5
hàng thuê, thống kê tình trạng phòng, thống kê loại phòng được thuê nhiều, thống kê doanh thu đưa lên ban quản lý để có phương hướng phát triển sau.
III. MÔ HÌNH PHẤN RÃ CHỨC NĂNG
GVHD:Ths.Nguyễn Thị Thanh Bình
Page 12
Nhóm 2-Khmt2-K5
IV. MÔ TẢ CHỨC NĂNG LÁ . Quản lý thuê, trả phòng : 1. Kiểm tra thông tin khách hàng: kiểm tra xem thông tin về khách hàng có đầy đủ theo yêu cầu không, nếu không đầy đủ thông tin yêu cầu không thể cho thuê còn nếu đầy đủ thì kiểm tra yêu cầu khách hàng. 2. Kiểm tra yêu cầu khách hàng: kiểm tra những yêu cầu mà khách hàng đưa ra về phòng, dịch vụ… nếu đáp ứng yêu cầu thì lập phiếu thuê cho khách hàng, nếu không đáp ứng thì đưa ra thông báo từ chối cho khách hàng. 3. Lập phiếu thuê: sau khi kiểm tra thông tin khách hàng thì lập phiếu thuê, thông tin trong phiếu thuê lấy từ thông tin khách hàng cung cấp. Phiếu thuê sẽ được lập hai bản cho khách hàng và khách sạn. 4. Lập hóa đơn thanh toán: Khi khách hàng trả phòng, khách sạn sẽ lạp hóa đơn thanh toán. Trong hóa đơn ghi đầy đủ các thông tin về phòng, dịch vụ đã sử dụng của khách hàng và tổng tiền phòng, tổng tiền dịch vụ, tiền đặt và tổng tiền thanh toán. Hóa đơn sẽ được lập thành hai bản cho khách hàng và khách sạn. 5. Ghi nhận trả phòng: Khi khách hàng đã trả phòng, các thủ tục lập hóa đơn thanh toán xong khách sạn ghi nhận việc trả phòng của khách hàng. . Quản lý khách hàng: 1. Thêm mới thông tin khách hàng: Khi khách hàng đến thuê phòng, bộ phận quản lý sẽ nhập thông tin khách hàng và lưu lại.
GVHD:Ths.Nguyễn Thị Thanh Bình
Page 13
Nhóm 2-Khmt2-K5
2. Sửa thông tin khách hàng: trong quá trình khách hàng lưu lại khách sạn nếu phát hiện sai xót thông tin khách hàng, bộ phận quản lý có thể sửa thông tin khách hàng cho đúng. 3. Xóa thông tin khách hàng:Khi khách hàng không còn thuê phòng ở khách sạn trong thời gian quy định của khách sạn sẽ xóa bỏ thông tin khách hàng. .Quản lý phòng: 1. Nhập thông tin phòng mới: Khi khách sạn có thêm phòng mới vào danh sách phòng thì bộ phận quản lý thực hiện nhập tin phòng mới và lưu trữ lại để tiện quản lý 2. Xóa thông tin phòng: Khi phòng không còn phục vụ nữa hoạc khách sạn không muốn sử dụng cho thuê nữa thì có thể xóa thông tin phòng khỏi danh sách. 3. Sửa đổi thông tin phòng: Thông tin phòng bị sai xót hay có thay đổi thì có thể sửa chữa cho chính sác. 4. Tìm kiếm thông tin phòng: Khi khách hàng đến thuê phòng cần tìm kiếm ta những phòng nào trống, phòng nào đã thuê. Tìm kiếm để đưa ra thông tin phòng cho khách hàng tìm hiểu. .Quản lý dịch vụ: 1. Thêm mới dịch vụ: Khi khách sạn cần thêm dịch vụ mới vào khách sạn thì thực hiện thêm mới dịch vụ bao gồm nhập các thông tin dịch vụ mới vào danh sách. 2. Sửa thông tin dịch vụ: Khi có thay đổi về thông tin dịch vụ hay có sai xót thì có thể sửa chữa lại thông tin cho chính xác. 3. Xóa dịch vụ: Khi dịch vụ không còn cung cấp trong khách sạn nữa thì xóa bỏ khỏi danh sách.
GVHD:Ths.Nguyễn Thị Thanh Bình
Page 14
Nhóm 2-Khmt2-K5
4. Lập phiếu sử dụng dịch vụ: Khi khách hàng thuê phòng ở khách sạn có sử dụng dịch vụ của khách sạn thì lập phiếu sử dụng dịch vụ cho khách hàng. .Quản lý nhân viên: 1. Thêm mới nhân viên: Khi nhân viên mới đến nhận việc tại khách sạn thì nhập mới thông tin vào danh sách. 2. Sửa đổi thông tin nhân viên: Khi thông tin nhân viên thay đổi thì sửa đổi lại thông tin. 3. Xóa thông tin nhân viên: Khi nhân viên không còn làm việc cho khách sạn nữa thì xóa bỏ thông tin nhân viên. .Quản lý tiện nghi: 1. Thêm mới tiện nghi: Khi khách sạn nhập thêm tiện nghi mới thì thực hiện thêm mới thông tin tiện nghi vào danh sách. 2. Sửa đổi thông tin tiện nghi: Nếu thông tin tiện nghi thay đổi hoặc có sai xót thì thực hiện sửa đổi lại. 3. Xóa thông tin tiện nghi: Khi tiện nghi bị hỏng hay không còn sử dụng nữa thì thực hiện xóa bỏ thông tin tiện nghi trong danh sách. .Thống kê: Mỗi tháng khách sạn sẽ thống kê lượng khách hàng, loại phòng được thuê nhiểu, thống kê doanh thu, thống kê tình trạng phòng. Những thông tin này lấy từ thông tin quản lý khách sạn trong tháng, thông tin phải chính xác sau đó báo cáo lên giám đốc để có những kế hoạch điều chỉnh.
GVHD:Ths.Nguyễn Thị Thanh Bình
Page 15
Nhóm 2-Khmt2-K5
V. MÔ HÌNH DỮ LIỆU MỨC KHUNG CẢNH
GVHD:Ths.Nguyễn Thị Thanh Bình
Page 16
Nhóm 2-Khmt2-K5
VI. MÔ HÌNH DỮ LIỆU MỨC ĐỈNH
GVHD:Ths.Nguyễn Thị Thanh Bình
Page 17
Nhóm 2-Khmt2-K5
VII. MÔ HÌNH DỮ LIỆU MỨC DƯỚI ĐỈNH 1. Quản lý khách hàng
GVHD:Ths.Nguyễn Thị Thanh Bình
Page 18
Nhóm 2-Khmt2-K5
2. Quản lý phòng
3. Quản lý dịch vụ
GVHD:Ths.Nguyễn Thị Thanh Bình
Page 19
Nhóm 2-Khmt2-K5
4. Quản lý nhân viên
5. Quản lý tiện nghi GVHD:Ths.Nguyễn Thị Thanh Bình
Page 20
Nhóm 2-Khmt2-K5
6. Quản lý cho thuê phòng
7. Thống kê
GVHD:Ths.Nguyễn Thị Thanh Bình
Page 21
Nhóm 2-Khmt2-K5
VIII. MÔ HÌNH LIÊN KẾT THỰC THỂ 1. Mô hình liên kết thực thể của hệ thống.
GVHD:Ths.Nguyễn Thị Thanh Bình
Page 22
Nhóm 2-Khmt2-K5
2. Chuyển mô hình thực thể liên kết thành các bản ghi logic. KHÁCH HÀNG (maKH, tenKH, diaChiKH, soCMTND, dienThoaiKH, quocTich, hoChieu). GVHD:Ths.Nguyễn Thị Thanh Bình
Page 23
Nhóm 2-Khmt2-K5
NHÂN VIÊN (maNV, tenNV, diaChiNV, dienThoaiNV). PHÒNG (soPhong, loaiPhong, dienTich, donGia, tinhTrangPhong) PHÒNG THUÊ (soPhong, SHTP, ngayDen, ngayDi) DỊCH VỤ (maDV, tenDV, donGiaDV) DỊCH VỤ SỬ DUNG (soPhieuSDDV, maDV, soLuongDVSD, thoigianSDDV) TIỆN NGHI (maTienNghi, loaiPhong, tinhTrangTienNghi, tenTienNghi, SLHienCo) PHIẾU THUÊ (SHPT, soPhieuSDDV, ngayLap, maNV, maKH, tienDatTruoc) HÓA ĐƠN (maHoaDon, maKH, maNV, SHPT, ngayThanhToan) PHIẾU SDDV (soPhieuSDDV, maNV, ngayLapPhieu)
3. Thiết kế CSDL vật lý. 1. Lập từ điển dữ liệu. 1.1 Bảng khách hàng
1.2 Bảng nhân viên
GVHD:Ths.Nguyễn Thị Thanh Bình
Page 24
Nhóm 2-Khmt2-K5
1.3 Bảng phòng
1.4 Bảng phòng thuê
1.5 Bảng dịch vụ
1.6 Bảng dịch vụ sử dụng
1.7 Bảng phiếu sử dụng dịch vụ GVHD:Ths.Nguyễn Thị Thanh Bình
Page 25
Nhóm 2-Khmt2-K5
1.8 Bảng phiếu thuê
1.9 Bảng hóa đơn
1.10 Bảng tiện nghi
1.11 Bảng tiện nghi phòng GVHD:Ths.Nguyễn Thị Thanh Bình
Page 26
Nhóm 2-Khmt2-K5
4. Database Diagrams
GVHD:Ths.Nguyễn Thị Thanh Bình
Page 27
Nhóm 2-Khmt2-K5
B. THIẾT KẾ CÀI ĐẶT PHẦN MỀM QUẢN LÝ KHÁCH SẠN BA SAO. I. Xác định chức năng và yêu cầu của phần mềm Chương trình quản lý khách sạn dựa trên CSDL của quá trình phân tích thiết kế hệ thống hoạt động của khách sạn. Phần mềm quản lý khách sạn theo hướng chức năng. Chức năng cơ bản của hệ thống quản lý bao gồm:
1. Xây dựng chức năng đăng nhập đảm bảo tính an toàn cho hệ thống. 2. Chức năng quản lý khách hàng, thuê phòng, thanh toán chính xác. 3. Chức năng Thêm, Sửa, Xóa, Tìm Kiếm các thông tin cho hoạt động của
khách sạn.
Ngoài ra, hệ thống còn bổ sung một số chức năng như: trợ giúp, lịch, hình ảnh khách sạn làm phong phú hơn cho phần mềm quản lý.
II. Chi tiết về giao diện và các chức năng của phần mềm quản lý. 1. Xây dựng lớp kết nối : package DAL; import java.sql.*; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JOptionPane; public class ketnoi { public static Connection kn()
GVHD:Ths.Nguyễn Thị Thanh Bình
Page 28
Nhóm 2-Khmt2-K5 { Connection con=null; try { String uname="sa"; String pass="123456789"; String url="jdbc:sqlserver://localhost:1433;databasename=qlkhachsanchuan;"; Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); con = DriverManager.getConnection(url, uname, pass); System.out.println("Kết nối thành công"); } catch(Exception e) { System.out.println("Lỗi kết nối"); } return con; } public static ResultSet taobang(String sql) { ResultSet rs=null; Connection con=ketnoi.kn(); try { PreparedStatement prb=con.prepareStatement(sql); rs=prb.executeQuery(); } catch(Exception e) { JOptionPane.showMessageDialog(null,"Lỗi truy vẫn dữ liệu"); }
return rs; } public static void thuchienlenh(String sql) {
GVHD:Ths.Nguyễn Thị Thanh Bình
Page 29
Nhóm 2-Khmt2-K5 Connection con=ketnoi.kn(); try { Statement a = con.createStatement(); a.executeUpdate(sql); } catch(Exception e) { JOptionPane.showMessageDialog(null,"Lỗi thực hiện lệnh"); } } }
2. Xây dựng lớp cơ sở dữ liệu: Nhân viên: package DTO; public class nhanvien { private String maNV,tenNV,diaChiNV,dienThoaiNV; public nhanvien() { } public nhanvien(String maNV) { this.maNV = maNV; } public nhanvien(String maNV, String tenNV, String diaChiNV, String dienThoaiNV) { this.maNV = maNV; this.tenNV = tenNV; this.diaChiNV = diaChiNV; this.dienThoaiNV = dienThoaiNV; } public String getMaNV() { return maNV; } public void setMaNV(String maNV) { this.maNV = maNV;
GVHD:Ths.Nguyễn Thị Thanh Bình
Page 30
Nhóm 2-Khmt2-K5 } public String getTenNV() { return tenNV; } public void setTenNV(String tenNV) { this.tenNV = tenNV; } public String getDiaChiNV() { return diaChiNV; } public void setDiaChiNV(String diaChiNV) { this.diaChiNV = diaChiNV; } public String getDienThoaiNV() { return dienThoaiNV; } public void setDienThoaiNV(String dienThoaiNV) { this.dienThoaiNV = dienThoaiNV; } }
Khách hàng: package DTO; public class khachhang { private String maKH,tenKH,cMTND,diaChiKH,dienThoaiKH,quocTich,hoChieu; public khachhang() { } public khachhang(String maKH) { this.maKH = maKH; } public khachhang(String maKH, String tenKH, String cMTND, String diaChiKH, String dienThoaiKH, String quocTich, String hoChieu) { this.maKH = maKH; this.tenKH = tenKH; this.cMTND = cMTND; this.diaChiKH = diaChiKH; this.dienThoaiKH = dienThoaiKH; this.quocTich = quocTich; this.hoChieu = hoChieu; }
GVHD:Ths.Nguyễn Thị Thanh Bình
Page 31
Nhóm 2-Khmt2-K5 public String getMaKH() { return maKH; } /** * @param maKH the maKH to set */ public void setMaKH(String maKH) { this.maKH = maKH; } public String getTenKH() { return tenKH; } /** * @param tenKH the tenKH to set */ public void setTenKH(String tenKH) { this.tenKH = tenKH; } public String getcMTND() { return cMTND; } /** * @param cMTND the cMTND to set */ public void setcMTND(String cMTND) { this.cMTND = cMTND; } public String getDiaChiKH() { return diaChiKH; } /** * @param diaChiKH the diaChiKH to set */ public void setDiaChiKH(String diaChiKH) {
GVHD:Ths.Nguyễn Thị Thanh Bình
Page 32
Nhóm 2-Khmt2-K5 this.diaChiKH = diaChiKH; } public String getDienThoaiKH() { return dienThoaiKH; }/** * @param dienThoaiKH the dienThoaiKH to set */ public void setDienThoaiKH(String dienThoaiKH) { this.dienThoaiKH = dienThoaiKH; } public String getQuocTich() { return quocTich; } /** * @param quocTich the quocTich to set */ public void setQuocTich(String quocTich) { this.quocTich = quocTich; } public String getHoChieu() { return hoChieu; } /** * @param hoChieu the hoChieu to set */ public void setHoChieu(String hoChieu) { this.hoChieu = hoChieu; } }
3. Xây dựng lớp câu lệnh(BLL): package BLL; import DAL.ketnoi; import DTO.khachhang; import DTO.phongthue; import DTO.phieuthue;
GVHD:Ths.Nguyễn Thị Thanh Bình
Page 33
Nhóm 2-Khmt2-K5 import DTO.phong; import DTO.tiennghi; import DTO.nhanvien; import DTO.tiennghiphong; import DTO.dichvu; import DTO.phieusudungdv; import DTO.dichvusudung; import DTO.hoadon; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Vector; import javax.swing.JOptionPane; public class BLL { //them khach hang Vector loaiPhong=new Vector(); public static void themkhachhang(khachhang kh) { String sql="insert into KhachHang values(N'"+kh.getMaKH()+"',N'"+kh.getTenKH() +"',N'"+kh.getcMTND()+"',N'"+kh.getDiaChiKH()+"',N'"+kh.getDienThoaiKH()+"',N'"+kh.getQuocTich() +"',N'"+kh.getHoChieu()+"')"; System.out.println(sql); ketnoi.thuchienlenh(sql); } //Sửa thông tin khach hang public static void suathongtinkhachhang(khachhang kh) { String sql="update KhachHang set tenKH=N'"+kh.getTenKH()+"',cMTND=N'"+kh.getcMTND() +"',diaChiKH=N'"+kh.getDiaChiKH()+"',dienThoaiKH=N'"+kh.getDienThoaiKH() +"',quocTich=N'"+kh.getQuocTich()+"',hoChieu=N'"+kh.getHoChieu()+"' where maKH=N'"+kh.getMaKH()+"'"; System.out.println(sql); ketnoi.thuchienlenh(sql); } //Xóa nhân viên public static void xoakhachhang(khachhang kh) { String sql="delete from KhachHang where maKH=N'"+kh.getMaKH()+"'"; ketnoi.thuchienlenh(sql);
GVHD:Ths.Nguyễn Thị Thanh Bình
Page 34
Nhóm 2-Khmt2-K5 } //Hiển thị danh sách nhan vien public static ResultSet DSkhachhang() { String sql="select * from KhachHang"; return ketnoi.taobang(sql); } //tim kiem khach hang public ResultSet Timkiemkhachhangtheoma(khachhang kh){ String sql="select * from KhachHang where maKH LIKE '%" + kh.getMaKH() + "%'"; System.out.println(sql); return ketnoi.taobang(sql); } public ResultSet Timkiemkhachhangtheoten(khachhang kh){ String sql="select * from KhachHang where tenKH LIKE '%" + kh.getTenKH() + "%'"; System.out.println(sql); return ketnoi.taobang(sql); } //them phieu thue public static void themphieuthue(phieuthue pht) { String sql="insert into PhieuThue values(N'"+pht.getSHPT()+"',N'"+pht.getSoPhieuSDDV() +"',N'"+pht.getNgayLap()+"',N'"+pht.getMaNV()+"',N'"+pht.getMaKH()+"',N'"+pht.getTienDatTruoc() +"')"; System.out.println(sql); ketnoi.thuchienlenh(sql); } //Sửa thông tin phieu them public static void suaphieuthue(phieuthue pht) { String sql="update PhieuThue set soPhieuSDDV=N'"+pht.getSoPhieuSDDV() +"',ngayLap=N'"+pht.getNgayLap()+"',maNV=N'"+pht.getMaNV()+"',maKH=N'"+pht.getMaKH() +"',tienDatTruoc=N'"+pht.getTienDatTruoc()+"' where SHPT=N'"+pht.getSHPT()+"'"; System.out.println(sql); ketnoi.thuchienlenh(sql); } //Xóa sphieu them public static void xoaphieuthue(phieuthue pht)
GVHD:Ths.Nguyễn Thị Thanh Bình
Page 35
Nhóm 2-Khmt2-K5 { String sql="delete from Phieuthue where SHPT=N'"+pht.getSHPT()+"'"; ketnoi.thuchienlenh(sql); } //Hiển thị danh sách phieu them public static ResultSet DSphieuthue() { String sql="select * from PhieuThue"; return ketnoi.taobang(sql); } //them phong public static void themphong(phong p) { String sql="insert into Phong values(N'"+p.getSoPhong()+"',N'"+p.getLoaiPhong() +"',N'"+p.getDienTich()+"',N'"+p.getTinhTrangPhong()+"',N'"+p.getDonGia()+"')"; System.out.println(sql); ketnoi.thuchienlenh(sql); } //Sửa thông tin phong public static void suathongtinphong(phong p) { String sql="update Phong set loaiPhong=N'"+p.getLoaiPhong()+"',dienTich=N'"+p.getDienTich() +"',tinhTrangPhong=N'"+p.getTinhTrangPhong()+"',donGia=N'"+p.getDonGia()+"' where soPhong=N'"+p.getSoPhong()+"'"; System.out.println(sql); ketnoi.thuchienlenh(sql); } //Xóa phong public static void xoaphong(phong p) { String sql="delete from Phong where soPhong=N'"+p.getSoPhong()+"'"; ketnoi.thuchienlenh(sql); } //Hiển thị danh sách nhan vien public static ResultSet DSphong() { String sql="select * from Phong"; return ketnoi.taobang(sql);
GVHD:Ths.Nguyễn Thị Thanh Bình
Page 36
Nhóm 2-Khmt2-K5 } //tim kiem phong public Vector Comboloaiphong() throws SQLException { //String sql = "select * from phong where TenNV like N'%" + ph.getLoaiphong() + "%'"; String sql="select * from Phong"; ResultSet rs= ketnoi.taobang(sql); while(rs.next()){ String strloaiphong=""+rs.getString("loaiPhong"); loaiPhong.addElement(strloaiphong); } return loaiPhong; } public ResultSet Timkiemphongtheoloaiphong1(phong p){ String sql="select * from Phong where loaiPhong ='" + p.getLoaiPhong() + "'"; System.out.println(sql); return ketnoi.taobang(sql); } //tìm kiếm theo so phong public ResultSet Timkiemphongtheosophong(phong p){ String sql="select * from Phong where soPhong LIKE N'%" + p.getSoPhong() + "%'"; System.out.println(sql); return ketnoi.taobang(sql); } //tìm kiếm theo loaiphong public ResultSet Timkiemphongtheoloaiphong(phong p){ String sql="select * from Phong where loaiPhong LIKE N'%" + p.getLoaiPhong() + "%'"; System.out.println(sql); return ketnoi.taobang(sql); } //tìm kiếm theo dien tich public ResultSet Timkiemphongtheodientich(phong p){ String sql="select * from Phong where dienTich = '" + p.getDienTich() + "'"; System.out.println(sql); return ketnoi.taobang(sql); } //tìm kiếm theo gia phong
GVHD:Ths.Nguyễn Thị Thanh Bình
Page 37
Nhóm 2-Khmt2-K5 public ResultSet Timkiemphongtheotinhtrang(phong p){ String sql="select * from Phong where tinhTrangPhong LIKE N'" + p.getTinhTrangPhong() + "'"; System.out.println(sql); return ketnoi.taobang(sql); } //tìm kiếm theo gia phong public ResultSet Timkiemphongtheodongia(phong p){ String sql="select * from Phong where donGia = '" + p.getDonGia() + "'"; System.out.println(sql); return ketnoi.taobang(sql); } //them phong thue public static void themphongthue(phongthue pthue) { String sql="insert into PhongThue values(N'"+pthue.getSoPhong()+"',N'"+pthue.getSHPT() +"','"+pthue.getNgayDen()+"','"+pthue.getNgayDi()+"')"; System.out.println(sql); ketnoi.thuchienlenh(sql); } //Sửa thông tin phong thue public static void suathongtinphongthue(phongthue pthue) { String sql="update PhongThue set SHPT=N'"+pthue.getSHPT()+"',ngayDen='"+pthue.getNgayDen() +"',ngayDi='"+pthue.getNgayDi()+"' where soPhong=N'"+pthue.getSoPhong()+"'"; System.out.println(sql); ketnoi.thuchienlenh(sql); } //Xóa phong thue public static void xoaphongthue(phongthue pthue) { String sql="delete from PhongThue where soPhong=N'"+pthue.getSoPhong()+"'"; ketnoi.thuchienlenh(sql); } //Hiển thị danh sách phong thue public static ResultSet DSphongthue() { String sql="select * from PhongThue";
GVHD:Ths.Nguyễn Thị Thanh Bình
Page 38
Nhóm 2-Khmt2-K5 return ketnoi.taobang(sql); } //tim kiem phong thue public ResultSet Timkiemphongthuetheosophong(phongthue pt){ String sql="select * from PhongThue where soPhong LIKE N'%" + pt.getSoPhong() + "%'"; System.out.println(sql); return ketnoi.taobang(sql); } public ResultSet TimkiemphongthuetheoSHPT(phongthue pt){ String sql="select * from PhongThue where SHPT LIKE N'%" + pt.getSHPT() + "%'"; System.out.println(sql); return ketnoi.taobang(sql); } public ResultSet Timkiemphongthuetheongayden(phongthue pt){ String sql="select * from PhongThue where ngayDen = '" + pt.getNgayDen() + "'"; System.out.println(sql); return ketnoi.taobang(sql); } public ResultSet Timkiemphongthuetheongaydi(phongthue pt){ String sql="select * from PhongThue where ngayDi ='" + pt.getNgayDi() + "'"; System.out.println(sql); return ketnoi.taobang(sql); } //them tien nghi public static void themtiennghi(tiennghi tn) { String sql="insert into TienNghi values(N'"+tn.getMaTienNghi()+"',N'"+tn.getTenTienNghi() +"','"+tn.getTinhTrangTienNghi()+"','"+tn.getSLHienCo()+"')"; System.out.println(sql); ketnoi.thuchienlenh(sql); } //Sửa thông tin phong thue public static void suathongtintiennghi(tiennghi tn) { String sql="update TienNghi set tenTienNghi=N'"+tn.getTenTienNghi() +"',tinhTrangTienNghi='"+tn.getTinhTrangTienNghi()+"',SLHienCo='"+tn.getSLHienCo()+"' where maTienNghi=N'"+tn.getMaTienNghi()+"'"; System.out.println(sql);
GVHD:Ths.Nguyễn Thị Thanh Bình
Page 39
Nhóm 2-Khmt2-K5 ketnoi.thuchienlenh(sql); } //Xóa phong thue public static void xoatiennghi(tiennghi tn) { String sql="delete from TienNghi where maTienNghi=N'"+tn.getMaTienNghi()+"'"; ketnoi.thuchienlenh(sql); } //Hiển thị danh sách phong thue public static ResultSet DStiennghi() { String sql="select * from TienNghi"; return ketnoi.taobang(sql); } //tim kiem tien nghi public ResultSet Timkiemtiennghitheoma(tiennghi tn){ String sql="select * from TienNghi where maTienNghi LIKE N'%" + tn.getMaTienNghi() + "%'"; System.out.println(sql); return ketnoi.taobang(sql); } public ResultSet Timkiemtiennghitheoten(tiennghi tn){ String sql="select * from TienNghi where tenTienNghi LIKE N'%" + tn.getTenTienNghi() + "%'"; System.out.println(sql); return ketnoi.taobang(sql); } public ResultSet Timkiemtiennghitheotinhtrang(tiennghi tn){ String sql="select * from TienNghi where tinhTrangTienNghi LIKE N'%" + tn.getTinhTrangTienNghi() + "%'"; System.out.println(sql); return ketnoi.taobang(sql); } public ResultSet Timkiemtiennghitheomasoluongco(tiennghi tn){ String sql="select * from TienNghi where SLHienCo LIKE N'%" + tn.getSLHienCo() + "%'"; System.out.println(sql); return ketnoi.taobang(sql); } //them tien nghi phong
GVHD:Ths.Nguyễn Thị Thanh Bình
Page 40
Nhóm 2-Khmt2-K5 public static void themtiennghiphong(tiennghiphong tnp) { String sql="insert into TienNghiPhong values(N'"+tnp.getSoPhong()+"',N'"+tnp.getMaTienNghi() +"','"+tnp.getSLTienNghiTrenPhong()+"')"; System.out.println(sql); ketnoi.thuchienlenh(sql); } //Sửa thông tin phong thue public static void suathongtintiennghiphong(tiennghiphong tnp) { String sql="update TienNghiPhong set maTienNghi=N'"+tnp.getMaTienNghi() +"',SLTienNghiTrenPhong=N'"+tnp.getSLTienNghiTrenPhong()+"'where soPhong=N'"+tnp.getSoPhong() +"'"; System.out.println(sql); ketnoi.thuchienlenh(sql); } //Xóa phong thue public static void xoatiennghiphong(tiennghiphong tnp) { String sql="delete from TienNghi where soPhong=N'"+tnp.getSoPhong()+"'"; ketnoi.thuchienlenh(sql); } //Hiển thị danh sách phong thue public static ResultSet DStiennghiphong() { String sql="select * from TienNghiPhong"; return ketnoi.taobang(sql); } //them tien nghi phong public static void themnhanvien(nhanvien nv) { String sql="insert into NhanVien values(N'"+nv.getMaNV()+"',N'"+nv.getTenNV() +"',N'"+nv.getDiaChiNV()+"',N'"+nv.getDienThoaiNV()+"')"; System.out.println(sql); ketnoi.thuchienlenh(sql); } //Sửa thông tin phong thue public static void suathongtinnhanvien(nhanvien nv)
GVHD:Ths.Nguyễn Thị Thanh Bình
Page 41
Nhóm 2-Khmt2-K5 { String sql="update NhanVien set tenNV=N'"+nv.getTenNV()+"',diaChiNV=N'"+nv.getDiaChiNV() +"',dienThoaiNV=N'"+nv.getDienThoaiNV()+"'where maNV=N'"+nv.getMaNV()+"'"; System.out.println(sql); ketnoi.thuchienlenh(sql); } //Xóa phong thue public static void xoanhanvien(nhanvien nv) { String sql="delete from NhanVien where maNV=N'"+nv.getMaNV()+"'"; ketnoi.thuchienlenh(sql); } //tim kiem nhan vien public ResultSet Timkiemnhanvientheoma(nhanvien nv){ String sql="select * from NhanVien where maNV LIKE '%" + nv.getMaNV() + "%'"; System.out.println(sql); return ketnoi.taobang(sql); } public ResultSet Timkiemnhanvientheoten(nhanvien nv){ String sql="select * from NhanVien where tenNV LIKE N'%" + nv.getTenNV() + "%'"; System.out.println(sql); return ketnoi.taobang(sql); } public ResultSet Timkiemnhanvientheodiachi(nhanvien nv){ String sql="select * from NhanVien where diaChiNV LIKE N'%" + nv.getDiaChiNV() + "%'"; System.out.println(sql); return ketnoi.taobang(sql); } public ResultSet Timkiemnhanvientheosdt(nhanvien nv){ String sql="select * from NhanVien where dienThoaiNV = '" + nv.getDienThoaiNV() + "'"; System.out.println(sql); return ketnoi.taobang(sql); } //Hiển thị danh sách phong thue public static ResultSet DSnhanvien() { String sql="select * from NhanVien";
GVHD:Ths.Nguyễn Thị Thanh Bình
Page 42
Nhóm 2-Khmt2-K5 return ketnoi.taobang(sql); } public static void themdichvu(dichvu dv) { String sql="insert into DichVu values(N'"+dv.getMaDV()+"',N'"+dv.getTenDV() +"',N'"+dv.getDonGia()+"')"; System.out.println(sql); ketnoi.thuchienlenh(sql); } //Sửa thông tin phong thue public static void suathongtindichvu(dichvu dv) { String sql="update DichVu set tenDV=N'"+dv.getTenDV()+"',donGia=N'"+dv.getDonGia()+"'where maDV=N'"+dv.getMaDV()+"'"; System.out.println(sql); ketnoi.thuchienlenh(sql); } //Xóa phong thue public static void xoadichvu(dichvu dv) { String sql="delete from DichVu where maDV=N'"+dv.getMaDV()+"'"; ketnoi.thuchienlenh(sql); } //Hiển thị danh sách phong thue public static ResultSet DSdichvu() { String sql="select * from DichVu"; return ketnoi.taobang(sql); } //tim kiem dich vu public ResultSet Timkiemdichvutheoma(dichvu dv){ String sql="select * from DichVu where maDV LIKE N'%" + dv.getMaDV() + "%'"; System.out.println(sql); return ketnoi.taobang(sql); } public ResultSet Timkiemdichvutheoten(dichvu dv){ String sql="select * from DichVu where tenDV LIKE N'%" + dv.getTenDV() + "%'";
GVHD:Ths.Nguyễn Thị Thanh Bình
Page 43
Nhóm 2-Khmt2-K5 System.out.println(sql); return ketnoi.taobang(sql); } public ResultSet Timkiemdichvutheodongia(dichvu dv){ String sql="select * from DichVu where donGia = '" + dv.getDonGia() + "'"; System.out.println(sql); return ketnoi.taobang(sql); } public static void themsudungdichvu(dichvusudung dvsd) { String sql="insert into DichVuSuDung values(N'"+dvsd.getSoPhieuSDDV()+"',N'"+dvsd.getMaDV() +"','"+dvsd.getSoLuongDVSD()+"',N'"+dvsd.getThoiGianSDDV()+"')"; System.out.println(sql); ketnoi.thuchienlenh(sql); } //Sửa thông tin phong thue public static void suathongtindichvusudung(dichvusudung dvsd) { String sql="update DichVuSuDung set maDV=N'"+dvsd.getMaDV() +"',soLuongDVSD='"+dvsd.getSoLuongDVSD()+"',thoiGianSDDV=N'"+dvsd.getThoiGianSDDV()+"' where soPhieuSDDV=N'"+dvsd.getSoPhieuSDDV()+"'"; System.out.println(sql); ketnoi.thuchienlenh(sql); } //Xóa phong thue public static void xoadichvusudung(dichvusudung dvsd) { String sql="delete from DichVuSuDung where soPhieuSDDV=N'"+dvsd.getSoPhieuSDDV()+"'"; ketnoi.thuchienlenh(sql); } //Hiển thị danh sách phong thue public static ResultSet DSdichvusudung() { String sql="select * from DichVuSuDung"; return ketnoi.taobang(sql); } public static void themphieusddv(phieusudungdv phieu)
GVHD:Ths.Nguyễn Thị Thanh Bình
Page 44
Nhóm 2-Khmt2-K5 { String sql="insert into PhieuSDDV values(N'"+phieu.getSoPhieuSDDV()+"',N'"+phieu.getMaNV() +"','"+phieu.getNgayLapPhieu()+"')"; System.out.println(sql); ketnoi.thuchienlenh(sql); } //Sửa thông tin phong thue public static void suaphieusddv(phieusudungdv phieu) { String sql="update PhieuSDDV set maNV=N'"+phieu.getMaNV() +"',ngayLapPhieu='"+phieu.getNgayLapPhieu()+"' where soPhieuSDDV=N'"+phieu.getSoPhieuSDDV() +"'"; System.out.println(sql); ketnoi.thuchienlenh(sql); } //Xóa phong thue public static void xoaphieusddv(phieusudungdv phieu) { String sql="delete from PhieuSDDV where soPhieuSDDV=N'"+phieu.getSoPhieuSDDV()+"'"; ketnoi.thuchienlenh(sql); } //Hiển thị danh sách phong thue public static ResultSet DSdphieusddv() { String sql="select * from PhieuSDDV"; return ketnoi.taobang(sql); } public static void themhoadon(hoadon hd) { String sql="insert into HoaDon values(N'"+hd.getMaHoaDon()+"',N'"+hd.getMaKH() +"','"+hd.getSHPT()+"',N'"+hd.getMaNV()+"',N'"+hd.getNgayThanhToan()+"')"; System.out.println(sql); ketnoi.thuchienlenh(sql); } //Sửa thông tin phong thue public static void suahoadon(hoadon hd) {
GVHD:Ths.Nguyễn Thị Thanh Bình
Page 45
Nhóm 2-Khmt2-K5 String sql="update HoaDon set maKH=N'"+hd.getMaKH()+"',SHPT=N'"+hd.getSHPT() +"',maNV=N'"+hd.getMaNV()+"',ngayThanhToan=N'"+hd.getNgayThanhToan()+"' where maHoaDon=N'"+hd.getMaHoaDon()+"'"; System.out.println(sql); ketnoi.thuchienlenh(sql); } //Xóa phong thue public static void xoahoadon(hoadon hd) { String sql="delete from HoaDon where maHoaDon=N'"+hd.getMaHoaDon()+"'"; ketnoi.thuchienlenh(sql); } //Hiển thị danh sách phong thue public static ResultSet DShoadon() { String sql="select * from HoaDon"; return ketnoi.taobang(sql); } public static ResultSet tinhtong() { String sql="SELECT dbo.KhachHang.maKH, dbo.KhachHang.tenKH, dbo.PhieuThue.SHPT, dbo.Phong.soPhong, dbo.PhieuSDDV.soPhieuSDDV, dbo.DichVuSuDung.thoiGianSDDV,"; sql+=" dbo.DichVuSuDung.soLuongDVSD, dbo.DichVu.maDV, dbo.DichVu.donGia, dbo.Phong.donGia AS Expr1,dbo.PhieuThue.tienDatTruoc, dbo.DichVu.tenDV,"; sql+=" (dbo.Phong.donGia+dbo.DichVuSuDung.soLuongDVSD*dbo.DichVuSuDung.thoiGianSDDV*dbo.DichV u.donGia)-dbo.PhieuThue.tienDatTruoc AS TongTien"; sql+="
FROM
sql+="
dbo.PhieuThue ON dbo.KhachHang.maKH = dbo.PhieuThue.maKH INNER JOIN";
sql+="
dbo.PhongThue ON dbo.PhieuThue.SHPT = dbo.PhongThue.SHPT INNER JOIN";
sql+="
dbo.Phong ON dbo.PhongThue.soPhong = dbo.Phong.soPhong INNER JOIN";
sql+=" INNER JOIN";
dbo.KhachHang INNER JOIN";
dbo.PhieuSDDV ON dbo.PhieuThue.soPhieuSDDV = dbo.PhieuSDDV.soPhieuSDDV
sql+=" dbo.DichVuSuDung ON dbo.PhieuSDDV.soPhieuSDDV = dbo.DichVuSuDung.soPhieuSDDV INNER JOIN"; sql+="
dbo.DichVu ON dbo.DichVuSuDung.maDV = dbo.DichVu.maDV";
return ketnoi.taobang(sql); }
4. Xây dựng form: GVHD:Ths.Nguyễn Thị Thanh Bình
Page 46
Nhóm 2-Khmt2-K5
Form chính:
Form quản danh sách phòng Danh sách Sản Phẩm: sử dụng Text Field, Label, Button để xử lí các thao tác thêm, sửa, xóa, tìm kiếm thông tin về danh sách phòng, dùng Table load danh sách.
Form thông tin thuê phòng GVHD:Ths.Nguyễn Thị Thanh Bình
Page 47
Nhóm 2-Khmt2-K5
Danh sách Sản Phẩm: sử dụng Text Field, Label, Button để xử lí các thao tác thêm, sửa, xóa, tìm kiếm thông tin thuê phòng, dùng Table load danh sách.
Form thông tin tiện nghi trong phòng Danh sách Sản Phẩm: sử dụng Text Field, Label, Button để xử lí các thao tác thêm, sửa, xóa, tìm kiếm thông tin tiện nghi trong phòng, dùng Table load danh sách.
Form thông tin tiện nghi GVHD:Ths.Nguyễn Thị Thanh Bình
Page 48
Nhóm 2-Khmt2-K5
Danh sách Sản Phẩm: sử dụng Text Field, Label, Button để xử lí các thao tác thêm, sửa, xóa, tìm kiếm thông tin tiện nghi, dùng Table load danh sách.
Form thông tin nhân viên Danh sách Sản Phẩm: sử dụng Text Field, Label, Button để xử lí các thao tác thêm, sửa, xóa, tìm kiếm thông tin nhân viên, dùng Table load danh sách.
GVHD:Ths.Nguyễn Thị Thanh Bình
Page 49
Nhóm 2-Khmt2-K5
Form thông tin khách hàng Danh sách Sản Phẩm: sử dụng Text Field, Label, Button để xử lí các thao tác thêm, sửa, xóa, tìm kiếm thông tin khách hàng, dùng Table load danh sách
Form thông tin thuê phòng Danh sách Sản Phẩm: sử dụng Text Field, Label, Button để xử lí các thao tác thêm, sửa, xóa, tìm kiếm thông tin thuê phòng, dùng Table load danh sách.
Form thông tin tìm kiếm cho khách hàng GVHD:Ths.Nguyễn Thị Thanh Bình
Page 50
Nhóm 2-Khmt2-K5
Danh sách Sản Phẩm: sử dụng Text Field, Label, Button để xử lí các thao tác thêm, sửa, xóa, tìm kiếm thông tin tìm kiếm cho khách hàng, dùng Table load danh sách.
Form thông tin hóa đơn Danh sách Sản Phẩm: sử dụng Text Field, Label, Button để xử lí các thao tác thêm, sửa, xóa, tìm kiếm thông tin hóa đơn, dùng Table load danh sách.
GVHD:Ths.Nguyễn Thị Thanh Bình
Page 51
Nhóm 2-Khmt2-K5
Form thông tin thanh toán Danh sách Sản Phẩm: sử dụng Text Field, Label, Button để xử lí các thao tác thêm, sửa, xóa, tìm kiếm thông tin thanh toán, dùng Table load danh sách.
Form thông tin dịch vụ Danh sách Sản Phẩm: sử dụng Text Field, Label, Button để xử lí các thao tác thêm, sửa, xóa, tìm kiếm thông tin dịch vụ, dùng Table load danh sách.
GVHD:Ths.Nguyễn Thị Thanh Bình
Page 52