Physical DFD order món ăn

Một phần của tài liệu bài tập lớn đề bài phân tích thiết kế hệ thống quản lý hoạt động tại nhà hàng nam sơn – 809 giải phóng (Trang 119)

Hình 50. Physical DFD order món ăn 4.4.4. Physical DFD thanh toán hóa đơn

Hình 51. Physical DFD thanh toán hoá đơn

4.5. Thiết kế giao diện người dùng 4.5.1. Chuẩn giao diện

Mẫu giao diện (Interface Templates):

Menu:

109

Hình 52. Giao diện menu quản lý hệ thống

Thêm nguyên liệu:

Hình 53. Giao diện thêm nguyên liệu

Các đối tượng giao diện (Interface Objects): Các tùy chọn (Option):

110

Hình 54. Giao diện tuỳ chọn

Tên thuộc tính:

Trường nhập dữ liệu:

Nút điều khiển, xử lý:

Bảng hiển thị thông tin:

Các hoạt động trên giao diện (Interface Actions): o Thêm dữ liệu:

o Cập nhật dữ liệu:

111

o Tìm kiếm dữ liệu:

o Thoát:

o Các biểu tượng (Interface Icons):

Lần lượt là : ẩn giao diện, phóng to giao diện và đóng giao diện.

4.5.2 Giao diện hệ thống

4.5.2.1. Giao diện quản lý khách hàng

Giao diện đặt bàn:

Hình 55. Giao diện đặt bàn

112

Giao diện tìm kiếm khách hàng:

Hình 56. Giao diện tìm kiếm khách hàng đặt bàn

Giao diện phiếu order món ăn:

113

Hình 57. Giao diện phiếu order món ăn 4.5.2.2. Giao diện quản lý nguyên liệu

Hình 58. Giao diện quản lý nguyên liệu

114

4.5.2.3. Giao diện quản lý thanh toán

Hình 59. Giao diện quản lý thanh toán 4.5.2.4. Giao diện quản lý tài khoản

Giao diện đăng nhập:

Hình 60. Giao diện đăng nhập

Giao diện đổi mật khẩu:

115

Hình 61. Giao diện đổi mật khẩu

Giao diện quản lý nhân viên (thêm nhân viên, khoá tài khoản nhân viên):

Hình 62. Giao diện quản lý nhân viên

Giao diện cấp tài khoản:

116

Hình 63. Giao diện cấp tài khoản 4.5.2.5. Giao diện quản lý báo cáo thống

Hình 64. Giao diện quản lý báo cáo thống kê

4.6. Thiết kế kiểm soát

4.6.1 Xac đinh cac điêm hơ cua hê thông

Do con người: thao tác, chuyên môn. Giao diện của hệ thống dễ sử dụng. Tuy nhiên do dễ sử dụng nên yếu tố con người không có chuyên môn quá cao cũng có thể xâm nhập dễ dàng nếu rò rỉ thông tin tài khoản của người có quyền quản lý.

Do kĩ thuật: lỗi/sự cố phần cứng. Ví dụ: khi đang hoạt động máy tính bị lỗi màn hình, RAM đầy hoặc do máy bị nóng lên dẫn đến tình trạng không thao tác được

Thảm hoạ tự nhiên: lụt, bão, sét đánh…Ví dụ: khi có những thảm họa tự nhiên không báo trước, dữ liệu cần được sao lưu để đảm bảo tất cả có thể được khôi phục không cần máy chủ.

Do cố ý: gian lận, hack… Gian lận thương mại: gián điệp… Các phá hoại khác

4.6.2 Cac giai phap đươc đê xuât đê khắc phuc cac điêm hơ

Hệ thống hiện tại vẫn đang tồn tại 1 số điểm hở như đã nêu ở trên . Và nhóm cũng xin đưa ra 1 số đề xuất giải pháp khắắ́c phục điểm hở đó góp phần xây dựng hệ thống làm việc 1 cách hiệu quả , chuẩn mực và an toàn hơn:

Tăng cường tính an toàn cho hệ thống:

Mục đích: kiểm soát tốt hơn về hệ thống tránh bị xâm nhập và phá hoại có chủ đích từ phía con người.

