You are on page 1of 68

TRƯỜNG ĐẠI HỌC KHOA HỌC – ĐẠI HỌC HUẾ

KHOA CÔNG NGHỆ THÔNG TIN

BÀI TẬP NHÓM


HỌC PHẦN KỸ NGHỆ
PHẦN MỀM

ĐỀ TÀI:
QUẢN LÝ QUÁN LẨU
NƯỚNG ĐIHA BBQ
Link truy cập drive
https://drive.google.com/drive/folders/
1LtRv3oZM9CV29ENQ920GGArJslmnkkkN?usp=share_link

1
MỤC LỤC

MỤC LỤC..................................................................................................................................................2
I. QUẢN LÝ NHÓM.............................................................................................................................4
1. Thông tin thành viên.....................................................................................................................4
2. Bảng tự đánh giá năng lực............................................................................................................4
3. Đánh giá thành viên qua từng tuần..............................................................................................5
4. Đánh giá tổng kết...........................................................................................................................9
II. NỘI DUNG...................................................................................................................................10
1. Tài liệu phác thảo dự án..............................................................................................................10
1.1 Quản lý món:...............................................................................................................................10
1.2 Quản lý Order..............................................................................................................................11
1.3 Quản lý hóa đơn...........................................................................................................................12
1.4. Thống kê báo cáo........................................................................................................................13
2. Lập lịch ban đầu..........................................................................................................................15
2.1 LẬP KẾ HOẠCH QUẢN LÝ QUÁN ĂN ĐIHA..............................................................................15
2.2 BẢNG CÔNG VIỆC QUẢN LÝ QUÁN ĂN ĐIHA.............................................................16
2.3 BẢNG PHÂN RÃ CÔNG VIỆC...........................................................................................17
2.4 XÁC ĐỊNH CÁC ĐỈNH TRUNG GIAN CỦA MẠNG........................................................17
2.5 MẠNG CÔNG VIỆC.................................................................................................................18
2.6 ĐƯỜNG GANTT......................................................................................................................19
2.7 BIỂU ĐỒ GANTT – LỊCH TRÌNH DỰ ÁN..........................................................................................19
3. Các ràng buộc của dự án.............................................................................................................20
3.1 Quản lý món:..............................................................................................................................20
3.2 Quản lý order:............................................................................................................................22
3.3 Quản lý hóa đơn:.......................................................................................................................24
3.4 Thống kê báo cáo.......................................................................................................................27
4. Phân tích và thiết kế dự án..........................................................................................................28
A. Biểu đồ usecase:.......................................................................................................................28
1. Sơ đồ hệ thống...........................................................................................................................28
2. Quản lý món ăn..........................................................................................................................28
3. Quản lý Order............................................................................................................................31

2
4. Quản lý hóa đơn.........................................................................................................................33
5. Thống kê báo cáo.......................................................................................................................35
B. Biểu đồ hoạt động........................................................................................................................37
1. Biểu đồ hoạt động ĐĂNG NHẬP:...........................................................................................37
2. Biểu đồ hoạt động quản lý món................................................................................................38
2.1 Biểu đồ hoạt động thêm món:...........................................................................................38
2.2 Biểu đồ hoạt động sửa món:..............................................................................................39
2.3 Biểu đồ hoạt động xóa món:.............................................................................................40
2.4 Biểu đồ hoạt động tìm kiếm món:.....................................................................................41
3. Biểu đồ hoạt động quản lý Order..............................................................................................42
3.1 Biểu đồ hoạt động gọi món:..............................................................................................42
3.2 Biểu đồ hoạt động Sửa order:............................................................................................43
4 Biểu đồ hoạt động quản lý hóa đơn...........................................................................................44
4.1 Biểu đồ hoạt động tạo hóa đơn:.........................................................................................44
4.2 Biểu đồ hoạt động sửa hóa đơn:........................................................................................45
4.3 Biểu đồ hoạt động hóa đơn:.............................................................................................46
C. Biểu đồ tuần tự............................................................................................................................47
1. Biểu đồ tuần tự đăng nhập:.......................................................................................................47
2. Biểu đồ tuần tự quản lý món ăn................................................................................................47
2.1 Biểu đồ tuần tự thêm món:................................................................................................47
2.2 Biểu đồ tuần tự sửa món:..................................................................................................48
2.3 Biểu đồ tuần tự xóa món:..................................................................................................48
2.4 Biểu đồ tuần tự tìm kiếm món:..........................................................................................49
3. Biểu đồ tuần tự Order..............................................................................................................49
3.1 Biểu đồ tuần tự nhập order:...............................................................................................49
3.2 Biểu đồ tuần tự sửa order:................................................................................................50
4. Biểu đồ tuần tự quản lý hóa đơn...............................................................................................51
4.1 Biểu đồ tuần tự tạo hóa đơn:.............................................................................................51
4.2 Biểu đồ tuần tự sửa hóa đơn:.............................................................................................52
5. Code cài đặt và giao diện.............................................................................................................53

3
I. QUẢN LÝ NHÓM

1. Thông tin thành viên


STT Họ tên SDT Email

1 Trần Nhật An( leader) 0787578885 20T1020001@husc.edu.vn


2 Lê Hữu Nhật Duy 0981913326 20T1020022@husc.edu.vn
3 Bùi Văn Hoàng Hải 0395362807 20T1020356@husc.edu.vn
4 Nguyễn Bá Duy Thịnh 0777439316 20T1020105@husc.edu.vn
5 Nguyễn Tiến Đạt 0379384012 20T1020014@husc.edu.vn
6 Huỳnh Văn Hiếu 0935205447 20T1020163@husc.edu.vn
7 Phan Bá Trần 0935243875 20T1020598@husc.edu.vn

2. Bảng tự đánh giá năng lực


STT Họ tên Khả năng chuyên môn
Java SQL C++
1 Trần Nhật An( leader) 5 7 7
2 Lê Hữu Nhật Duy 4 5 5
3 Bùi Văn Hoàng Hải 4 4 5
4 Nguyễn Bá Duy Thịnh 6 7 7
5 Nguyễn Tiến Đạt 7 8 8
6 Huỳnh Văn Hiếu 5 4 5
7 Phan Bá Trần 6 7 6

4
3. Đánh giá thành viên qua từng tuần
Tuần 1 - Thông tin thành viên, chọn đề tài
Thống nhất chọn đề tài quản lý quán Lẩu nướng ĐIHA BBQ
Tuần 2 - Outline
Tuần 3 - Hoàn thiện phác thảo, xác định công việc và ràng buộc thứ
tự
STT Họ tên Hoạt động Nhận xét
1 Trần Nhật An Thống kê báo cáo, Quản lý món Hoàn thành công
( leader) việc
2 Lê Hữu Nhật Duy Quản lý Order, Quản lý hóa đơn Hoàn thành công
việc
3 Bùi Văn Hoàng Thống kê báo cáo Hoàn thành công
Hải việc
4 Nguyễn Bá Duy Quản lý Order, Quản lý hóa đơn Hoàn thành công
Thịnh việc
5 Nguyễn Tiến Đạt Quản lý hóa đơn, Quản lý món Hoàn thành công
việc
6 Huỳnh Văn Hiếu Quản lý món Hoàn thành công
việc
7 Phan Bá Trần Quản lý món Hoàn thành công
việc

5
Tuần 4 - Lập kế hoạch quản lý quán ăn
STT Họ tên Hoạt động Nhận xét
1 Trần Nhật An Xác định các đỉnh trung gian của Hoàn thành công
( leader) mạng, tính thời gian min, max, việc
gantt
2 Lê Hữu Nhật Duy Bảng phân rã công việc, Vẽ biểu Hoàn thành công
đồ Gantt việc
3 Bùi Văn Hoàng Lập mạng công việc Hoàn thành công
Hải việc
4 Nguyễn Bá Duy Bảng công việc quản lý quán ăn Hoàn thành công
Thịnh ĐIHA, Vẽ biểu đồ Gantt việc
5 Nguyễn Tiến Đạt Lập mạng công việc Hoàn thành công
việc
6 Huỳnh Văn Hiếu Lập mạng công việc Hoàn thành công
việc
7 Phan Bá Trần Không tham gia

