Trang 17 KiotViet Các hệ thống quản lý hiện nay như KiotViet đã phần nào giải quyết được bài toán trong thời buổi hiện tại đó chính là cung cấp những nhu yếu phẩm các tính năng mà các c
TỔNG QUAN
Lý do chọn đề tài
Khi nền kinh tế trên thế giới phát triển, ứng dụng công nghệ thông tin là điều không thể thiếu với tất cả các ngành nghề Với các nước phát triển, hệ thống phần mềm quản lý kinh doanh luôn có mặt trong các siêu thị, cửa hàng tiện lợi, cửa hàng ăn uống Bên cạnh đó, hiện nay, thị trường chuỗi cà phê ở Việt Nam đang ngày càng trở nên sôi động Để đảm bảo quy trình quản lý chặt chẽ, bảo mật thông tin, các số liệu báo cáo tổng quan và chính xác, việc áp dụng công nghệ thông tin vào việc quản lý hệ thống là điều hết sức cần thiết.
Mục tiêu nghiên cứu
- Nghiên cứu về Spring Restful API
- Tìm hiểu quy trình quản lý chuỗi cửa hàng kinh doanh thức uống
- Xây dựng website quản lý chuỗi cửa hàng cà phê phần bán hàng và quản lý kho.
Khảo sát hiện trạng
Nước ta đứng thứ hai thế giới về sản lượng cafe, cùng với sự ưa chuộng của thực khách đối với các sản phẩm đồ uống nói chung và cafe nói riêng dã dẫn đến thị trường cafe Việt Nam hết sức phát triển với hàng loạt chuỗi cửa hàng với tên quen thuộc như Highland Coffee, The Coffee House, v.v Song song đó là sự ra đời của rất nhiều các cửa hàng kinh doanh cafe mới với nhiều hình thức phong phú, tạo ra sức cạnh tranh cao Để có doanh thu lớn và tăng sự cạnh tranh thì các doanh nghiệp cần phải tăng số lượng chi nhánh cửa hàng Việc xây dựng một ứng dụng để quản lý tình hình kinh doanh của chuỗi các cửa hàng là vô cùng cần thiết Với thời đại 4.0 hiện nay, khi mà mạng internet được phủ sóng rộng rãi thì việc quản lý dựa vào sổ sách, giấy tờ dần trở nên bất tiện, việc lựa chọn nền tảng web để xây dựng ứng dụng quản lý chuỗi là một lựa chọn hợp lý Dựa vào ứng dụng này, người chủ cửa hàng có thể quản lý hoạt động kinh doanh từ các cửa hàng của mình, mọi lúc mọi nơi bao gồm việc quản lý nhân viên, quản lý doanh số bán hàng để có thể nắm được tình hình kinh doanh của các chi nhánh một cách rõ ràng nhất
Các hệ thống quản lý hiện nay như KiotViet đã phần nào giải quyết được bài toán trong thời buổi hiện tại đó chính là cung cấp những nhu yếu phẩm các tính năng mà các của hàng vừa và nhỏ cần đến, họ xây dụng thành công những cái nền tảng thiết yếu, cần thiết để đem đến sự thành công trong quản lý một cách tự động cho những khách hàng có những mô hình kinh doanh tương tự nhau Ưu điểm của các phần mềm KiotViet
- Số liệu thống kê trực quan, chính xác
- Báo cáo tài chính định kỳ
- Phân quyền nhân viên chi tiết
- Quản lý nhiều chi nhánh
Hạn chế của phần mềm:
- Chưa xây dựng công thức cho thức uống
- Chưa tính được giá vốn tồn kho của nguyên liệu
Phần mềm quản lý bán hàng Suno được viết bởi Công ty cổ phần công nghệ SUNO, xuất hiện lần đầu trên thị trường năm 2014 Đây là phần mềm bán hàng Online, sử dụng công nghệ điện toán đám mây, có thể sử dụng trên nhiều loại thiết bị, từ máy tính cho đến di động Ưu điểm của phần mềm Suno:
- Giao diện đơn giản, số liệu thống kê trực quan
- Có thể quản lý nhiều kho hàng, cửa hàng trên cùng một tài khoản
- Tính được giá vốn tồn kho của hàng hóa
Hạn chế của phần mềm:
- Chưa xây dựng công thức cho thức uống
- Quản lý trên một chi nhánh hoặc hoặc một cửa hàng.
Mô tả tổng thể
Hệ thống chuỗi cửa hàng cà phê được xây dựng nhằm quản lý một chuỗi kinh doanh cà phê Chuỗi có nhiều chi nhánh, mỗi chi nhánh có: Trung bình 5 đến 12 nhân viên, trong đó có 1 quản lý chi nhánh, 1 bảo vệ, 1-2 nhân viên bếp, 1-2 nhân viên thu ngân, 2-4 nhân viên phục vụ Giờ mở cửa từ 6:00AM đến 10:00PM Nhân viên bếp và nhân viên phục vụ là nhân viên partime; quản lý, bảo vệ, thu ngân là nhân viên fulltime Quản lý chi nhánh kiểm tồn của những nguyên liệu trong kho hằng ngày
Giá của nguyên liệu sẽ được ghi nhận dựa trên giá nhập nguyên liệu từ nhà cung cấp Công thức được xây dựng từ nhiều nguyên liệu cho một thức uống cụ thể Giá bán của thức uống do trụ sở chính quy định cho tất cả các chi nhánh Các thay đổi về giá của nguyên liệu và thức uống cần được lưu lại để đối chiếu và thống kê
Sử dụng các công thức về bài toán xuất – nhập – tồn để xử lý vấn đề tồn kho Mỗi chi nhánh sẽ có kho riêng và một kho trung tâm để dự trữ nguyên liệu Nguyên liệu được nhập từ nhà cung cấp về sẽ trữ tại kho trung tâm, kho của các chi nhánh nhập nguyên liệu từ kho trung tâm về kho của mình
Chức năng chính của phần mềm:
- Quản lý chi tiết hợp đồng cung cấp
- Quản lý nguyên liệu tồn kho của kho trung tâm và kho chi nhánh
1.4.3 Các lớp người dùng và đặc điểm người dùng
Người dùng của hệ thống được xếp vào tám loại dựa trên chức năng mà người dùng đó sử dụng trong phần mềm
- Lớp nhân viên bếp: Xem các đơn đang chờ chế biến, in nhãn lên thức uống và thông báo khi đã chế biến xong
- Lớp thu ngân: Xử lý giao dịch gọi món và thanh toán
- Lớp quản lý chi nhánh: Quản lý kho của chi nhánh mình, quản lý hoạt động của chi nhánh
- Lớp admin: Quản lý hệ thống
- Lớp nhân viên kế toán: Quản lý các hóa đơn chứng từ
- Lớp HR: Quản lý nguồn nhân lực
- Lớp quản lý chuỗi: Điều phối hoạt động xuất nhập của các kho chi nhánh, quản lý thức uống và nguyên liệu trong chuỗi
- Lớp quản lý kho trung tâm: Kiểm soát việc hàng nhập từ nhà cung cấp và xuất kho trung tâm đi vào kho chi nhánh
- Máy tính sử dụng hệ điều hành Windows
- Ngôn ngữ: o Back-end: Java 8 (Spring Boot) o Front-end: TypeScript (Angular 8.0)
- Hệ quản trị cơ sở dữ liệu: MySQL
Môi trường hoạt động phải kết nối Internet.
CƠ SỞ LÝ THUYẾT
Tổng quan về Spring Boot
Microservices là một kiến trúc cho phép xây dựng và triển khai các dịch vụ một cách độc lập Với nền tảng trên ngôn ngữ Java, Spring Boot cho phép xây dựng và thực thi các microservices
Hình 2.1: Mô tả Spring Boot
Core container là nền tảng của toàn bộ hệ sinh thái Spring và bao gồm bốn thành phần: expression language, context, core, bean, [1]
- Mô-đun expression language cung cấp một Expression Language (ngôn ngữ biểu thức) mạnh mẽ để cho truy vấn và tính toán các đối tượng trong lúc thực thi
- Context được xây dựng dựa trên Bean và Core và cho phép truy cập vào bất cứ đối tượng nào được định nghĩa trong phần cài đặt
- Mô-đun Core cung cấp các phần chính của khung (framework) bao gồm IoC (Inversion of Control) và DI (Dependency Injection)
- Mô-đun Bean chịu trách nhiệm tạo và quản lý các bean Ưu điểm của Spring Boot:
- Dễ dàng phát triển ứng dụng dựa trên Spring Application
- Giảm thiểu thời gian phát triển và tăng năng suất
- Dễ dàng tương tác với hệ sinh thái của Spring như Spring JDBC, Spring ORM, Spring Data, Spring Security…
- Cung cấp server nhúng để phát triển và kiểm thử ứng dụng
- Cung cấp công cụ CLI (Command Line Interface)
- Cung cấp nhiều plugin để phát triển và kiểm thử ứng dụng Spring Boot một cách dễ dàng khi sử dụng Maven hoặc Gradle
Mục tiêu chính của Spring Boot [2]
- Tránh sự phức tạp của cấu hình XML trong Spring
- Dễ dàng phát triển ứng dụng Spring
- Giảm thời gian phát triển ứng dụng
- Cung cấp cách thức để bắt đầu một ứng dụng
Spring Boot Starter là một trong những chức năng chính và là một trong số những component của Spring Boot Framework Khi phát triển ứng dụng web, chúng ta cần phải thêm rất nhiều sự phụ thuộc (dependencies) vào build file (pom.xml với Maven và build.grandle với Grandle) Nhiệm vụ chính của Spring Boot Starter là gom nhóm những dependency thông thường hoặc những dependency có liên quan đến nhau vào một single dependencies Khi thêm “spring-boot-starter-web” vào build file, Spring Boot Framework tự động tải những dependencies cần thiết và thêm chúng vào project classspath
Hình 2.2: Mô tả Spring Boot Starter
Spring Boot Auto Configurator là một thành phần của Spring Boot Framework Mục đích của Spring Auto Confugurator là giảm việc phải cấu hình cho ứng dụng Spring Khi sử dụng Spring Boot Framework, người phát triển không cần phải cấu hình XML cho ứng dụng mà Spring Boot Auto Configurator sẽ làm việc đó Bên cạnh đó, Spring Boot còn làm giảm việc định nghĩa các annotation (chú thích) Khi sử dụng
“@SpringBootApplication”, Spring Boot Auto Configurator sẽ tự động thêm những annotation cần thiết đến Java Class Byte Code
Hình 2.3: Mô tả Spring Boot Auto Configurator
Spring Boot CLI (Command Line Interface) là một phần mềm của Spring Boot dùng để chạy và kiểm tra ứng dụng Spring Boot bằng command prompt
Hai chức năng chính của Spring Boot Actuator
- Cung cấp EndPoints quản lý ứng dụng Spring Boot
Khi chạy ứng dụng bằng CLI, Spring Boot Actuator tự động cung cấp hostname là
“localhost” với cổng mặc định là “8080”
2.1.5 Spring Web MVC Đây là mô-đun đầu tiên được nhóm Spring xây dựng để hỗ trợ các ứng dụng web trong Spring Framework Mô-đun này sử dụng API Servlet làm nền tảng và sau đó các ứng dụng web phải tuân theo thông số kỹ thuật của Servlet và được triển khai vào các thùng chứa servlet Mô-đun Spring Web MVC được phát triển bằng cách sử dụng mẫu điều khiển phía trước (the front controller pattern) Có một servlet chính trong Spring được gọi là DispatcherServlet cho phép các nhà phát triển tạo ra một ứng dụng web trên nền tảng Java Mô-đun này có hỗ trợ đầy đủ cho các annotation kể từ khi khai báo HTTP endpoints cho đến khi bao bọc thuộc tính yêu cầu trong HTTP [4]
Tổng quan về Angular
Angular là một khung (framework) và nền tảng cho việc xây dựng một ứng dụng trang đơn (single page application) sử dụng HTML và TypeScript Angular được viết bằng TypeScript được triển khai những chức năng cốt lõi và tùy chọn
Kiến trúc của một ứng dụng Angular sẽ dựa trên các khái niệm cơ bản nhất định Các khối xây dựng cơ bản của Angular là NgModules Ngmodule sẽ cung cấp những ngữ cảnh biên dịch cho các thành phần (components), nó còn thu thập những mã liên quan vào trong các bộ chức năng Chính vì vậy một ứng dụng Angular sẽ được xác định bởi một bộ NgModules Một ứng dụng luôn phải có ít nhất một mô-đun gốc cho phép sử dụng bootstrap và những mô-đun khác có nhiều tính năng hơn
- Các thành phần sẽ là nơi định nghĩa phần hiển thị (là nơi chứa các tập phần tử của của màn hình mà Angular có thể chọn trong số đó và sửa đổi theo luận lý và dữ liệu trong chương trình)
- Các thành phần sử dụng dịch vụ (cung cấp chức năng cụ thể không liên quan trực tiếp đến chế độ hiển thị) Các nhà cung cấp dịch vụ (service) có thể đưa vào các thành phần dưới dạng phụ thuộc, làm cho mã được mô-đun hóa có thể sử dụng lại và rất hiệu quả
- Các mô-đun, thành phần, dịch vụ là các lớp dùng đến thành phần trang trí (decorator) Những thành phần trang trí này đánh dấu loại của chúng và cung cấp siêu dữ liệu (metadata) làm cho Angular có thể biết cách sử dụng chúng
- Siêu dữ liệu cho một lớp thành phần liên kết nó với một mẫu dùng để khai báo phần hiển thị Một cái mẫu mà kế hợp giữa HTML thông thường với các chỉ thị Angular và đánh dấu ràng buộc cho phép Angular sửa đổi HTML trước khi hiển thị nó ra màn hình
- Siêu dữ liệu cho một lớp dịch vụ cung cấp thông tin mà Angular cần để làm cho nó khả dụng với các thành phần thông qua việc tiêm vào phần phụ thuộc (dependency injection)
Các thành phần của ứng dụng thường được khai báo rất nhiều chế độ xem được sắp xếp theo các bậc có thứ tự Angular cung cấp dịch vụ định tuyến để giúp xác định đường dẫn điều hướng giữa các chế độ xem Bộ định tuyến cung cấp khả năng điều hướng phức tạp trong trình duyệt
Angular được sử đụng để tạo ra trang web động Trang web động là website có khuynh hướng thay đổi dữ liệu/thông tin dựa trên ba tham số: [5]
- Time-to-time (các trang tin tức)
- Location-to-location (các trang dự báo thời tiết)
- User-to-user (Gmail, Facebook,…) Đặc trưng của Angular
- Phát triển dựa trên JavaScript
- Tạo các ứng dụng client-side theo mô hình MVC
- Khả năng tương thích cao, tự động xử lý mã JavaScript để phụ hợp với mỗi trình duyệt
- Mã nguồn mở, miễn phí hoàn toàn và được sử dụng rộng rãi
Các tính năng cơ bản:
- Phạm vi (scope): đối tượng có nhiệm vụ giao tiếp giữa bộ điều khiển (controller) và bộ hiển thị (view) của ứng dụng
- Bộ điều khiển (controller): xử lý dữ liệu cho đối tượng phạm vi, từ đây bên bộ hiển thị sẽ sử dụng các dữ liệu trong phạm vi để hiển thị ra tương ứng
- Ràng buộc (data-binding): tự động đồng bộ dữ liệu giữ mô hình và hiển thị
- Dịch vụ (service): là đối tượng singleton được khởi tạo một lần duy nhất cho mỗi ứng dụng, cung cấp các phương thức lưu trữ dữ liệu có sẵn
- Bộ lọc (filter): lọc các tập con từ tập phần tử trong các mảng và trả về các mảng mới
- Chỉ thị (directive): dùng để tạo các thẻ HTML riêng phục vụ những mục đích riêng Angular có những chỉ thị có sẵn như ngBind, ngModel,…
- Mẫu (template): một thành phần của view, hiển thị thông tin từ controller
- Điều hướng (routing): chuyển đổi giữa các hành động trong bộ điều khiển, qua lại giữa các màn hình
- MVC và MVVM: mô hình thiết kế để phân chia các ứng dụng thành nhiều phần khác nhau, mỗi phần có một nhiệm vụ nhất định Angular không triển khai MVC theo cách truyền thống mà gắn liền hơn với mô hình-hiển thị-hiển thị-mô hình
- Deep link: liên kết sâu, cho phép mã hóa trạng thái của ứng dụng trong URL để nó có thể bookmark với công cụ tìm kiếm Các ứng dụng có thể được phục hồi lại từ các địa chỉ URL với cùng một trạng thái
- Tiêm phụ thuộc (dependency injection): Angular có sẵn một hệ thống con tiêm phụ thuộc để hỗ trợ các nhà phát triển tạo ra các ứng dụng dễ phát triển, dễ hiểu và kiểm tra
Hình 2.4: Mô tả kiến trúc Angular
Các thành phần (component) chính
- ng-appL định nghĩa và liên kết một ứng dụng Angular tới HTML
- ng-model: gắn kết giá trị của dữ liệu ứng dụng Angular đến các điều khiển đầu vào HTML
- Ng-bind: gắn kết dữ liệu ứng dụng Angular đến các thẻ HTML
Mỗi ứng dụng Angular đều có một hệ thống mô-đun riêng gọi là NgModules NgModules của Angular khác và bổ sung thêm một số thứ so với JavaScript (ES2015) NgModules khai báo một ngữ cảnh biên dịch cho một tập hợp các thành phần dành riêng cho miền của ứng dụng, quy trình chạy, hoặc là một tập các khả năng mà có liên quan chặt chẽ với nhau Một NgModule có thể liên kết các thành phần của các mã liên quan, chẳng hạn như các dịch vụ để tạo thành các đơn vị chức năng
Mỗi ứng dụng Angular đều có một mô-đun gốc, được đặt tên là AppModule, cung cấp cơ chế bootstrap để khởi chạy ứng dụng Một ứng dụng thường chứa nhiều mô-đun chức năng
Giống như các mô-đun của JavaScript, NgModules có thể lấy chức năng từ các NgModules khác và cho phép chức năng của chính mình xuất ra cho các Ngmodules khác sử dụng Ví dụ: để sử dụng dịch vụ bộ tính tuyến trong ứng dụng, RouterNgmodule cần được cho vào nơi cần dùng Tổ chức mã thành các mô-đun chức năng riêng biệt giúp quản lý phát triển các ứng dụng phức tạp, thiết kế mô hình để có thể sử dụng lại Ngoài ra, kỹ thuật này còn cho phép tận dụng được lợi thế của lazy loading, để tải các mô-đun theo yêu cầu, nhằm giảm thiểu số lượng mã cần tải khi khởi động
Tổng quan về PrimeNG [7]
PrimeNG là tập hợp các thành phần UI phong phú cho Angular Tất cả các công cụ đều là nguồn mở và miễn phí sử dụng theo Giấy phép MIT Bảng PrimeNG là một thành phần Angular để trình bày dữ liệu lớn và phức tạp
Bảng PrimeNG (Bảng-p) là sự kế thừa của PrimeNG DataTable với hiệu suất nhanh như chớp (nhanh hơn ít nhất 10 lần) và mức độ kiểm soát tuyệt vời đối với bản trình bày Bảng-p được gọi là TurboTable để phân biệt nếu từ p-dataTable không dùng nữa
Các tính năng quan trọng của Bảng PrimeNG là:
PHÂN TÍCH VÀ MÔ HÌNH HÓA YÊU CẦU
Mô hình hóa yêu cầu
Hình 3.1: Hình use case tổng quát
Use case tổng quát mô tả khái quát sự tương tác giữa các nhóm người dùng và hệ thống Việc mô tả từng use case sẽ làm rõ vai trò và chức năng của từng nhóm người dùng trong hệ thống
Hình 3.2: Use case Đăng nhập Bảng 3.16: Mô tả use case Đăng nhập
Tên use case Use case đăng nhập
Mô tả Đăng nhập vào hệ thống khi người dùng chưa đăng nhập
Chủ thể Người dùng chưa đăng nhập
STT Chủ thể Phản hồi hệ thống
Nếu username và password khớp với tài khoản của một người dùng trong hệ thống, hiển thị giao diện tương ứng với quyền của tài khoản đã đăng nhập trong hệ thống Điều kiện cần Có kết nối internet
Người dùng đăng nhập vào hệ thống, dựa trên quyền đăng nhập của tài khoản để xác định giới hạn tương tác của người dùng trong hệ thống
3.3.2.2 Use case Quản lý chi nhánh
Hình 3.3: Use case Quản lý chi nhánh
Use case Xem thông tin chi nhánh
Bảng 3.17: Use case xem thông tin chi nhánh
Tên use case Xem thông tin chi nhánh
Mô tả Xem thông tin chi nhánh của các chi nhánh
Chủ thể Admin, Quản lý chuỗi, Kế toán, Quản lý chi nhánh, Thu ngân, HR,
Quản lý kho Dòng xử lý
STT Chủ thể Phản hồi hệ thống
1 Click vào “Chi nhánh” trong mục Cửa hàng
Chuyển sang trang quản lý chi nhánh, hiển thị danh sách chi nhánh Điều kiện cần
Có kết nối internet, đăng nhập với account có một trong số các quyền: Admin, Kế toán, Quản lý cửa hảng, Thu ngân, HR
Kết quả Hiển thị danh sách chi nhánh, hiển thị thông tin cụ thể của chi nhánh được chọn
Use case Thêm chi nhánh
Bảng 3.18: Use case thêm chi nhánh
Tên use case Thêm chi nhánh
Mô tả Thêm một chi nhánh mới
Chủ thể Admin, Quản lý chuỗi
STT Chủ thể Phản hồi hệ thống
1 Click vào “Chi nhánh” trong mục Cửa hàng
Chuyển sang trang quản lý chi nhánh, hiển thị danh sách chi nhánh
2 Click vào “Tạo mới” Hiển thị popup tạo mới chi nhánh
3 Nhập thông tin chi nhánh cần tạo
4 Click nút “Lưu” Thông tin được lưu xuống database Điều kiện cần Có kết nối internet, đăng nhập với account có một trong số các quyền: Admin, Quản lý chuỗi Kết quả Một chi nhánh mới được tạo
Use case Sửa thông tin chi nhánh
Bảng 3.19 Use case sửa thông tin chi nhánh
Tên use case Sửa thông tin chi nhánh
Mô tả Sửa thông tin chi nhánh
Chủ thể Admin, Quản lý chuỗi
STT Chủ thể Phản hồi hệ thống
1 Click vào “Chi nhánh” trong mục Cửa hàng
Chuyển sang trang quản lý chi nhánh, hiển thị danh sách chi nhánh
2 Click vào biểu tượng chỉnh sửa
Hiển thị popup sửa thông tin chi nhánh
4 Click nút “Lưu” Thông tin được lưu xuống database Điều kiện cần
Có kết nối internet, đăng nhập với account có một trong số các quyền: Admin, Quản lý chuỗi
Kết quả Thông tin chi nhánh được cập nhật
Use case Xóa chi nhánh
Bảng 3.20: Use case Xóa chi nhánh
Tên use case Xóa chi nhánh
Mô tả Xóa chi nhánh không còn hoạt động
Chủ thể Admin, Quản lý chuỗi
STT Chủ thể Phản hồi hệ thống
1 Click vào “Chi nhánh” trong mục Cửa hàng
Chuyển sang trang quản lý chi nhánh, hiển thị danh sách chi nhánh
Click vào nút biểu tượng xóa ở chi nhánh muốn xóa
Kiểm tra chi nhánh còn nhân viên hay không, nếu còn nhân viên: không được xóa chi nhánh, nếu không còn nhân viên, hiển thị thông báo xác nhận
3 Click “OK” ở thông báo xác nhận
Thay đổi trạng thái của chi nhánh đã xóa Điều kiện cần
Có kết nối internet, đăng nhập với account có một trong số các quyền: Admin, Quản lý chuỗi
Kết quả Chi nhánh bị xóa khỏi danh sách chi nhánh
3.3.2.3 Use case Quản lý đơn vị đo lường
Hình 3.4: Use case quản lý đơn vị đo lường
Use case Thêm đơn vị
Bảng 3.21: Use case Thêm đơn vị
Tên usecase Thêm đơn vị
Mô tả Thêm đơn vị đo lường
Chủ thể Admin, Quản lý chuỗi
STT Chủ thể Phản hồi hệ thống
1 Click vào “Đơn vị đo lường” trong mục Tài nguyên
Chuyển sang trang quản lý đơn vị, hiển thị danh sách đơn vị
2 Click vào “Tạo mới” Hiển thị popup tạo mới đơn vị
3 Nhập thông tin đơn vị cần tạo
4 Click nút “Lưu” Thông tin được lưu xuống database Điều kiện cần
Có kết nối internet, đăng nhập với account có một trong số các quyền: Admin, Quản lý chuỗi
Kết quả Một đơn vị mới được tạo
Use case Xem đơn vị
Bảng 3.22: Use case Xem đơn vị
Tên usecase Xem đơn vị
Mô tả Xem thông tin đơn vị đo lường
Chủ thể Admin, Quản lý chuỗi, Quản lý chi nhánh, Nhân viên bếp
STT Chủ thể Phản hồi hệ thống
1 Click vào “Đơn vị đo lường” trong mục Tài nguyên
Chuyển sang trang quản lý đơn vị, hiển thị danh sách đơn vị Điều kiện cần
Có kết nối internet, đăng nhập với account có một trong số các quyền: Admin, Quản lý chuỗi, Quản lý chi nhánh, Nhân viên bếp
Kết quả Hiển thị danh sách đơn vị đo lường
Use case Sửa thông tin đơn vị
Bảng 3.23: Use case Sửa thông tin đơn vị
Tên usecase Sửa thông tin đơn vị
Mô tả Sửa thông tin đơn vị
Chủ thể Admin, Quản lý chuỗi
STT Chủ thể Phản hồi hệ thống
Click vào “Đơn vị đo lường” trong mục Tài nguyên
Chuyển sang trang quản lý đơn vị, hiển thị danh sách đơn vị
2 Click vào biểu tượng chỉnh sửa Hiển thị popup chỉnh sửa đơn vị
4 Click nút “Lưu” Thông tin được lưu xuống database Điều kiện cần
Có kết nối internet, đăng nhập với account có một trong số các quyền: Admin, Quản lý chuỗi
Kết quả Thông tin đơn vị được cập nhật
Use case Xóa đơn vị
Bảng 3.24: Use case Xóa đơn vị
Tên usecase Xóa đơn vị
Mô tả Xóa đơn vị không còn sử dụng
Chủ thể Admin, Quản lý chuỗi
STT Chủ thể Phản hồi hệ thống
1 Click vào “Đơn vị đo lường” trong mục Tài nguyên
Chuyển sang trang quản lý đơn vị, hiển thị danh sách đơn vị
2 Click vào nút biểu tượng delete ở đơn vị muốn xóa
Hiển thị thông báo xác nhận
3 Click “OK” Thay đổi trạng thái của đơn vị Điều kiện cần
Có kết nối internet, đăng nhập với account có một trong số các quyền: Admin, Quản lý chuỗi
Kết quả Đơn vị bị xóa khỏi danh sách đơn vị
3.3.2.4 Use case Quản lý công thức
Hình 3.5: Use case Quản lý công thức
Use case Thêm công thức
Bảng 3.25: Use case Thêm công thức
Tên use case Thêm công thức
Mô tả Thêm công thức của thức uống
Chủ thể Admin, Quản lý chuỗi
STT Chủ thể Phản hồi hệ thống
1 Click vào “Công thức” trong mục Tài nguyên
Chuyển sang trang quản lý công thức, hiển thị danh sách công thức
2 Click vào “Tạo mới” Hiển thị popup tạo mới công thức
3 Nhập thông tin công thức cần tạo
4 Click nút “Lưu” Thông tin được lưu xuống database Điều kiện cần
Có kết nối internet, đăng nhập với account có một trong số các quyền: Admin, Quản lý chuỗi
Kết quả Một công thức mới được tạo
Use case Xem công thức
Bảng 3.26: Use case Xem công thức
Tên use case Xem công thức
Mô tả Xem thông tin công thức
Chủ thể Admin, Quản lý chuỗi, Quản lý chi nhánh, Nhân viên bếp
STT Chủ thể Phản hồi hệ thống
Click vào “Công thức” trong mục Tài nguyên
Chuyển sang trang quản lý công thức, hiển thị danh sách công thức Điều kiện cần
Có kết nối internet, đăng nhập với account có một trong số các quyền: Admin, Quản lý chuỗi, Quản lý chi nhánh, Nhân viên bếp
Kết quả Hiển thị danh sách công thức
Use case Sửa công thức
Bảng 3.27: Use case Sửa công thức
Tên use case Sửa thông tin công thức
Mô tả Sửa thông tin công thức
Chủ thể Admin, Quản lý chuỗi
STT Chủ thể Phản hồi hệ thống
1 Click vào “Công thức” trong mục Tài nguyên
Chuyển sang trang quản lý công thức, hiển thị danh sách công thức
2 Click vào biểu tượng chỉnh sửa
Hiển thị popup chỉnh sửa công thức
4 Click nút “Lưu” Thông tin được lưu xuống database Điều kiện cần Có kết nối internet, đăng nhập với account có một trong số các quyền: Admin, Quản lý chuỗi Kết quả Thông tin công thức được cập nhật
Use case Xóa công thức
Bảng 3.28: Use case Xóa công thức
Tên use case Xóa công thức
Mô tả Xóa công thức không còn sử dụng
Chủ thể Admin, Quản lý chuỗi
STT Chủ thể Phản hồi hệ thống
1 Click vào “Công thức” trong mục Tài nguyên
Chuyển sang trang quản lý công thức, hiển thị danh sách công thức
2 Click vào nút biểu tượng delete ở đơn vị muốn xóa
Hiển thị thông báo xác nhận
3 Click “OK” Thay đổi trạng thái của công thức Điều kiện cần
Có kết nối internet, đăng nhập với account có một trong số các quyền: Admin, Quản lý chuỗi
Kết quả Công thức bị xóa khỏi danh sách công thức
3.3.2.5 Use case Quản lý loại đơn hàng
Hình 3.6: Use case Quản lý loại đơn hàng
Use case Xem loại đơn hàng
Bảng 3.29: Use case Xem loại đơn hàng
Tên use case Xem loại đơn hàng
Mô tả Xem thông tin các loại đơn hàng trong cửa hàng
Chủ thể Admin, Quản lý chuỗi
STT Chủ thể Phản hồi hệ thống
1 Click vào “Loại đơn hàng” trong mục Tài nguyên
Chuyển sang trang quản lý đơn loại đơn hàng và hiển thị danh sách các loại đơn hàng Điều kiện cần Có kết nối internet, đăng nhập với account có một trong số các quyền: Admin, Quản lý chuỗi
Kết quả Hiển thị danh sách loại đơn hàng, hiển thị thông tin cụ thể của loại đơn hàng được chọn
Use case Thêm loại đơn hàng
Bảng 3.30: Use case Thêm loại đơn hàng
Tên use case Thêm loại đơn hàng
Mô tả Thêm loại đơn hàng mới trong chuỗi cửa hàng
Chủ thể Admin, Quản lý chuỗi
STT Chủ thể Phản hồi hệ thống
Click vào “Loại đơn hàng” trong mục Tài nguyên
Chuyển sang trang quản lý đơn loại đơn hàng và hiển thị danh sách các loại đơn hàng
2 Click vào “Tạo mới” Hiển thị popup tạo mới loại đơn hàng
3 Nhập thông tin loại đơn hàng cần tạo
4 Click nút “Lưu” Thông tin được lưu xuống database Điều kiện cần
Có kết nối internet, đăng nhập với account có một trong số các quyền: Admin, Quản lý chuỗi
Kết quả Một loại đơn hàng mới trong chuỗi cửa hàng được tạo
Use case Sửa loại đơn hàng
Bảng 3.31: Use case Sửa loại đơn hàng
Tên use case Sửa loại đơn hàng
Mô tả Sửa thông tin loại đơn hàng trong cửa hàng
Chủ thể Admin, Quản lý chuỗi
STT Chủ thể Phản hồi hệ thống
1 Click vào “Loại đơn hàng” trong mục Tài nguyên
Chuyển sang trang quản lý đơn loại đơn hàng và hiển thị danh sách các loại đơn hàng
2 Click vào biểu tượng chỉnh sửa
Hiển thị popup chỉnh sửa loại đơn hàng
4 Click nút “Lưu” Thông tin được lưu xuống database Điều kiện cần
Có kết nối internet, đăng nhập với account có một trong số các quyền: Admin, Quản lý chuỗi
Kết quả Thông tin loại đơn hàng được cập nhật
Use case Xóa loại đơn hàng
Bảng 3.32: Use case Xóa loại đơn hàng
Tên use case Xóa loại đơn hàng
Mô tả Xóa thông tin loại đơn hàng trong cửa hàng
Chủ thể Admin, Quản lý chuỗi
STT Chủ thể Phản hồi hệ thống
1 Click vào “Loại đơn hàng” trong mục Tài nguyên
Chuyển sang trang quản lý đơn loại đơn hàng và hiển thị danh sách các loại đơn hàng
2 Click vào biểu tượng xóa ở đơn hàng muốn xóa Hiển thị thông báo xác nhận
3 Click “OK” Thay đổi trạng thái của loại đơn hàng Điều kiện cần
Có kết nối internet, đăng nhập với account có một trong số các quyền: Admin, Quản lý chuỗi
Kết quả Xóa loại đơn hàng ra khỏi danh sách loại đơn hàng
3.3.2.6 Use case Quản lý loại khách hàng
Hình 3.7: Use case Quản lý loại khách hàng
Use case Xem loại khách hàng
Bảng 3.33: Use case Xem loại khách hàng
Tên use case Xem loại khách hàng
Mô tả Xem thông tin các loại khách hàng
Chủ thể Admin, Quản lý chuỗi
STT Chủ thể Phản hồi hệ thống
Click vào “Loại khách hàng” trong mục Đối tác
Chuyển sang trang quản lý loại khách hàng, hiển thị danh sách các loại khách hàng Điều kiện cần Có kết nối internet, đăng nhập với account có một trong số các quyền: Admin, Quản lý chuỗi Kết quả Hiển thị danh sách loại khách hàng
Use case Thêm loại khách hàng
Bảng 3.34: Use case Thêm loại khách hàng
Tên use case Thêm loại khách hàng
Mô tả Thêm loại khách hàng mới trong chuỗi cửa hàng
Chủ thể Admin, Quản lý chuỗi
STT Chủ thể Phản hồi hệ thống
1 Click vào “Loại khách hàng” trong mục Đối tác
Chuyển sang trang quản lý loại khách hàng, hiển thị danh sách các loại khách hàng
2 Click vào “Tạo mới” Hiển thị popup tạo mới loại khách hàng
3 Nhập thông tin loại khách hàng cần tạo
4 Click nút “Lưu” Thông tin được lưu xuống database Điều kiện cần Có kết nối internet, đăng nhập với account có một trong số các quyền: Admin, Quản lý chuỗi Kết quả Một loại khách hàng mới được tạo
Use case Xóa loại khách hàng
Bảng 3.35: Use case Xóa loại khách hàng
Tên use case Xóa loại khách hàng
Mô tả Xóa thông tin loại khách hàng trong cửa hàng
Chủ thể Admin, Quản lý chuỗi
STT Chủ thể Phản hồi hệ thống
Click vào “Loại khách hàng” trong mục Đối tác
Chuyển sang trang quản lý loại khách hàng, hiển thị danh sách các loại khách hàng
2 Click vào biểu tượng xóa ở loại khách hàng muốn xóa Hiển thị thông báo xác nhận
3 Click “OK” Thay đổi trạng thái của loại khách hàng Điều kiện cần
Có kết nối internet, đăng nhập với account có một trong số các quyền: Admin, Quản lý chuỗi
Kết quả Xóa loại khách hàng ra khỏi danh sách loại khách hàng
Use case Sửa loại khách hàng
Bảng 3.36: Use case Sửa loại khách hàng
Tên use case Sửa loại khách hàng
Mô tả Sửa loại khách hàng mới trong cửa hàng
Chủ thể Admin, Quản lý chuỗi
STT Chủ thể Phản hồi hệ thống
1 Click vào “Loại khách hàng” trong mục Đối tác
Chuyển sang trang quản lý loại khách hàng, hiển thị danh sách các loại khách hàng
2 Click vào biểu tượng chỉnh sửa Hiển thị popup chỉnh sửa loại khách hàng
3 Nhập thông tin loại khách hàng cần sửa
4 Click nút “Lưu” Thông tin được lưu xuống database Điều kiện cần
Có kết nối internet, đăng nhập với account có một trong số các quyền: Admin, Quản lý chuỗi
Kết quả Thông tin loại khách hàng được cập nhật
3.3.2.7 Use case Quản lý giá nguyên liệu
Hình 3.8: Use case Quản lý giá nguyên liệu
Use case Xem giá nguyên liệu
Bảng 3.37: Use case Xem giá nguyên liệu
Tên use case Xem giá nguyên liệu
Mô tả Xem giá mới nhất của nguyên liệu
Chủ thể Admin, Quản lý chuỗi, Thu ngân, Kế toán, Quản lý chi nhánh
Dòng xử lý STT Chủ thể Phản hồi hệ thống
Click vào “Giá nguyên liệu” trong mục Tài nguyên
Chuyển sang trang quản lý giá nguyên liệu, hiển thị danh sách giá nguyên liệu Điều kiện cần
Có kết nối internet, đăng nhập với account có một trong số các quyền: Admin, Quản lý chuỗi, Thu ngân, Kế toán, Quản lý chi nhánh
Kết quả Hiển thị danh sách giá của các nguyên liệu
Use case Cập nhật giá nguyên liệu
Bảng 3.38: Use case Cập nhật giá nguyên liệu
Tên use case Cập nhật giá nguyên liệu
Mô tả Thay đổi giá của nguyên liệu
Chủ thể Admin, Quản lý chuỗi
STT Chủ thể Phản hồi hệ thống
Click vào “Giá nguyên liệu” trong mục Tài nguyên
Chuyển sang trang quản lý giá nguyên liệu, hiển thị danh sách giá nguyên liệu
2 Click “Cập nhật giá” Hiển thị popup cập nhật giá nguyên liệu
4 Click nút “Lưu” Thông tin được lưu xuống database Điều kiện cần
Có kết nối internet, đăng nhập với account có một trong số các quyền: Admin, Quản lý chuỗi
Kết quả Thông tin giá nguyên liệu được cập nhật
3.3.2.8 Use case Quản lý giá thức uống
Hình 3.9: Use case quản lý giá thức uống
Use case Xem giá thức uống
Bảng 3.39: Use case Xem giá thức uống
Tên use case Xem giá thức uống
Mô tả Xem giá mới nhất của thức uống
Chủ thể Admin, Quản lý chuỗi, Thu ngân, Kế toán, Quản lý chi nhánh
Dòng xử lý STT Chủ thể Phản hồi hệ thống
1 Click vào “Giá thức uống” trong mục Tài nguyên
Chuyển sang trang quản lý giá thức uống, hiển thị danh sách thức uống liệu Điều kiện cần
Có kết nối internet, đăng nhập với account có một trong số các quyền: Admin, Quản lý chuỗi, Thu ngân, Kế toán, Quản lý chi nhánh
Kết quả Hiển thị danh sách giá của các thức uống
Use case Cập nhật giá thức uống
Bảng 3.40: Use case Cập nhật giá thức uống
Tên use case Cập nhật giá thức uống
Mô tả Thay đổi giá của thức uống
Chủ thể Admin, Quản lý chuỗi
STT Chủ thể Phản hồi hệ thống
1 Click vào “Giá thức uống” trong mục Tài nguyên
Chuyển sang trang quản lý giá thức uống, hiển thị danh sách giá thức uống
2 Click “Cập nhật giá” Hiển thị popup cập nhật giá thức uống
4 Click nút “Lưu” Thông tin được lưu xuống database Điều kiện cần
Có kết nối internet, đăng nhập với account có một trong số các quyền: Admin, Quản lý chuỗi
Kết quả Thông tin giá thức uống được cập nhật
3.3.2.9 Use case Quản lý khách hàng
Hình 3.10: Use case Quản lý khách hàng
Use case Xem thông tin khách hàng
Bảng 3.41: Use case Xem thông tin khách hàng
Tên use case Xem thông tin khách hàng
Mô tả Xem thông tin khách hàng
Chủ thể Admin, Quản lý chuỗi, Thu ngân, Quản lý chi nhánh
Dòng xử lý STT Chủ thể Phản hồi hệ thống
Click vào “Khách hàng” trong mục Đối tác
Chuyển sang trang quản lý khách hàng, hiển thị danh sách các khách hàng Điều kiện cần Có kết nối internet, đăng nhập với account có một trong số các quyền: Admin, Quản lý chuỗi, Thu ngân, Quản lý chi nhánh Kết quả Hiển thị danh sách khách hàng, hiển thị thông tin cụ thể của khách hàng được chọn
Use case Thêm thông tin khách hàng
Bảng 3.42: Use case Thêm thông tin khách hàng
Tên use case Thêm thông tin khách hàng
Mô tả Thêm thông tin khách hàng
Chủ thể Admin, Quản lý chuỗi
STT Chủ thể Phản hồi hệ thống
1 Click vào “Khách hàng” trong mục Đối tác
Chuyển sang trang quản lý khách hàng, hiển thị danh sách các khách hàng
2 Click vào “Tạo mới” Hiển thị popup tạo mới khách hàng
3 Nhập thông tin khách hàng cần tạo
4 Click nút “Lưu” Thông tin được lưu xuống database Điều kiện cần
Có kết nối internet, đăng nhập với account có một trong số các quyền: Admin, Quản lý chuỗi
Kết quả Một khách hàng mới được tạo
Use case Xóa khách hàng
Bảng 3.43: Use case Xóa khách hàng
Tên use case Xóa khách hàng
Mô tả Xóa khách hàng
Chủ thể Admin, Quản lý chuỗi
STT Chủ thể Phản hồi hệ thống
1 Click vào “Khách hàng” trong mục Đối tác
Chuyển sang trang quản lý khách hàng, hiển thị danh sách các khách hàng
2 Click vào biểu tượng xóa dòng chứa khách hàng muốn xóa Hiển thị thông báo xác nhận
3 Click “OK” Thay đổi trạng thái của khách hàng Điều kiện cần
Có kết nối internet, đăng nhập với account có một trong số các quyền: Admin, Quản lý chuỗi
Kết quả Khách hàng bị xóa khỏi danh sách khách hàng
Use case Sửa thông tin khách hàng
Bảng 3.44: Use case Sửa thông tin khách hàng
Tên use case Sửa thông tin khách hàng
Mô tả Sửa thông tin khách hàng
Chủ thể Admin, Quản lý chuỗi
STT Chủ thể Phản hồi hệ thống
1 Click vào “Khách hàng” trong mục Đối tác
Chuyển sang trang quản lý khách hàng, hiển thị danh sách các khách hàng
2 Click vào biểu tượng chỉnh sửa
Hiển thị popup chỉnh sửa thông tin khách hàng
4 Click nút “Lưu” Thông tin được lưu xuống database Điều kiện cần
Có kết nối internet, đăng nhập với account có một trong số các quyền: Admin, Quản lý chuỗi
Kết quả Thông tin khách hàng được cập nhật
3.3.2.10 Use case Quản lý loại nguyên liệu
Hình 3.11: Use case Quản lý loại nguyên liệu
Use case Thêm loại nguyên liệu
Bảng 3.45: Use case Thêm loại nguyên liệu
Tên use case Thêm loại nguyên liệu
Mô tả Thêm thông tin loại nguyên liệu
Chủ thể Admin, Quản lý chuỗi
STT Chủ thể Phản hồi hệ thống
Click vào “Loại nguyên liệu” trong mục Tài nguyên
Chuyển sang trang quản lý loại nguyên liệu, hiển thị danh sách loại nguyên liệu
2 Click vào “Tạo mới” Hiển thị popup tạo mới loại nguyên liệu
3 Nhập thông tin loại nguyên liệu cần tạo
4 Click nút “Lưu” Thông tin được lưu xuống database Điều kiện cần
Có kết nối internet, đăng nhập với account có một trong số các quyền: Admin, Quản lý chuỗi
Kết quả Một loại nguyên liệu mới được tạo
Use case Xem loại nguyên liệu
Bảng 3.46: Use case Xem loại nguyên liệu
Tên use case Xem loại nguyên liệu
Mô tả Xem thông tin loại nguyên liệu
Chủ thể Admin, Quản lý chuỗi, Quản lý kho trung tâm, Quản lý chi nhánh, Nhân viên bếp
STT Chủ thể Phản hồi hệ thống
1 Click vào “Loại nguyên liệu” trong mục Tài nguyên
Chuyển sang trang quản lý loại nguyên liệu, hiển thị danh sách loại nguyên liệu Điều kiện cần
Có kết nối internet, đăng nhập với account có một trong số các quyền: Admin, Quản lý chuỗi, Quản lý kho trung tâm, Quản lý chi nhánh, Nhân viên bếp
Kết quả Hiển thị danh sách loại nguyên liệu
Use case Sửa loại nguyên liệu
Bảng 3.47: Use case Sửa loại nguyên liệu
Tên use case Sửa loại nguyên liệu
Mô tả Sửa thông tin loại nguyên liệu
Chủ thể Admin, Quản lý chuỗi
STT Chủ thể Phản hồi hệ thống
1 Click vào “Loại nguyên liệu” trong mục Tài nguyên
Chuyển sang trang quản lý loại nguyên liệu, hiển thị danh sách loại nguyên liệu
2 Click vào biểu tượng chỉnh sửa Hiển thị popup chỉnh sửa loại nguyên liệu
4 Click nút “Edit” Thông tin được lưu xuống database Điều kiện cần
Có kết nối internet, đăng nhập với account có một trong số các quyền: Admin, Quản lý chuỗi
Kết quả Thông tin loại nguyên liệu được cập nhật
Use case Xóa loại nguyên liệu
Bảng 3.48: Use case Xóa loại nguyên liệu
Tên use case Xóa loại nguyên liệu
Mô tả Xóa loại nguyên liệu
Chủ thể Admin, Quản lý chuỗi
STT Chủ thể Phản hồi hệ thống
1 Click vào “Loại nguyên liệu” trong mục Tài nguyên
Chuyển sang trang quản lý loại nguyên liệu, hiển thị danh sách loại nguyên liệu
2 Click vào biểu tượng xóa ở loại nguyên liệu muốn xóa Hiển thị thông báo xác nhận
3 Click “OK” Thay đổi trạng thái của loại nguyên liệu Điều kiện cần
Có kết nối internet, đăng nhập với account có một trong số các quyền: Admin, Quản lý chuỗi
Kết quả Loại nguyên liệu bị xóa khỏi danh sách loại nguyên liệu
3.3.2.11 Use case Quản lý loại nhân viên
Hình 3.12: Use case Quản lý loại nhân viên
Use case Xem loại nhân viên
Bảng 3.49: Use case Xem loại nhân viên
Tên use case Xem loại nhân viên
Mô tả Xem thông tin loại nhân viên
STT Chủ thể Phản hồi hệ thống
Click vào “Loại nhân viên” trong mục Nhân sự
Chuyển sang trang quản lý loại nhân viên, hiển thị danh sách loại nhân viên Điều kiện cần Có kết nối internet, đăng nhập với account có một trong số các quyền: Admin, HR Kết quả Hiển thị danh sách loại nhân viên
Use case Thêm loại nhân viên
Bảng 3.50: Use case Thêm loại nhân viên
Tên use case Thêm loại nhân viên
Mô tả Thêm thông tin loại nhân viên
STT Chủ thể Phản hồi hệ thống
1 Click vào “Loại nhân viên” trong mục Nhân sự
Chuyển sang trang quản lý loại nhân viên, hiển thị danh sách loại nhân viên
2 Click vào “Tạo mới” Hiển thị popup tạo mới loại nhân viên
3 Nhập thông tin loại nhân viên cần tạo
4 Click nút “Lưu” Thông tin được lưu xuống database Điều kiện cần Có kết nối internet, đăng nhập với account có quyền Admin, HR Kết quả Một loại nhân viên mới được tạo
Use case Xóa loại nhân viên
Bảng 3.51: Use case Xóa loại nhân viên
Tên use case Xóa loại nhân viên
Mô tả Xóa loại nhân viên không còn hoạt động
STT Chủ thể Phản hồi hệ thống
1 Click vào “Loại nhân viên” trong mục Nhân sự
Chuyển sang trang quản lý loại nhân viên, hiển thị danh sách loại nhân viên
2 Click vào nút biểu tượng xóa ở loại nhân viên muốn xóa Hiển thị thông báo xác nhận
3 Click “OK” Thay đổi trạng thái của loại nhân viên Điều kiện cần Có kết nối internet, đăng nhập với account có quyền Admin hoặc HR Kết quả Loại nhân viên bị xóa khỏi danh sách loại nhân viên
Use case Sửa loại nhân viên
Bảng 3.52: Use case Sửa loại nhân viên
Tên use case Sửa loại nhân viên
Mô tả Sửa thông tin loại nhân viên
STT Chủ thể Phản hồi hệ thống
Click vào “Loại nhân viên” trong mục Nhân sự
Chuyển sang trang quản lý loại nhân viên, hiển thị danh sách loại nhân viên
2 Click vào biểu tượng chỉnh sửa
Hiển thị popup chỉnh sửa loại nhân viên
4 Click nút “Lưu” Thông tin được lưu xuống database Điều kiện cần Có kết nối internet, đăng nhập với account có quyền Admin hoặc HR Kết quả Thông tin loại nhân viên được cập nhật
3.3.2.12 Use case Quản lý loại thức uống
Hình 3.13: Use case Quản lý loại thức uống
Use case Xem loại thức uống
Bảng 3.53: Use case Xem loại thức uống
Tên use case Xem loại thức uống
Mô tả Xem thông tin loại thức uống
Chủ thể Admin, Quản lý chuỗi, Thu ngân, Nhân viên bếp, Quản lý chi nhánh Dòng xử lý
STT Chủ thể Phản hồi hệ thống
Click vào “Loại thức uống” trong mục Tài nguyên
Chuyển sang trang quản lý loại thức uống, hiển thị danh sách loại thức uống Điều kiện cần
Có kết nối internet, đăng nhập với account có một trong số các quyền: Admin, Quản lý chuỗi, Thu ngân, Nhân viên bếp, Quản lý chi nhánh
Kết quả Hiển thị danh sách loại thức uống
Use case Thêm loại thức uống
Bảng 3.54: Use case Thêm loại thức uống
Tên use case Thêm loại thức uống
Mô tả Thêm thông tin loại thức uống
Chủ thể Admin, Quản lý chuỗi
STT Chủ thể Phản hồi hệ thống
Click vào “Loại thức uống” trong mục Tài nguyên
Chuyển sang trang quản lý loại thức uống, hiển thị danh sách loại thức uống
2 Click vào “Tạo mới” Hiển thị popup tạo mới loại thức uống
3 Nhập thông tin loại thức uống cần tạo
4 Click nút “Lưu” Thông tin được lưu xuống database Điều kiện cần
Có kết nối internet, đăng nhập với account có một trong số các quyền: Admin, Quản lý chuỗi
Kết quả Một loại thức uống mới được tạo
Use case Sửa loại thức uống
Bảng 3.55: Use case Sửa loại thức uống
Tên use case Sửa loại thức uống
Mô tả Sửa thông tin loại thức uống
Chủ thể Admin, Quản lý chuỗi
STT Chủ thể Phản hồi hệ thống
Click vào “Loại thức uống” trong mục Tài nguyên
Chuyển sang trang quản lý loại thức uống, hiển thị danh sách loại thức uống
2 Click vào biểu tượng chỉnh sửa
Hiển thị popup chỉnh sựa loại thức uống
4 Click nút “Lưu” Thông tin được lưu xuống database Điều kiện cần Có kết nối internet, đăng nhập với account có một trong số các quyền: Admin, Quản lý chuỗi Kết quả Thông tin loại thức uống được cập nhật
Use case Xóa loại thức uống
Bảng 3.56: Use case Xóa loại thức uống
Tên use case Xóa loại thức uống
Mô tả Xóa loại thức uống
Chủ thể Admin, Quản lý chuỗi
STT Chủ thể Phản hồi hệ thống
Click vào “Loại thức uống” trong mục Tài nguyên
Chuyển sang trang quản lý loại thức uống, hiển thị danh sách loại thức uống
2 Click vào nút biểu tượng xóa ở loại thức uống muốn xóa Hiển thị thông báo xác nhận
3 Click “OK” Thay đổi trạng thái của loại thức uống Điều kiện cần
Có kết nối internet, đăng nhập với account có một trong số các quyền: Admin, Quản lý chuỗi
Kết quả Loại thức uống bị xóa khỏi danh sách loại thức uống
3.3.2.13 Use case Quản lý loại nguyên liệu
Hình 3.14: Use case Quản lý nguyên liệu
Use case Xóa nguyên liệu
Bảng 3.57: Use case Xóa nguyên liệu
Tên use case Xóa nguyên liệu
Mô tả Xóa nguyên liệu
Chủ thể Admin, Quản lý chuỗi
STT Chủ thể Phản hồi hệ thống
Click vào “Nguyên liệu” trong mục Tài nguyên
Chuyển sang trang quản lý nguyên nguyên liệu, hiển thị danh sách nguyên liệu
Click vào biểu tượng xóa ở nguyên liệu muốn xóa
Hiển thị thông báo xác nhận
3 Click “OK” Thay đổi trạng thái của nguyên liệu Điều kiện cần
Có kết nối internet, đăng nhập với account có một trong số các quyền: Admin, Quản lý chuỗi
Kết quả Nguyên liệu bị xóa khỏi danh sách nguyên liệu
Use case Thêm nguyên liệu
Bảng 3.58: Use case Thêm nguyên liệu
Tên use case Thêm nguyên liệu
Mô tả Thêm thông tin nguyên liệu
Chủ thể Admin, Quản lý chuỗi
STT Chủ thể Phản hồi hệ thống
1 Click vào “Nguyên liệu” trong mục Tài nguyên
Chuyển sang trang quản lý nguyên nguyên liệu, hiển thị danh sách nguyên liệu
2 Click vào “Tạo mới” Hiển thị popup tạo mới nguyên liệu
3 Nhập thông tin nguyên liệu cần tạo
4 Click nút “Lưu” Thông tin được lưu xuống database Điều kiện cần Có kết nối internet, đăng nhập với account có một trong số các quyền: Admin, Quản lý chuỗi Kết quả Một nguyên liệu mới được tạo
Use case Xem nguyên liệu
Bảng 3.59: Use case Xem nguyên liệu
Tên use case Xem loại nguyên liệu
Mô tả Xem thông tin nguyên liệu
Chủ thể Admin, Quản lý chuỗi, Kế toán, Quản lý kho trung tâm, Quản lý chi nhánh, Nhân viên bếp
STT Chủ thể Phản hồi hệ thống
1 Click vào “Nguyên liệu” trong mục Tài nguyên
Chuyển sang trang quản lý nguyên nguyên liệu, hiển thị danh sách nguyên liệu Điều kiện cần
THIẾT KẾ HỆ THỐNG
Thiết kế dữ liệu
Hình 4.1: Lược đồ cơ sở dữ liệu của phần mềm
Bảng account được sử dụng để lưu tài khoản sử dụng trong hệ thống
Bảng 4.1: Mô tả bảng account
Thuộc tính Mô tả Kiểu dữ liệu Khóa
Id Id của account Int(11) auto increment
Created_by Username khởi tạo account Varchar(255)
Creation_date Thời gian khởi tạo của account
Last_modified_by Username chỉnh sửa account lần cuối
Last_modified_date Thời gian chỉnh sửa account lần cuối
Email Email của account Varchar(255)
Enable Tình trạng của account Bit(1)
Username Username của account Varchar(255)
Password Password của account(mã hóa)
Employee_id Id của nhân viên sử dụng account
Int(11) Khóa ngoại đến bảng employee
Bảng account_role được sử dụng để lưu quyền truy cập của account
Bảng 4.2: Mô tả bảng account_role
Thuộc tính Mô tả Kiểu dữ liệu Khóa
Account_id Id của account Int(11) Khóa chính, khóa ngoại
Role_id Id của role Int(11) Khóa chính, khóa ngoại
Bảng branch_shop được sử dụng để lưu thông tin các chi nhánh
Bảng 4.3: Mô tả bảng branch_shop
Thuộc tính Mô tả Kiểu dữ liệu Khóa
Id Id của chi nhánh Int(11) auto increment
Khóa chính Created_by Username của accout khởi tạo chi nhánh
Creation_date Thời gian khởi tạo của chi nhánh Datetime
Last_modified_by Username của account chỉnh sửa chi nhánh lần cuối
Last_modified_date Thời gian chỉnh sửa chi nhánh lần cuối
Address Địa chỉ chi nhánh Varchar(255)
Enable Tình trạng của chi nhánh Bit(1)
Name Tên chi nhánh Varchar(255)
Bảng employee_type được sử dụng để lưu thông tin loại nhân viên
Bảng 4.4: Mô tả bảng employee_type
Thuộc tính Mô tả Kiểu dữ liệu Khóa
Id Id của loại nhân viên Int(11) auto increment
Khóa chính Created_by Username của accout khởi tạo loại nhân viên
Creation_date Thời gian khởi tạo của loại nhân viên
Last_modified_by Username của account chỉnh sửa loại nhân viên lần cuối
Last_modified_date Thời gian chỉnh sửa loại nhân viên lần cuối
Datetime Enable Tình trạng của loại nhân viên Bit(1)
Name Tên loại nhân viên Varchar(255)
Bảng customer được sử dụng để lưu thông tin khách hàng
Bảng 4.5: Mô tả bảng customer
Thuộc tính Mô tả Kiểu dữ liệu Khóa
Id Id của khách hàng Int(11) auto increment
Created_by Username của accout khởi tạo khách hàng
Creation_date Thời gian khởi tạo của khách hàng
Last_modified_by Username của account chỉnh sửa khách hàng lần cuối
Last_modified_date Thời gian chỉnh sửa khách hàng lần cuối
Address Địa chỉ của khách hàng Varchar(255)
Birth_day Sinh nhật của khách hàng
Email Email khách hàng Varchar(255)
Enable Tình trạng của chi nhánh Bit(1)
Name Tên khách hàng Varchar(255)
Note Ghi chú về khách hàng Varchar(255)
Phone Số điện thoại khách hàng
Sex Giới tính khách hàng Bit(1)
Total_purchase Tổng số tiền khách hàng đã mua thức uống
Customer_type_id Id của bảng loại khách hàng
Int(11) Khóa ngoại đến bảng customer_type
Bảng customer_type được sử dụng để lưu thông tin loại khách hàng
Bảng 4.6: Mô tả bảng customer_type
Thuộc tính Mô tả Kiểu dữ liệu Khóa
Id Id của loại khách hàng Int(11) auto increment
Created_by Username của accout khởi tạo loại khách hàng
Creation_date Thời gian khởi tạo của loại khách hàng
Last_modified_by Username của account chỉnh sửa loại khách hàng lần cuối
Last_modified_date Thời gian chỉnh sửa loại khách hàng lần cuối
Enable Tình trạng của loại khách hàng
Name Tên loại khách hàng Varchar(255)
Discount_name Loại khuyến mãi Varchar(255)
Discount_value Giá trị chiết khấu Double
Bảng drink được sử dụng để lưu thông tin thức uống
Bảng 4.7: Mô tả bảng drink
Thuộc tính Mô tả Kiểu dữ liệu Khóa
Id Id của thức uống Int(11) auto increment
Created_by Username của accout khởi tạo thức uống
Creation_date Thời gian khởi tạo của thức uống
Last_modified_by Username của account chỉnh sửa thức uống lần cuối
Last_modified_date Thời gian chỉnh sửa thức uống lần cuối
Dicription Mô tả thức uống Varchar(255)
Enable Tình trạng của thức uống Bit(1)
Name Tên thức uống Varchar(255)
Drink_type_id Id của bảng loại thức uống Int(11) Khóa ngoại đến bảng drink_type
Bảng drink_price được sử dụng để lưu thông tin giá thức uống
Bảng 4.8: Mô tả bảng drink_price
Thuộc tính Mô tả Kiểu dữ liệu Khóa
Id_drink Id của thức uống Int(11) Khóa chính
Date_drink Ngày thay đổi giá thức uống Date Khóa chính Created_by Username của accout khởi tạo giá thức uống
Creation_date Thời gian khởi tạo giá thức uống Datetime
Last_modified_by Username của account chỉnh sửa giá thức uống lần cuối
Last_modified_date Thời gian chỉnh sửa giá thức uống lần cuối
Initial_price Giá vốn Float
Bảng drink_type được sử dụng để lưu thông tin loại thức uống
Bảng 4.9: Mô tả bảng drink_type
Thuộc tính Mô tả Kiểu dữ liệu Khóa
Id Id của loại thức uống Int(11) auto increment
Khóa chính Created_by Username của accout khởi tạo loại thức uống
Creation_date Thời gian khởi tạo của loại thức uống
Last_modified_by Username của account chỉnh sửa loại thức uống lần cuối
Last_modified_date Thời gian chỉnh sửa loại thức uống lần cuối
Datetime Enable Tình trạng của loại thức uống Bit(1)
Name Tên loại thức uống Varchar(255)
Bảng employee được sử dụng để lưu thông tin nhân viên
Bảng 4.10: Mô tả bảng employee
Thuộc tính Mô tả Kiểu dữ liệu Khóa
Id Id của nhân viên Int(11) auto increment
Created_by Username của accout khởi tạo nhân viên
Creation_date Thời gian khởi tạo của nhân viên
Last_modified_by Username của account chỉnh sửa nhân viên lần cuối
Last_modified_date Thời gian chỉnh sửa nhân viên lần cuối
Email Email nhân viên Varchar(255)
Enable Tình trạng của nhân viên Bit(1)
Name Tên nhân viên Varchar(255)
Branch_shop_id Id của bảng chi nhánh Int(11) Khóa ngoại đến bảng branch_shop Employee_type_id Id của bảng loại nhân viên
Int(11) Khóa ngoại đến bảng employee_type
Bảng invoice được sử dụng để lưu thông tin hóa đơn
Bảng 4.11: Mô tả bảng invoice
Thuộc tính Mô tả Kiểu dữ liệu Khóa
Id Id của hóa đơn Int(11) auto increment
Created_by Username của accout khởi tạo hóa đơn
Creation_date Thời gian khởi tạo của hóa đơn
Last_modified_by Username của account chỉnh sửa hóa đơn lần cuối
Last_modified_date Thời gian chỉnh sửa hóa đơn lần cuối
Date Thời gian thanh toán Date
Enable Tình trạng của hóa đơn Bit(1)
Number_position Vị trí ngồi Int(11)
Payment_status Tình trạng thanh toán Bit(1)
Total_discount Tổng giảm giá Float
Total_price Tổng giá Float
Real_pay Số tiền thực tế khách trả Float
Branch_shop_id Id của bảng chi nhánh Int(11) Khóa ngoại đến bảng branch_shop Customer_id Id của bảng khách hàng Int(11) Khóa ngoại đến bảng customer Order_type_id Id của bảng loại đơn hàng
Int(11) Khóa ngoại đến bảng order_type
Bảng invoice_detail được sử dụng để lưu thông tin chi tiết hóa đơn
Bảng 4.12: Mô tả bảng invoice_detail
Thuộc tính Mô tả Kiểu dữ liệu Khóa
Invoice_id Id của hóa đơn Int(11) Khóa chính, khóa ngoại
Drink_id Id của thức uống Int(11) Khóa chính, khóa ngoại Created_by Username của accout khởi tạo chi tiết hóa đơn
Creation_date Thời gian khởi tạo của chi tiết hóa đơn
Last_modified_by Username của account chỉnh sửa chi tiết hóa đơn lần cuối
Last_modified_date Thời gian chỉnh sửa chi tiết hóa đơn lần cuối
Amount Số lượng thức uống Int(11)
Price Tổng giá của thức uống trong hóa đơn
Float Unit_price Đơn giá của thức uống Float
Bảng material được sử dụng để lưu thông tin nguyên liệu
Bảng 4.13: Mô tả bảng material
Thuộc tính Mô tả Kiểu dữ liệu Khóa
Id Id của nguyên liệu Int(11) auto increment
Created_by Username của accout khởi tạo nguyên liệu
Creation_date Thời gian khởi tạo của nguyên liệu
Last_modified_by Username của account chỉnh sửa nguyên liệu lần cuối
Last_modified_date Thời gian chỉnh sửa nguyên liệu lần cuối
Dicription Mô tả nguyên liệu Varchar(255)
Enable Tình trạng của nguyên liệu
Max_inventory Tổn kho nhiều nhất Float
Min_inventory Tồn kho ít nhất Float
Name Tên nguyên liệu Varchar(255)
Material_type_id Id của bảng loại nguyên liệu
Int(11) Khóa ngoại đến bảng material_type
Unit_id Id của bảng đơn vị Int(11) Khóa ngoại đến bảng unit
Bảng material_price được sử dụng để lưu thông tin giá nguyên liệu
Bảng 4.14: Mô tả bảng material_price
Thuộc tính Mô tả Kiểu dữ liệu Khóa
Id_material Id của nguyên liệu Int(11) Khóa chính Date_material Ngày thay đổi giá nguyên liệu
Created_by Username của accout khởi tạo giá nguyên liệu
Creation_date Thời gian khởi tạo giá nguyên liệu
Last_modified_by Username của account chỉnh sửa giá nguyên liệu lần cuối
Last_modified_date Thời gian chỉnh sửa giá nguyên liệu lần cuối
Bảng material_type được sử dụng để lưu thông tin loại nguyên liệu
Bảng 4.15: Mô tả bảng material_type
Thuộc tính Mô tả Kiểu dữ liệu Khóa
Id Id của loại nguyên liệu Int(11) auto increment
Created_by Username của accout khởi tạo loại nguyên liệu
Creation_date Thời gian khởi tạo của loại nguyên liệu
Last_modified_by Username của account chỉnh sửa loại nguyên liệu lần cuối
Last_modified_date Thời gian chỉnh sửa loại nguyên liệu lần cuối
Datetime Enable Tình trạng của loại nguyên liệu Bit(1)
Name Tên loại nguyên liệu Varchar(255)
Bảng order_type được sử dụng để lưu thông tin loại đơn hàng
Bảng 4.16: Mô tả bảng order_type
Thuộc tính Mô tả Kiểu dữ liệu Khóa
Id Id của loại đơn hàng Int(11) auto increment
Created_by Username của accout khởi tạo loại đơn hàng
Creation_date Thời gian khởi tạo của loại đơn hàng
Last_modified_by Username của account chỉnh sửa loại đơn hàng lần cuối
Last_modified_date Thời gian chỉnh sửa loại đơn hàng lần cuối
Enable Tình trạng của loại đơn hàng
Name Tên loại đơn hàng Varchar(255)
Bảng role_name được sử dụng để lưu thông tin quyền truy cập
Bảng 4.17: Mô tả bảng role_name
Thuộc tính Mô tả Kiểu dữ liệu Khóa
Id Id của quyền Int(11) auto increment
Enable Tình trạng của quyền Bit(1)
Bảng min_max_inventory dùng để lưu giới hạn tồn kho của nguyên liệu theo chi nhánh
Bảng 4.18: Mô tả bảng min_max_inventory
Thuộc tính Mô tả Kiểu dữ liệu Khóa
Id Id của bảng min_max_inventory
Branch_shop_id Id của chi nhánh Int(11) Khóa chính, khóa ngoại Material_id Id của nguyên liệu Int(11) Khóa chính, khóa ngoại Created_by Username của accout khởi tạo công thức
Creation_date Thời gian khởi tạo công thức
Last_modified_by Username của account chỉnh sửa công thức lần cuối
Last_modified_date Thời gian chỉnh sửa công thức lần cuối
Max_inventory Số lượng nguyên liệu tối đa
Min_inventory Số lượng nguyên liệu tối thiểu
Bảng unit được sử dụng để lưu đơn vị đo lường được sử dụng
Bảng 4.19: Mô tả bảng unit
Thuộc tính Mô tả Kiểu dữ liệu Khóa
Id Id của đơn vị Int(11) auto increment
Created_by Username của accout khởi tạo đơn vị
Creation_date Thời gian khởi tạo của đơn vị
Last_modified_by Username của account chỉnh sửa đơn vị lần cuối
Last_modified_date Thời gian chỉnh sửa đơn vị lần cuối
Datetime Enable Tình trạng của đơn vị Bit(1)
Name Tên đơn vị Varchar(255)
Bảng kiểm tồn được sử dụng lưu lại lịch sử kiểm tồn của nguyên liệu trong một chi nhánh theo kỳ nguyên liệu
Bảng 4.20: Mô tả bảng inventory_control
Thuộc tính Mô tả Kiểu dữ liệu Khóa
Id Id của đơn vị Int(11) auto increment
Branch_shop_id Id của chi nhánh Int(11) Khóa chính, khóa ngoại Material_id Id của nguyên liệu Int(11) Khóa chính, khóa ngoại First_day Ngày đầu kỳ của nguyên liệu trong chi nhánh
Created_by Username của accout khởi tạo đơn vị
Creation_date Thời gian khởi tạo của đơn vị
Last_modified_by Username của account chỉnh sửa đơn vị lần cuối
Last_modified_date Thời gian chỉnh sửa đơn vị lần cuối
Check_date Ngày kiểm tồn Date
Remaining_amount Số lượng còn lại Float
Status Trạng thái active (số lượng nguyên liệu hiện tại)/completed (số lượng nguyên liệu lịch sử) của nguyên liệu đó
Bảng tồn được sử dụng lưu lại lịch sử tồn kho của nguyên liệu trong một chi nhánh theo kỳ hàng
Bảng 4.21: Mô tả bảng inventory_control
Thuộc tính Mô tả Kiểu dữ liệu Khóa
Id Id của đơn vị Int(11) auto increment
Branch_shop_id Id của chi nhánh Int(11) Khóa chính, khóa ngoại
Material_id Id của nguyên liệu Int(11) Khóa chính, khóa ngoại First_day Ngày đầu kỳ của nguyên liệu trong chi nhánh
Created_by Username của accout khởi tạo đơn vị
Creation_date Thời gian khởi tạo của đơn vị Datetime
Last_modified_by Username của account chỉnh sửa đơn vị lần cuối
Last_modified_date Thời gian chỉnh sửa đơn vị lần cuối
Status Trạng thái active (kỳ hiện tại)/completed (các kỳ lịch sử) của nguyên liệu đó
Last_day Ngày cuối kỳ Date
Backlog_first_day Số lượng nguyên liệu tồn đầu kỳ
Backlog_last_day Số lượng nguyên cuối kỳ Float
Import_period Số lượng nguyên liệu nhập trong kỳ
Quantity_sold Số lượng nguyên liệu đã sử dụng
Cost_price Giá vốn nguyên liệu Float
Price_sold Tổng giá vốn của nguyên liệu trong kỳ của chi nhánh
System architect [8]
Hình 4.2: Kiến trúc được sử dụng trong hệ thống
Lớp view được xây dựng từ HTML, CSS và bấy kỳ chỉ thị Angular nào đại diện cho các thành phần UI khác nhau
Lớp controller được xây dựng từ Angular controller để dán dữ liệu lấy từ back-end và giao diện Controller khởi tạo view model và định nghĩa cách view sẽ phản ứng với những thay đổi của model và ngược lại Một trong những nhiệm vụ chính của controller là thực hiện xác nhận giao diện Bất kỳ xác nhận nào được thực hiện trên front-end chỉ nhằm mục đích thuận tiện cho người dùng Bất kỳ xác nhận giao diện nào cũng cần được lặp lại trong back-end ở lớp service nằm mục đích bảo mật, vì các xác nhận giao diện có thể dễ dàng bị phớt lờ
Lớp front-end service là một tập hợp các service Angular cho phép tương tác với back- end và có thể được đưa vào controller Angular
Lớp Router sử dụng để định nghĩa service entry points tương ứng với HTTP URL và cách tham số được đọc từ HTTP request
Lớp service: chứa những business logic như xác nhận, định nghĩa phạm vi của business Lớp persistence: ánh xạ database từ/đến đối tượng trong bộ nhớ
Thiết kế xử lý
4.3.1.1 Sequence diagram Thêm thức uống mới
Hình 4.3: Sequence diagram Thêm thức uống mới
4.3.1.2 Sequence diagram Sửa thức uống
Hình 4.4: Sequence diagram Sửa thức uống
4.3.1.3 Sequence diagram Xóa thức uống
Hình 4.5: Sequence diagram Xóa thức uống
4.3.1.4 Sequence diagram Thêm tài khoản mới
Hình 4.6: Sequence diagram Thêm tài khoản mới
4.3.1.5 Sequence diagram Xuất báo cáo
Hình 4.7: Sequence diagram Xuất báo cáo
4.3.2.1 Class diagram của đối tượng account
Hình 4.8: Class diagram của Account
4.3.2.2 Class diagram của đối tượng khách hàng
Hình 4.9: Class diagram của khách hàng
4.3.2.3 Class diagram của đối tượng loại thức uống
Hình 4.10: Class diagram của loại thức uống
Thiết kế giao diện
4.4.1 Màn hình gọi thức uống
Màn hình order thức uống được thiết kế để sử dụng cho máy POS
Hình 4.11: Màn hình order thức uống
Bảng 4.22: Đặc tả màn hình order thức uống
Tên Loại Tham chiếu Ghi chú
1 Home Icon Khi click, quay về trang chủ
Button Khi click, hóa đơn mới sẽ tạo ra
Text API lấy hóa đơn bằng id
4 Nút xóa Button Khi click, xóa hóa đơn khỏi màn hình order
API lấy loại thức uống
Khi click, hiển thị các thức uống của loại thức uống được chọn
6 Thức uống Button API lấy thức uống theo loại thức uống
Khi click, hiển thị popup chọn số lượng
Input API lấy khách hàng theo số điện thoại
Nhập số điện thoại của khách hàng thành viên
Dropdown API lấy loại đơn hàng
Loại đơn hàng là ngồi tại bàn hoặc mang đi, nếu là ngồi tại bàn thì điền vào “Vị trí ngồi” vị trí ngồi của khách
9 Vị trí ngồi Text Nhập vị trí khách ngồi theo bảng số nhân viên thu ngân gửi cho khách hàng
Danh sách thức uống đã chọn
API lấy chiết khấu theo loại khách hàng
Thực trả = Tổng tiền * Chiết khấu
Button API lưu hóa đơn và chi tiết hóa đơn
Khi click, màn hình in hóa đơn hiển thị
Hình 4.12: Popup chọn số lượng Bảng 4.23: Đặc tả popup chọn số lượng
Button Khi click, giảm số lượng
Button Khi click, tăng số lượng
3 Submit Button Khi click, số lượng thức uống được hiển thị trong chi tiết hóa đơn
Màn hình in hóa đơn
Hình 4.13: Màn hình in hóa đơn Bảng 4.24: Đặc tả màn hình in hóa đơn
Tên Loại Tham chiếu Ghi chú
1 Thông tin hóa đơn Text API lấy hóa đơn
Text API lấy tên khách hàng dựa trên số điện thoại
3 Chi tiết hóa đơn Text API lấy chi tiết hóa đơn
4 Chi tiết thanh toán Text API lấy hóa đơn
4.4.2 Màn hình danh sách hóa đơn
Màn hình danh sách hóa đơn để xem, lọc hóa đơn và xuất báo cáo
Hình 4.14: Màn hình danh sách hóa đơn Bảng 4.25: Đặc tả màn hình danh sách hóa đơn
Tên Loại Tham chiếu Ghi chú
1 Xem Button API lấy chi tiết hóa đơn
Khi click, hiển thị popup chi tiết hóa đơn của hóa đơn được chọn
2 Chọn khoảng thời gian cần lọc
3 Chọn chi nhánh Dropdown API lấy danh sách chi nhánh
4 Lọc Button API lọc theo khoảng thời gian và chi nhánh
Cột số lượng tồn cho phép nhập số lượng còn lại
5 Xuất báo cáo Button Xuất chi tiết các hóa đơn trong danh sách đã lọc ra file .csv
Popup chi tiết hóa đơn
Hình 4.15: Popup chi tiết hóa đơn Bảng 4.26: Đặc tả popup chi tiết hóa đơn
1 Tổng tiền Text Tổng tiền = đơn giá * số lượng
4.4.3 Các màn hình quy trình nhập nguyên liệu từ kho trung tâm về kho chi nhánh
Màn hình danh sách đơn hàng chuyển kho của quản lý chi nhánh khi gửi yêu cầu nhập nguyên liệu
Khi nguyên liệu dưới mức tồn tối thiểu, hệ thống tự động tạo một đơn hàng chuyển kho mới Đơn hàng chuyển kho mới vừa tạo sẽ ở trạng thái “chưa xử lý”
Hình 4.16: Màn hình đơn hàng chuyển kho khi yêu cầu nhập nguyên liệu
Bảng 4.27: Đặc tả màn hình đơn hàng chuyển kho khi yêu cầu nhập nguyên liệu
Tên Loại Tham chiếu Ghi chú
1 Edit Button API lấy đơn hàng chuyển kho
Khi click, hiển thị popup chỉnh sửa đơn hàng chuyển kho
2 Gửi Button Khi click, đơn hàng chuyển kho chuyển sang trạng thái “đã gửi” và chờ nhân viên Quản lý chuỗi duyệt
3 Xóa Button API xóa đơn hàng chuyển kho
Khi click, đơn hàng chuyển kho bị xóa
Khi nhận được nguyên liệu từ đơn hàng chuyển kho đã gửi
Khi nhận được nguyên liệu, quản lý chi nhánh phải kiểm tra số lượng nhận và điền vào cột số lượng thực nhận Số lượng thực nhận này sẽ được cộng vào số lượng tồn kho
Hình 4.17: Màn hình danh sách đơn hàng chuyển kho khi nhận được nguyên liệu
Hình 4.18: Popup chỉnh sửa đơn hàng chuyển kho
Bảng 4.28: Đặc tả màn hình đơn hàng chuyển kho khi nhận được nguyên liệu
Tên Loại Tham chiếu Ghi chú
1 Edit Button API lấy đơn hàng chuyển kho mới
Khi click, hiển thị popup chỉnh sửa đơn hàng chuyển kho và chỉ cho chỉnh sửa cột số lượng thực nhận
2 Save Button Khi click, đơn hàng chuyển kho mới trạng thái “đã nhận”
Màn hình danh sách đơn hàng chuyển kho mới của nhân viên quản lý chuỗi
Nhân viên quản lý chuỗi có nhiệm vụ kiểm tra số lượng tồn của kho trung tâm và đưa ra số lượng phân bổ hợp lý cho đơn hàng chuyển kho
Hình 4.19: Màn hình danh sách hợp đồng cung cấp của nhân viên quản lý chuỗi
Hình 4.20: Popup chỉnh sửa đơn hàng chuyển kho Bảng 4.29: Đặc tả màn hình đơn hàng chuyển kho của nhân viên quản lý chuỗi
1 Xem Button API lấy hợp đồng cung cấp
Khi click, hiển thị chi tiết hợp đơn hàng chuyển kho
2 Edit Button Khi click, hiển thị popup chỉnh sửa đơn hàng chuyển kho, nhân viên quản lý chuỗi chỉ sửa được số lượng cho phép
3 Gửi Button Khi click, đơn hàng chuyển kho chuyển sang trạng thái “đã phân bổ”
Màn hình danh sách hợp đồng cung cấp của kế toán kho
Kế toán kho xuất Excel danh sách hợp đồng cung cấp đã duyệt
Hình 4.21: Màn hình danh sách hợp đồng cung cấp của kế toán kho
Bảng 4.30: Đặc tả màn hình danh sách hợp đồng cung cấp của kế toán kho
1 Xem Button API lấy hợp đồng cung cấp
Khi click, hiển thị chi tiết hợp đồng cung cấp
2 Duyệt Button Hợp đồng cung cấp chuyển sang trạng thái “đã xuất”
Màn hình danh sách hợp đồng cung cấp quản lý kho trung tâm
Nhân viên quản lý kho trung tâm dưa triên chi tiết hợp đồng cung cấp và số lượng cho phép của nguyên liệu để xuất kho số lượng nguyên liệu tương ứng
Hình 4.22: Màn hình danh sách hợp đồng cung cấp của kế toán kho
Bảng 4.31: Đặc tả màn hình danh sách hợp đồng cung cấp của kế toán kho
1 Xuất excel Button Xuất excel hợp đồng cung cấp có trạng thái “đã duyệt”
Màn hình kiểm kho để kiểm số lượng nguyên liệu còn lại trong kho
Hình 4.23: Màn hình kiểm kho
Bảng 4.32: Đặc tả màn hình kiểm kho
1 Username Text API lấy username đang đăng nhập
Username của tài khoản đang đăng nhập
2 Add Button Khi click, popup tạo mới kiểm kho sẽ hiển thị Tạo mới kiểm kho được sử dụng trong trường hợp lần đầu tiên kiểm tồn nguyên liệu của chi nhánh, các lần kiểm tồn tiếp theo sẽ dùng button Edit để thay đổi số lượng tồn kho
3 Chi tiết kiểm kho của nguyên liệu
API lấy tồn kho của nguyên liệu
Số lượng tồn kho của nguyên liệu trong kỳ hàng của chi nhánh mà account đăng nhập trực thuộc
4 Nút Edit Button Cột số lượng tồn cho phép nhập số lượng còn lại
Text Nhập số lượng còn lại của nguyên liệu
6 Save Button API lưu số lượng tồn còn lại
Popup tạo mới kiểm kho
Hình 4.24: Popup tạo mới kiểm kho Bảng 4.33: Đặc tả popup tạo mới kiểm kho
Tên Loại Tham chiếu Ghi chú
1 Nguyên liệu Dropdown API lấy danh sách nguyên liệu trong chi nhánh đã có tồn tối thiểu và sức chứa
2 Số lượng Text Nhập số lượng của nguyên liệu
3 Save Button Khi click, lưu lại số lượng nguyên liệu của chi nhánh
4.4.5 Màn hình kỳ nguyên liệu
Màn hình kỳ nguyên liệu thể hiện chi tiết tồn kho của các kỳ nguyên liệu trong chi nhánh
Hình 4.25: Màn hình kỳ nguyên liệu
Bảng 4.34: Đặc tả màn hình kỳ nguyên liệu
1 Ngày đầu kỳ Text Ngày nhập nguyên liệu từ kho tổng được chọn là ngày đầu kỳ
2 Ngày cuối kỳ Text Ngày cuối kỳ là ngày ngay liền trước của ngày đầu kỳ trong kỳ hàng tiếp theo
4 Đơn vị Text Đơn vị của nguyên liệu
5 Tồn đầu kỳ Text Tồn cuối kỳ của kỳ trước là tồn đầu kỳ của kỳ này
Text Số lượng thực nhận của nguyên liệu trong hợp đồng cung cấp
7 Tồn cuối kỳ Text API kiểm kho
Số lượng nguyên liệu còn lại trong kho
8 Số lượng bán Text Số lượng bán = Tồn đầu kỳ + Nhập trong kỳ - Tồn cuối kỳ
9 Trạng thái Text Trạng thái completed là trạng thái kỳ nguyên đã hoàn thành, trạng thái active là trạng thái kỳ nguyên liệu hiện tại