Yêu cầu: tên đăng nhập bắắ́t buộc phải là mã nhân viên và mật khẩu phải thay đổi 1 tháng 1 lần.

Tăng cường tính toàn vẹn cho hệ thống:

Phải đảm bảo cho hệ thống hoạt động một cách tốt nhất, không bị gián đoạn trong quá trình sử dụng hoặc lỗi kỹ thuật.

118

Nguyên nhân: có thể là hỏng phần cứng, lập trình sai, hệ điều hành lỗi,..

Hậu quả: mất thời gian khắắ́c phục hệ thống, mất dữ liệu, tốn kém tiền bạc để sửa lỗi.

Cách khắắ́c phục: Tạo các bản sao lưu, thiết lập các server dự phòng.. Tăng cường tính tiện lợi cho hệ thống:

Đảm bảo cho những người không có kĩ năng về công nghệ cũng như là người nước ngoài có thể sử dụng được dễ dàng.

Cách khắắ́c phục: Tạo 1 bản hướng dẫn bằng tiếng việt và tiếng anh 1 cách dễ hiểu nhất để mọi người đều có thế tiếp cận được dễ dàng.

4.6.3 Cac kêt qua thiêt kê kiêm soat

Bảng đặc tả ràng buộc với từng thông tin đầu vào, đầu ra (I): Chế độ mã hoá đối với những thông tin nhạy cảm/mật (I): Mã hoá mật khẩu bằng mã hoá bằng key xác thực

Mật khẩu phải được đổi sau 1 tháng để đảm bảo tính bảo mật Ma trận phân cấp truy cập chức năng (A):

Chức năng 1.1. Đặt bàn 1.2. Tìm khách hàng 1.3. Lập order món ăn 2.1. Lập hoá đơn thanh toán 2.2. Thanh hoá đơn 3.1. Lập yêu cầu nguyên liệu 3.2. Duyệt yêu cầu

nguyên liệu 3.3. nguyên liệu 3.4. Cập nguyên liệu 3.5. Tìm nguyên liệu 3.6. Thêm ăn 3.7. Cập món ăn 3.8. Tìm món ăn 4.1. Lập báo cáo thống kê nguyên liệu 4.2. Lập báo cáo thống liệu 4.3. Lập báo cáo thống kê thu 4.4. Tìm báo cáo thu 4.5. Lập báo cáo thống kê tài chính 5.1. Đăng nhập 5.2. Cập thông tin khoản 5.3. Đổi mật khẩu 5.4. khoản 5.5. Cấp khoản 5.6. Thêm viên 5.7. Đăng xuất

120

Thông tin Danh khoản Danh sách ăn Danh sách quyền Danh sách bàn ăn Danh sách khách hàng Danh sách đơn Danh nguyên liệu Danh sách viên Danh sách order Danh sách cầu nhập nguyên liệu Danh sách yêu cầu nguyên liệu

Các kịch bản sao lưu, phục hồi dữ liệu, ứng phó rủi ro, kiểm tra an toàn thông tin (A):

Sao lưu phục hồi dữ liệu: tránh trường hợp dữ liệu đang nhập bị mất đi khi mất điện hay hỏng phần cứng. Xây dựng server dự phòng, dữ liệu tự động sao lưu lại và khi mất điện hay mất dữ liệu tại máy đang làm việc, người dùng có thể truy cập vào server dự phòng để lấy lại.

Ứng phó rủi ro: Trường hợp nếu một tài khoản nào đó đăng nhập vào hệ thống cần phải có xác minh khi đăng nhập và mật khẩu được thay đổi một tháng một lần, để đảm bảo khi bị lộ tài khoản người lạ cũng không thể đăng nhập được.

Hệ thống thêm mục trợ giúp người dùng có tài liệu tham khảo sử dụng vận hành hệ thống bằng tiếng việt và tiếng anh để đảm bảo người dùng có thể tiếp cận được dễ dàng.

4.7. Thiết kế Xử lý (cách bố trí tùy theo từng kiến trúc phần mềm) 4.7.1 Chức năng: 1.3. Lập phiếu order món ăn

Các bước xử lý:

Lúc gọi đến form lập phiếu order món ăn (LapPhieuOrder.cs), textbox MaPhieuOrder phải tự động hiển thị được mã phiếu tiếp theo (ví dụ: trong hệ thống đã có 2 phiếu order món ăn rồi thì lúc form LapPhieuOrder.cs được gọi đến phải hiển thị trong textbox MaPhieuOrder là 3).