Tuần 5 – Yêu cầu chức năng, phân tích, lựa chọn các ràng buộc
ST Họ tên Hoạt động Nhận xét
T
1 Trần Nhật An Phân tích lựa chọn ràng buộc quản Hoàn thành công
( leader) lý hóa đơn việc
2 Lê Hữu Nhật Duy Phân tích lựa chọn rang buộc Hoàn thành công
quản lý món việc
3 Bùi Văn Hoàng Phân tích lựa chọn ràng buộc Hoàn thành công
Hải thống kê báo cáo việc
4 Nguyễn Bá Duy Phân tích lựa chọn ràng buộc Hoàn thành công
Thịnh quản lý hóa đơn việc
5 Nguyễn Tiến Đạt Phân tích lựa chọn ràng buộc quản Hoàn thành công

6
lý order việc
6 Huỳnh Văn Hiếu Phân tích lựa chọn ràng buộc Hoàn thành công
thống kê báo cáo việc
7 Phan Bá Trần Không tham gia

Tuần 6 – Xác định các chức năng, tác nhân của những chức năng đó
và vẽ biểu đồ
ST Họ tên Hoạt động Nhận xét
T
1 Trần Nhật An Sửa lại phát thảo dự án phần quản Hoàn thành công
( leader) lý món việc
2 Lê Hữu Nhật Duy Sửa lại bảng phân rã công việc và Hoàn thành công
vẽ biểu đồ Gantt việc
3 Bùi Văn Hoàng Sửa lại phát thảo dự án phần quản Hoàn thành công
Hải lý order việc
4 Nguyễn Bá Duy Tác nhân của các chức năng quản Hoàn thành công
Thịnh lý bàn, quản lý order việc
5 Nguyễn Tiến Đạt Sửa lại phát thảo dự án phần quản Hoàn thành công
lý hóa đơn việc
6 Huỳnh Văn Hiếu Sửa lại phát thảo dự án phần thống Hoàn thành công
kê báo cáo việc
7 Phan Bá Trần Tác nhân của các chức năng quản Hoàn thành công
lý hóa đơn, thống kê báo cáo việc

7
ST Họ tên Hoạt động Nhận xét
T
1 Trần Nhật An Bdhd Sua order, Bdtt Dang nhap, Hoàn thành công
( leader) Bdtt Them mon, Bdtt Sua mon, việc
Bdtt Xoa mon, Bdtt Tim kiem
mon
2 Lê Hữu Nhật Duy Bduc Tong the, Bduc Ql hoa don, Hoàn thành công
Bduc thong ke bao cao, Bdtt Nhap việc
order, Bdtt Sua order, đặc tả
usecase Thong ke bao cao
3 Bùi Văn Hoàng Không tham gia Không tham gia
Hải công việc
4 Nguyễn Bá Duy Bdtt Tao hoa don, Bdtt Xoa hoa Hoàn thành công
Thịnh don, Bduc Ql ban, Bduc Ql mon việc
an, đặc tả usecase Quan ly hoa don
5 Nguyễn Tiến Đạt Bdhd Dang nhap, Bdhd Them Hoàn thành công
mon, Bdhd Sua mon, Bdhd Xoa việc
mon, Bdhd Tim kiem mon, đặc tả
usecase Quan ly order
6 Huỳnh Văn Hiếu Không tham gia Không tham gia
công việc
7 Phan Bá Trần Bdhd Hoa don, Bdhd Sua hoa don, Hoàn thành công
Bdhd Tao hoa don, Bdhd Goi việc
mon, Bdtt Sua hoa don, đặc tả
usecase Quan ly mon

8
Tuần 7 - Cài đặt dự án Nemo và tập hợp các mã nguồn chính của
chương trình
ST Họ tên Hoạt động Nhận xét
T
1 Trần Nhật Cài đặt quản lý hoá đơn, đăng Hoàn thành công
( leader) nhập, đăng ký việc
2 Lê Hữu Cài đặt quản lý order Còn thiếu thêm
order mới
3 Bùi Văn Không tham gia Không tham gia
công việc
4 Nguyễn Bá Cài đặt quản lý ordel Còn thiếu thêm
order mới
5 Nguyễn Tiến Cơ sở dữ liệu, phương thức Hoàn thành công
việc
6 Huỳnh Văn Không tham gia Không tham gia
công việc
7 Phan Bá Không tham gia Không tham gia
công việc

4. Đánh giá tổng kết


STT Họ tên Kết quả Đánh giá
1 Trần ( leader) Hoàn thành – vắng 0 9.25
2 Lê Hữu Hoàn thành – vắng 0 8.5
3 Bùi Văn Tham gia không đầy đủ - Vắng 2 6.25
4 Nguyễn Hoàn thành – vắng 0 9
5 Nguyễn Hoàn thành – vắng 0 8.75
6 Huỳnh Tham gia không đầy đủ - Vắng 2 6.5
7 Phan Tham gia không đầy đủ - Vắng 2 7

9
II. NỘI DUNG
1. Tài liệu phác thảo dự án.

1.1 Quản lý món:


- Dựa theo yêu cầu của chủ quán mà quản lý sẽ thao tác với hệ thống để
thêm món khi có món mới được đem ra bán bao gồm tên món và giá cả sao
cho đúng với menu của quán, sửa món khi sửa lại tên hoặc giá thành của
món ăn, xóa món khi quán không còn bán món đó nữa vì lý do nào đó.
- Hành động tìm kiếm món và phân loại món được sử dụng trong quá trình
lập phiếu đặt đồ khi muốn tìm kiếm món một cách nhanh chóng để thêm
vào.
- Thêm món: cho phép thêm thông tin về một món hàng mới vào hệ thống
bao gồm tên món, mô tả, giá bán. Trước đó ta sẽ dùng chức năng tìm kiếm
món để tìm kiếm xem món đó đã được thêm vào hệ thống hay chưa. Ví dụ “
Cơm chiên trứng – Bình thường – 30k/Có rong biển – 35k “
- Sửa món: Khi muốn sửa lại thông tin của món ăn thì chủ quán sẽ yêu cầu
quản lý đăng nhập vào hệ thống để chỉnh sửa thông tin món ăn hiện có trong
hệ thống, bao gồm mã món, tên món, giá bán. “Cơm chiên trứng – Bình
thường – 35k/Có rong biển – 40K”
- Xóa món: Khi muốn xoá thông tin của món ăn thì chủ quán sẽ yêu cầu
quản lý đăng nhập vào hệ thống và xoá đi thông tin món ăn đó vì lý do nào
đó – “ ít khách dùng, không phải mùa nguyên liệu “. Sau đó hệ thống sẽ yêu
cầu xác nhận để xoá món nhằm tránh xoá nhầm.
- Tìm kiếm món: cho phép tìm kiếm thông tin về một món hàng trong hệ
thống dựa trên các tiêu chí như tên món, giá bán, loại món, v.v. Thường
được dùng để kiểm tra khi thêm món hoặc tìm kiếm trong khi lập phiếu
order.
- Phân loại món: hiển thị món theo từng loại món ăn nhất định.

 Yêu cầu của chủ quán.....................................................................a


 Thao tác với hệ thống.....................................................................b

10
 Thêm món mới; Sửa thông tin của món ăn; Xóa món ăn khỏi hệ
thống;Tìm kiếm món thông qua tìm kiếm và phân loại món.........c

Xác định ràng buộc thứ tự thời gian thực hiện : a->b->c

1.2 Quản lý Order


