BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC ĐIỆN LỰC KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN LẬP TRÌNH .NET XÂY DỰNG HỆ THỐNG QUẢN LÝ CỬA HÀNG ĐỒ CHƠI Giảng viên hướng dẫn : CẤN ĐỨC ĐIỆP S
KHẢO SÁT HỆ THỐNG CŨ
Khảo sát hệ thống
Cửa hàng đồ chơi XYZ chuyên cung cấp đa dạng các loại đồ chơi cho trẻ em ở nhiều độ tuổi, bao gồm đồ chơi trí tuệ, mô hình lắp ráp, đồ chơi vận động và đồ chơi điện tử Với nguồn cung cấp từ các nhà sản xuất trong và ngoài nước, cửa hàng cam kết mang đến sản phẩm đạt tiêu chuẩn chất lượng và an toàn cho trẻ em.
Khách hàng của cửa hàng hiện tại bao gồm phụ huynh, giáo viên, trường học và các cửa hàng bán lẻ nhỏ Tuy nhiên, sự phát triển không ngừng của ngành công nghiệp đồ chơi cùng với số lượng khách hàng ngày càng tăng đã khiến việc quản lý hoạt động kinh doanh theo phương pháp thủ công trở nên khó khăn.
1.1.2 Những khó khăn trong hệ thống cũ
Quản lý thủ công tốn nhiều thời gian và công sức do hệ thống quản lý cũ thiếu hỗ trợ phần mềm, dẫn đến việc quản lý thông tin sản phẩm, hóa đơn và khách hàng phải chia thành nhiều bước và phụ thuộc vào sổ sách Điều này không chỉ tiêu tốn nguồn lực mà còn ảnh hưởng đến độ chính xác và hiệu quả trong công việc.
Quản lý kho hàng và thông tin sản phẩm gặp nhiều khó khăn, đặc biệt với số lượng mặt hàng lớn Việc theo dõi hàng tồn kho và các sản phẩm sắp hết hoặc hết hạn không được thực hiện kịp thời, gây ra nguy cơ thất thoát và tồn đọng hàng hóa Hơn nữa, việc lưu trữ thông tin bằng giấy tờ không chỉ dễ bị thất lạc mà còn tốn kém chi phí.
Quản lý khách hàng hiện tại chưa đạt hiệu quả do hệ thống cũ không đủ khả năng theo dõi và phân loại số lượng khách hàng ngày càng tăng Điều này dẫn đến khó khăn trong việc kiểm soát thông tin, đề xuất ưu đãi, cũng như chăm sóc khách hàng mới và khách hàng trung thành.
Quản lý thu chi hiện tại gặp khó khăn do việc ghi chép thủ công, dẫn đến mất thời gian trong việc tổng hợp báo cáo doanh thu và lợi nhuận Hơn nữa, việc tính toán bằng máy tính cầm tay dễ gây ra sai sót và không đạt hiệu quả tối ưu.
Hệ thống quản lý hiện tại thiếu tính tự động và khó mở rộng quy mô, gây trở ngại cho cửa hàng khi muốn phát triển kinh doanh hoặc triển khai các chiến lược mới Thiếu sót này làm giảm khả năng cạnh tranh của cửa hàng trong một thị trường đang ngày càng phát triển.
1.1.3 Giải pháp Để giải quyết các khó khăn trên, cửa hàng cần ứng dụng công nghệ thông tin vào quản lý, cụ thể là xây dựng một phần mềm quản lý dành riêng cho cửa hàng đồ chơi. Phần mềm này sẽ:
Tự động hóa các quy trình quản lý sản phẩm, hóa đơn, và khách hàng.
Tăng hiệu quả trong quản lý kho, theo dõi hàng tồn, và báo cáo doanh thu.
Hỗ trợ chiến lược chăm sóc khách hàng và mở rộng kinh doanh một cách hiệu quả.
Tại cửa hàng đồ chơi Funnyland, địa chỉ SH02 TSG Lotus, 190 Sài Đồng, Long Biên, Hà Nội, tất cả các quy trình nghiệp vụ và thông tin khảo sát đều được thực hiện một cách chuyên nghiệp và hiệu quả.
Hình 1.1: Hệ thống cửa hàng đồ chơi Funnyland
Xác định bài toán cần giải quyết
Cửa hàng hiện vẫn áp dụng phương pháp quản lý truyền thống với sổ sách và giấy tờ, mặc dù đã sử dụng Excel và phần mềm thuê ngoài cho một số quy trình quản lý khách hàng Tuy nhiên, hệ thống hiện tại vẫn gặp nhiều hạn chế.
Hệ thống cũ mang lại nhiều ưu điểm, trong đó nổi bật là chi phí thấp, vì việc sử dụng Excel và phần mềm thuê ngoài không yêu cầu đầu tư lớn Bên cạnh đó, hệ thống này cũng dễ sử dụng, không đòi hỏi trình độ tin học cao, phù hợp với nhân viên có kỹ năng cơ bản.
Hệ thống cũ gặp nhiều nhược điểm, bao gồm khả năng xảy ra sai sót và nhầm lẫn cao, dẫn đến dữ liệu dễ bị sai lệch, trùng lặp hoặc mất mát do quá trình nhập liệu thủ công Thêm vào đó, việc sao lưu dữ liệu trở nên khó khăn, tiềm ẩn nguy cơ mất toàn bộ thông tin quan trọng khi xảy ra sự cố.
Quản lý thủ công tiêu tốn nhiều nhân lực và thời gian, khi cần nhiều nhân viên tham gia vào các công việc như theo dõi kho, cập nhật thông tin khách hàng và lập báo cáo Những quy trình này không chỉ mất thời gian mà còn làm gia tăng chi phí vận hành.
Việc tìm kiếm, cập nhật, thêm mới, hoặc xóa thông tin trong hệ thống hiện tại gặp nhiều khó khăn và dễ gây nhầm lẫn Đồng thời, quá trình tổng hợp báo cáo thống kê như doanh thu và tình trạng hàng tồn kho tốn nhiều thời gian và không đảm bảo tính chính xác.
Tốc độ xử lý chậm là vấn đề thường gặp khi thực hiện các công việc liên quan đến xử lý dữ liệu trên Excel hoặc các phần mềm thuê ngoài, đặc biệt khi khối lượng dữ liệu lớn.
Hệ thống cũ gây ra nhiều hạn chế, tạo khó khăn cho thủ kho và người quản lý cửa hàng Những khó khăn này không chỉ làm giảm hiệu quả công việc mà còn ảnh hưởng đến khả năng ra quyết định kịp thời trong kinh doanh.
Để khắc phục những nhược điểm của hệ thống quản lý hiện tại, cần phát triển một phần mềm quản lý cửa hàng đồ chơi đáp ứng các yêu cầu cụ thể.
Tự động hóa quy trình: Giảm sự phụ thuộc vào nhân lực và tăng độ chính xác trong quản lý.
Quản lý tập trung: Tích hợp quản lý kho, khách hàng, và hóa đơn trong một hệ thống duy nhất.
Báo cáo nhanh chóng: Cung cấp các báo cáo thống kê theo thời gian thực.
Tăng tốc độ xử lý: Nâng cao hiệu suất và khả năng xử lý dữ liệu với số lượng lớn.
Thân thiện với người dùng: Giao diện dễ sử dụng, hỗ trợ đầy đủ chức năng nhưng không yêu cầu kỹ năng tin học cao.
Xây dựng một hệ thống quản lý mới sẽ giúp cửa hàng tiết kiệm thời gian, nâng cao hiệu quả công việc và tạo nền tảng vững chắc cho sự phát triển bền vững trong tương lai.
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG MỚI
Phân tích hệ thống
Bài viết cung cấp kiến thức cơ bản về phân tích và thiết kế hệ thống thông tin, bao gồm các khái niệm đại cương và phân tích các chức năng chính cũng như phụ Từ đó, người đọc sẽ được hướng dẫn sử dụng công cụ lập trình như NET Framework và cơ sở dữ liệu SQL Server để phát triển phần mềm Phần mềm này nhằm giải quyết các vấn đề đã được nêu trong chương trước, đảm bảo hiệu quả, tốc độ và khả năng quản lý hiện đại hơn.
Phân tích hệ thống nhằm:
Đi sâu vào chi tiết các chức năng của hệ thống.
Trong quá trình xây dựng hệ thống, việc tạo biểu đồ phân cấp chức năng giúp mô tả mối quan hệ giữa các chức năng chính và chức năng con Bên cạnh đó, biểu đồ luồng dữ liệu (DFD) cho phép hiển thị dòng chảy dữ liệu qua các chức năng, giúp người dùng hiểu rõ hơn về cách thức hoạt động của hệ thống Cuối cùng, việc xác định thông tin đầu vào và đầu ra là cần thiết để nhận diện dữ liệu cần nhập vào và kết quả mà hệ thống cung cấp, từ đó nâng cao hiệu quả hoạt động của hệ thống.
Cung cấp sơ đồ và biểu đồ minh họa cho thiết kế hệ thống.
2.1.3 Phân tích hệ thống dữ liệu
Tổ chức dữ liệu: Đưa ra cách lưu trữ, phân loại dữ liệu như thông tin sản phẩm, khách hàng, và hóa đơn.
Truy cập dữ liệu: Sử dụng các công cụ và phương pháp như ADO.NET để quản lý dữ liệu: thêm, sửa, xóa, hoặc tìm kiếm dữ liệu.
Tối ưu hóa: Đảm bảo tốc độ xử lý nhanh và tính toàn vẹn dữ liệu, giảm thiểu sai sót trong việc lưu trữ và truy xuất thông tin.
Phân tích xác định chức năng, tác nhân và hồ sơ
2.2.1 Đối với người quản trị (Admin):
Quản lý tài khoản trong hệ thống cho phép admin thực hiện các thao tác thêm, sửa, và xoá tài khoản người dùng Để đảm bảo tính bảo mật, hệ thống yêu cầu mật khẩu, chỉ cho phép người quản trị truy cập và thao tác trên cơ sở dữ liệu.
Quản lý đơn hàng và khách hàng là một phần quan trọng trong kinh doanh, giúp theo dõi và quản lý danh sách các đơn hàng mua sản phẩm một cách hiệu quả Đồng thời, việc quản lý thông tin khách hàng cho phép thêm, sửa và kiểm tra dữ liệu dễ dàng, từ đó đáp ứng nhanh chóng các nhu cầu của khách hàng.
Thống kê và báo cáo là yếu tố quan trọng trong việc theo dõi tình hình đặt hàng, danh sách khách hàng và các sản phẩm bán chạy nhất Việc tạo báo cáo doanh thu và tình hình kinh doanh sẽ hỗ trợ đắc lực cho quá trình ra quyết định chiến lược.
Quản lý thông tin chung: o Thêm, sửa, xoá thông tin liên quan đến hoá đơn, khách hàng, nhân viên, và nhà cung cấp.
Quản lý sản phẩm cho phép người dùng nhanh chóng tìm kiếm thông tin về các mẫu đồ chơi mới và kiểm tra chi tiết các sản phẩm hiện có.
Quản lý khách hàng và hóa đơn: o Thêm, sửa, xoá thông tin khách hàng và hóa đơn. o In hóa đơn để giao cho khách hàng sau khi thanh toán.
Báo cáo doanh thu và tình hình kinh doanh sẽ được tạo ra để gửi đến quản lý, đồng thời cung cấp hỗ trợ an toàn cho khách hàng trong quá trình mua sắm, đảm bảo rằng thông tin cá nhân của họ luôn được bảo mật.
Giao diện của hệ thống được thiết kế thân thiện và dễ sử dụng, giúp người dùng tìm kiếm thông tin sản phẩm một cách nhanh chóng Hệ thống tính toán tự động đảm bảo độ chính xác cao và loại bỏ hoàn toàn sai sót do con người gây ra.
An toàn dữ liệu: o Đảm bảo dữ liệu được lưu trữ và xử lý một cách an toàn, không bị mất mát hoặc rò rỉ thông tin.
Xác định các Actor và Use case tổng quát của hệ thống
Mô tả chi tiết hành động
Quản trị viên có quyền quản lý tài khoản người dùng bằng cách thêm, sửa, xóa và đặt lại mật khẩu khi cần thiết Họ cũng có trách nhiệm quản lý danh sách đơn hàng và thông tin khách hàng, bao gồm việc thêm, sửa, xóa thông tin khách hàng và kiểm tra tình trạng các đơn hàng.
Admin có khả năng quản lý thông tin sản phẩm bằng cách thêm, sửa, hoặc xóa các chi tiết như tên sản phẩm, loại, giá bán và số lượng Đồng thời, admin cũng có thể tìm kiếm và xem danh sách sản phẩm hiện có Bên cạnh đó, admin thực hiện thống kê doanh thu, theo dõi sản phẩm bán chạy và xem báo cáo tổng hợp để nắm bắt tình hình kinh doanh.
Quản lý nhà cung cấp và nhân viên là nhiệm vụ quan trọng của admin, bao gồm việc thêm, sửa, và xóa thông tin Để đảm bảo hệ thống vận hành ổn định, admin cần thực hiện kiểm tra và bảo trì định kỳ.
Nhân viên có quyền truy cập thông tin chi tiết về các mẫu đồ chơi mới và sản phẩm trong cửa hàng, giúp tìm kiếm sản phẩm nhanh chóng Họ cũng có khả năng in hóa đơn cho khách hàng và hỗ trợ thông tin mua hàng một cách hiệu quả.
Nhân viên có quyền quản lý thông tin khách hàng và hóa đơn, bao gồm thêm, sửa, xóa dữ liệu, cũng như tạo báo cáo doanh thu để hỗ trợ quản lý cửa hàng Hệ thống sở hữu giao diện thân thiện, dễ sử dụng, đảm bảo tính chính xác và an toàn cho dữ liệu trong quá trình làm việc.
2.3.2 Biểu đồ phân rã chức năng
Hình 2.1: Biểu đồ phân rã chức năng
Quản lý thông tin nhân viên là một phần quan trọng trong hệ thống, nơi thông tin nhân viên được lưu trữ an toàn trong cơ sở dữ liệu Hệ thống cung cấp chức năng tìm kiếm hiệu quả, cho phép quản lý nhanh chóng tra cứu thông tin của từng nhân viên cụ thể, bao gồm họ tên, vị trí, ngày bắt đầu làm việc và lương cơ bản, từ đó nâng cao hiệu suất quản lý.
Quản lý danh mục sản phẩm là quá trình xây dựng và tổ chức danh sách các mặt hàng đồ chơi hiện có, kèm theo bảng giá và thông tin chi tiết Hệ thống này giúp khách hàng dễ dàng lựa chọn sản phẩm thông qua các danh mục được sắp xếp một cách khoa học.
Hệ thống hỗ trợ tự động lập hóa đơn thanh toán khi khách hàng thực hiện mua hàng, với hóa đơn được tạo ra dựa trên số lượng và giá của sản phẩm.
Hệ thống tự động tính tổng tiền, cập nhật điểm tích lũy vào tài khoản khách hàng (nếu có), và in hóa đơn chi tiết giao cho khách hàng.
Chức năng lập báo cáo cho phép nhân viên thu chi tổng hợp dữ liệu kinh doanh của cửa hàng, bao gồm doanh thu, chi phí và lợi nhuận hàng tháng Những báo cáo này hỗ trợ ban quản lý trong việc đưa ra quyết định tài chính và xây dựng các chính sách thưởng, phúc lợi cho nhân viên.
Hệ thống quản lý khách hàng cho phép lưu trữ thông tin quan trọng như họ tên, số điện thoại, địa chỉ và lịch sử mua hàng Chức năng này giúp tìm kiếm thông tin khách hàng nhanh chóng, quản lý các chương trình khuyến mãi, chăm sóc khách hàng hiệu quả, và theo dõi điểm tích lũy để tạo ra các ưu đãi phù hợp.
Hình 2.2: Sơ đồ ngữ cảnh
2.3.4 Biểu đồ luồng dữ liệu mức đỉnh (0)
Hình 2.3: Sơ đồ luồng dữ liệu mức đỉnh
2.3.5 Biểu đồ luồng dữ liệu mức 1
Hình 2.4: Sơ đồ mức dưới đỉnh chức năng Quản lí nhân viên
2.3.6 Biểu đồ luồng dữ liệu mức 2
Hình 2.5: Sơ đồ mức dưới đỉnh chức năng Quản lí hàng hóa
2.3.7 Biểu đồ luồng dữ liệu mức 3
Hình 2.6: Sơ đồ mức dưới đỉnh chức năng Quản lí hóa đơn
2.3.8 Biểu đồ luồng dữ liệu mức 4
Hình 2.7: Sơ đồ mức dưới đỉnh chức năng quản lý khách hàng
2.3.9 Biểu đồ luồng dữ liệu mức 5
Hình 2.8: Sơ đồ mức dưới đỉnh chức năng báo cáo doanh thu
Mô hình thực thể liên kết
2.4.1 Xây dựng các thực thể
Xác định các thực thể và lập mô hình thực thể liên kết:
Tài khoản (Account) o Mỗi thực thể tượng trưng cho một nhân viên hoặc account trong cửa hàng o Các thuộc tính: id (khóa), username, password, role, …
Hóa đơn (BillInfo) o Mỗi thực thể tượng trưng cho hóa đơn của cửa hàng o Các thuộc tính : MaDHBan ( khóa chính ), MaHang(khóa chính) , SoLuong, DonGia, ThanhTien
Chi tiết hóa đơn (BillInfo) đại diện cho từng mục trong hóa đơn chính, với các thuộc tính quan trọng bao gồm MaHDBan (khóa chính), MaHang (khóa ngoài), SoLuong, DonGia và ThanhTien.
Hàng hóa(goods) o Mỗi thực thể tượng trưng cho một hàng hóa o Các thuộc tính : MaHang (Khóa chính), TenHang, SoLuong,
Khách hàng (Customter): o Mỗi thực thể tượng trưng cho một khách hàng o Các thuộc tính : MaKhach(khóa chính ), TenKhach, DiaChi, DienThoai.
Nhân viên (employee) o Mỗi thực thể tượng trưng cho một nhân viên cửa hàng o Các thuộc tính: MaNhanVien (khóa chính), TenNhanVien, GioiTinh, DiaChi, DienThoai, NgaySinh
2.5.2 Mô hình thực thể liên kết
Hình 2.9: Sơ đồ thực thể liên kết
THIẾT KẾ CƠ SỞ DỮ LIỆU
Bảng User
Mỗi tài khoản người dùng trong hệ thống đều có những thuộc tính quan trọng như id (khóa chính) để nhận diện duy nhất, username là tên đăng nhập, và pass là mật khẩu để truy cập Ngoài ra, thuộc tính role xác định quyền hạn của tài khoản, cho phép người dùng thực hiện các chức năng khác nhau như quản lý sản phẩm, quản lý đơn hàng, hay làm quản trị viên hệ thống Trạng thái tài khoản được thể hiện qua thuộc tính status, cho biết tài khoản đang hoạt động hay đã bị khóa, và date_reg ghi lại ngày đăng ký tài khoản của người dùng.
Tài khoản đóng vai trò quan trọng trong việc xác định quyền truy cập và chức năng trong hệ thống, bao gồm quản lý sản phẩm, đơn hàng và các vai trò quản trị viên với quyền hạn cao hơn.
Bảng Product
Mỗi sản phẩm trong hệ thống được nhận diện bằng mã id duy nhất, cùng với mã sản phẩm (prod_id) và tên sản phẩm (prod_name) Loại sản phẩm (prod_type) giúp xác định nhóm đồ chơi, như đồ chơi trí tuệ hay thể thao Số lượng sản phẩm có trong kho được ghi nhận qua thuộc tính prod_stock, trong khi giá bán được chỉ định bởi prod_price Nhà cung cấp sản phẩm (prod_supp) là đối tác cung cấp đồ chơi cho cửa hàng Trạng thái sản phẩm (prod_stat) cho biết tình trạng hiện tại, như hoạt động, hết hàng hay ngừng bán Hình ảnh sản phẩm (prod_image) được sử dụng để hiển thị trên giao diện người dùng Thông tin về ngày thêm sản phẩm (date_insert), ngày cập nhật (date_update) và ngày xóa (date_delete) cũng được lưu trữ để quản lý hiệu quả.
Bảng sản phẩm lưu trữ thông tin chi tiết về các sản phẩm tại cửa hàng đồ chơi, bao gồm các đặc tính cơ bản như tên, giá, loại, số lượng, cùng với thông tin bổ sung như trạng thái và hình ảnh sản phẩm.
Bảng Orders
Bài viết mô tả các thuộc tính của đơn hàng trong hệ thống quản lý, bao gồm: id (khóa chính) để nhận diện đơn hàng, customer_id (khóa ngoại) liên kết với khách hàng, prod_id (khóa ngoại) xác định sản phẩm, prod_name là tên sản phẩm, prod_type phân loại sản phẩm (như đồ chơi, phụ kiện), prod_price thể hiện giá sản phẩm tại thời điểm đặt hàng, order_date ghi nhận ngày đặt hàng, delete_order chỉ trạng thái xóa đơn hàng (1 cho xóa, 0 cho không xóa), và qty cho biết số lượng sản phẩm trong đơn hàng.
Bảng Customers
Mỗi khách hàng trong hệ thống được xác định bằng một mã id duy nhất, gọi là khóa chính Mã khách hàng (customer_id) là một mã số hoặc ID độc nhất liên kết với từng khách hàng Tổng giá trị của tất cả các đơn hàng mà khách hàng đã thực hiện được ghi nhận qua thuộc tính total_price Ngày mua hàng hoặc ngày ghi nhận giao dịch được lưu trữ trong thuộc tính date Số tiền mà khách hàng đã thanh toán cho đơn hàng được thể hiện qua thuộc tính amount, trong khi số tiền thừa mà khách hàng nhận lại sau khi thanh toán, nếu có, được ghi nhận qua thuộc tính change.
Bảng khách hàng lưu trữ thông tin cơ bản về từng khách hàng của cửa hàng, bao gồm tổng số tiền chi tiêu, ngày giao dịch, số tiền thanh toán và số tiền thay đổi (nếu có).
Bảng BangNhanVien
Bài viết mô tả các thuộc tính của thông tin nhân viên trong hệ thống, bao gồm: MaNhanVien (khóa chính) là mã duy nhất xác định nhân viên, TenNhanVien là tên của nhân viên, GioiTinh cho biết giới tính (Nam hoặc Nữ), DiaChi là địa chỉ cư trú, DienThoai là số điện thoại liên lạc, và NgaySinh là ngày sinh của nhân viên.
Bảng BangNhanVien chứa thông tin cơ bản về nhân viên cửa hàng, bao gồm mã nhân viên, tên, giới tính, địa chỉ, số điện thoại và ngày sinh, giúp quản lý dữ liệu hiệu quả.
Bảng tblHDBan
Hóa đơn bán hàng được xác định bởi thuộc tính MaHDBan, là khóa chính duy nhất trong hệ thống Ngoài ra, thuộc tính MaNhaNVien là khóa ngoại, giúp liên kết hóa đơn với bảng thông tin nhân viên.
BangNhanVien được sử dụng để xác định nhân viên thực hiện giao dịch bán hàng NgàyBan ghi lại ngày diễn ra giao dịch bán hàng MãKhach là mã khách hàng, liên kết với bảng khách hàng nhằm xác định người tham gia giao dịch TổngTiền là tổng số tiền của hóa đơn bán hàng, bao gồm tổng giá trị các mặt hàng và các khoản chi phí liên quan.
Bảng tblHDBan chứa thông tin chi tiết về các hóa đơn bán hàng, bao gồm mã hóa đơn, mã nhân viên thực hiện giao dịch, ngày bán, mã khách hàng và tổng tiền của mỗi hóa đơn.
THIẾT KẾ GIAO DIỆN
Form đăng nhập và đăng kí
Các form chức năng dành cho nhân viên và chủ cửa hàng
Hình 4.3: Giao diện chính của chủ cửa hàng
Hình 4.4: Giao diện quản lý người dùng hệ thống
Hình 4.5: Giao diện quản lý nhân viên
Hình 4.6: Giao diện quản lý sản phẩm
Hình 4.7: Giao diện quản lý sản phẩm
Hình 4.8: Giao diện chức năng tạo đơn hàng
Hình 4.9: Giao diện chức quản lý khách hàng
Hình 4.10: Giao diện chức năng báo cáo doanh thu