Đồng thời, textbox ngày giờ phải tự động lấy và hiển thị ra textbox NgayGio là ngày giờ hiện tại khi vào form.

Cùng vào đó, comboBox TenNV và comboBox TenMon phải được tự động load hiển thị ra danh sách tên nhân viên vào comboBox TenNV, và danh sách tên món vào comboBox TenMon.

Sau khi nhập đầy đủ các thông tin vào các trường, nhấn button “Lập” thì thông tin được lưu vào DataGridView.

Mỗi 1 bản ghi (record) được thêm vào DataGridView đều có thể xem chi tiết lại bản ghi đó và thực hiện xuất ra phiếu (PhieuOrder.rpt). Chọn 1 bản ghi (checkbox) và nhấn button “Xem chi tiết” để xem chi tiết phiếu order. Sau đó, nhấn button “Xuất” để thực hiện xuất phiếu order đó (PhieuOrder.rpt).

Nếu dữ liệu trong các trường (textbox) còn trống, mà thực hiện nhấn button “Lập” thì hệ thống sẽ hiển thị thông báo “Textbox nào không được để trống”.

Với các xử lý trên, Model Component cần có các phương thức: String LoadMaPhieuOrder();

String getNgayHienTai() ;

122

DataTable LoadTenNV(); DataTable LoadTenMon(); Controller Component cần có:

void btnLap_Click(object sender, EventArgs e);

Hàm này sẽ lần lượt gọi các phương thức trong Model Component. string message;

View Component có giao diện LapPhieuOrder.cs như sau:

Hình 65. View Component lập phiếu order món ăn

Biểu đồ giao tiếp tuần tự giữa các thành phần:

123

4.7.2 Chức năng: 2.1. Lập hóa đơn thanh toán

Các bước xử lý:

Lúc gọi đến form Lập hóa đơn thanh toán(FrmLaphoadon.cs), con trỏ chuột tự động nằm ở ô textbox txtSohoadon.

Textbox lấy ngày phải tự động lấy ngày hiện tại và hiển thị ra textbox txtNgay.

ComboBox TenNVthanhtoan tự động load hiển thị danh danh sách tên nhân viên thanh toán.

Sau khi nhập đầy đủ các thông tin cần thiết vào các trường, nhấn button "Cập nhật", thông tin sẽ được tự động lưu vào Data GridView.

Muốn tìm kiếm một hóa đơn nào đó chỉ cần nhập thông tin vào textbox cần tìm kiếm rồi nhấn button Tìm kiếm. Sự kiện sẽ trả ra DataGridView thông tin của số hóa đơn theo thông tin đã nhập.

Ô checkbox trong DataGridView chỉ hiển thị với những bản ghi có thông tin của "Số hóa đơn" , vì đây sẽ là 1 hóa đơn thanh toán.

Chọn 1 bản ghi (checkbox) nhấn button "Lập hóa đơn" . Sự kiện sẽ in ra phiếu "Hóa đơn thanh toán" (Hoadonthanhtoan.rpt).

124

Ngoại trừ số hóa đơn và số bàn ăn có thể được để trống do 1 hóa đơn chỉ dành cho 1 bàn ăn và bàn ăn đó có thể có nhiều món thì toàn bộ các trường còn lại không được để trống. Nếu còn để trống, khi nhấn button Cập nhật sẽ có thông báo hiện ra màn hình "Textbox nào không được để trống".

Các phương thức của Model Component: getNgayhientai(); DataTable LoadTenNVthanhtoan(); Controller Component cần có:

void btnCapnhathoadon_Click(object sender, EventArgs e);

Hàm này sẽ lần lượt gọi các phương thức trong Model Component. void btnLaphoadon_Click(object sender, EventArgs e);

void btnTimkiem_Click(object sender, EventArgs e); void btnThoat_Click(object sender, EventArgs e); View Component có giao diện FrmLaphoadon.cs như sau:

Biểu đồ giao tiếp tuần tự giữa các thành phần:

125

4.7.3 Chức năng: 3.1. Lập phiếu yêu cầu nhập nguyên liệu