Nghiệp vụ order như sau:
- Khách đến ăn tại quán:
+ Sau khi vào quán khách sẽ chọn bàn thích hợp để ngồi và nhân
viên sẽ cung cấp menu và phiếu order ( lưu ý: mang thêm menu
phù hợp với số lượng khách), cho khách hàng thời gian để lựa
chọn.
● Phiếu order: là tài liệu đầu vào của quy trình đặt hàng
và có thể được sử dụng để xác nhận các đặt hàng, xác
nhận số lượng hàng hóa. Phiếu ggồm các thông tin
lưu trữ như sau: Tên món, số lương món.
● Menu: là một danh sách món ăn và thức uống, gồm
các thông tin lưu trữ như: Tên món ăn, hình ảnh món
ăn và giá thành.
+ Sau khi chọn món khách sẽ điền vào phiếu order, nhân viên nhận
lại phiếu order, thu lại menu, tiếp nhận các yêu cầu đặc biệt của
khách ( như món này ít cay, thịt phải thái nhỏ,...) và xác nhân lại
với khách hàng những món đã order
+ Nếu khách hàng cần sự trợ giúp, tư vấn chọn món hay thắc mắc gì
thì nhân viên sẽ giải đáp, trả lời.
- Nhập hoá đơn : Nhân viên order sẽ để phiếu order ở bàn thu ngân và
yêu cầu quản lý dựa vào thông tin trên phiếu order để nhập vào hệ
thống.
- Xuất phiếu đặt đồ : Sau khi nhập thông tin quản lý sẽ bấm vào ô xuất
phiếu sau đó hệ thống sẽ xuất phiếu đặt đồ rồi gửi vào bộ phận bếp để
làm món.
● Phiếu đặt đồ: là tài liệu đầu ra của quy trình đặt hàng
sau khi đã nhập thông tin các mặt hàng mà khách đã
yêu cầu vào hệ thống, nhằm giúp cho bộ phận bếp biết
được các thông tin món cần làm cho khách hàng.

11
Phiếu gồm các thông tin lưu trữ như: Mã bàn, tên
món, số lượng món,...
+ Nếu bếp hết nguyên liệu làm món thì sẽ báo lại cho nhân viên,
nhân viên sẽ thông báo lại cho khách để khách hủy món hoặc lựa
chọn món khác.
+ Nếu khách hàng có gọi đồ uống thì mang ra trước trong lúc đợi
làm món.Khách đặt bàn trước.

- Sửa order : Khi có yêu cầu gọi thêm món của khách thì nhân viên sẽ
yêu cầu quản lý thêm món vào hệ thống bằng cách tìm order dựa trên
mã số bàn, nếu kh có quản lý nhân viên có thể thay thế để làm.
- Tìm order : Chức năng được sử dụng để tìm bàn dựa trên mã bàn
trong hệ thống.

Khách đến ăn tại quán:

 Chọn bàn thích hợp để ngồi...................................................a


 Cung cấp menu và phiếu order..............................................b
 Chọn món, điền vào phiếu.....................................................c
 Nhận lại phiếu order và thu lại menu....................................d
 Dựa vào thông tin trên phiếu order để nhập vào hệ thống....e
 Xuất phiếu đặt đồ..................................................................f
 Bộ phận bếp làm món...........................................................g
Xác định ràng buộc thứ tự: a->b->c->d->e->f->g

1.3 Quản lý hóa đơn

- Nghiệp vụ hóa đơn như sau:

+ Khi khách hàng yêu cầu thanh toán, quản lý sẽ dựa vào thông
tin trên hệ thống và lập phiếu tạm tính rồi mang ra cho khách
hàng.

● Phiếu tạm tính là do người bán lập ra, để ghi nhận thông
tin bán hàng gồm các thông tin cần lưu trữ như: mã hóa
đơn, thông tin người lập hóa đơn, các món ăn được sử

12
dụng: tên món, số lượng món, thành tiền(bằng chữ và
bằng số), mã QR( thanh toán bằng chuyển khoản).

+ Khách có thể thanh toán bằng cách trả tiền mặt hoặc chuyển
khoản ( mã QR ) . Sau khi khách hàng thanh toán xong, quản lý
sẽ xuất hóa đơn từ hệ thống và trả lại cho khách + tiền thối nếu
có .

- Tạo hóa đơn: Khi khách hàng yêu cầu thanh toán thì nhân viên sẽ
yêu cầu tạo hoá đơn bằng cách truy cập vào hệ thống mục quản lý hoá
đơn, chọn bàn muốn thanh toán sau đó bấm nút để in hoá đơn và đem
tới cho khách. Hoá đơn bao gồm tên bàn, thời gian in hoá đơn, tên
món, số lượng, giá từng món, tổng tiền, mã QR( thanh toán chuyển
khoản )

- Sửa hóa đơn: Khi nhân viên đem hoá đơn đến cho khách và kiểm tra
xem khách có dư đồ uống gì không, hoặc nếu khách có yêu cầu trừ lui
món vì món chưa được làm đem đến cho khách. Khi đó nhân viên sẽ
đến hệ thống và tiến hành chỉnh lại số lượng món trong hệ thống và in
lại hoá đơn mới.
- Lưu trữ hóa đơn: Hóa đơn cần được lưu trữ và sắp xếp theo thứ tự
giờ xác nhận hóa đơn . Nếu phát hiện lỗi hoặc thắc mắc về đơn hàng,
nhân viên quản lý hóa đơn cần phải có thể tìm kiếm và giải quyết vấn
đề đó nhanh chóng.
- Theo dõi thanh toán: Nhân viên quản lý hóa đơn cần theo dõi các
khoản thanh toán và đảm bảo rằng khách hàng đã thanh toán đúng số
tiền. Nếu thanh toán bằng hình thức chuyển khoản thì cần phải xác
nhận với chủ quán hoặc quản lý là đã chuyển khoản thành công.

 Yêu cầu thanh toán.........................................a


 Lập phiếu tạm tính..........................................b
 Thanh toán......................................................c
 Xuất hóa đơn, trả lại tiền thối( nếu có)...........d
 Lưu trữ thông tin hoá đơn trong hệ thống…...e

Xác định thứ tự ràng buộc: a->b->c->d->e

13
1.4. Thống kê báo cáo
1.4.1 Thống kê nguyên liệu

+ Việc thống kê lại tất cả các nguyên liệu sẽ được nhân viên bếp thực
hiện vào cuối ca làm việc nhằm biết được số lượng nguyên liệu còn lại , sau
đó gửi lại cho chủ quán. Chủ quán sẽ xem xét những nguyên liệu gần hết
hoặc hết để nhập hàng vào sáng hôm sau.

1.4.2 Doanh thu theo thời gian

+ Chủ quán sẽ vào hệ thống để xem tổng doanh thu của quán vào mỗi
cuối ca . Doanh thu mỗi ca sẽ được hệ thống tổng lại lưu vào phần doanh thu
theo từng tháng.

1.4.3 Thống kê loại món khách đã gọi

+ Việc thống kê lại tất cả các móm khách đã gọi theo tất cả hóa đơn
có trong ca làm đó sẽ được thực hiện bởi quản lý, từ đó sẽ đưa ra được các
món bán chạy của quán nhằm mua thêm nguyên liệu làm món đó nhiều
hơnhơn.

1.4.4 Báo cáo thu chi theo thời gian

+ Công việc này sẽ được thực hiện vào mỗi cuối tháng, chủ quán sẽ
yêu cầu hệ thống hiển thị tổng tất cả các khoảng thu chi, từ đó sẽ biết được
khoảng lời hoặc lỗ trong một tháng làm việc của quán.

(chỉ tính các khoản mà thanh toán lưu trong hệ thống).

 Yêu cầu của chủ quán................................................................a


 Hệ thống hiển thị thống kê theo yêu cầu : Thống kê nguyên liệu,
Bảng chấm công nhân viên từng tháng, Thống kê số lượng món ,
Báo cáo thu chi theo thời gian...................................................b
 Hệ thống lưu trữ tổng theo từng mốc thời gian ( tháng )...........c

Xác định thứ tự ràng buộc: a->b->c

