3.1.1.10. Thanh toán hoá đơn
Tên chức năng: Thanh tốn hóa đơn
Đầu vào (Input): u cầu thanh tốn hố đơn của khách hàng.
Hình 21. P-Spec – Sơ đồ đặc tả chức năng thanh toán hoá đơn
3.1.1.11. Lập phiếu yêu cầu nhập nguyên liệu
Tên chức năng: Lập phiếu yêu cầu nhập nguyên liệu
Hình 22. P-Spec – Sơ đồ đặc tả chức năng lập phiếu yêu cầu nhập nguyên liệu
3.1.1.12. Duyệt yêu cầu nhập nguyên liệu
Tên chức năng: Duyệt yêu cầu nhập nguyên liệu
Đầu vào (Input): Phiếu yêu cầu nhập nguyên liệu
Hình 23. P-Spec – Sơ đồ đặc tả chức năng duyệt yêu cầu nhập nguyên liệu
3.1.1.13. Thêm nguyên liệu
Tên chức năng: Thêm nguyên liệu
Đầu vào (Input): Thơng tin ngun liệu
Hình 24. P-Spec – Sơ đồ đặc tả chức năng thêm nguyên liệu
3.1.1.14. Cập nhật nguyên liệu
Tên chức năng: Cập nhật nguyên liệu.
Đầu vào ( Input): Thơng tin về ngun liệu cần cập nhật
Hình 25. P-Spec – Sơ đồ đặc tả chức năng cập nhật nguyên liệu
3.1.1.15. Tìm kiếm nguyên liệu
Tên chức năng: Tìm kiếm nguyên liệu.
Đầu vào ( Input): Tên nguyên liệu
Hình 26. P-Spec – Sơ đồ đặc tả chức năng tìm kiếm ngun liệu
3.1.1.16. Thêm món ăn
Tên chức năng: Thêm món ăn.
Đầu vào ( Input): Thơng tin món ăn cần thêm
Hình 27. P-Spec – Sơ đồ đặc tả chức năng thêm món ăn
3.1.1.17. Cập nhật món ăn
Tên chức năng: Cập nhật món ăn.
Đầu vào ( Input): Thơng tin về món ăn cần cập nhật
Đầu ra ( Output): Thông báo cập nhật thành cơng và thơng tin món ăn sau khi được cập nhật.
Hình 28. P-Spec – Sơ đồ đặc tả chức năng cập nhật món ăn
3.1.1.18. Tìm kiếm món ăn
Tên chức năng : Tìm kiếm món ăn
Input: Tên món ăn cần tìm kiếm
Hình 29. P-Spec – Sơ đồ đặc tả chức năng tìm kiếm món ăn
3.1.1.19. Lập báo cáo thống kê nhập nguyên liệu
Tên chức năng : Lập báo cáo thống kê nhập nguyên liệu
Input : Tên nguyên liệu và số lượng nguyên liệu nhập
Hình 30. P-Spec – Đặc tả chức năng lập báo cáo thống kê nhập nguyên liệu
3.1.1.20. Lập báo cáo thống kê nguyên liệu
Tên chức năng : Báo cáo thống kê nguyên liệu
Input : Tên và số lượng ngun liệu hiện có trong kho
Hình 31. P-Spec – Sơ đồ đặc tả chức năng lập báo thống kê nguyên liệu
3.1.1.21. Lập báo cáo thống kê doanh thu
Tên chức năng: Lập báo cáo thống kê doanh thu
Đầu vào (Input): Số lượng hóa đơn
Đầu ra (Output): Danh sách báo cáo thống kê doanh thu theo ngày, tháng, năm
Hình 32. P-Spec – Sơ đồ đặc tả chức năng lập báo cáo thống kê doanh thu
3.1.1.22. Tìm kiếm báo cáo doanh thu
Tên chức năng : Tìm kiếm báo cáo doanh thu
Input: Ngày lập báo cáo
Hình 33. P-Spec – Sơ đồ đặc tả chức năng tìm kiếm báo cáo doanh thu
3.1.1.23. Lập báo cáo thống kê tài chính
Tên chức năng: Báo cáo thống kê tài chính
Đầu vào (Input): Báo cáo doanh thu
Hình 34. P-Spec – Sơ đồ đặc tả chức năng lập báo cáo thống kê tài chính
3.1.1.24. Đăng xuất
Tên chức năng: Đăng xuất
Đầu vào (Input): Đăng nhập thành công vào hệ thống với đúng tên tài khoản, mật khẩu
Hình 35. P-Spec – Sơ đồ đặc tả chức năng đăng xuất
3.1.1.25. Thêm nhân viên
Tên chức năng: Thêm nhân viên
Đầu vào (Input): Thông tin nhân viên cần thêm (tên nhân viên, chức vụ, bộ phận)
Hình 36. P-Spec – Sơ đồ đặc tả chức năng thêm nhân viên
3.1.2. Rà soát việc đáp ứng các yêu cầu3.1.2.1 Bảng thông tin các yêu cầu 3.1.2.1 Bảng thông tin các yêu cầu
Mã yêu cầu Yêu cầu
R1 Bộ phận quản lý bếp phải lập yêu cầu nhập nguyên liệu R2 Bộ phận phục vụ phải tiếp nhận đơn order món từ bộ
phận phục vụ
R3 Bộ phận bếp cần nắm bắt, theo dõi nguyên liệu trong bếp
R5 Bộ phận bếp phải nắm bắt theo dõi được thực đơn, món ăn trong menu.
R6 Bộ phận phục vụ tìm kiếm thơng tin khách hàng để kiểm tra, xác nhận thông tin đặt bàn của khách hàng. R7 Bộ phận phục vụ cần giới thiệu món ăn cho khách và
tiếp nhận yêu cầu gọi món từ khách hàng R8 Bộ phận kế tốn - thu ngân phải lập hóa đơn.
R9 Bộ phận kế toán - thu ngân phải thực hiện thanh tốn, in hóa đơn cho khách hàng
R10 Bộ phận quản lý phải quản lý được người dùng trong hệ thống gồm có:
Nhân viên kế tốn - thu ngân
Nhân viên quản lý bếp nhập nguyên liệu
Nhân viên phục vụ
R11 Bộ phận quản lý, kế toán - thu ngân đều có thể xem được báo cáo về tình hình nhập ngun liệu, các thơng tin về doanh thu, tài chính…
(ngày, tháng, năm).
3.1.2.2 Bảng thông tin các chức năng
Mã chức năng Chức năng
F1 1.1 Đặt bàn (6)
F2 1.2 Tìm kiếm khách hàng (7) F3 1.3 Lập phiếu order món ăn (8) F4 2.1 Lập hóa đơn thanh tốn (9) F5 2.2 Thanh tốn hóa đơn (10)
F6 3.1 Lập phiếu yêu cầu nguyên liệu (11)
F7 3.2 Duyệt phiếu yêu cầu nhập nguyên liệu (12) F8 3.3 Thêm nguyên liệu (13)
F9 3.4 Cập nhật nguyên liệu (14) F10 3.5 Tìm kiếm ngun liệu (15) F11 3.6 Thêm món ăn (16)
F12 3.7 Cập nhật món ăn (17) F13 3.8 Tìm kiếm món ăn (18)
F14 4.1 Lập báo cáo thống kê nhập nguyên liệu (19) F15 4.2 Lập báo cáo thống kê nguyên liệu (20) F16 4.3 Lập báo cáo thống kê doanh thu (21) F17 4.4 Tìm kiếm báo cáo doanh thu (22) F18 4.5 Lập báo cáo thống kê tài chính (23) F19 5.1 Đăng nhập (1)
F20 5.2 Cập nhật thông tin tài khoản (3) F21 5.3 Đổi mật khẩu (4)
F22 5.4 Khóa tài khoản (5) F23 5.5 Cấp tài khoản (2) F24 5.6 Thêm nhân viên (25) F25 5.7 Đăng xuất (24)
F26 5.8 Thêm nhân viên (25)
F2 X F3 X F4 X F5 X F6 X F7 X F8 X F9 X F10 X F11 X F12 X F13 X F14 X F15 X F16 X F17 X
F18 X F19 X F20 X F21 X F22 X F23 X F24 X F25 X F26 X
3.1.3. Mơ hình hố luồng dữ liệu cho các chức năng
3.1.3.1 Mơ hình hóa luồng dữ liệu mức đỉnh
3.1.3.2 Mơ hình hóa luồng dữ liệu mức dưới đỉnh 3.1.3.2.1 Module quản lý khách hàng
Hình 38. DFD – Module quản lý khách hàng
3.1.3.2.2 Module quản lý thanh toán
3.1.3.2.3 Module quản lý nguyên liệu
3.1.3.2.4 Module quản lý báo cáo thống kê
3.1.3.2.5 Module quản lý tài khoản
Hình 42. DFD – Module quản lý tài khoản
3.2. Phân tích hệ thống về dữ liệu (Áp dụng phương pháp Top-Down) 3.2.1 Mơ hình thực thể - quan hệ
3.2.1.1. Xây dựng mơ hình ERD mở rộng
❖ Xác định các thực thể và thuộc tính
Dựa vào [Biểu mẫu 2.1] - Hoá đơn và [Biểu mẫu 2.4] - Phiếu khảo sát ý kiến khách hàng, ta sẽ xác định được thực thể KHÁCH HÀNG và HĨA
ĐƠN.
(2) HĨA ĐƠN: Số hóa đơn, Số bàn, Ngày giờ, Tên hàng, Số lượng, Đơn giá,
Thành tiền, Tổng cộng, Chiết khấu, Tiền đặt trước, Tổng tiền giảm, Khách hàng phải trả, Tiền khách đưa, Tiền trả lại khách, Nhân viên thanh toán
Dựa vào [Biểu mẫu 2.7] - Đơn xin nghỉ bù và [Biểu mẫu 2.8] - Đơn xinvề sớm, ta sẽ xác định được thực thể NHÂN VIÊN về sớm, ta sẽ xác định được thực thể NHÂN VIÊN
(3) NHÂN VIÊN: Tên nhân viên, Chức vụ, Bộ phận
Để đáp ứng được nhóm chức năng Quản lý tài khoản, ta cần bổ sung các thực thể ĐĂNG NHẬP với các thuộc tính Tên đăng nhập, Mật khẩu, Trạng thái tài khoản
(4) ĐĂNG NHẬP: Tên đăng nhập, Mật khẩu, Trạng thái tài khoản
Dựa vào [Biểu mẫu 2.11] - Giấy đề nghị cấp nguyên vật liệu, ta xácđịnh được thực thể NGUYÊN LIỆU và NHẬP NGUYÊN LIỆU định được thực thể NGUYÊN LIỆU và NHẬP NGUYÊN LIỆU
(5) NGUYÊN LIỆU: Tên nguyên liệu, Số lượng, Đơn giá, Đơn vị tính
(6) NHẬP NGUYÊN LIỆU: Tên người yêu cầu, Bộ phận, Lý do sử dụng,
Tên nguyên vật liệu, Ngày yêu cầu, Số lượng đề nghị, Số lượng thực xuất, Đơn vị tính.
→ Bổ sung thuộc tính Trạng thái yêu cầu. Thuộc tính này nhận những giá trị để mô tả cho bảng NHẬP NGUYÊN LIỆU này đang ở trạng thái nào. Cụ thể trong bài toán này gồm các trạng thái: Được xác nhận, Chưa được xác nhận
→ (6) NHẬP NGUYÊN LIỆU: Tên người yêu cầu, Bộ phận, Lý do sử dụng, Tên nguyên vật liệu, Ngày yêu cầu, Số lượng đề nghị, Số lượng thực xuất, Đơn vị tính, Trạng thái yêu cầu
Dựa vào [Biểu mẫu 2.12] - Giấy order đồ ăn và quy trình order đồ ăncho khách ở mục 2.1.3.3, ta xác định được thực thể PHIẾU ORDER cho khách ở mục 2.1.3.3, ta xác định được thực thể PHIẾU ORDER
(8) MÓN ĂN: Tên món, Giá bán, Đơn vị tính, Hình ảnh món
⇒ KẾT LUẬN CÁC THỰC THỂ VÀ THUỘC TÍNH:
(1) KHÁCH HÀNG: Họ tên, Ngày sinh, Địa chỉ, Số điện thoại, Email
(2) HÓA ĐƠN: Số hóa đơn, Số bàn, Ngày giờ, Tên hàng, Số lượng, Đơn giá,
Thành tiền, Tổng cộng, Chiết khấu, Tiền đặt trước, Tổng tiền giảm, Khách hàng phải trả, Tiền khách đưa, Tiền trả lại khách, Nhân viên thanh toán
(3) NHÂN VIÊN: Tên nhân viên, Chức vụ, Bộ phận
(4) ĐĂNG NHẬP: Tên đăng nhập, Mật khẩu, Trạng thái tài khoản (5) NGUYÊN LIỆU: Tên nguyên liệu, Số lượng, Đơn giá, Đơn vị tính
(6) NHẬP NGUYÊN LIỆU: Tên người yêu cầu, Bộ phận, Lý do sử dụng,
Tên nguyên vật liệu, Ngày yêu cầu, Số lượng đề nghị, Số lượng thực xuất, Đơn vị tính, Trạng thái yêu cầu
(7) PHIẾU ORDER: Số bàn, Ngày giờ, Tên nhân viên, Số khách, Tên món,
Số lượng
(8) MĨN ĂN: Tên món, Giá bán, Đơn vị tính, Hình ảnh món
❖ Xác định mối liên kết giữa các thực thể
Thực thể KHÁCH HÀNG và thực thể HĨA ĐƠN có kiểu liên kết 1 – N
Thực thể NHÂN VIÊN và thực thể HĨA ĐƠN có kiểu liên kết 1 – N
Thực thể NHÂN VIÊN và thực thể ĐĂNG NHẬP có kiểu liên kết 1 – N
Thực thể NHÂN VIÊN và thực thể NHẬP NGUYÊN LIỆU có kiểu liên kết 1 – N
Thực thể NGUYÊN LIỆU và thực thể NHẬP NGUYÊN LIỆU có kiểu liên kết N – M
Thực thể NGUYÊN LIỆU và thực thể MĨN ĂN có kiểu liên kết N – M
Thực thể MĨN ĂN và thực thể PHIẾU ORDER có kiểu liên kết N – M
Thực thể HÓA ĐƠN và thực thể PHIẾU ORDER có kiểu liên kết N - M
❖ Chuẩn hóa ERD mở rộng
Hình 43. ERD mở rộng
3.2.1.2. Chuyển từ ERD mở rộng về ERD kinh điển
❖ Xét thực thể và thuộc tính khóa
KHÁCH HÀNG: Mã khách hàng là khóa chính.
Vì các thuộc tính Họ tên, Ngày sinh, Địa chỉ là thuộc tính mơ tả. Thuộc tính Số điện thoại và thuộc tính Email xác định tính duy nhất (có thể làm khố) nhưng vì nó q dài. Để dễ quản lý thì nhóm em xin chọn thêm thuộc tính Mã khách hàng để làm khóa chính.
HĨA ĐƠN: Số hóa đơn là khóa chính
Tiền trả lại khách là thuộc tính suy dẫn, và thuộc tính Số hóa đơn thể hiện tính duy nhất. Do đó, chúng ta chọn Số hóa đơn là khóa chính.
NHÂN VIÊN: Mã nhân viên là khóa chính
Vì các thuộc tính Tên nhân viên, Chức vụ, Bộ phận là thuộc tính mơ tả. Để dễ quản lý, nhóm chúng em xin chọn Mã nhân viên làm khóa chính.
ĐĂNG NHẬP: Tên đăng nhập là khóa chính
NGUN LIỆU: Mã ngun liệu là khóa chính
Vì các thuộc tính Tên ngun liệu, Số lượng, Đơn giá, Đơn vị tính là thuộc tính mơ tả. Để dễ quản lý, nhóm chúng em xin chọn Mã nguyên liệu làm khóa chính.
NHẬP NGUN LIỆU: Mã nhập ngun liệu là khóa chính
Vì các thuộc tính Tên người u cầu, Bộ phận, Lý do sử dụng, Tên nguyên vật liệu, Ngày yêu cầu, Số lượng yêu cầu, Số lượng thực xuất, Đơn vị tính, Trạng thái u cầu là thuộc tính mơ tả. Để dễ quản lý, nhóm chúng em xin chọn Mã nhập ngun liệu làm khóa chính.
PHIẾU ORDER: Mã phiếu order là khố chính
Vì các thuộc tính Số bàn, Ngày giờ, Tên nhân viên, Số khách, Tên món, Số lượng là thuộc tính mơ tả. Thuộc tính Ngày giờ khơng thể là duy nhất vì cùng 1 lúc có thể có nhiều khách hàng order. Do đó, để dễ quản lý nhóm em xin chọn Mã phiếu order làm khóa chính.
MĨN ĂN: Mã món là khóa chính
Vì các thuộc tính Tên món, Giá bán, Đơn vị tính, Hình ảnh món là thuộc tính mơ tả. Để dễ quản lý, nhóm em xin chọn Mã món làm khóa chính.
❖ Quy tắc 1: Khử kiểu thuộc tính đa trị của kiểu thực thể:
Khơng có thuộc tính đa trị của kiểu thực thể
Khơng có thuộc tính đa trị của kiểu liên kết ❖ Quy tắc 3: Khử kiểu thuộc tính phức hợp:
Khơng có thuộc tính phức hợp ❖ Mơ hình ERD kinh điển
❖ Quy tắc 5: Xử lý kiểu liên kết 1 - 1
Khơng có kiểu liên kết 1 - 1 ❖ Quy tắc 6: Xử lý kiểu liên kết m - n
(9) CHI TIẾT NHẬP: Mã nhập nguyên liệu, Mã nguyên liệu (10) NGUYÊN LIỆU MĨN: Mã ngun liệu, Mã món
(11) PHIẾU ORDER MĨN: Mã phiếu order, Mã món ❖ Quy tắc 7: Xác định kiểu thuộc tính kết nối
Khử thuộc tính suy dẫn: Thành tiền, Tổng cộng, Tổng tiền giảm, Khách hàng phải trả, Tiền trả lại khách
(2’) HĨA ĐƠN: Số hóa đơn, Số bàn, Ngày giờ, Tên hàng, Số lượng,
Đơn giá, Chiết khấu, Tiền đặt trước, Tiền khách đưa, Nhân viên thanh tốn.
Hình 45. ERD hạn chế
3.2.2 Ma trận rà soát thực thể - chức năng
(1) E1. KHÁCH HÀNG: Mã khách hàng, Họ tên, Ngày sinh, Địa chỉ, Số điện thoại, Email
(2) E2. HỐ ĐƠN: Số hố đơn, Số bàn, Ngày giờ, Tên hàng, Số lượng, Đơn giá, Chiết khấu, Tiền đặt trước, Tiền khách đưa, Nhân viên thanh toán.
(3) E3. NHÂN VIÊN: Mã nhân viên, Tên nhân viên, Chức vụ, Bộ phận (4) E4. ĐĂNG NHẬP: Tên đăng nhập, Mật khẩu, Trạng thái tài khoản
(5) E5. NGUYÊN LIỆU: Mã nguyên liệu, Tên nguyên liệu, Số lượng, Đơn giá, Đơn vị tính
(7) E7. PHIẾU ORDER: Mã phiếu order, Số bàn, Ngày giờ, Tên nhân viên, Số khách, Tên món, Số lượng
(8) E8. MĨN ĂN: Mã món, Tên món, Giá bán, Đơn vị tính, Hình ảnh món (9) E9. CHI TIẾT NHẬP: Mã nhập nguyên liệu, Mã nguyên liệu
(10) E10. NGUN LIỆU MĨN: Mã ngun liệu, Mã món (11) E11. PHIẾU ORDER MĨN: Mã phiếu order, Mã món
E1 E2 E3 E4 E5 E6 E7 E8 E9 E10 E11 1.1 Đặt bàn C 1.2 Tìm kiếm khách hàng R 1.3 Lập phiếu order món ăn C R C 2.1 Lập hóa đơn thanh tốn R C R 2.2 Thanh tốn hóa đơn R R 3.1 Lập phiếu yêu cầu nhập nguyên liệu R C C 3.2 Duyệt phiếu yêu cầu nhập nguyên
liệu 3.3 Thêm nguyên liệu C C 3.4 Cập nhật ngun liệu RU 3.5 Tìm kiếm ngun liệu R 3.6 Thêm món ăn C C 3.7 Cập nhật món ăn RU 3.8 Tìm kiếm món ăn R 4.1 Lập báo