Các bước xử lý:

Lúc gọi đến form Yêu cầu nhập nguyên(FrmYCNNL.cs), con trỏ chuột tự động nằm ở ô textbox txtHoTen.

Textbox lấy ngày phải tự động lấy ngày hiện tại và hiển thị ra textbox txtNgayYC.

Sau khi nhập đầy đủ các thông tin cần thiết vào các trường, nhấn button "Gửi phiếu yêu cầu" thì các thông tin được gửi lên hệ thống và lưu trữ và database.

Nếu trường nào bị bỏ trống thì khi nhấn vào button “Gửi phiếu yêu cầu” sẽ hiển thị message box thông báo yêu cầu điền đầy đủ thông tin.

Các phương thức của Model Component: + getNgayHienTai();

126

yeuCauNhapNguyenLieu(); Controller Component cần có:

void btnGuiPhieuYeuCau_Click(object sender, EventArgs e); void btnThoat_Click(object sender, EventArgs e)

View Component có giao diện FrmPYCNNL.cs như sau:

Biểu đồ giao tiếp tuần tự giữa các thành phần:

4.7.4 Chức năng: 3.5. Tìm kiếm nguyên liệu

Các bước xử lý:

127

Lúc gọi đến form Quản lý nguyên liệu (QLNguyenlieu.cs), con trỏ chuột tự động nằm ở ô textbox txtManguyenlieu.

Sau khi nhập các thông tin cần tìm kiếm vào các trường, nhấn button "Tìm kiếm", Khi nhập thông tin cần tìm kiếm ở các ô textbox sai kiểu dữ liệu hoặc thông tin không đúng sau khi nhấn nút “Tìm kiếm” hệ thống sẽ hiện thông báo “Thông tin bạn nhập không đúng mời kiểm tra lại” và con trỏ chuột sẽ tự động nhảy vào ô textbox có thông tin bị sai.

Trong trường hợp thông tin không bị sai thì sau khi nhấn nút “tìm kiếm” thông tin sẽ được tự động lưu vào Data GridView. Sự kiện sẽ trả ra DataGridView thông tin của nguyên liệu theo thông tin đã nhập.

Các phương thức của Model Component: không có. Controller Component cần có:

void btnTimkiemnguyenlieu_Click(object sender, EventArgs e); Hàm này sẽ lần lượt gọi các phương thức trong Model

Component void btnTimkiem_Click(object sender, EventArgs e); void btnThoat_Click(object sender, EventArgs e);

View Component có giao diện QLNguyenlieu.cs như sau:

Biểu đồ giao tiếp tuần tự giữa các thành phần:

128

4.7.5 Chức năng: 4.1. Lập báo cáo thống kê nhập nguyên liệu

Các bước xử lý:

Khi gọi đến form Quản lý báo cáo thống kê (QLBaoCao.cs), combobox Danh Mục Báo Cáo phải tự động hiển thị được tên của 1 trong những loại báo cáo nhà hàng quản lý.

Click vào mũi tên sổ xuống chọn Nhập Nguyên Liệu nếu loại báo cáo trong combobox không phải là báo cáo nhập nguyên liệu.

Sau khi chọn loại báo cáo cần xem click vào ô ngày lập để chọn ngày lập hóa đơn, nếu thông tin ngày không chính xác hiện thông báo “Không có báo cáo thống kê nào được lập, hãy chọn lại ngày lập”.

Sau khi nhập chính xác loại báo cáo cần xem và ngày lập click nút xem báo cáo để đi đến báo cáo.

Các phương thức của Model Component: getTaoMoi();

Controller Component cần có:

void btnTaoMoi_Click(object sender, EventArgs e);

→ Hàm này sẽ lần lượt gọi các phương thức trong Model Component. 129

void btnThoat_Click(object sender, EventArgs e);

Biểu đồ giao tiếp tuần tự giữa các thành phần:

4.7.6 Chức năng: 4.2. Lập báo cáo thống kê nguyên liệu

Các bước xử lý:

Khi gọi đến form Quản lý báo cáo thống kê (QLBaoCao.cs ), combobox Danh Mục Báo Cáo phải tự động hiển thị được tên của 1 trong những loại báo cáo nhà hàng quản lý.