14
2. Lập lịch ban đầu

II.1 LẬP KẾ HOẠCH QUẢN LÝ QUÁN ĂN ĐIHA

15
II.2 BẢNG CÔNG VIỆC QUẢN LÝ QUÁN ĂN ĐIHA
Mã cv Tên công việc MO ML MP EST
1.0 Quản lý món ăn
1.1 A.  Phân tích nghiệp vụ 1 1,5 2 1,5
1.2 B.  Thiết kê cơ sở dữ liệu 1 2,5 3 2,5
1.3  Xây dựng tính năng quản
lý món
1.3.1 C.  Thêm mới 1 2 2,5 2
1.3.2 D.  Sửa món 1 2 2,5 2
1.3.3 E.  Xóa món 1 2 2,5 2
2.0 Quản lý hóa đơn
2.1 F.  Phân tích nghiệp vụ 1 1,5 2 1,5
2.2 G.  Thiết kế cơ sở dữ liệu 1 1 1.5 1
2.3  Xây dựng tính năng quản
lý hóa đơn
2.3.1 H.  Tạo mới hóa đơn 2 3 3,5 3
2.3.2 I.  Cập nhật hóa đơn 2 3 3,5 3
2.3.3 J.  Lưu trữ hóa đơn 1 2 2,5 2
3.0 Quản lý bàn
3.1 K.  Thiết kế cơ sở dữ liệu 1 1,5 2 1,5
3.2  Xây dựng tính năng
3.2.1 L.  Tạo mới order 2 3 3,5 3
3.2.2 M.  Cập nhật order 2 3,5 4 3,5
3.2.3 N.  Xác nhận order 1 2 2,5 2
4.0 Thống kê báo cáo
4.1  Xây dựng tính năng

16
4.1.1 O.  Báo cáo thu chi 1 1,5 2 1,5
theo thời gian
. P.  Thống kê báo cáo 1,5 2 2,5 2
Tổng thời gian 20,5 34 42 34
Đơn vị tính: ngày

II.3 BẢNG PHÂN RÃ CÔNG VIỆC


Công việc Thời gian Công việc Công việc Thời gian Công việc
đi trước đi trước
A 1,5 - J 3 I
B 2,5 - K 2 J
C 1 A,B L 3 C
D 2 C M 3,5 L
E 2 D,G N 2 M
F 2 E O 1,5 K
G 2 C P 1,5 O
I 3 C Q 2 O

II.4 XÁC ĐỊNH CÁC ĐỈNH TRUNG GIAN CỦA MẠNG


Công việc Thời gian Công việc Công việc Thời gian Công việc
đi trước đi trước
A 1,5 - J 3
B 2,5 - K 2
C 1 L 3
A,B
D 2 M 3,5

17
E 2 N 2
D,G
F 2 O 1,5
G 2 P 1,5
I 3 Q 2

II.5 MẠNG CÔNG VIỆC

II.6 ĐƯỜNG GANTT

18
2.7 BIỂU ĐỒ GANTT – LỊCH TRÌNH DỰ ÁN

3. Các ràng buộc của dự án

19
3.1 Quản lý món:

- Thêm món: cho phép thêm thông tin về một món hàng mới vào hệ
thống bao gồm mã món, tên món, mô tả, giá bán.
*Các ràng buộc:
1. Giới hạn quyền truy cập: Chỉ người dùng ( quản lý ) đăng nhập và
được phân quyền mới có thể thêm món vào danh sách.
2. Giới hạn tên món: Tên món không được trùng lặp và có độ dài tối
đa.
3. Giới hạn mô tả món: Mô tả món không quá dài và có định dạng
chuẩn.
4. Kiểm tra giá tiền: Giá tiền phải là số dương và trong khoảng giá trị
cho phép.
5. Kiểm tra hình ảnh: Nếu người dùng cung cấp hình ảnh cho món,
hình ảnh phải có định dạng chuẩn và kích thước không quá lớn.

- Sửa món: cho phép chỉnh sửa thông tin về một món hàng hiện có trong
hệ thống, bao gồm mã món, tên món, giá bán.
*Các ràng buộc:
1. Giới hạn quyền truy cập: Chỉ người dùng đăng nhập và được phân
quyền mới có thể sửa thông tin của món.
2. Kiểm tra tính hợp lệ của thông tin: Khi sửa món, người dùng phải
cung cấp thông tin hợp lệ, bao gồm tên món, mô tả, giá tiền và
trạng thái của món ăn.
3. Giới hạn thời gian cho phép sửa món: Thời gian sửa món chỉ được
trong khung giờ cho phép là thời gian trước khi mở bán và sau khi
đóng cửa
4. Giới hạn số lần sửa món: Người dùng chỉ được phép sửa món
trong số lần cho phép, để tránh tình trạng sai sót hoặc lạm dụng
tính năng.
5. Giới hạn thay đổi trạng thái món: Người dùng chỉ được phép thay
đổi trạng thái của món trong số trạng thái cho phép, để tránh tình
trạng không chính xác hoặc không hợp lệ.
20
- Xóa món: cho phép xóa thông tin về một món hàng khỏi hệ thống.
* Các ràng buộc:
1. Giới hạn quyền truy cập: Chỉ người dùng đăng nhập và được phân
quyền mới có thể xóa thông tin của món.
2. Xác nhận xóa món: Khi người dùng chọn xóa món, hệ thống phải
yêu cầu xác nhận từ người dùng để đảm bảo không xóa nhầm hoặc
xóa món một cách vô tình.
3. Giới hạn thời gian cho phép xóa món: Thời gian sửa món chỉ được
trong khung giờ cho phép là thời gian trước khi mở bán và sau khi
đóng cửa
4. Giới hạn số lần xóa món: Người dùng chỉ được phép xóa món
trong số lần cho phép, để tránh tình trạng sai sót hoặc lạm dụng
tính năng.
5. Giới hạn thay đổi trạng thái món: Người dùng chỉ được phép xóa
món trong trạng thái cho phép, để tránh tình trạng không chính xác
hoặc không hợp lệ.
6. Hiển thị danh sách món: cho phép người dùng xem danh sách món
theo nhiều tiêu chí khác nhau, bao gồm danh mục, giá cả, độ phổ
biến, v.v

- Tìm kiếm món: cho phép tìm kiếm thông tin về một món hàng trong
hệ thống dựa trên các tiêu chí như tên món, giá bán, loại món, v.v.
* Các ràng buộc:
1. Tìm kiếm món theo nhiều tiêu chí khác nhau: Hệ thống cần hỗ trợ
tìm kiếm món theo tên, loại, giá, mô tả, đánh giá, và các tiêu chí
khác để người dùng có thể tìm kiếm món một cách dễ dàng và
chính xác.
2. Hỗ trợ tìm kiếm linh hoạt: Hệ thống cần hỗ trợ tìm kiếm món bằng
cách nhập từ khóa, chọn các tùy chọn trong các danh sách thả

21
xuống hoặc sử dụng các bộ lọc để giúp người dùng thu hẹp kết quả
tìm kiếm.
3. Hiển thị thông tin món đầy đủ: Khi tìm kiếm món, hệ thống cần
hiển thị đầy đủ thông tin về món, bao gồm tên, hình ảnh, mô tả,
giá, đánh giá, trạng thái và các thông tin khác để giúp người dùng
có được cái nhìn tổng quan về món.
4. Xử lý tìm kiếm nhanh chóng: Hệ thống cần có khả năng xử lý tìm
kiếm món nhanh chóng để người dùng không phải chờ đợi quá lâu
để nhận được kết quả.

- Phân loại món: hiển thị món theo từng loại món ăn nhất định.

* Các ràng buộc:


1. Loại món ăn: Đây là ràng buộc cơ bản và quan trọng nhất trong
phần phân loại món ăn. Món ăn được phân loại theo loại như món
nướng than, món nướng bơ, món lẩu, món tráng miệng, món nước
uống,...
2. Nguyên liệu: Đây là ràng buộc khá quan trọng trong phân loại món
ăn. Món ăn được phân loại theo nguyên liệu chính như thịt, cá, rau
củ quả, đậu hũ, tinh bột, trái cây, ...

