GIỚI THIỆU CHUNG
Giới thiệu đề tài
Ngày nay, sự phát triển mạnh mẽ của công nghệ thông tin và các phần mềm ứng dụng đã nâng cao năng suất và hiệu quả công việc Công nghệ thông tin ngày càng được áp dụng rộng rãi trong nhiều lĩnh vực kinh tế - xã hội khác nhau.
Dịch vụ thuê phòng là một phần quan trọng trong lĩnh vực dịch vụ xã hội, đặc biệt trong ngành thú y, nơi mà việc tiếp nhận và xử lý thông tin đóng vai trò then chốt Việc ứng dụng công nghệ thông tin không chỉ giúp nâng cao hiệu quả hoạt động mà còn góp phần vào sự phát triển bền vững của hệ thống khách sạn nói chung và từng cơ sở cụ thể.
Trong những năm gần đây, các khách sạn đã tích cực áp dụng công nghệ thông tin vào hầu hết các hoạt động quản lý và dịch vụ, giúp nâng cao hiệu quả điều hành và chất lượng phục vụ Tuy nhiên, việc ứng dụng công nghệ thông tin tại Việt Nam vẫn còn chậm phát triển so với các quốc gia trong khu vực.
Quản lý thuê phòng là một trong những hoạt động quan trọng hàng đầu của khách sạn Việc tối ưu hóa quy trình thuê phòng nhằm giảm thiểu giấy tờ hành chính, đồng thời đảm bảo tính chính xác, đầy đủ và an toàn là rất cần thiết và cấp bách.
Nhóm em gồm 3 thành viên đã quyết định chọn đề tài quản lý dịch vụ thuê phòng, nhằm cung cấp thông tin hữu ích cho cơ sở và người dùng Do thời gian học tập và tìm hiểu còn hạn chế, nhóm em nhận thức được rằng vẫn còn một số sai sót và rất mong nhận được sự góp ý, chỉnh sửa từ thầy và các bạn.
Vì sao sử dụng công nghệ WinForm?
Tại sao WinForm vẫn tồn tại?
Mặc dù WinForm đã chính thức bị Microsoft khai tử vào năm 2014, nhưng vẫn tồn tại và phát triển mạnh mẽ tại Việt Nam Lý do chính là hầu hết lập trình viên C#.NET đều đã từng học và sử dụng WinForm, nhờ vào giao diện kéo thả dễ sử dụng và khả năng gán các sự kiện như click, hover chỉ bằng một cú double click Việc viết code cũng rất trực quan, từ việc lấy text từ TextBox đến việc hiển thị dữ liệu qua MessageBox hay sử dụng Grid để kết nối với SQL Chính vì những ưu điểm này mà WinForm được các trường học và sinh viên ưa chuộng, vì nó rất dễ học và dễ dạy.
WinForm là lựa chọn lý tưởng cho việc phát triển phần mềm quản lý, tính tiền và thống kê nhờ vào tính dễ dàng trong lập trình với phương thức kéo thả và nhiều thành phần có sẵn Các doanh nghiệp vừa và nhỏ thường cần những ứng dụng này Hơn nữa, khi sử dụng các thành phần như TelerikUI hoặc DevExpress, WinForm có khả năng tạo ra giao diện hiện đại, đẹp mắt và ấn tượng.
WinForm vẫn là một lựa chọn phổ biến trong nhiều công ty tuyển dụng hiện nay, do đó, nếu bạn yêu thích lập trình WinForm, hãy thử tiếp xúc và nắm vững các khái niệm như Event, Control, Component, Những ưu điểm của các phần mềm trên Winform bao gồm giao diện kéo thả dễ sử dụng, hỗ trợ nhiều event như click, hover, và việc viết code trực quan Điều này giúp WinForm trở thành một công cụ dễ học và dễ dạy, đặc biệt là cho các lập trình viên C# NET, những người đã từng học hoặc sử dụng Winform.
GIỚI THIỆU VỀ NET FRAMWORK, NGÔN NGỮ LẬP TRÌNH C#, WINFORM
Ngôn ngữ lập trình C#
C# (C Sharp) là một ngôn ngữ lập trình hướng đối tượng mạnh mẽ, được phát triển bởi Microsoft như một phần của kế hoạch NET Tên gọi của ngôn ngữ này bao gồm ký tự thăng theo Microsoft, nhưng theo tiêu chuẩn ECMA, nó chỉ được gọi là C# C# được xây dựng dựa trên nền tảng của C++ và Java, mang đến sự cân bằng giữa các ngôn ngữ lập trình như C++, Visual Basic, Delphi và Java.
C# được phát triển bởi Anders Hejlsberg, một kiến trúc sư phần mềm nổi tiếng với các sản phẩm như Turbo Pascal, Delphi, J++, và WFC Phiên bản mới nhất, C# 9.0, đã được phát hành vào năm 2020, đi kèm với Visual Studio 2019 phiên bản 16.8.
WinForm là gì?
WinForm là lựa chọn lý tưởng cho việc phát triển phần mềm quản lý, tính tiền và thống kê nhờ vào tính dễ dàng trong việc lập trình với phương thức kéo thả và nhiều thành phần có sẵn Đặc biệt, các doanh nghiệp vừa và nhỏ rất cần những ứng dụng này Sử dụng các thành phần như TelerikUI hoặc DevExpress (thường được sử dụng crack tại Việt Nam), WinForm có khả năng tạo ra giao diện hiện đại và hấp dẫn Hơn nữa, WinForm cũng nổi bật với tốc độ xử lý dữ liệu nhanh chóng.
– Đảm bảo an toàn, bảo mật thông tin
– Có thể chạy trên các phiên bản Windows khác nhau.
– Thao tác trên nhiều giao diện
Công cụ, phần mềm hỗ trợ
Microsoft Visual Studio is an integrated development environment (IDE) from Microsoft, designed for creating computer programs for Microsoft Windows It is also utilized for developing websites, web applications, and web services Visual Studio leverages Microsoft's software development frameworks, including Windows API, Windows Forms, and Windows Presentation Foundation.
Foundation, Windows Store và Microsoft Silverlight Nó có thể sản xuất cả hai ngôn ngữ máy và mã số quản lý.
Hình 1: VS 2019 b Microsoft SQL Server Management Studio 18
SQL Server là một hệ quản trị cơ sở dữ liệu quan hệ (Relational Database Management System (RDBMS)) sử dụng câu lệnh SQL
(Transact-SQL) để trao đổi dữ liệu giữa máy Client và máy cài SQL
Server Một RDBMS bao gồm databases, database engine và các ứng dụng dùng để quản lý dữ liệu và các bộ phận khác nhau trong RDBMS.
4.3 Cách tạo một Windows Forms Application trên MicroSoft Visual Studio 2019
Để bắt đầu, bạn cần cài đặt Microsoft Visual Studio trên máy tính của mình Hãy tải xuống phiên bản mới nhất, Microsoft Visual Studio 2019, để đảm bảo có được những tính năng và cập nhật mới nhất.
Nếu bạn là học sinh hoặc sinh viên, hãy tải xuống phiên bản Community miễn phí Phiên bản này cung cấp đầy đủ các chức năng quan trọng, vì vậy bạn có thể yên tâm sử dụng.
Sau khi cài đặt xong Visual Studio 2019, các bạn hãy thực hiện theo các bước dưới đầy để có thể tạo một project winforms với Visual Studio 2019.
Bước 1: Khởi động Visual Studio 2019 -> chọn vào mục Create a new project để tạo một project mới.
Step 2: After selecting the option to create a new project, a new window will open displaying the platforms you have installed Since we will be programming WinForms using C#, choose the platform "Windows Forms App (.NET Framework)" and then click Next.
Bước 3: Sau khi chọn platforms một cửa sổ mới hiện ra, yêu cầu các bạn nhập thông tin cho project Các bạn sẽ nhập các thông
Quá trình tạo project sẽ mất một chút thời gian, tốc độ nhanh hay chậm phụ thuộc vào cấu hình máy của bạn Khi hoàn tất, màn hình ứng dụng sẽ hiển thị như hình dưới đây.
Bạn đã hoàn thành việc tạo một dự án thành công Để hiểu rõ hơn về các thuộc tính quan trọng trong ứng dụng, hãy tiếp tục theo dõi phần tiếp theo.
Phân tích thiết kế hệ thống
Sơ đồ chức
1.1 Chức năng của quản lí
Hình 8: Chức năng người quản lí
1.2 Chức năng của lễ tân
Hình 9: Chức năng người lễ tân
1.3 Chức năng của lao công
Hình 10: Chức năng người lao công
Người quản lí là người có toàn quyền với hệ thống, điều hành, kiểm soát nhân viên, kiểm soát phòng, tầng, tổng hợp, thống kê, báo cáo hàng tháng
Xem ds hoá đ nơ Setting
Khách hàng là người có nhu cầu thuê phòng, sử dụng dịch vụ của khách sạn.
Người lễ tân là người kiểm soát phòng, tầng, khách hàng, dịch vụ Lao công là người chỉ xem được danh sách công việc và cài đặt
1.5 Đối tượng người dùng hệ thống
Hệ thống yêu cầu nhân viên đăng nhập và có quyền truy cập để tra cứu thông tin liên quan đến dịch vụ, phòng và thiết bị, đảm bảo quản lý hiệu quả và bảo mật thông tin.
Khách hàng không cần phải đăng nhập để tra cứu thông tin về phòng và dịch vụ, trong khi đó, quản lý bắt buộc phải đăng nhập để thực hiện các hoạt động như thêm, xóa và sửa thông tin trên trang quản trị.
Để đặt phòng và sử dụng các dịch vụ kèm theo, khách hàng cần đăng nhập vào hệ thống Họ cũng có khả năng huỷ hoặc chỉnh sửa đơn đặt phòng Đối với lễ tân, việc đăng nhập là bắt buộc để thực hiện các chức năng như thêm, xóa và sửa thông tin khách hàng trên trang admin Tương tự, lao công cũng cần đăng nhập để xem phân công công việc của mình trên hệ thống.
Phần mềm của chúng tôi được thiết kế đặc biệt để hỗ trợ các nhà nghỉ và khách sạn quy mô vừa và nhỏ, giúp người quản lý nâng cao hiệu quả trong công tác quản lý.
Do phạm vi, nên phần mềm chưa thể đáp ứng được đầy đủ chức năng cần thiết, công tác quản lý, chưa đồng bộ giữa các chức năng.
Các actor và use case
Hình 11: UseCase Truy cập hệ thống
Hình 12: UseCase Quản lí hệ thống
Đặc tả hệ thống
Name Tra cứu phòng Code UC01
Description Tìm kiếm phòng trong resort
Actor Tất cả actors Trigger Khi actor chọn nút tra cứu
Post condition Hiển thị danh sách phòng theo điều kiện tra cứu
Standard flow 1.Nhập điều kiện tra cứu 2.Chọn nút tra cứu
Truy vấn dữ liệu phòng để lấy danh sách phòng dựa trên điều kiện tra cứu
Hiển thị danh sách phòng theo điều kiện tra cứu
Alternative flow 2’ Dừng tra cứu
4’ Không tìm thấy kết quả phù hợp điều kiện truy vấn
Error situations 1.Lỗi không kết nối được server 2.Lỗi không hiển thị kết quả tra cứu
System state in error situations
Không thể tra cứu phòng
Name Đặt phòng Code UC02
Description Đặt phòng trong resort
Actor Khách hàng, nhân viên, quản lý
Trigger Khi actor chọn nút đặt phòng
Precondition Khách hàng đặt phòng tại thời điểm đó chưa có hóa đơn đặt phòng hoặc hóa đơn đã hủy
Post condition Hiển thị thông báo đặt phòng thành công
Standard flow 1.Nhập thông tin đặt phòng 2.Chọn nút đặt phòng
3.Xác thực thông tin đặt phòng Tạo hóa đơn đặt phòng và lưu vào cơ sở dữ liệu Thông báo đặt phòng thành công
Alternative flow 2’ Dừng đặt phòng
3’ Thông tin sai định dạng 3’ Phòng đã có người đặt trước
Error situations Lỗi không kết nối được server
Lỗi không thể lưu thông tin đặt phòng 3.Lưu thành công nhưng không hiển thị
System state in error situations
Không đặt được phòng / Không tạo được hóa đơn
Name Đặt dịch vụ Code UC03
Description Đặt dịch vụ sử dụng trong resort
Actor Khách hàng, nhân viên, quản lý
Trigger Khi actor chọn nút đặt dịch vụ
Precondition Hóa đơn đặt phòng đã tồn tại
Post condition Hiển thị thông báo thêm dịch vụ thành công
Standard flow 1.Chọn hóa đơn cần gọi dịch vụ 2.Chọn dịch vụ muốn thêm
3.Chọn nút thêm dịch vụ
Thêm dịch vụ đã chọn vào hóa đơn và cập nhật thông tin hóa đơn trong cơ sở dữ liệu
Hiển thị thông báo thêm dịch vụ thành công
Alternative flow 3’ Dừng đặt dịch vụ
4’ Dịch vụ muốn thêm đã tồn tại trong hóa đơn
Error situations Lỗi không kết nối được server
Lỗi không thể cập nhật thông tin hóa đơn đặt phòng 3.Dịch vụ đã thêm nhưng không hiển thị thông báo
System state in error situations
Không thể thêm dịch vụ / Hóa đơn không cập nhật
Name Hủy đặt phòng Code UC04
Description Hủy hóa đơn đặt phòng resort
Actor Khách hàng, nhân viên, quản lý
Trigger Khi actor chọn nút hủy đặt phòng
Precondition Hóa đơn đặt nhưng chưa xác nhận hoặc chưa đến ngày check in
Post condition Hiển thị thông báo hủy thành công
Để hủy hóa đơn, bạn cần thực hiện các bước sau: đầu tiên, chọn hóa đơn mà bạn muốn hủy; tiếp theo, chọn tùy chọn hủy đặt phòng; sau đó, kiểm tra tình trạng hóa đơn để đảm bảo rằng việc hủy đã được thực hiện Cuối cùng, hệ thống sẽ cập nhật trạng thái hủy cho hóa đơn và hiển thị thông báo xác nhận hủy thành công.
Alternative flow 2’ Không thực hiện hủy hóa đơn
3’ Hóa đơn không thể hủy
Error situations Lỗi không kết nối được server
Lỗi không thể cập nhật thông tin hóa đơn đặt phòng 3.Lỗi hủy thành công nhưng không thông báo
System state in error situations
Không thể hủy hóa đơn đặt phòng
UC05: Thanh toán hóa đơn
Name Thanh toán hóa đơn Code UC05
Description Thanh toán hóa đơn đặt hàng
Actor Khách hàng Trigger Khi actor chọn nút thanh toán
Precondition Hóa đơn đã được xác nhận
Post condition Hiển thị thông báo thanh toán thành công
Standard flow 1.Chọn hóa đơn cần thanh toán 2.Chọn nút thanh toán
3.Nhập các thông tin thanh toán(Mã thẻ, tài khoản paypal,…) 4.Hiển thị giá trị của tổng hóa đơn
Xác nhận thanh toán hóa đơn Thông báo thanh toán thành công
Table 5: Thanh toán hóa đơn
Name Nhập ưu đãi Code UC06
Description Áp dụng ưu đãi cho hóa đơn
Actor Khách hàng Trigger Khi actor chọn nút nhập ưu đãi
Precondition Hóa đơn đang trong quá trình thanh toán
Post condition Cập nhật giá hóa đơn sau khi áp dụng ưu đãi
Standard flow 1.Nhập ưu đãi muốn áp dụng 2.Chọn nút thêm ưu đãi 3.Kiểm tra ưu đãi nhập vào 4.Cập nhật giá hóa đơn sau khi thêm ưu đãi
Alternative flow 2’ Ưu đãi không tồn tại
2’ Ưu đãi không khả dụng (hết hạn, không đủ điều kiện áp dụng,
Error situations Lỗi không kết nối được server
Lỗi không cập nhật giá hóa đơn sau khi áp dụng ưu đãi hợp lệ
System state in error situations
Không thể áp dụng ưu đãi cho hóa đơn
Name Chỉnh sửa thông tin Code UC08
Actor Tất cả actors Trigger Khi actor chọn nút chỉnh sửa thông tin
Post condition Thông báo cập nhật thành công
Để cập nhật thông tin tài khoản, bạn cần thực hiện các bước sau: đầu tiên, chọn mục chỉnh sửa thông tin cá nhân; tiếp theo, nhập các thông tin cần chỉnh sửa; cuối cùng, nhấn nút lưu thay đổi Sau khi hoàn tất, bạn sẽ nhận được thông báo cập nhật thành công.
Alternative flow 3’ Hủy chỉnh sửa thông tin
Table 7:Chỉnh sửa thông tin
UC09: Đăng ký thông tin
Name Đăng ký thông tin Code UC09
Description Đăng ký thông tin khách hàng để sử dụng dịch vụ
Actor Khách hàng Trigger Khi actors chọn nút đăng ký
Post condition Thông báo đăng ký thành công và chuyển đến trang đăng nhập
Standard flow 1.Nhập thông tin tài khoản 2.Chọn nút đăng ký
3.Kiểm tra thông tin đăng ký 4.Lưu thông tin đăng ký 5.Thông báo đăng ký thành công và chuyển đến trang đăng nhập
Alternative flow 2’ Hủy đăng ký
3’ Thông tin tài khoản không hợp lệ hoặc tài khoản đã tồn tại
Error situations Lỗi không kết nối được server
Lỗi không hiển thị thông báo và chuyển trang sau khi đăng ký thành công
System state in error situations
Không thể đăng ký tài khoản
Table 8: Đăng ký thông tin
Name Đăng nhập Code UC10
Description Người dùng đăng nhập sử dụng hệ thống
Actor Tất cả actors Trigger Khi actors chọn nút đăng nhập
Precondition Tài khoản người dùng đã tồn tại
Post condition Chuyển đến trang chủ hệ thống
Standard flow 1.Nhập thông tin đăng nhập
UC11: Cập nhật thông tin đặt phòng
Name Cập nhật thông tin đặt phòng
Description Cập nhật lại các thông tin của hóa đơn đặt phòng
Actor Khách hàng, nhân viên, quản lý
Trigger Khi actor chọn nút chỉnh sửa thông tin
Precondition Hóa đơn chưa thanh toán
Post condition Thông báo cập nhật thành công
Standard flow 1.Chọn hóa đơn cần cập nhật 2.Nhập các thông tin cần cập nhật
3.Chọn nút cập nhật Cập nhật thông tin hóa đơn Thông báo cập nhật thành công
Alternative flow 3’ Hủy cập nhật
4’ Ngày checkin / checkout cần cập nhật đã có người đặt
Error situations 1.Lỗi không kết nối được server 2.Lỗi không cập nhật thông tin
System state in error situations
Không thể cập nhật hóa đơn đặt phòng
Table 10: Cập nhập thông tin phòng
UC13: Xác nhận check in / check out
Name Xác nhận thanh toán Code UC13
Description Xác nhận khách hàng check in / check out
Actor Nhân viên, quản lý Trigger Khi actor chọn nút xác nhận check in / checkout
Precondition Hóa đơn chưa thanh toán
Post condition Thông báo xác nhận thành công
Standard flow 1.Chọn hóa đơn cần xác nhận 2.Chọn xác nhận check in / check out 3.Cập nhật trạng thái hóa đơn 4.Thông báo xác nhận thành công
Alternative flow 2’ Hủy xác nhận
Error situations Lỗi không kết nối được server
Lỗi không cập nhật trạng thái hóa đơn
Table 11: Xác nhận check in / check out
UC14: Xác nhận thanh toán
Name Xác nhận thanh toán Code UC14
Description Xác nhận khách hàng thanh toán hóa đơn
Actor Nhân viên, quản lý Trigger Khi actor chọn nút xác nhận thanh toán
Precondition Hóa đơn chưa thanh toán
Post condition Thông báo xác nhận thành công
Standard flow 1.Chọn hóa đơn cần xác nhận 2.Chọn thanh toán
3.Hiển thị thông tin dịch vụ sử dụng và tổng giá trị hóa đơn 4.Chọn xác nhận thanh toán
5.Thông báo xác nhận thành công
Alternative flow 2’ Hủy xác nhận
Error situations Lỗi không kết nối được server
Lỗi không cập nhật trạng thái hóa đơn
System state in error situations
Không thể xác nhận hóa đơn
Table 12: Xác nhận thanh toán
UC15: Tra cứu lịch sử đặt phòng
Name Tra cứu lịch sử đặt phòng
Description Tra cứu danh sách lịch sử đặt phòng trong resort
Actor Khách hàng, nhân viên, quản lý
Trigger Khi actor chọn nút tra cứu lịch sử đặt phòng
Post condition Hiển thị kết quả tra cứu
Standard flow 1.Nhập điều kiện tra cứu 2.Chọn nút tra cứu
3.Truy vấn dữ liệu để tìm kiếm tất cả lịch sử đặt phòng phù hợp với yêu cầu tra cứu
Table 13: Tra cứu lịch sử đặt phòng
Name In hóa đơn Code UC16
Description Xuất hóa đơn đặt phòng
Actor Nhân viên, quản lý Trigger Khi actor chọn nút tra in hóa đơn
Post condition Thông tin hóa đơn dưới dạng văn bản
Standard flow 1.Chọn hóa đơn cần in 2.Chọn in hóa đơn
Chuyển thông tin chi tiết của hóa đơn thành file văn bản để sử dụng trong máy in
Thông tin hóa đơn dưới dạng văn bản
Alternative flow 2’ Hủy in hóa đơn
Error situations Lỗi không kết nối được server
Lỗi không chuyển được thông tin hóa đơn sang dạng văn bản 3.Lỗi không thể in hóa đơn
System state in error situations
Không thể in hóa đơn
Name Thêm phòng Code UC17
Description Thêm mới phòng trong resort
Actor Quản lý Trigger Khi actor chọn nút thêm mới
Post condition Thông báo thêm thành công và chuyển sang trang chi tiết
Name Cập nhật phòng Code UC18
Description Cập nhật thông tin phòng
Actor Quản lý Trigger Khi actor chọn nút cập nhật
Post condition Thông báo cập nhật thành công thành công và chuyển sang trang chi tiết
Để cập nhật thông tin phòng, bạn cần thực hiện các bước sau: đầu tiên, chọn phòng cần thay đổi, sau đó nhập thông tin mới cần cập nhật Cuối cùng, nhấn nút cập nhật để hoàn tất Hãy chắc chắn kiểm tra định dạng thông tin trước khi lưu vào cơ sở dữ liệu.
Thông báo cập nhật thành công và chuyển sang trang chi tiết phòng vừa cập nhật
Alternative flow 3’ Hủy cập nhật
4’ Thông tin phòng sai định dạng
Error situations Lỗi không kết nối được server
Lỗi không cập nhật được thông tin phòng
System state in error situations
Phòng chưa được cập nhật
UC20: Tra cứu loại phòng
Name Tra cứu loại phòng Code UC20
Description Tìm kiếm loại phòng trong resort
Actor Quản lý Trigger Khi actor chọn nút tra cứu
Post condition Hiển thị danh sách loại phòng theo điều kiện tra cứu
Standard flow 1.Nhập điều kiện tra cứu 2.Chọn nút tra cứu
Truy vấn dữ liệu để lấy danh sách loại phòng dựa trên điều kiện tra cứu
Hiển thị danh sách loại phòng theo điều kiện tra cứu
Alternative flow 2’ Dừng tra cứu
4’ Không tìm thấy kết quả phù hợp điều kiện truy vấn
Error situations 1.Lỗi không kết nối được server
Table 17: Tra cứu loại phòng
Name Thêm loại phòng Code UC21
Description Thêm mới loại phòng trong resort
Actor Quản lý Trigger Khi actor chọn nút thêm mới
Post condition Thông báo thêm thành công và chuyển sang trang chi tiết
Standard flow 1.Nhập thông tin loại phòng cần thêm mới 2.Chọn thêm mới
Kiểm tra định dạng thông tin là bước đầu tiên trong quy trình Sau đó, lưu loại phòng mới vào cơ sở dữ liệu để đảm bảo thông tin được cập nhật Cuối cùng, hệ thống sẽ thông báo thêm thành công và chuyển người dùng đến trang chi tiết của loại phòng vừa thêm.
Alternative flow 2’ Hủy thêm mới
3’ Thông tin sai định dạng
Error situations Lỗi không kết nối được server
Lỗi không thêm được loại phòng vào cơ sở dữ liệu
System state in error situations
Loại phòng chưa được thêm
UC22: Cập nhật loại phòng
Name Cập nhật loại phòng Code UC22
Description Cập nhật thông tin loại phòng
Actor Quản lý Trigger Khi actor chọn nút cập nhật
Post condition Thông báo cập nhật thành công thành công và chuyển sang trang chi tiết
Standard flow 1.Chọn loại phòng cần cập nhật 2.Nhập thông tin cần thay đổi
Table 19: Cập nhật loại phòng
Name Xóa loại phòng Code UC23
Description Xóa loại phòng trong resort
Actor Quản lý Trigger Khi actor chọn nút xóa
Precondition Chưa có phòng thuộc loại phòng cần xóa
Post condition Thông báo xóa thành công và chuyển đến trang quản lý loại phòng
Để xóa một loại phòng, trước tiên bạn cần chọn loại phòng muốn xóa Sau đó, hãy chọn tùy chọn xóa loại phòng và kiểm tra các điều kiện xóa Khi hoàn tất, loại phòng sẽ được xóa khỏi cơ sở dữ liệu Cuối cùng, bạn sẽ nhận được thông báo xóa thành công và được chuyển đến trang quản lý loại phòng.
3’ Loại phòng không đáp ứng điều kiện xóa
Error situations 1.Lỗi không kết nối được server 2.Lỗi không xóa được phòng
System state in error situations
Loại phòng chưa được xóa
Name Thêm dịch vụ Code UC21
Description Thêm mới dịch vụ trong resort
Actor Quản lý Trigger Khi actor chọn nút thêm mới
Post condition Thông báo thêm thành công và chuyển sang trang chi tiết
Standard flow 1.Nhập thông tin dịch vụ cần thêm mới 2.Chọn thêm mới
Kiểm tra định dạng thông tin Lưu dịch vụ mới thêm vào cơ sở dữ liệu
Thông báo thêm thành công và chuyển sang trang chi tiết dịch vụ vừa thêm
Alternative flow 2’ Hủy thêm mới
3’ Thông tin sai định dạng
UC22: Cập nhật dịch vụ
Name Cập nhật dịch vụ Code UC22
Description Cập nhật thông tin dịch vụ
Actor Quản lý Trigger Khi actor chọn nút cập nhật
Post condition Thông báo cập nhật thành công thành công và chuyển sang trang chi tiết
Để cập nhật thông tin dịch vụ, bạn cần thực hiện theo các bước sau: đầu tiên, chọn dịch vụ cần cập nhật, sau đó nhập thông tin cần thay đổi và cuối cùng nhấn nút cập nhật Hãy kiểm tra định dạng thông tin trước khi thực hiện để đảm bảo dữ liệu được cập nhật chính xác trong cơ sở dữ liệu.
Thông báo cập nhật thành công và chuyển sang trang chi tiết dịch vụ vừa cập nhật
Alternative flow 3’ Hủy cập nhật
4’ Thông tin dịch vụ sai định dạng
Error situations 1.Lỗi không kết nối được server 2.Lỗi không cập nhật được thông tin
System state in error situations
Dịch vụ chưa được cập nhật
Table 22: Cập nhật dịch vụ
Name Xóa dịch vụ Code UC23
Description Xóa dịch vụ trong resort
Actor Quản lý Trigger Khi actor chọn nút xóa
Precondition Dịch vụ chưa được sử dụng
Post condition Thông báo xóa thành công và chuyển đến trang quản lý dịch vụ
UC24: Tra cứu ưu đãi
Name Tra cứu ưu đãi Code UC24
Description Tìm kiếm ưu đãi trong resort
Actor Tất cả actors Trigger Khi actor chọn nút tra cứu
Post condition Hiển thị danh sách ưu đãi theo điều kiện tra cứu
Standard flow 1.Nhập điều kiện tra cứu 2.Chọn nút tra cứu
Truy vấn dữ liệu để lấy danh sách ưu đãi dựa trên điều kiện tra cứu Hiển thị danh sách ưu đãi theo điều kiện tra cứu
Alternative flow 2’ Dừng tra cứu
4’ Không tìm thấy kết quả phù hợp điều kiện truy vấn
Error situations 1.Lỗi không kết nối được server 2.Lỗi không hiển thị kết quả tra
System state in error situations
Không thể tra cứu ưu đãi
Table 24: Tra cứu ưu đãi
UC25: Cập nhật ưu đãi
Name Cập nhật ưu đãi Code UC25
Description Cập nhật thông tin ưu đãi
Actor Quản lý Trigger Khi actor chọn nút cập nhật
Post condition Thông báo cập nhật thành công thành công và chuyển sang trang chi tiết
Để cập nhật ưu đãi, bạn cần thực hiện các bước sau: chọn ưu đãi cần thay đổi, nhập thông tin mới và nhấn nút cập nhật Đảm bảo kiểm tra định dạng thông tin trước khi cập nhật để thông tin ưu đãi được lưu trữ chính xác trong cơ sở dữ liệu.
Thông báo cập nhật thành công và chuyển sang trang chi tiết ưu đãi vừa cập nhật
Alternative flow 3’ Hủy cập nhật
Table 25: Cập nhật ưu đãi
Name Xóa ưu đãi Code UC26
Description Xóa ưu đãi trong resort
Actor Quản lý Trigger Khi actor chọn nút xóa
Precondition Ưu đãi chưa được sử dụng
Post condition Thông báo xóa thành công và chuyển đến trang quản lý ưu đãi
Standard flow 1.Chọn ưu đãi cần xóa 2.Chọn xóa ưu đãi 3.Kiểm tra điều kiện xóa
Xóa ưu đãi khỏi cơ sở dữ liệu Thông báo xóa thành công và chuyển đến trang quản lý ưu đãi
3’ Ưu đãi không đáp ứng điều kiện xóa
Error situations 1.Lỗi không kết nối được server 2.Lỗi không xóa được ưu đãi
System state in error situations Ưu đãi chưa được xóa
UC36: Tra cứu nhân viên
Name Tra cứu nhân viên Code UC36
Description Tìm kiếm nhân viên trong resort
Actor Quản trị viên, quản lý Trigger Khi actor chọn nút tra cứu
Post condition Hiển thị danh sách nhân viên theo điều kiện tra cứu
Standard flow 1.Nhập điều kiện tra cứu 2.Chọn nút tra cứu
Truy vấn dữ liệu để lấy danh sách nhân viên dựa trên điều kiện tra cứu
Hiển thị danh sách nhân viên theo điều kiện tra cứu
Alternative flow 2’ Dừng tra cứu
4’ Không tìm thấy kết quả phù hợp điều kiện truy vấn
Error situations 1.Lỗi không kết nối được server 2.Lỗi không hiển thị kết quả tra cứu
System state in error situations
Không thể tra cứu nhân viên
Table 27 Tra cứu nhân viên
Name Thêm nhân viên Code UC27
Description Thêm mới nhân viên trong resort
Actor Quản trị viên, quản lý Trigger Khi actor chọn nút thêm mới
Post condition Thông báo thêm thành công và chuyển sang trang chi tiết
Standard flow 1.Nhập thông tin nhân viên cần thêm mới 2.Chọn thêm mới
Kiểm tra định dạng thông tin
Lưu nhân viên mới thêm vào cơ sở dữ liệu
Thông báo thêm thành công và chuyển sang trang chi tiết nhân viên vừa thêm
Alternative flow 2’ Hủy thêm mới
3’ Thông tin sai định dạng
UC28: Cập nhật nhân viên
Name Cập nhật nhân viên Code UC28
Description Cập nhật thông tin nhân viên
Actor Quản trị viên, quản lý Trigger Khi actor chọn nút cập nhật
Post condition Thông báo cập nhật thành công thành công và chuyển sang trang chi tiết
Standard flow 1.Chọn nhân viên cần cập nhật 2.Nhập thông tin cần thay đổi
3.Chọn nút cập nhật Kiểm tra định dạng thông tin Cập nhật thông tin nhân viên trong cơ sở dữ liệu
Thông báo cập nhật thành công và chuyển sang trang chi tiết nhân viên vừa cập nhật
Alternative flow 3’ Hủy cập nhật
4’ Thông tin nhân viên sai định dạng
Error situations 1.Lỗi không kết nối được server 2.Lỗi không cập nhật được thông tin
System state in error situations
Nhân viên chưa được cập nhật
Table 29 Cập nhật nhân viên
Name Xóa nhân viên Code UC29
Description Xóa nhân viên trong resort
Actor Quản trị viên, quản lý Trigger Khi actor chọn nút xóa
Post condition Thông báo xóa thành công và chuyển đến trang quản lý nhân viên
UC30: Tra cứu khách hàng
Name Tra cứu khách hàng Code UC30
Description Tìm kiếm khách hàng trong resort
Actor Quản trị viên, quản lý Trigger Khi actor chọn nút tra cứu
Post condition Hiển thị danh sách khách hàng theo điều kiện tra cứu
Standard flow 1.Nhập điều kiện tra cứu 2.Chọn nút tra cứu
Truy vấn dữ liệu để lấy danh sách khách hàng dựa trên điều kiện tra cứu
Hiển thị danh sách khách hàng theo điều kiện tra cứu
Alternative flow 2’ Dừng tra cứu
4’ Không tìm thấy kết quả phù hợp điều kiện truy vấn
Error situations 1.Lỗi không kết nối được server 2.Lỗi không hiển thị kết quả tra cứu
System state in error situations
Không thể tra cứu khách hàng
Table 30 Tra cứu khách hàng
UC32: Cập nhật khách hàng
Name Cập nhật khách hàng Code UC32
Description Cập nhật thông tin khách hàng
Actor Quản trị viên, quản lý Trigger Khi actor chọn nút cập nhật
Post condition Thông báo cập nhật thành công thành công và chuyển sang trang chi tiết
Standard flow 1.Chọn khách hàng cần cập nhật 2.Nhập thông tin cần thay đổi
3.Chọn nút cập nhậtKiểm tra định dạng thông tin
Cập nhật thông tin khách hàng trong cơ sở dữ liệu
Thông báo cập nhật thành công và chuyển sang trang chi tiết khách hàng vừa cập nhật
Table 31 Cập nhật khách hàng
Name Xóa khách hàng Code UC43
Description Xóa khách hàng trong resort
Actor Quản trị viên, quản lý Trigger Khi actor chọn nút xóa
Precondition Khách hàng chưa phát sinh giao dịch trong resort
Post condition Thông báo xóa thành công và chuyển đến trang quản lý khách hàng
Standard flow 1.Chọn khách hàng cần xóa 2.Chọn xóa khách hàng 3.Kiểm tra điều kiện xóa Xóa khách hàng khỏi cơ sở dữ liệu
Thông báo xóa thành công và chuyển đến trang quản lý khách hàng
3’ Khách hàng không đáp ứng điều kiện xóa
Error situations 1.Lỗi không kết nối được server 2.Lỗi không xóa được khách hàng
System state in error situations
Khách hàng chưa được xóa
Name Thêm ảnh Code UC47
Description Thêm ảnh mô tả cho phòng
Actor Quản lý Trigger Khi actor chọn nút thêm mới
Post condition Thông báo thêm thành công và chuyển sang trang chi tiết
Name Xóa ảnh Code UC48
Description Xóa ảnh mô tả của phòng
Actor Quản lý Trigger Khi actor chọn nút xóa
Post condition Thông báo xóa thành công và chuyển đến trang quản lý khách hàng
Standard flow 1.Chọn ảnh cần xóa 2.Chọn xóa khách hàng
Xóa ảnh khỏi server lưu trữ Xóa thông tin ảnh trong cơ sở dữ liệu
Thông báo xóa thành công và chuyển đến trang quản lý khách hàng
Error situations Lỗi không kết nối được server
Lỗi không xóa được ảnh trên server lưu trữ Đã xóa ảnh nhưng chưa xóa thông tin ảnh đã lưu trong dữ liệu
System state in error situations Ảnh chưa được xóa
Activity Diagram
Hình 13: Activity Truy cập hệ thống
Hình 14: Activity Đổi mật khẩu
Hình 15: Activity QL khách hàng
Hình 16: Activity QL nhân viên
Hình 17: Activity Xem thống kê
Hình 18: Activity chỉnh sửa thông tin quản lí
Hình 20: Activity chỉnh sửa thông tin lễ tân
Hình 21:Activity quản lí KH
Hình 23: Activity chỉnh sửa thông tin lao công
Database
Hình 41: DB bảng service_detail 1
Hình 42: DB bảng service_detail 2
Hình 47: DB bảng status_room 1
Hình 48: DB bảng status_room 2
Hình 49: DB bảng type employee 1
Hình 50: DB bảng type_employee 2
Hình 51: DB bảng type_room 1
Hình 52:DB bảng type_room 2
Giao diện
Giao diện người dùng chung
Để nâng cao tính bảo mật và phân cấp quyền truy cập, người dùng cần đăng nhập lại vào ứng dụng mỗi khi khởi động hoặc kết thúc phiên làm việc.
Chức vụ Tên đăng nhập Mật khẩu
Hình 53: Giao diện đăng nhập
Hình 54: Giao diện chỉnh sửa tt
Tại đây ta có thể chỉnh sửa tên đăng nhập và mật khẩu đăng nhập.
Hình 55: Giao diện đổi tên người dùng
Để thay đổi tên đăng nhập, bạn cần chọn tùy chọn "Chỉnh sửa tên đăng nhập", sau đó nhập tên đăng nhập mới cùng với mật khẩu hiện tại Cuối cùng, hãy nhấn "Xong" để cập nhật tên đăng nhập, thông tin này sẽ được lưu trữ trong cơ sở dữ liệu cho lần đăng nhập tiếp theo.
Hình 56: Giao diện đổi mật khẩu
Để thay đổi mật khẩu, bạn cần chọn mục Chỉnh sửa mật khẩu, sau đó nhập mật khẩu hiện tại và mật khẩu mới Cuối cùng, nhấn Xong để hoàn tất và cập nhật mật khẩu.
Giao diện người quản lí
Menu quản lý bao gồm các mục như danh sách phòng, khách hàng, kho, phân công, lịch sử làm việc, thống kê, danh sách nhân viên và lịch sử giao dịch Ở phía trên, hiển thị tên người trực và ca trực Để trực thay cho người khác, chỉ cần nhấn vào mũi tên cạnh tên người trực và chọn Check In.
Hình 57: Giao diện quản lí phòng
Mỗi phòng hiện có cho phép thực hiện thao tác đặt cho phòng trống và trả phòng cho phòng đang thuê Nếu thời gian đặt không trùng với ngày hiện tại, phòng sẽ được ghi nhận với trạng thái đặt trước.
Hình 58: Giao diện DS phòng
Khi chọn danh sách phòng trống, bạn sẽ được chuyển đến cửa sổ đặt phòng Sau khi nhập đầy đủ thông tin và chọn ngày đặt hợp lệ, hãy nhấn nút đặt phòng Nếu mọi thông tin hợp lệ, bạn sẽ nhận được thông báo đặt phòng thành công.
Hình 59: Giao diện đặt phòng
Để quản lý hiệu quả và ngăn chặn gian lận từ nhân viên, mỗi khách hàng khi đặt phòng sẽ nhận một thẻ có chức năng mở cửa phòng, bật điện và lưu trữ thông tin cá nhân Nhân viên sẽ thu lại thẻ khi khách trả phòng, và nếu khách trả phòng muộn, họ sẽ phải chịu phạt Chi phí thanh toán bao gồm tiền phòng và các dịch vụ bổ sung mà khách hàng sử dụng.
Hình 60: Giao diện trả phòng
Để thêm phòng, bạn hãy nhấp chuột phải vào cửa sổ phòng và chọn "Thêm phòng" Sau đó, nhập tên phòng và chọn loại phòng, rồi nhấn "Add" Nếu thông tin hợp lệ, bạn sẽ nhận được thông báo thêm phòng thành công.
Hình 61: Giao diện thêm phòng
Để sửa đổi thông tin phòng, bạn hãy nhấp chuột phải vào phòng cần chỉnh sửa trong cửa sổ phòng và chọn "sửa phòng" Tiếp theo, cập nhật lại loại phòng mà bạn muốn thay đổi, sau đó nhấn "Edit" để hoàn tất việc cập nhật.
Hình 62: Giao diện sửa phòng
Để xóa một phòng, hãy nhấp chuột phải vào phòng cần xóa trong cửa sổ phòng, sau đó chọn "Delete" Một cửa sổ xác nhận sẽ xuất hiện; nếu bạn chắc chắn muốn xóa, hãy nhấn "Ok" để hoàn tất quá trình.
Hình 63: Giao diện xoá phòng
Để sắp xếp phòng trong cửa sổ, bạn hãy nhấn chuột phải vào khu vực trống và chọn "Sắp xếp theo" Chọn "Theo tên" nếu bạn muốn sắp xếp phòng theo tên, hoặc chọn "Theo tình trạng" nếu bạn muốn sắp xếp theo tình trạng phòng.
Hình 64: Giao diện sắp xếp phòng
Hình 65: Giao diện sắp xếp theo tên
Hình 66: Giao diện sắp xếp theo trạng thái
Tại màn hình này ta có thể xem thống kê thu nhập của từng phòng Ngoài ra ta có thể in thông tin này ra để quản lý.
Hình 67: Giao diện thống kê của quản lí
Hình 68: Giao diện thống kê theo phòng
Sau khi chọn In theo tháng:
Hình 69: Giao diện in thông kế ra word
Hình 70: Giao diện thống kê thu chi
In th ống kê thu chi :
Hình 71: Giao diện in thống kê thu chi ra word
Tại đây ta có thể xem lịch sử làm việc của nhân viên để đánh giá độ chuyên cần cũng như thưởng, phạt nhân viên.
Bảng thông tin làm việc của nhân viên:
Hình 72:Giao diện thống kê làm việc
Hình 73: Giao diện thống kê lương nhân viên
Hình 74: Giao diện thống kê lương 2
Bảng thống kê chuyên cần:
Hình 75: Giao diện thống kê chuyên cần
Hình 76: Giao diện lịch sử làm việc
Hình 77: Giao diện quản lí hoá đơn
Hình 78: Giao diện bảng phân công
Hình 79: Giao diện khách hàng
Giao diện lễ tân
Hình 80: Giao diện dịch vụ
Giao diện lao công
Hình 81: Giao diện lịch làm việc lao công