Click vào mũi tên bên phải ô chọn “ Nguyên Liệu” nếu loại báo cáo trong combobox không phải là báo cáo thống kê nguyên liệu.

Sau khi chọn loại báo cáo cần xem click vào ô “Ngày Lập” để chọn ngày lập hóa đơn, nếu thông tin ngày không chính xác hiện thông báo “Không có báo cáo thống kê nào được lập, hãy chọn lại ngày lập”.

Sau khi nhập chính xác loại báo cáo cần xem và ngày lập click nút “Tạo Mới” để đi đến báo cáo.

130

Controller Component cần có: getTaoMoi(); DataTable LoadDanhMucBaoCao(); getNgayLap(); String CheckNgayLap(); String CheckTenDanhMuc();

→ Hàm này sẽ lần lượt gọi các phương thức trong Model

Component. void btnTaoMoi_Click(object sender, EventArgs e); View Component có giao diện QLBaoCao.cs như sau:

Biểu đồ giao tiếp tuần tự giữa các thành phần:

131

4.7.7 Chức năng: 5.3. Đổi mật khẩu

Các bước xử lý:

Khi gọi đến form đổi mật khẩu (DoiMatKhau.cs), textbox TenDangNhap phải tự động hiển thị được tên đăng nhập của tài khoản hiện đang sử dụng chức năng này.

Sau khi nhập đầy đủ các thông tin về mật khẩu cũ, mật khẩu mới và xác nhận mật khẩu, nhấn button “Cập nhật” thì thông tin mật khẩu mới sẽ được cập nhật vào hệ thống và hiển thị thông báo “Đổi mật khẩu thành công”.

Nếu dữ liệu về mật khẩu cũ không khớp với mật khẩu hiện tại của tài khoản thì khi nhấn nút “Cập nhật” hệ thống sẽ hiển thị thông báo “Mật khẩu cũ không chính xác”.

Nếu dữ liệu trường mật khẩu mới trống thì khi nhấn nút “Cập nhật” hệ thống sẽ hiển thị thông báo “Mật khẩu mới không được để trống”.

Nếu dữ liệu trường xác nhận mật khẩu không khớp với mật khẩu mới hệ thống sẽ hiển thị thông báo “Mật khẩu xác nhận không khớp”.

Với các xử lý trên, Model Component cần có các phương thức: String loadTenDangNhap();

String checkMatKhauCu(); Boolean capNhatMatKhau(); Controller Component cần có: Boolean capNhatMatKhau();

Hàm này sẽ lần lượt gọi các phương thức Model Component và kiểm tra các điều kiện đã nêu ở trên.

View Component có phần giao diện DoiMatKhau.cs như sau:

132

Biểu đồ giao tiếp tuần tự giữa các thành phần:

4.7.8 Chức năng: 5.5. Cấp tài khoản

Các bước xử lý:

Khi load đến form cấp tài khoản(frmCapTaiKhoan.cs), comboBox TenNV phải được tự động load hiển thị ra danh sách tên nhân viên vào comboBox TenNV. Lưu ý, trong comboBox TenNV chỉ hiển thị các nhân viên chưa được cấp tài khoản.

Sau khi chọn được nhân viên cần cấp tài khoản, nhập đầy đủ các thông tin về tài khoản, mật khẩu và xác nhận mật khẩu, nhấn button “Lưu” thì sẽ được cấp được tài khoản cho nhân viên vào hệ thống và hiển thị thông báo “Cấp tài khoản thành công”.

133

Nếu textbox tài khoản bỏ trống, mà nhấn nút button “Lưu” thì hệ thống hiển thị thông báo “Tài khoản không được để trống”.

Nếu textbox tài khoản nhập trùng với tên tài khoản đã tồn tại trong database thì hệ thống hiển thị thông báo “Tài khoản đã tồn tại. Vui lòng chọn tài khoản khác”.

Nếu textbox mật khẩu bỏ trống thì hệ thống hiển thị thông báo “Mật khẩu không được để trống”.

Một phần của tài liệu bài tập lớn đề bài phân tích thiết kế hệ thống quản lý hoạt động tại nhà hàng nam sơn – 809 giải phóng (Trang 119)

Tải bản đầy đủ (DOCX)

(186 trang)
w