- Đăng nhập: phần mềm cần đăng nhập bảo mật để quản lý nhân viên có
thể truy cập vào hệ thống và quản lý các món ăn. Các quản lý viên có thể
cấp quyền cho từng nhân viên để họ có thể thực hiện các hoạt động cần
thiết trong phần mềm.

3.2 Quản lý order:


- Xử lý order: phần mềm cần cho phép nhân viên nhà hàng xử lý các order
của khách hàng. Nhân viên có thể xem danh sách các order mới và có có thể
sửa hoặc xóa các order đó, xác nhận đơn hàng.

*Ràng buộc bên trong :

22
1. Giới hạn số bàn : Số bàn lưu trong hệ thống phải còn trống tối thiểu 1
bàn (bàn trống chưa có khách) mới được phép thêm món khách order
vào )
2. Ràng buộc tên món : Chỉ được thêm những món có sẵn trong menu
tạo sẵn trong hệ thống.
3. Ràng buộc thông tin : Thêm món phải đầy đủ tên món, số lượng món,
ghi chú ( nếu khách yêu cầu riêng ).
4. Ràng buộc giảm giá : Chỉ áp dụng với các món được thêm vào bởi
quản lý ( người đăng nhập hệ thống ).

*Ràng buộc bên ngoài :


1. Ràng buộc thời gian : Đảm bảo order khách sớm nhất khi khách ngồi
vào bàn ăn.
2. Ràng buộc yêu cầu của khách : Đảm bảo nhân viên phải nhập vào hệ
thống thông tin món ăn theo đúng thông tin khách yêu cầu

- Tính tiền: phần mềm cần cho phép nhân viên tính tiền cho các order của
khách hàng. Phần mềm sẽ hiển thị tổng số tiền, cho phép khách hàng
chọn phương thức thanh toán và cung cấp hóa đơn cho khách hàng

