TÌM HIỂU VỀ LINQ TO SQL
Khái niệm
LINQ (Language Integrated Query) là một ngôn ngữ tích hợp truy vấn, được giới thiệu trong Visual Studio 2008 và Net Framework 3.5, giúp kết nối giữa thế giới đối tượng và dữ liệu một cách hiệu quả.
Theo truyền thống, các câu lệnh truy vấn dữ liệu thường được thể hiện đơn giản như chuỗi ký tự mà không cần kiểm tra trong quá trình biên dịch hoặc hỗ trợ từ trình hỗ trợ trực quan Người dùng cần nắm vững các ngôn ngữ truy vấn khác nhau cho từng loại nguồn dữ liệu, bao gồm cơ sở dữ liệu SQL, tài liệu XML (Extensible Markup Language), và các dịch vụ LINQ trong ngôn ngữ C# và Visual Basic Việc sử dụng câu lệnh truy vấn dựa trên tập hợp đối tượng cho phép sử dụng các từ khóa và toán tử quen thuộc trong ngôn ngữ lập trình.
Trong Visual Studio, bạn có thể viết truy vấn LINQ bằng Visual Basic hoặc C# cho cơ sở dữ liệu SQL Server, tài liệu XML, ADO.NET datasets và các đối tượng hỗ trợ IEnumerable hoặc có đặc điểm giống giao diện IEnumerable LINQ tương thích với các thực thể ADO.NET framework và hiện nay nhiều nhà cung cấp bên thứ ba cũng phát triển các dịch vụ và triển khai dữ liệu hóa dựa trên LINQ Bạn có thể áp dụng truy vấn LINQ cho cả các dự án mới và dự án hiện có, với yêu cầu duy nhất là các dự án phải được xây dựng trên NET framework 3.5.
LinQ có nhiều loại: LinQ to SQL, LinQ to Entities, LinQ to Object Trong Project này sẽ sử dụng LinQ to SQL
Các Namespace hỗ trợ của LINQ:
System.Linq: Hỗ trợ sử dụng các Objects;
System.Data.Linq: Hỗ trợ sử dụng các cơ sở dữ liệu quan hệ;
System.Data.Objects: Hỗ trợ sử dụng các Entities;
System.XML.Linq: Hỗ trợ sử dụng XML;
LinQ to SQL
LinQ to SQL là một thành phần trong NET Framework phiên bản 3.5, cung cấp cơ sở hạ tầng cho việc quản lý dữ liệu quan hệ dưới dạng đối tượng Đây là một phiên bản hiện thực hóa của O/RM (object-relational mapping) trong NET, cho phép người dùng mô hình hóa cơ sở dữ liệu bằng các lớp NET và thực hiện các truy vấn thông qua LInQ Nó hỗ trợ các thao tác như Insert, Update, Delete, View, Stored Procedure và Transaction Đặc biệt, LinQ to SQL chỉ tương thích với SQL Server, là lựa chọn lý tưởng cho người mới bắt đầu tìm hiểu về lập trình cơ sở dữ liệu.
Mô hình LinQ to SQL
Truy vấn sử dụng LINQ to SQL
a) Cấu trúc của câu truy vấn LInQ to SQL
Một câu lệnh truy vấn trong linq to sql luôn gồm có 3 đối tượng: nguồn dữ liệu, tạo câu truy vấn, thực hiện câu truy vấn.
Nguồn dữ liệu ở đây là một danh sách các item.
Câu lệnh truy vấn trong SQL bao gồm các thành phần quan trọng: "FROM" để xác định bảng dữ liệu, "WHERE" để đặt điều kiện lọc dữ liệu, và "SELECT" để lựa chọn các trường hoặc toàn bộ đối tượng cần truy xuất.
Câu truy vấn trong LINQ to SQL cho phép thực hiện các thao tác như thêm, sửa và xóa đối tượng, có thể là một hoặc nhiều đối tượng cùng lúc Cơ chế làm việc với cơ sở dữ liệu của LINQ to SQL hỗ trợ việc tương tác hiệu quả và linh hoạt với dữ liệu.
LINQ sử dụng ứng dụng hỗ trợ biên dịch để chuyển đổi các câu lệnh LINQ thành câu lệnh SQL nhằm thực hiện thao tác với cơ sở dữ liệu Các câu lệnh này chỉ được thực thi khi gọi phương thức SubmitChanges() Để tạo ra các câu truy vấn, có thể sử dụng các từ khóa như: from, join, where, group, orderby, và select, giúp xây dựng các truy vấn linh hoạt và hiệu quả.
From là chọn đối tượng từ nguồn nào
Join là thực hiện tham gia liên kết với bảng nào để lấy ra các trường dữ liệu mong muốn
Where để ghi điều kiện các đối tượng trong nguồn phải thỏa mãn điều kiện này thì mới được lấy ra
Group là thực hiện gom nhóm các đối tượng lấy ra theo một trường nào đó.
Để sắp xếp danh sách sinh viên theo lớp học, bạn có thể sử dụng LINQ với phương thức group, giúp nhóm các sinh viên cùng lớp lại gần nhau.
Orderby là phương thức dùng để sắp xếp các đối tượng theo một trường nhất định, có thể theo thứ tự giảm dần hoặc tăng dần Trong LINQ to SQL, các đối tượng thường được sử dụng để thực hiện việc này bao gồm các bảng dữ liệu và các trường trong bảng.
Các hàm Sum/ Min/ Max/ Average là các hàm tính tổng, lấy giá trị nhỏ nhất, lấy giá trị lớn nhất, lấy giá trị trung bình.
Hàm Take, Skip là hàm lấy ra bao nhiêu bản ghi được hiển thị trong danh sách các bản ghi và lấy ra từ bản ghi thử mấy.
Hàm First, FirstOrDefault là hàm dùng để lấy ra phần tử đầu tiên trong danh sách các phần tử:
- First: khi dùng mà phần tử lấy ra rỗng thì nó sẽ xảy ra lỗi.
Phương thức FirstOrDefault cho phép lấy đối tượng có thể là null Do đó, khi sử dụng, cần kiểm tra xem đối tượng có khác null hay không trước khi thực hiện các câu lệnh bên trong khối if.
Tương tự như FirstOrDefault thì Last, LastOrDefault là lấy ra phần tử cuối cùng. e) Cấu trúc các truy vấn sử dụng LINQ to SQL trong C#
Hiển thị dữ liệu lên một GridView
List list = new List(); var query = (from n in db.Khaches select n); list = query.ToList();
Tìm kiếm dữ liệu từ CSDL var query1 = (from phong in db.Phongs where phong.LoaiP == cbb_loai.Text select phong); list = query1.ToList();
Thêm một bản ghi vào CSDL
In this code snippet, a new instance of the Khach class is created, capturing user input from various text fields The properties such as CMT, Hoten, Diachi, GT, and SDT are populated with data from the respective input controls Subsequently, the new Khach object is added to the database using InsertOnSubmit, and changes are committed with SubmitChanges.
Sửa một bản ghi trong CSDL
The code snippet retrieves the first record from the Khaches database where the CMT matches the input text, then updates the corresponding fields with the values from the user inputs for name, gender, address, and phone number, before saving the changes to the database.
Xóa một bản ghi trong CSDL
Khach dskhach = (from Khach in db.Khaches where Khach.CMT == txt_cmt.Text select Khach).SingleOrDefault(); if (dskhach != null)
{ db.Khaches.DeleteOnSubmit(dskhach); db.SubmitChanges();
MessageBox.Show("Xóa thành công", "Xóa khách hàng");
To retrieve data from multiple tables, the following query is used: `var query = (from kh in db.Khaches join th in db.ThuePs on kh.CMT equals th.CMT where th.CMT == txt_input.Text select th);` The results are then bound to the data source with `khachBindingSource.DataSource = query.ToList();`.
KHẢO SÁT HỆ THỐNG VÀ XÁC ĐỊNH YÊU CẦU
Mục tiêu, nhiệm vụ của đề tài
Quản lý khách sạn là một lĩnh vực phức tạp, yêu cầu hệ thống quản lý hiệu quả và thuận tiện Đề tài này không chỉ có giá trị thực tiễn mà còn hỗ trợ sinh viên củng cố kiến thức môn học, đồng thời nâng cao hiểu biết về nghiệp vụ quản lý trong doanh nghiệp Qua đó, sinh viên có cơ hội phát triển trình độ chuyên môn cá nhân.
Trong khuôn khổ môn học này, mục tiêu chính là rèn luyện kỹ năng thực hiện các nhiệm vụ cơ bản trong hệ thống quản lý khách sạn, bao gồm đăng ký phòng, làm thủ tục nhận phòng và thanh toán nhanh chóng cho khách hàng Chúng em cũng sẽ cung cấp dịch vụ theo yêu cầu của khách, nhằm mang lại sự thoải mái và hài lòng cho họ Bên cạnh đó, việc hỗ trợ quản lý danh mục trong hệ thống và thực hiện thống kê báo cáo cũng là một phần quan trọng của quá trình học tập này.
Phạm vi thực hiện của đề tài
Đề tài này tập trung vào các nghiệp vụ chính của khách sạn, không đi sâu vào chi tiết hay các nghiệp vụ phức tạp do hạn chế về thời gian và kinh nghiệm Tuy nhiên, những nghiệp vụ được trình bày đủ để triển khai một dự án thực tế cho các khách sạn và doanh nghiệp vừa và nhỏ.
Khảo sát hiện trạng
Khách sạn được cấu thành từ các phòng ban có mối quan hệ hỗ trợ lẫn nhau, với tổ chức rõ ràng và không chồng chéo Tất cả hoạt động kinh doanh của khách sạn đều được quản lý và điều hành bởi Ban giám đốc.
Hình 1.1: Cơ cấu tổ chức của khách sạn.
Giám đốc: chịu trách nhiệm với hội đồng quản trị và chịu trách nhiệm trước tập thể nhân viên của khách sạn.
Phó giám đốc là người chịu trách nhiệm trực tiếp trước giám đốc và đảm nhiệm các công việc liên quan đến tổ chức lao động, khen thưởng và kỷ luật, tuyển dụng nhân sự, cũng như quản trị hành chính và lưu trữ văn thư.
Phòng kinh doanh có trách nhiệm quản lý và điều hành các hoạt động kinh doanh của khách sạn, nhằm đạt được mục tiêu đề ra và tối đa hóa lợi nhuận.
Phòng kế toán là bộ phận quan trọng trong khách sạn, chịu trách nhiệm trước ban giám đốc Bộ phận này bao gồm kế toán trưởng và các kế toán viên, chuyên thực hiện các kế hoạch tài chính cụ thể như lập kế hoạch tài chính, báo cáo cuối kỳ, tính lương cho nhân viên, dự trù ngân sách hàng năm, theo dõi thu chi, định giá thành và kiểm soát các kế hoạch tài chính.
Bộ phận lễ tân, nhà phòng, dịch vụ, văn phòng, an ninh và nhân sự là những bộ phận chủ chốt trong khách sạn, đóng vai trò cầu nối giữa khách hàng và giám đốc Các bộ phận này chịu trách nhiệm trực tiếp với phòng kinh doanh, đảm bảo sự hài lòng của khách hàng và hoạt động hiệu quả của khách sạn.
Bộ phận lễ tân được coi là bộ mặt của khách sạn, với nhân viên cần có kỹ năng giao tiếp xuất sắc và thông thạo nhiều ngoại ngữ Công việc của họ là điều phối các hoạt động trong khách sạn nhằm đáp ứng đầy đủ nhu cầu của khách hàng.
Bộ phận nhà phòng có nhiệm vụ duy trì sự sạch sẽ và sẵn sàng của các phòng khách sạn cho khách lưu trú Trong thời gian khách ở, họ thực hiện việc dọn vệ sinh hàng ngày và kiểm tra tình trạng phòng, bao gồm vệ sinh và trang thiết bị, trước và sau khi khách đến.
Bộ phận dịch vụ của chúng tôi cung cấp nhiều tiện ích đa dạng để đáp ứng nhu cầu của khách hàng, bao gồm giặt ủi, cho thuê xe, nhà hàng, spa, massage, xông hơi, phòng tập gym, quầy bar và tổ chức tiệc tùng, cưới hỏi.
Bộ phận an ninh đóng vai trò quan trọng trong việc bảo vệ tài sản và đảm bảo an toàn cho khách sạn cùng khách hàng, góp phần duy trì uy tín cho khách sạn Nhiệm vụ của nhân viên bảo vệ bao gồm giữ xe, hỗ trợ khuân hành lý và duy trì trật tự an ninh trong khu vực khách sạn Họ cũng theo dõi các thiết bị trong khách sạn và chịu trách nhiệm về hệ thống ánh sáng, đảm bảo mọi hoạt động diễn ra suôn sẻ và an toàn.
Khách sạn có các tiện nghi như sau:
Vào buổi tối, du khách có thể thư giãn tại các spa, massage và phòng xông hơi, hoặc tận hưởng không gian sang trọng trong những phòng nghỉ rộng rãi với tầm nhìn hướng biển tuyệt đẹp.
Tất cả các phòng đều có:
- Bồn tắm, vòi sen, phòng vệ sinh, áo tắm
- Máy sấy tóc, bàn là quần áo
- Ti vi, dàn âm thanh, hệ thống ánh sáng, truyền hình cáp thu qua vệ tinh
- Điện thoại bàn khi có yêu cầu sử dụng các dịch vụ của khách sạn
- Tủ lạnh, các loại nước giải khát.
- Giường cỡ King, ga nệm, gối, chăn chất lượng cao.
Khách sạn của chúng tôi có hai nhà hàng chuyên phục vụ các món ăn Việt Nam và Âu, đảm bảo chất lượng phục vụ hoàn hảo Chúng tôi tổ chức các buổi tiệc lớn cũng như các bữa ăn gia đình và gặp gỡ bạn bè, mang đến trải nghiệm ẩm thực tuyệt vời cho mọi khách hàng.
Trung tâm thương vụ, giao dịch và hội nghị
Khách sạn cung cấp các phòng họp có diện tích từ 129m2 đến 380m2, phù hợp cho các sự kiện lớn với sức chứa lên đến 400 khách Trung tâm giao dịch của khách sạn luôn sẵn sàng hỗ trợ các khách hàng doanh nhân.
- Máy rút tiền tự động (ATM) và đáp ứng các loại thẻ tín dụng quốc tế như: VISA, MASTER CARD, PLUS
- Hồ bơi sân thượng ngoài trời
- Dịch vụ truy cập mạng internet
- Dịch vụ thuê xe ô tô, xe máy, xe đạp, xe xích lô, …
Khi khách hàng đến khách sạn, nhân viên bảo vệ sẽ tiếp nhận và giữ xe, đồng thời trông coi hành lý cho khách Họ cũng sẽ hướng dẫn khách đến bộ phận tiếp tân để làm thủ tục nhận phòng.
Bộ phận tiếp tân sẽ tiếp nhận và kiểm tra các phòng trống phù hợp với yêu cầu của khách hàng, sau đó lập phiếu đăng ký và cập nhật thông tin khách hàng vào hệ thống quản lý.
- Khi khách yêu cầu sử dụng dịch vụ, nhân viên phục vụ sẽ cung cấp, chỉ dẫn cho khách.
Khi khách hàng yêu cầu trả phòng, nhân viên lễ tân sẽ lập phiếu thanh toán chi tiết và chuyển cho bộ phận kế toán để lập hóa đơn thanh toán cho khách.
Hàng tháng nhân viên kế toán sẽ tiến hành kiểm kê thu chi, đóng thuế kinh thuế kinh doanh.
- Giám đốc khách sạn sẽ quản lý, chịu trách nhiệm về mọi công việc của các nhân viên, và cũng là người chịu thuế.
Khảo sát phần cứng, phần mềm
Giao diện thân thiện, dễ sử dụng với người dùng.
Khả năng sao lưu phục hồi dữ liệu khi có sự cố.
Đảm bảo tốc độ và an toàn trong lưu trữ và xử lý dữ liệu.
Yêu cầu phân quyền người dùng.
+ CPU: Intel Core i5-8400 trở lên.
+ Hệ điều hành: Microsoft Windows 2010 trở lên.
+ NET Framework 4.0+ Microsoft SQL Server.
Các chức năng của hệ thống
Chương trình thực hiện được các chức năng sau:
- Quản lý thuê phòng/trả phòng
PHÂN TÍCH THIẾT KẾ HỆ THỐNG
Các loại tài khoản sử dụng ứng dụng
STT Tên tài khoản Ý nghĩa và nhiệm vụ
1 Quản trị viên (Admin) Admin là người giữ vai trò chính của hệ thống, là người điều hành, quản lý và theo dõi mọi hoạt động của hệ thống.
Admin có thể thực hiện tất cả các chức năng trong hệ thống quản trị, bao gồm đăng nhập, quản lý tài khoản, quản lý khách hàng, quản lý phòng và quản lý dịch vụ.
Nhân viên (User ) trong hệ thống khách sạn được xem như là một phần quan trọng, có quyền truy cập tương đương với admin để thuận tiện cho việc quản lý, ngoại trừ quyền quản lý tài khoản.
Bảng 3.1: Các loại tài khoản
Các chức năng của hệ thống
STT Tên chức năng Mô tả
Đăng nhập là bước quan trọng giúp giám đốc và nhân viên khách sạn tương tác với hệ thống một cách hiệu quả Quy trình này đảm bảo xác thực thông tin người dùng và bảo mật an toàn cho hệ thống.
2 Quản lý tài khoản Chỉ admin mới thực hiện các thao tác:
3 Quản lý khách hàng Thực hiện các thao tác:
4 Quản lý dịch vụ Thực hiện các thao tác:
5 Quản lý phòng Thực hiện các thao tác:
6 Quản lý thuê phòng/trả phòng
Thực hiện các thao tác:
Bảng 3.2: Chức năng trong hệ thống.
Sơ đồ phân rã chức năng
2.1 Quản lý tài nhân viên
3.1 Cập nhật thông tin khách
3.2 Tra cứu thông tin khách
3.3 Quản lý khách lưu trú
4.1 Quản lý danh mục dịch vụ
4.2 Cung cấp sử dụng dịch vụ
4.3 Lập hóa đơn dịch vụ
5.2 Tra cứu thông tin phòng
5.3 Quản lý tình trạng phòng
6 QUẢN THUÊ/TRẢ LÝ PHÒNG
Biểu đồ Use case
GiamDoc (from Use Case View)
NhanVienQuanLy (from Use Case View)
DangNhap (from Use Case View)
3.4.2 Gói quản lý tài khoản
Hình 2.2: Quản lý tài khoản.
3.4.3 Gói quản lý khách hàng
Hình 2.2: Quản lý khách hàng.
3.4.4 Gói quản lý dịch vụ
Hình 2.3: Quản lý dịch vụ.
3.4.6 Gói quản lý thuê phòng / trả phòng
Hình 2.6: Quản lý tìm kiếm
Đặc tả các ca sử dụng
- Tên ca sử dụng: Đăng nhập.
- Tác nhân: Giám đốc và nhân viên quản lý.
- Mục đích: Đảm bảo xác thực thông tin người sử dụng và an toàn bảo mật hệ thống, tránh việc truy cập tràn lan từ bên ngoài.
- Mô tả khái quát: Nhân viên có trong khách sạn khi muốn thao tác với hệ thống phải đăng nhập vào hệ thống.
- Tiền điều kiện: Nhân viên quản lý và giám đốc phải có tài khoản (user name) và mật khẩu (password) riêng được hệ thống cấp trước đó.
- Luồng sự kiện chính cho use case đăng nhập
1 Nhân viên quản lý hoặc giám đốc truy cập hệ thống.
2 Nhập thông tin đăng nhập (tài khoản, mật khẩu).
3 Gửi thông tin đã nhập đến hệ thống.
4 Hệ thống hiển thị form đăng nhập.
5 Hệ thống kểm tra thông tin đăng nhập, nếu đúng thì cho phép truy cập vào hệ thống, sai thì chuyển sang thực hiện luồng nhánh A1.
- Luồng nhánh A1: Nhân viên quản lý hoặc giám đốc đăng nhập không thành công
1 Hệ thống thông báo quá trình đăng nhập hệ thống không thành công.
2 Chọn đăng nhập lại hay hủy đăng nhập Nếu hủy đăng nhập thì thực hiện bước 6.
3 Hệ thống yêu cầu nhập lại tài khoản và mật khẩu nhưng chỉ trong giới hạn cho phép.
- Hậu điều kiện: Nếu use case thành công thì actor lúc này đã đăng nhập vào hệ thống Nếu không trạng thái hệ thống không thay đổi.
- Các điểm mở rộng: Đăng nhập thành công và có thể sử dụng các chức năng mà hệ thống cung cấp.
Use case 2 Thêm tài khoản
- Tên ca sử dụng: Thêm tài khoản
- Tác nhân: Giám đốc, Quản trị viên
- Mục đích: Cập nhật thông tin về tài khoản hoặc của nhân viên mới vào hệ thống
Nghiệp vụ cập nhật thông tin nhân viên diễn ra khi có sự thay đổi như số điện thoại, địa chỉ liên lạc hoặc tình trạng Để sửa thông tin, giám đốc cần đăng nhập vào Danh mục quản lý tài khoản, nhập tên hoặc mã tài khoản cần chỉnh sửa và yêu cầu xem danh sách Màn hình sẽ hiển thị toàn bộ thông tin của tài khoản đó, sau đó quản trị viên sẽ tiến hành sửa đổi các thông tin cần thiết và yêu cầu hệ thống thực hiện.
- Luồng sự kiện chính cho use case thêm tài khoản
1 Quản trị viên đăng nhập vào hệ thống Quản lý khách sạn
2 Quản trị viên chọn danh mục quản lý nhân viên
3 Quản trị viên nhập tên tài khoản cần thêm và yêu cầu xem danh sách.
4 Hệ thống xử lý và trả ra màn hình danh sách tài khoản cần thêm
5 Giám đốc hoặc quản trị viên nhập các thông tin cần thiết và yêu cầu hệ thống thêm tài khoản này
6 Hệ thống tự động cập nhật thêm tài khoản mới và hiển thị kết quả
- Luồng nhánh: Lỗi không thực hiện được do trùng tên tài khoản
1 Màn hình báo lỗi “Trùng tên tài khoản không thêm được”.
2 Nhân viên nhập lại tên tài khoản và tiếp tục bước 3.
Use case 3 Sửa thông tin tài khoản
- Tên ca sử dụng: Sửa tài khoản
- Tác nhân: Giám đốc, Quản trị viên
- Mục đích: Sửa các thông tin về một tài khoản đang tồn tại trong hệ thống
Nghiệp vụ sửa đổi thông tin tài khoản diễn ra khi có sự thay đổi như tên tài khoản hoặc mật khẩu Để thực hiện việc này, giám đốc cần đăng nhập vào danh mục quản lý tài khoản, nhập tên tài khoản cần sửa và yêu cầu xem danh sách Hệ thống sẽ hiển thị tất cả thông tin liên quan đến tài khoản cần sửa hoặc tất cả các tài khoản trong phòng ban Sau đó, giám đốc có thể chỉnh sửa các thông tin cần thiết và yêu cầu hệ thống thực hiện các thay đổi.
- Luồng sự kiện chính cho use case sửa tài khoản
1 Quản trị viên đăng nhập vào hệ thống Quản lý khách sạn
2 Quản trị viên chọn danh mục quản lý tài khoản
3 Quản trị viên nhập các thông tin của tài khoản cần sửa thông tin và yêu cầu xem danh sách.
4 Hệ thống xử lý và trả ra màn hình danh sách tài khoản của phòng ban có tài khoản cần sửa, hoặc thông tin của tài khoản cần sửa.
5 Giám đốc chọn tài khoản cần sửa, sửa các thông tin cần sửa của tài khoản đó và yêu cầu hệ thống thực hiện.
6 Hệ thống xử lý và trả ra kết quả ra màn hình.
- Luồng nhánh: Không tìm được tài khoản / phòng ban
1 Màn hình báo lỗi “Không tìm thấy tài khoản” / “Không tìm thấy phòng ban nào”
2 Nhân viên nhập lại tên tài khoản đúng / tên phòng ban đúng, tiếp tục use case từ bước 3.
Use case 4 Xóa tài khoản
- Tên ca sử dụng: Xóa tài khoản
- Mục đích: Xóa tất cả các thông tin trong hệ thống mà liên quan đến tài khoản cần xóa.
Nghiệp vụ xóa tài khoản diễn ra khi thông tin về một nhân viên hoặc tài khoản không còn liên quan đến các hoạt động hiện tại và tương lai của khách sạn Để thực hiện việc này, giám đốc cần đăng nhập vào hệ thống, nhập tên hoặc mã tài khoản cần xóa và yêu cầu xem danh sách Hệ thống sẽ hiển thị thông tin về tài khoản cần xóa hoặc danh sách tài khoản của phòng ban liên quan Giám đốc sau đó chọn tài khoản cần xóa và yêu cầu hệ thống thực hiện thao tác này.
- Luồng sự kiện chính cho use case xóa tài khoản
1 Giám đốc đăng nhập vào hệ thống quản lý khách sạn.
2 Giám đốc chọn danh mục quản lý tài khoản.
3 Giám đốc điền thông tin Tên tài khoản cần xóa và yêu cầu xem danh sách.
4 Hệ thống xử lý và hiển thị ra màn hình danh sách tài khoản của phòng ban có nhân viên muốn xóa hoặc thông tin về tài khoản muốn xóa.
5 Giám đốc xem lại tài khoản này có cần xóa hay không, chọn tài khoản muốn xóa và yêu cầu hệ thống thực hiện.
6 Hệ thống xử lý và trả kết quả ra màn hình.
Luồng nhánh A1: Không tìm được tài khoản / phòng ban
1 Màn hình báo lỗi “Không tìm thấy tài khoản” / “Không tìm thấy phòng ban nào”
2 Nhân viên nhập lại tên tài khoản đúng/ tên phòng ban đúng, tiếp tục use case từ bước 3.
Quản trị viên trong luồng nhánh A2 sẽ kiểm tra lại tính cần thiết của việc xóa tài khoản Nếu phát hiện rằng nhân viên không thể thực hiện thao tác xóa, điều này cần được ghi nhận để đảm bảo quy trình quản lý tài khoản được thực hiện đúng cách.
1 Quản trị viên kiểm tra lỗi, nếu nhân viên đã xóa còn làm việc thì giám đốc ghi chú lại trong danh sách tài khoản cần xóa.
2 Giám đốc báo lại cho bên có trách nhiệm liên quan.
Use case 5 Thêm khách hàng
- Tên ca sử dụng: Thêm mới khách hàng.
- Tác nhân: Giám đốc và nhân viên quản lý.
Mục đích của nghiệp vụ này là cho phép người dùng bổ sung một hoặc nhiều khách hàng vào danh sách khách hàng của khách sạn Các thông tin cần thiết để thêm vào bao gồm mã khách hàng, họ tên, địa chỉ và giới tính của khách hàng.
Khi nhân viên quản lý có danh sách khách hàng mới của khách sạn, họ có thể thêm khách hàng vào danh sách bằng cách chọn chức năng quản lý khách hàng Màn hình quản lý sẽ xuất hiện, cho phép nhân viên nhập thông tin về khách hàng mới và thực hiện chức năng thêm khách hàng Quá trình này sẽ tiếp tục cho các khách hàng tiếp theo Sau khi hoàn tất, nhân viên sẽ thoát khỏi màn hình quản lý khách hàng.
- Luồng sự kiện chính cho use case thêm khách hàng:
1 Use case bắt đầu khi nhân viên yêu cầu thêm khách hàng chọn vào chức năng quản lý khách hàng.
2 Màn hình quản lý khách hàng xuất hiện.
3 Nhân viên nhập vào thông tin khách hàng cần thêm vào.
4 Thực thi chức năng thêm khách hàng Nếu chức năng không được thực thi thì thực hiện luồng nhánh A1.
5 Thoát khỏi màn hình quản lý khách hàng Nếu muốn thêm nhiều khách hàng nữa thì thực hiện luồng nhánh A2.
Luồng nhánh A1: Chức năng thêm khách hàng không được thực thi.
1 Thông báo có lỗi ràng buộc.
2 Nhập lại thông tin khách hàng.
Luồng nhánh A2: Thêm nhiều khách hàng.
Use case 6 Cập nhật khách hàng.
- Tên ca sử dụng: Cập nhật thông tin khách hàng.
- Tác nhân: Giám đốc và nhân viên quản lý.
Mục đích của việc cập nhật thông tin khách hàng là để người dùng có thể thay đổi hoặc bổ sung các thông tin còn thiếu Những thông tin có thể được điều chỉnh bao gồm họ tên, giới tính, địa chỉ và số điện thoại của khách hàng.
Khi nhân viên cần cập nhật thông tin khách hàng, họ sẽ truy cập vào chức năng quản lý khách hàng Màn hình quản lý sẽ hiện ra, và trước khi tiến hành cập nhật, nhân viên phải tra cứu thông tin khách hàng bằng cách nhập mã và họ tên của khách Sau khi thông tin hiển thị, nhân viên sẽ thực hiện các thao tác cần thiết để cập nhật Cuối cùng, họ sẽ thoát khỏi màn hình quản lý khách hàng.
- Luồng sự kiện chính cho use case cập nhật khách hàng
1 Use case bắt đầu khi nhân viên có nhu cầu cập nhật thông tin khách hàng bằng cách chọn vào chức năng quản lý khách hàng.
2 Màn hình quản lý khách hàng xuất hiện.
3 Nhân viên nhập vào mã khách hàng hoặc là tên khách hàng.
4 Thực thi chức năng tra cứu khách hàng Khi chức năng tra cứu khách hàng không được thực thi thì thực hiện luồng nhánh A1.
5 Hiển thị thông tin khách hàng cần cập nhật.
6 Thực hiện thao tác cập nhật thông tin khách hàng.
7 Thực thi chức năng cập nhật thông tin khách hàng.
8 Thoát khỏi màn hình quản lý khách hàng Nếu muốn cập nhật nhiều khách hàng thì thực hiện luồng nhánh A2.
Luồng nhánh A1: Chức năng tra cứu khách hàng không được thực thi.
1 Thông báo thông tin khách hàng không có thực,yêu cầu nhập lại mã khách hàng.
2 Nhập lại mã khách hàng hoặc họ tên khách hàng.
Luồng nhánh A2: Cập nhật thêm nhiều khách hàng.
Use case 7 Xóa khách hàng
- Tên ca sử dụng: Xóa thông tin khách hàng.
- Tác nhân: Giám đốc và nhân viên quản lý.
Mục đích của chức năng này là cho phép người dùng xóa một hoặc nhiều khách hàng khỏi danh sách khách hàng của khách sạn Thông tin bị xóa bao gồm mã khách hàng, họ tên, giới tính và địa chỉ của khách hàng.
Khi nhân viên cần xóa một hoặc nhiều khách hàng khỏi danh sách của khách sạn, họ sẽ chọn chức năng quản lý khách hàng để hiển thị màn hình quản lý Trước khi xóa thông tin, nhân viên phải tra cứu thông tin khách hàng bằng cách nhập mã hoặc họ tên, sau đó thực hiện chức năng tra cứu để hiển thị thông tin Sau khi xác nhận, nhân viên có thể tiến hành xóa khách hàng Nếu cần xóa thêm khách hàng, nhân viên sẽ lặp lại quy trình trên Cuối cùng, nhân viên sẽ thoát khỏi màn hình quản lý khách hàng.
- Luồng sự kiện chính cho use case xóa khách hàng
1 Use case bắt đầu khi nhân viên có nhu cầu thêm khách hàng vào danh sách bằng cách chọn vào chức năng quản lý khách hàng.
2 Màn hình quản lý khách hàng xuất hiện.
3 Nhân viên nhập vào mã khách hàng hoặc họ tên khách hàng.
4 Thực thi chức năng tra cứu thông tin khách hàng Nếu chức năng tra cứu không được thực thi thì thực hiện luồng nhánh A1.
5 Hiển thị thông tin khách hàng.
6 Thực thi chức năng xóa thông tin khách hàng Nếu việc xóa không được thực thi thì thực hiện luồng nhánh A2.
7 Thoát khỏi màn hình quản lý khách hàng Nếu muốn xóa thêm nhiều khách hàng thì thực hiện luồng nhánh A3.
Luồng nhánh A1: Chức năng tra cứu khách hàng không được thực thi.
1 Thông báo thông tin khách hàng không có thực, yêu cầu nhập lại mã khách hàng.
2 Nhập lại mã khách hàng hoặc họ tên khách hàng.
Luồng nhánh A2: Việc xóa không được thực thi.
1 Thông báo lỗi ràng buộc.
2 Nhập lại mã khách hàng.
Luồng nhánh A3: Muốn xóa thêm nhiều khách hàng.
Use case 8 Tìm kiếm khách hàng
- Tên ca sử dụng: Tra cứu khách hàng
- Tác nhân: Giám đốc và nhân viên quản lý.
Nghiệp vụ này giúp người quản lý tra cứu nhanh chóng thông tin của khách hàng hoặc nhóm khách hàng thuê theo đoàn Việc tra cứu có thể thực hiện theo mã khách hàng hoặc tên khách hàng Các thông tin hiển thị bao gồm mã khách hàng, họ tên, địa chỉ và số điện thoại, hỗ trợ hiệu quả trong việc quản lý dữ liệu khách hàng.
Khi nhân viên quản lý cần tra cứu thông tin khách hàng, họ sẽ truy cập vào chức năng quản lý khách hàng Tại đây, màn hình quản lý khách hàng sẽ hiển thị, cho phép nhân viên nhập mã khách hàng hoặc họ tên để thực hiện tra cứu Sau khi xem xét đầy đủ thông tin cần thiết, nhân viên có thể thoát khỏi màn hình quản lý khách hàng.
- Luồng sự kiện chính cho use case tra cứu khách hàng
1 Use case bắt đầu khi nhân viên yêu cầu tra cứu khách hàng bằng cách chọn chức năng quản lý khách hàng.
2 Màn hình quản lý khách hàng xuất hiện.
3 Nhân viên nhập vào mã khách hàng hoặc là tên khách hàng.
4 Thực thi chức năng tra cứu khách hàng Nếu chức năng tra cứu không đươc thực thi thực hiện luồng nhánh A1.
5 Hiển thị thông tin khách hàng tra cứu.
6 Thoát khỏi màn hình quản lý khách hàng Nếu muốn tra cứu khách hàng khác thì thực hiện luồng nhánh A2.
Luồng nhánh A1: Chức năng tra cứu không được thực thi
1 Thông báo thông tin khách hàng không có thực, yêu cầu nhập lại mã khách hàng.
2 Nhập lại mã khách hàng hoặc họ tên khách hàng.
Luồng nhánh A2: Tra cứu thông tin khách hàng khác.
Use case 9 Cập nhật phòng
- Tên ca sử dụng: Cập nhật phòng.
Mục đích của nghiệp vụ này là hỗ trợ khách hàng trong việc thay đổi thời gian đến và đi tại khách sạn Khách hàng chỉ cần gọi điện thoại đến khách sạn, và nhân viên lễ tân sẽ hướng dẫn và thực hiện các thủ tục cần thiết để đáp ứng yêu cầu của họ.
Nghiệp vụ thay đổi thời gian đặt phòng diễn ra khi khách hàng muốn điều chỉnh thời gian đến và đi Khách hàng sẽ gọi điện yêu cầu thay đổi và cung cấp thông tin cần thiết cho nhân viên Nhân viên sẽ kiểm tra và xác nhận thông tin trong hồ sơ đặt phòng, đồng thời kiểm tra tình trạng phòng theo loại đã đặt để xem có phù hợp với thời gian thay đổi hay không Nếu thời gian thay đổi phù hợp, nhân viên sẽ thực hiện việc điều chỉnh Ngược lại, nếu thời gian thay đổi không khả thi do phòng đã được đặt hết, nhân viên sẽ xin lỗi và từ chối yêu cầu của khách hàng.
- Luồng sự kiện chính cho use case thay đổi thông tin đặt phòng
1 Khách gọi điện đến và yêu cầu thay đổi thông tin đặt phòng.
2 Nhân viên nhận yêu cầu và yêu cầu khách cung cấp thông tin.
3 Nhân viên kiểm tra thông tin trong hồ sơ đặt phòng.
4 Xác nhận lại thông tin với khách.
5 Khách yêu cầu thông tin thời gian cần thay đổi.
6 Kiểm tra thông tin khách hàng thay đổi có phù hợp.
7 Nếu phù hợp, xác nhận lại với khách thông tin sẽ được thay đổi theo yêu cầu.
8 Cập nhật lại thông tin vào hồ sơ đặt phòng.
- Luồng nhánh: Nếu không phù hợp
1 Giới thiệu các giải pháp khác tới khách.
2 Nếu khách đồng ý thay đổi loại phòng thì cập nhật lại.
- Tên ca sử dụng: Thêm phòng
- Tác nhân: Nhân viên quản lý
Xây dựng biểu đồ tương tác
DangNhap : ManHinh : ManHinh : TaiKhoan : TaiKhoan
2: hien thi form dang nhap
3: nhap thong tin dang nhap
5: truy van 6: tra ve ket qua 7: xac nhan thong tin 8: tra ve ket qua
Hình 2.9: Biểu đồ trình tự đăng nhập.
3.6.1.2 Chức năng quản lý tài khoản
NhanVien Form : NhanVien : HeThongXuLy : HeThongXuLy : NhanVien : NhanVien
4: xem danh sach nhan vien
5: lay danh sach nhan vien
6: lay thong tin nhan vien
7: ket qua 8: hien thi danh sach nhan vien
9: xem chi tiet nhan vien
10: xem chi tiet nhan vien
12: xem thong tin nhan vien 13: chi tiet nhan vien 14: chi tiet nhan vien
16: them chi tiet nhan vien
18: them nhan vien 19: sua chi tiet nhan vien
24: xoa nhan vien 25: cham cong
3.6.1.3 Chức năng quản lý khách hàng
KhachHang Form : KhachHang : HeThong : HeThong : KhachHang : KhachHang
2: kiem tra dang nhap 3: dang nhap thanh cong
4: xem danh sach khach hang
5: lay danh sach khach hang
6: lay thong tin khach hang 7: ket qua 8: hien thi danh sach
9: xem chi tiet khach hang
12: tim kiem khach hang 13: chi tiet khach hang 14: chi tiet khach hang
15: hien thi 16: them khach hang
18: them khach hang 19: sua khach hang
21: sua khach hang 22: xoa khach hang
Hình 2.10: Biểu đồ trình tự quản lý khách hàng.
3.6.1.4 Chức năng quản lý phòng
QLPhong :HeThongXuLy :HeThongXuLy :Phong :Phong
2: kiem tra dang nhap 3: dang nhap thanh cong
4: dang ky phong khi KH den khach san
6: kiem tra phong 7: tra ve ket qua 8: hien thi danh sach phong
9: nhan phong va giao chia khoa phong cho KH
10: KH co yeu cau thay doi thong tin dat phong
12: kiem tra lai phong 13: tra ve ket qua 14: hien thi ket qua
15: cap nhat lai thong tin phong
Hình 2.11: Biểu đồ trình tự quản lý phòng.
3.6.1.5 Chức năng quản lý dịch vụ
QLDichVu Form : QLDichVu : HeThongXuLy : HeThongXuLy : DichVu : DichVu
2: kiem tra dang nhap 3: dang nhap thanh cong
4: xem danh sach dich vu
5: lay danh sach dich vu
6: lay thong tin ve dich vu 7: ket qua 8: hien thi danh sach
11: them dich vu 12: tra cuu dich vu
17: cap nhat dich vu 18: xoa dich vu
Hình 2.12: Biểu đồ trình tự quản lý dịch vụ.
2: 2: hien thi form dang nhap
3: 3: nhap thong tin dang nhap 4: 4: gui thong tin 5: 5: truy van
Hình 2.16: Biểu đồ cộng tác đăng nhập.
4: 4: xem danh sach khach hang
5: 5: lay danh sach khach hang
6: 6: lay thong tin khach hang
7: 7: ket qua 8: 8: hien thi danh sach
9: 9: xem chi tiet khach hang
13: 13: chi tiet khach hang 14: 14: chi tiet khach hang
15: 15: hien thi 16: 16: them khach hang
Hình 2.17: Biểu đồ cộng tác quản lý khách hàng.
QLPhong 1: 1: yeu cau dang nhap
4: 4: dang ky phong khi KH den khach san
6: 6: kiem tra phong 7: 7: tra ve ket qua
8: 8: hien thi danh sach phong 9: 9: nhan phong va giao chia khoa phong cho KH
10: 10: KH co yeu cau thay doi thong tin dat phong
12: 12: kiem tra lai phong 13: 13: tra ve ket qua
14: 14: hien thi ket qua 15: 15: cap nhat lai thong tin phong
Hình 2.18: Biểu đồ cộng tác quản lý phòng.
QLDichVu 1: 1: yeu cau dang nhap
4: 4: xem danh sach dich vu 6: 6: lay thong tin ve dich vu
9: 9: them dich vu 11: 11: them dich vu
12: 12: tra cuu dich vu 14: 14: tra cuu dich vu
15: 15: cap nhat dich vu 17: 17: cap nhat dich vu
18: 18: xoa dich vu 20: 20: xoa dich vu
5: 5: lay danh sach dich vu 10: 10: them dich vu 13: 13: tra cuu dich vu 16: 16: cap nhat dich vu 19: 19: xoa dich vu
Hình 3.19: Biểu đồ cộng tác quản lý dịch vụ.
3.6.3 Biểu đồ lớp tổng quát
Hình 3.20: Class Diagram hệ thống khách sạn KajimaL