1. Ràng buộc về tính toán hóa đơn: Hệ thống phải đảm bảo tính toán đầy
đủ và chính xác số lượng các món ăn, thức uống và dịch vụ được đặt
trong đơn hàng; cộng với các khoản phí phụ thu, giảm giá, thuế và phí
dịch vụ khác ( nếu có ) để tạo ra hóa đơn cuối cùng.
2. Ràng buộc phương thức thanh toán : Chỉ có 2 hình thức thanh toán
( tiền mặt - chuyển khoản.
3. Ràng buộc về quản lý giá cả: Hệ thống phải đảm bảo giá cả của các
món ăn, thức uống; dịch vụ được quản lý, cập nhật đầy đủ và chính
xác để đảm bảo tính toán hóa đơn đúng.
4. Ràng buộc về xuất hóa đơn: Hệ thống phải hỗ trợ tính năng xuất hóa
đơn để tạo ra hóa đơn cuối cùng cho khách hàng và in ra thông qua
máy in được kết nối với hệ thống.

23
5. Ràng buộc về quản lý lưu trữ: Hệ thống phải cung cấp tính năng quản
lý lưu trữ để lưu trữ lịch sử đơn hàng và hóa đơn để có thể truy xuất
lại khi cần thiết.

- Đăng nhập: phần mềm cần đăng nhập bảo mật để quản lý nhân
viên có thể truy cập vào hệ thống và quản lý các order của khách
hàng. Các quản lý viên có thể cấp quyền cho từng nhân viên để họ
có thể thực hiện các hoạt động cần thiết trong phần mềm.

3.3 Quản lý hóa đơn:


* Ràng buộc bên trong:
1. Tạo hóa đơn
- Thông tin về món ăn và thức uống cần phải được cập nhật chính
xác. Nếu thông tin không chính xác, có thể gây ra sai sót trong tính
tiền và thanh toán.
- Số lượng và giá tiền phải là số hợp lệ. Nếu không hợp lệ, hệ thống
không thể tạo hóa đơn.
2. Xem hóa đơn:
- Thông tin đơn hàng và thanh toán cần phải được hiển thị đầy đủ và
chính xác.
- Chỉ người dùng được cấp quyền mới có thể truy cập được vào các
thông tin hóa đơn.
3. Cập nhật hóa đơn:
- Chỉ quản lý mới có thể cập nhật thông tin hóa đơn.
- Việc cập nhật thông tin hóa đơn phải được ghi nhận lại trong hệ
thống.
4. Xóa hóa đơn:
- Chỉ quản lý mới có thể xóa hóa đơn.
- Việc xóa hóa đơn phải được ghi nhận lại trong hệ thống.

24
* Ràng buộc bên ngoài:

1. Quản lý hóa đơn:


- Phải đáp ứng các quy định pháp luật về xuất hóa đơn đối với khách
hàng.
- Hóa đơn phải có đầy đủ thông tin cần thiết như tên của quán ăn,
địa chỉ, mã số thuế, số hóa đơn, ngày lập hóa đơn, giá trị của hóa
đơn, thuế suất và số tiền thuế.
- Phải đảm bảo tính chính xác và bảo mật thông tin hóa đơn. Các
thông tin hóa đơn phải được lưu trữ một cách an toàn và bảo mật.
- Phải lưu trữ hóa đơn đầy đủ và đúng quy định của pháp luật. Các
thông tin hóa đơn cần phải được lưu trữ trong một thời gian

- Tạo hóa đơn: Công việc này bao gồm việc tạo hóa đơn khi khách hàng đặt
hàng và cập nhật thông tin sản phẩm, số lượng, giá cả, chiết khấu (nếu có)
và các thông tin khác liên quan đến đơn hàng.

* Các ràng buộc:


1. Sự chính xác của thông tin đặt món: Hệ thống phải đảm bảo rằng
thông tin đặt món đã được nhập đúng và đầy đủ để tránh sai sót trong
việc tạo hóa đơn.
2. Sự hiển thị thông tin chính xác trên hóa đơn: Hệ thống phải hiển thị
đầy đủ thông tin sản phẩm, giá cả, thuế, phí dịch vụ, tổng giá trị hóa
đơn và các thông tin khác liên quan đến hóa đơn một cách chính xác
và rõ ràng.

- Xác nhận hóa đơn: Nhân viên quản lý hóa đơn cần xác nhận có đồ uống
trả lại hay không và đảm bảo rằng các thông tin trên hóa đơn đúng với sản
phẩm và số lượng được mua sau đó đưa hóa đơn cho khách hàng thanh
thanh toán.

* Các ràng buộc:

25
1. Hóa đơn phải được tạo ra bởi hệ thống quản lý và được gán một mã số
duy nhất để tránh trùng lặp.
2. Hệ thống phải xác định chính xác thông tin của đơn hàng, bao gồm
danh sách món ăn, số lượng, giá cả và các chi tiết khác.
3. Hệ thống phải kiểm tra tính hợp lệ của thông tin trong đơn hàng, ví dụ
như kiểm tra xem món ăn có trong thực đơn hay không, số lượng có
vượt quá giới hạn hay không.
4. Hệ thống phải đảm bảo tính chính xác của giá cả và tính toán tổng số
tiền phải thanh toán cho khách hàng.
5. Kết nối với các hệ thống khác: Hệ thống phải kết nối và tương tác với
các hệ thống khác trong quản lý nhà hàng như hệ thống thanh toán, hệ
thống quản lý kho và hệ thống quản lý khách hàng để đảm bảo sự liên
thông thông tin và chính xác trong quá trình quản lý.

- Lưu trữ hóa đơn: Hóa đơn cần được lưu trữ và sắp xếp theo thứ tự giờ
xác nhận hóa đơn. Nếu phát hiện lỗi hoặc thắc mắc về đơn hàng, nhân viên
quản lý hóa đơn cần phải có thể tìm kiếm và giải quyết vấn đề đó nhanh
chóng.
* Các ràng buộc:
1. Dữ liệu hóa đơn phải được lưu trữ một cách an toàn và bảo mật để
tránh bị mất mát hoặc truy cập trái phép.
2. Mỗi hóa đơn phải có một số phiếu duy nhất để phân biệt với các hóa
đơn khác trong cơ sở dữ liệu của hệ thống.
3. Dữ liệu hóa đơn phải được cập nhật và xử lý đúng thời gian để đảm
bảo tính chính xác và toàn vẹn của dữ liệu.

- Theo dõi thanh toán: Nhân viên quản lý hóa đơn cần theo dõi các khoản
thanh toán và đảm bảo rằng khách hàng đã thanh toán đúng số tiền.
* Các ràng buộc:
1. Hệ thống phải tuân thủ các quy định và luật pháp liên quan đến việc
theo dõi thanh toán, bao gồm các quy định về bảo mật thông tin, bảo
vệ quyền lợi khách hàng, thuế và kế toán.

26
2. Hệ thống phải hỗ trợ các phương thức thanh toán khác nhau để đáp
ứng nhu cầu của khách hàng, bao gồm các phương thức thanh toán
trực tuyến và thanh toán bằng thẻ.
3. Hệ thống phải có khả năng cung cấp thông tin liên quan đến thanh
toán cho các bên thứ ba khi cần thiết, như các cơ quan chức năng hoặc
đối tác kinh doanh.

3.4 Thống kê báo cáo


1. Doanh thu: Thống kê doanh thu cho biết số tiền khách hàng chi trả trong
một khoảng thời gian cụ thể, bao gồm các khoản thu từ các món ăn, đồ
uống, dịch vụ phụ và các khoản phí khác.
- Tính chính xác: Báo cáo doanh thu phải chính xác và đáng tin cậy để
quản lý có thể đưa ra các quyết định thích hợp.
- Đúng thời hạn: Báo cáo doanh thu phải được đưa ra đúng thời hạn để
quản lý có thể theo dõi kịp thời các chỉ số hoạt động của cửa hàng và
có thể ra quyết định kịp thời.
- Dễ đọc và hiểu: Báo cáo doanh thu phải được thiết kế sao cho dễ đọc
và hiểu để quản lý có thể nhanh chóng đánh giá được tình hình kinh
doanh của cửa hàng.
- Phân tích được dữ liệu: Báo cáo doanh thu phải được thiết kế sao cho
quản lý có thể phân tích và so sánh dữ liệu giữa các thời điểm khác
nhau để đưa ra những quyết định thích hợp.
- Bảo mật thông tin: Báo cáo doanh thu phải được bảo mật thông tin để
đảm bảo an toàn và tránh những rủi ro về mất mát dữ liệu hoặc lộ
thông tin quan trọng của cửa hàng.
- Tính liên tục: Báo cáo lợi nhuận phải được tính toán liên tục trong
suốt quá trình hoạt động của cửa hàng. Việc này giúp quản lý có thể
theo dõi và đánh giá hiệu quả kinh doanh của cửa hàng theo thời gian
thực, từ đó đưa ra những quyết định và chỉ đạo nhanh chóng.

27
4. Phân tích và thiết kế dự án
A. Biểu đồ usecase:
1. Sơ đồ hệ thống

2. Quản lý món ăn

28
Tên Usecase Quản lý món

Tác nhân chính Quản lý, nhân viên

Mô tả Hệ thống quản lý món cho phép Quản lý thực hiện các hoạt
động liên quan đến quản lý món ăn bao gồm thêm món, sửa
món, xóa món và phân loại món. Chỉ cho phép nhân viên
tìm kiếm món.
Các luồng chính 1. Thêm món
Mô tả: Quản lý thêm thông tin món mới vào danh
sách món.
 Quản lý nhập thông tin món ăn (tên món, ngày
thêm vào, mô tả, tổng tiền, v.v.).
 Hệ thống lưu thông tin món ăn mới vào cơ sở
dữ liệu.
 Use case kết thúc.
2. Sửa món
Mô tả: Quản lý cập nhật thông tin của một món đã
tồn tại trong hệ thống.
 Quản lý chọn món cần cập nhật.
 Quản lý chỉnh sửa thông tin món (tên món,
ngày sửa, mô tả, tổng tiền, v.v.).
 Hệ thống cập nhật thông tin món vào cơ sở dữ
liệu.
 Use case kết thúc.
3. Xóa món.
Mô tả: Hệ thống xóa thông tin món đã tồn tại trong
hệ thống
 Quản lý chọn món cần xóa
 Hệ thống sẽ xóa thông tin món có trong hệ
thống lưu trữ.
 Use case kết thúc.
4. Tìm kiếm món.
Mô tả: Nhân viên tìm kiếm thông tin món có tồn tại
trong hệ thống.

29
 Nhân viên nhập tên món cần tìm
 Hệ thống hiển thị thông tin chi tiết món đã lưu
trữ trong hệ thống
 Use case kết thúc
5. Phân loại món.
Mô tả: Quản lý sắp xếp món dựa theo thông tin từng
loại nhất định.
 Quản lý chọn loại món cần sắp xếp.
 Hệ thống sẽ sắp xếp thông tin món theo từng
loại.
 Use case kết thúc
Các ngoại lệ  Không nhập đầy đủ thông tin món khi thêm, sửa,
xóa, tìm kiếm, và phân loại món.
 Hệ thống gặp lỗi kỹ thuật hoặc vấn đề trong quá
trình lưu trữ thông tin món vào cơ sở dữ liệu
Điều kiện kiên  Hệ thống phải có cơ sở dữ liệu để lưu trữ thông tin
quyết món và các thông tin liên quan đến món đó.
Điều kiện thành  Thông tin được lưu thành công vào cơ sở dữ liệu khi
công thực hiện thêm, sửa món.
 Thông tin món không còn trong cơ sở dữ liệu khi
thực hiện xóa món
 Thông tin món được hiển thị đầy đủ khi thực hiện
tìm kiếm món.
 Quản lý và nhân viên có thể thao tác thành công với
các chức năng quản lý món trong hệ thống

30
3. Quản lý Order

Tên Usecase Quản lý order

Tác nhân chính Nhân viên, khách hàng

Mô tả Quá trình đặt món của khách và lập phiếu order của nhân
viên
Các luồng chính 1.Khách hàng chọn bàn
2.Khách hàng chọn món để đặt(có thể đặt thêm nước uống
hoặc đề ra yêu cầu mới cho món ăn)
3.Dựa vào thông tin trên khách hàng điền thông tin vào
phiếu order
4.Quá trình nhập order:
 Nhân viên điền thông tin món được đặt vào
bàn của khách
 Từ thông tin order vừa nhập nhân viên xuất
phiếu order
 Nếu kiểm tra không thấy vấn đề gì, nhân viên
31
xác nhận lại phiếu order
 Ngược lại, nhân viên sẽ sửa thông tin trong
phiếu order
5.Quá trình sửa order:
 Trường hợp nhận thấy sai sót trong quá trình
nhập, nhân viên sẽ sửa ngay lập tức cho đúng
yêu cầu
 Ngược lại, nhân viên nhập mã order để tìm
kiếm order cần sửa, sau đó sửa lại cho đúng
yêu cầu
Các ngoại lệ Thông tin không hợp lệ:
 Các món trong phiếu order phải tồn tại trong
danh sách món trong menu
 Thông tin order phải trùng với yêu cầu của
khách hàng
Điều kiện bắt Nhân viên phải đăng nhập trước khi sử dụng hệ thống
buộc
Điều kiện thành Các món trong phiếu order phải tồn tại trong danh sách
công món trong menu
Thông tin order phải trùng với yêu cầu của khách hàng
Lưu thông tin order vào CSDL

4. Quản lý hóa đơn


32
Tên Usecase Quản lý hóa đơn

Tác nhân chính Quản lý

Mô tả Hệ thống quản lý hóa đơn cho phép Quản lý thực hiện các
hoạt động liên quan đến quản lý hóa đơn, bao gồm tạo hóa
đơn, cập nhật thông tin hóa đơn, lưu trữ hóa đơn, lập phiếu
tạm tính
Các luồng chính 6. Tạo hóa đơn
Mô tả: Quản lý tạo một hóa đơn mới trong hệ thống.
 Quản lý nhập thông tin hóa đơn (số hóa đơn,
ngày tạo, mô tả, tổng tiền, v.v.).
 Hệ thống lưu thông tin hóa đơn mới vào cơ sở
dữ liệu.
 Use case kết thúc.
7. Sửa hóa đơn
Mô tả: Quản lý cập nhật thông tin của một hóa đơn
đã tồn tại trong hệ thống.
 Quản lý chọn hóa đơn cần cập nhật.
 Quản lý chỉnh sửa thông tin hóa đơn (ngày
tạo, khách hàng, mô tả, tổng tiền, v.v.).
33
 Hệ thống cập nhật thông tin hóa đơn vào cơ sở
dữ liệu.
 Use case kết thúc.
8. Lưu trữ hóa đơn
Mô tả: Hệ thống lưu trữ hóa đơn đã hoàn thành
 Quản lý sẽ in phiếu tạm tính để đưa cho
khách.
 Hệ thống sẽ tự động lưu trữ hóa đơn vào hệ
thống lưu trữ.
 Use case kết thúc.
9. Tạo phiếu tạm tính
Mô tả: Quản lý tạo phiếu tạm tính dựa trên hóa đơn
trên hệ thống
 Quản lý chọn hóa đơn để tạo phiếu tạm tính
 Hệ thống tạo một phiếu tạm tính dựa trên
thông tin của hóa đơn
 Hệ thống lưu thông tin phiếu tạm tính vào cơ
sở dữ liệu
 Use case kết thúc

Các ngoại lệ  Không nhập đầy đủ thông tin hóa đơn khi tạo hoặc
sửa
 Hệ thống gặp lỗi kỹ thuật hoặc vấn đề trong quá
trình lưu trữ thông tin hóa đơn vào cơ sở dữ liệu
 Hệ thống gặp lỗi khi tạo phiếu tạm tính hoặc lưu
thông tin phiếu tạm tính vào cơ sở dữ liệu
Điều kiện kiên  Hệ thống phải có cơ sở dữ liệu để lưu trữ thông tin
quyết hóa đơn, phiếu tạm tính và thông tin liên quan
Điều kiện thành  Thông tin hóa đơn được tạo, sửa, lưu trữ và tạo phiếu
công tạm tính được lưu thành công vào cơ sở dữ liệu
 Quản lý có thể thao tác thành công với các chức
năng quản lý hóa đơn trong hệ thống

34
5. Thống kê báo cáo

Tên Usecase Thống kê báo cáo

Tác nhân chính Quản lý

Mô tả Thống kê báo cáo là quá trình tổng hợp, phân tích và trình
bày số liệu trong báo cáo. Bằng cách sử dụng các phương
pháp thống kê mô tả, tóm tắt và phân tích các thông tin
quan trọng từ dữ liệu thu thập được.
Các luồng chịnh 1. Thống kê nguyên liệu
Mô tả: Thống kê nguyên liệu là việc làm đếm số lượng và
ghi lại tình trạng của từng nguyên liệu còn lại trong quán
vào mỗi cuối ca làm việc..
2. Doanh thu theo thời gian
Mô tả: Doanh thu theo thời gian là một phân tích về số tiền
thu được từ hoạt động kinh doanh trong một khoảng thời
gian nhất định.
3. Thống kê loại món khách đã gọi
Mô tả: Thống kê loại món khách đã gọi là một báo cáo

35
đánh giá và ghi lại thông tin về số lượng của các món ăn
mà khách hàng đã gọi trong trong một khoảng thời gian
nhất định.
4. Báo cáo thu chi theo thời gian
Mô tả: Báo cáo thu chi theo thời gian là một báo cáo tà.i
chính ghi lại và phân tích các khoản thu chi của quán trong
một khoảng thời gian nhất định

Các ngoại lệ  Không


Điều kiện tiên  Dữ liệu đầy đủ và chính xác
quyết
Điều kiện thành  Dữ liệu đáng tin cậy
công  Phương pháp thống kê chính xác
 Hiển thị ra màn hình đúng
a.

36
B. Biểu đồ hoạt động

1. Biểu đồ hoạt động ĐĂNG NHẬP:

37
38
2. Biểu đồ hoạt động quản lý món

2.1 Biểu đồ hoạt động thêm món:

39
2.2 Biểu đồ hoạt động sửa món:

40
2.3 Biểu đồ hoạt động xóa món:

41
2.4 Biểu đồ hoạt động tìm kiếm món:

42
3. Biểu đồ hoạt động quản lý Order

3.1 Biểu đồ hoạt động gọi món:

43
3.2 Biểu đồ hoạt động Sửa order:

44
4 Biểu đồ hoạt động quản lý hóa đơn

4.1 Biểu đồ hoạt động tạo hóa đơn:

45
4.2Biểu đồ hoạt động sửa hóa đơn:

46
4.3 Biểu đồ hoạt động hóa đơn:

47
C. Biểu đồ tuần tự

1. Biểu đồ tuần tự đăng nhập:

2. Biểu đồ tuần tự quản lý món ăn


2.1 Biểu đồ tuần tự thêm món:

48
2.2 Biểu đồ tuần tự sửa món:

2.3Biểu đồ tuần tự xóa món:

49
2.4 Biểu đồ tuần tự tìm kiếm món:

3. Biểu đồ tuần tự Order

3.1Biểu đồ tuần tự nhập order:

50
3.2 Biểu đồ tuần tự sửa order:

51
4.Biểu đồ tuần tự quản lý hóa đơn

4.1 Biểu đồ tuần tự tạo hóa đơn:

52
4.2 Biểu đồ tuần tự sửa hóa đơn:

53
5. Code cài đặt và giao diện
 Quản lý món : Lập trình bằng Eclipse – Java Swing
- Liên kết giữa Eclipse với Sql :
package Dao;

import java.sql.Connection;
import java.sql.DriverManager;

public class Coso {


public static Connection cn;
public void KetNoi()
{
try {

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDrive
r");
String st=
"jdbc:sqlserver://DESKTOP-
HPRJ4H7:1433;databaseName=banhang; user=sa;
password=123456";
cn=DriverManager.getConnection(st);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

54
}
public static void main(String[] args) {
Coso cs=new Coso();
cs.KetNoi();
}
}

- Bean : Khai báo dữ liệu :


package Bean;

public class monbean {


private String MaMon;
private String TenMon;
private String LoaiMon;
private double GiaThanh;

public monbean() {
super();
// TODO Auto-generated constructor stub
}
public monbean(String maMon, String tenMon, String
loaiMon, double giaThanh) {
super();
MaMon = maMon;
TenMon = tenMon;
LoaiMon = loaiMon;
GiaThanh = giaThanh;
}
public String getMaMon() {
return MaMon;
}
public void setMaMon(String maMon) {
MaMon = maMon;
}
public String getTenMon() {

55
return TenMon;
}
public void setTenMon(String tenMon) {
TenMon = tenMon;
}
public String getLoaiMon() {
return LoaiMon;
}
public void setLoaiMon(String loaiMon) {
LoaiMon = loaiMon;
}
public double getGiaThanh() {
return GiaThanh;
}
public void setGiaThanh(double giaThanh) {
GiaThanh = giaThanh;
}
}

- Dao :Lệnh thao tác với Sql


+ Lấy dữ liệu :
ArrayList<monbean> ds = new ArrayList<monbean>();
public ArrayList<monbean> getdv() throws Exception
{
String sql= "Select * from dbo.QLMon";
PreparedStatement cmd=Coso.cn.prepareStatement(sql);
ResultSet rs= cmd.executeQuery();
while(rs.next()) {

monbean dn=new monbean();


dn.setMaMon(rs.getString("MaMon"));
dn.setTenMon(rs.getString("TenMon"));
dn.setLoaiMon(rs.getString("LoaiMon"));
dn.setGiaThanh(rs.getDouble("GiaThanh"));
ds.add(dn);
}
rs.close();
return ds;

56
}

+ Thêm món ăn :
public int Them(String maMon, String tenMon, String
loaiMon, double giaThanh) throws Exception
{
String sql="insert into
dbo.QLMon(MaMon,TenMon,LoaiMon,GiaThanh) values
(?,?,?,?)";

PreparedStatement cmd = Coso.cn.prepareStatement(sql);


cmd.setString(1, maMon);
cmd.setString(2, tenMon);
cmd.setString(3, loaiMon);
cmd.setDouble(4,giaThanh);
return cmd.executeUpdate();
}

+ Xoá món ăn :
public int Xoa(String mamon) throws Exception {
String sql="delete from dbo.QLMon where MaMon=?";
PreparedStatement cmd= Coso.cn.prepareStatement (sql);
cmd.setString (1, mamon);
return cmd.executeUpdate();
}

+ Sửa thông tin :


public int Sua(String maMon, String tenMon, String
loaiMon, double giaThanh) throws Exception {

String sql="update QLMon set TenMon=? , LoaiMon=? ,


GiaThanh=? where MaMon=?";
PreparedStatement cmd= Coso.cn.prepareStatement(sql);

57
cmd.setString(4,maMon);
cmd.setString(1,tenMon);
cmd.setString(2, loaiMon);
cmd.setDouble(3, giaThanh);

return cmd.executeUpdate();
}

 Bo : Xử lý chương trình
- Lấy dữ liệu :
mondao mdao=new mondao();
ArrayList<monbean> ds;
public ArrayList<monbean> getdv() throws Exception{
ds=mdao.getdv();
return ds;
}

+ Thêm món ăn :
public int Them(String maMon, String tenMon, String
loaiMon, double giaThanh) throws Exception
{
for(monbean mon : ds)
if(mon.getMaMon().equals(maMon))
{
JOptionPane.showMessageDialog(null,"Mã hàng này đã có!");
return 0;}
ds.add(new monbean(maMon,tenMon,loaiMon,giaThanh));
mdao.Them(maMon,tenMon,loaiMon,giaThanh);
return 1;
}

+ Xoá món ăn :
public int Xoa(String mamon) throws Exception
{
for(monbean mon:ds)
{
if(mon.getMaMon().equals(mamon))

58
{
ds.remove(mon);
mdao.Xoa(mamon);
return 1;
}
}
return 0;
}

+ Sửa món ăn:


public int Sua(String maMon, String tenMon, String
loaiMon, double giaThanh) throws Exception
{
for(monbean mon: ds)
if(mon.getMaMon().equals(maMon)) {
mon.setTenMon(tenMon);
mon.setLoaiMon(loaiMon);
mon.setGiaThanh(giaThanh);
mdao.Sua(maMon,tenMon,loaiMon,giaThanh);
return 1;
}
return 0;
}
+ Tìm món ăn:
public ArrayList<monbean> Tim(String dv) throws Exception{
ArrayList<monbean> tam= new ArrayList<monbean>();
for(monbean mon: ds)
{
if(mon.getLoaiMon().toLowerCase().equals(dv.toLowerCase())
)
tam.add(mon);}
return tam;
}
Hiển thị lại dữ liệu :(giúp hiển thị lại toàn bộ dữ liệu
sau khi tìm kiếm )
public ArrayList<monbean> HienThi() throws Exception{
59
ArrayList<monbean> tam= new ArrayList<monbean>();
for(monbean mon: ds)
{
tam.add(mon);}
return tam;
}

 View : Giao diện quản lý món ăn

 Quản lý order : Lập trình bằng Eclipse – Java Swing


- Bean : Khai báo dữ liệu :
package Bean;

public class OrderBean {


private String MaBan;
private String MaMon;
private String TenMon;
private double SoLuong;
private String MaBan1;
private double Tong;

public OrderBean() {
super();
// TODO Auto-generated constructor stub
60
}

public OrderBean(String maBan, String maMon, String


tenMon, double soLuong, String maBan1, double tong) {
super();
MaBan = maBan;
MaMon = maMon;
TenMon = tenMon;
SoLuong = soLuong;
MaBan1 = maBan1;
Tong = tong;
}

public String getMaBan1() {


return MaBan1;
}

public void setMaBan1(String maBan1) {


MaBan1 = maBan1;
}

public double getTong() {


return Tong;
}

public void setTong(double tong) {


Tong = tong;
}

public String getMaBan() {


return MaBan;
}
public void setMaBan(String maBan) {
MaBan = maBan;
}
public String getMaMon() {
return MaMon;
}
public void setMaMon(String maMon) {

61
MaMon = maMon;
}
public String getTenMon() {
return TenMon;
}
public void setTenMon(String tenMon) {
TenMon = tenMon;
}
public double getSoLuong() {
return SoLuong;
}
public void setSoLuong(double soLuong) {
SoLuong = soLuong;
}

}
 Dao :
- Lấy dữ liệu :
ArrayList<OrderBean> ds=new ArrayList<OrderBean>();
public ArrayList<OrderBean> getdv() throws Exception {
String sql ="Select * from dbo.QLOrder order by
MaBan asc";
PreparedStatement
cmd=Coso.cn.prepareStatement(sql);
ResultSet rs=cmd.executeQuery();
while(rs.next())
{
OrderBean or=new OrderBean();
or.setMaBan(rs.getString("MaBan"));
or.setMaMon(rs.getString("MaMon"));
or.setTenMon(rs.getString("TenMon"));
or.setSoLuong(rs.getInt("SoLuong"));
ds.add(or);
}
rs.close();
return ds;

62
+ Sửa thông tin order:
public int Sua(String maBan, String maMon, String tenMon,
double soLuong) throws Exception {

String sql="update QLOrder set


MaMon=?,TenMon=?,SoLuong=? where MaBan=?";
PreparedStatement cmd=
Coso.cn.prepareStatement(sql);
cmd.setString(4,maBan);
cmd.setString(1,maMon);
cmd.setString(2, tenMon);
cmd.setDouble(3, soLuong);

return cmd.executeUpdate();
}
 Bo :
+ Thêm thông tin :
orderdao odao=new orderdao();
ArrayList<OrderBean> ds;
public ArrayList<OrderBean> getdv() throws Exception {
ds=odao.getdv();
return ds;

}
Tìm kiếm mã order :
public ArrayList<OrderBean> Tim(String dv) throws Exception{
ArrayList<OrderBean> tam= new
ArrayList<OrderBean>();
for(OrderBean mon: ds)
{

if(mon.getMaBan().toLowerCase().equals(dv.toLowerCase()))
tam.add(mon);}
return tam;
}
+ Sửa thông tin :

63
public int Sua(String maBan, String maMon, String tenMon,
double soLuong) throws Exception
{
for(OrderBean mon: ds)
if(mon.getMaBan().equals(maBan)) {
mon.setSoLuong(soLuong);
mon.setMaMon(maMon);
mon.setTenMon(tenMon);
odao.Sua(maBan, maMon, tenMon, soLuong);
return 1;
}
return 0;
}

64
View:
 Đăng nhập hệ thống:

 Đăng ký tài khoản :

65
Cơ sở dữ liệu:

Phương thức:
Bảng Phương thức

NguoiDung ThemNguoiDung()

QuanLyHoaDon ThemHoaDon()

SuaHoaDon()

TimKiem()

ThanhToan()

QuanLyMon ThemMon()

XoaMon()

TimKiemMon()

66
SuaMon()

QuanLyOrder ThemOrder()

XoaOrder()

SuaOder()

Xoa()

67

You might also like