Giới thiệu dự án
Trong bối cảnh nền kinh tế số và sự bùng nổ của thị trường thiết bị công nghệ thông tin (CNTT), các doanh nghiệp phân phối linh kiện máy tính và thiết bị văn phòng phải đối mặt với áp lực xử lý hàng nghìn giao dịch xuất nhập kho mỗi ngày. Theo các khảo sát thực tế ngành phân phối CNTT tại Việt Nam, hơn 65% doanh nghiệp quy mô vừa và nhỏ (SMEs) vẫn vận hành quản lý hàng hóa bằng phương pháp ghi chép sổ sách rời rạc hoặc sử dụng bảng tính Microsoft Excel đơn lẻ. Điều này dẫn đến tỷ lệ sai lệch tồn kho bình quân lên tới 12-15%, thời gian tổng hợp báo cáo định kỳ kéo dài từ 3-5 ngày làm việc và nguy cơ thất thoát dữ liệu nghiêm trọng khi có sự biến động nhân sự.
Công ty Cổ phần Máy tính Thành Hưng (thành lập năm 2010) là đơn vị hoạt động chuyên sâu trong lĩnh vực nhập khẩu, phân phối, bán buôn, bán lẻ linh kiện máy tính, máy văn phòng và tích hợp hệ thống CNTT. Từ năm 2010 đến 2012, công ty ghi nhận tốc độ tăng trưởng vượt bậc: tổng tài sản tăng 4,7 lần (đạt 8.042.128 VNĐ quy chuẩn hệ số), tổng nợ phải trả tăng 4,0 lần, lợi nhuận trước thuế tăng 4,9 lần và lợi nhuận sau thuế tăng 4,3 lần. Sự mở rộng quy mô với hơn 60 nhân sự, diện tích kho bãi gần 200m² cùng khối lượng luân chuyển thiết bị từ các hãng lớn (Dell, HP Compaq) đã khiến phương thức quản trị bán thủ công qua Excel bộc lộ những lỗ hổng nghiêm trọng:
- Tính toàn vẹn dữ liệu kém: Dữ liệu phân mảnh giữa phòng Kinh doanh, phòng Cung ứng và Bộ phận Kho; xuất hiện tình trạng dư thừa dữ liệu (data redundancy) và bất nhất thông tin (data inconsistency).
- Độ trễ thông tin cao: Tra cứu vị trí, số lượng và chủng loại hàng hóa mất từ 15-30 phút/giao dịch; không cung cấp được số liệu tồn kho khả dụng theo thời gian thực (real-time stock availability).
- Bảo mật và phân quyền yếu kém: File Excel dùng chung thiếu cơ chế kiểm soát truy cập theo vai trò (Role-Based Access Control - RBAC), tiềm ẩn nguy cơ lộ bí mật kinh doanh hoặc bị sao chép toàn bộ cơ sở dữ liệu khi nhân sự nghỉ việc.
+----------------------------------------------+
| CÔNG TY CP MÁY TÍNH THÀNH HƯNG (2010-2012) |
| - Quy mô: 60+ nhân sự, kho bãi ~200m2 |
| - Tăng trưởng tài sản: 4.7x | Lợi nhuận: 4.3x|
+----------------------+-----------------------+
|
v
+------------------------------------------------------+
| THỰC TRẠNG QUẢN LÝ THỦ CÔNG/EXCEL |
| - Dư thừa & bất nhất dữ liệu (Data Inconsistency) |
| - Tra cứu chậm (15-30 phút/phiếu), rủi ro sai lệch |
| - Thiếu phân quyền, dễ thất thoát CSDL nội bộ |
+--------------------------+---------------------------+
|
v
+----------------------------------------------------------------------------------+
| GIẢI PHÁP: HỆ THỐNG THÔNG TIN QUẢN LÝ HÀNG HÓA (MIS INVENTORY SYSTEM) |
| - Phương pháp: Phân tích hướng chức năng (SADT: BFD, DFD đa cấp, ERD 3NF) |
| - Công nghệ: Microsoft Access RDBMS + VBA Engine (Visual Basic for Applications)|
| - Kết quả: Tra cứu < 0.2s, Báo cáo tức thì (Real-time), Tối ưu luồng Nhập-Xuất |
+----------------------------------------------------------------------------------+
Đề tài khóa luận "Phân tích, thiết kế hệ thống thông tin quản lý hàng hóa tại Công ty CP máy tính Thành Hưng" do sinh viên Lê Thị Thùy Thắm (Khoa Hệ thống Thông tin Quản lý, Trường Đại học Thương mại; GVHD: ThS. Nguyễn Hằng Giang) thực hiện nhằm giải quyết dứt điểm các điểm nghẽn nghiệp vụ trên.
Mục tiêu nghiên cứu cụ thể của dự án:
- Khảo sát toàn diện quy trình luân chuyển hàng hóa thực tế tại bộ phận kho và các phòng ban liên quan (Kế toán, Kinh doanh, Cung ứng) trong giai đoạn 2010-2012.
- Ứng dụng phương pháp phân tích thiết kế hướng chức năng để mô hình hóa nghiệp vụ thông qua Sơ đồ phân cấp chức năng (BFD), Sơ đồ luồng dữ liệu (DFD) mức ngữ cảnh, mức đỉnh và mức dưới đỉnh.
- Thiết kế cơ sở dữ liệu quan hệ (RDBMS) chuẩn hóa bậc 3 (3NF) gồm 9 thực thể chính nhằm triệt tiêu dư thừa dữ liệu.
- Xây dựng phần mềm ứng dụng hoàn chỉnh trên nền tảng Microsoft Access và ngôn ngữ lập trình VBA (Visual Basic for Applications), tối ưu hóa các phân hệ: Quản lý hàng nhập, Quản lý hàng xuất, Thống kê kho hàng và Lập tra cứu báo cáo.
- Thiết lập cơ chế kiểm soát lỗi, khóa phân hoạch CSDL và phân quyền người dùng nhằm đảm bảo tính sẵn sàng, an toàn dữ liệu.
Phạm vi và giới hạn:
- Không gian: Bộ phận Kho, Phòng Kinh doanh, Phòng Cung ứng và Ban Giám đốc tại Công ty CP Máy tính Thành Hưng (49B Ngõ 651 Minh Khai, Hai Bà Trưng, Hà Nội).
- Dữ liệu khảo sát: Tập dữ liệu nghiệp vụ và báo cáo tài chính giai đoạn 2010-2012.
- Giới hạn kỹ thuật: Hệ thống triển khai trên mô hình Client-Server mạng cục bộ (LAN), cơ sở dữ liệu cục bộ chạy trên công cụ Jet/ACE Database Engine của Microsoft Access.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
Tại thời điểm nghiên cứu, thị trường và giới học thuật đã có một số giải pháp tin học hóa quản lý kho hàng nhưng vẫn bộc lộ nhiều hạn chế về kiến trúc và tính tương thích với doanh nghiệp thương mại linh kiện máy tính.
| Tiêu chí phân tích |
Microsoft Excel thủ công (Hiện trạng) |
Hệ thống Visual FoxPro 7 (Nguyễn Ngọc Kiên - ĐHKTQD) |
Hệ thống MS Access cơ bản (Nguyễn Kim Phượng - ĐHKTQD) |
Hệ thống đề xuất (Thành Hưng MIS) |
| Tính toàn vẹn CSDL |
Rất thấp (Dễ ghi đè công thức, phân mảnh file) |
Trung bình (Quan hệ lỏng lẻo) |
Thấp (Dư thừa thuộc tính và bảng dữ liệu) |
Cao (Chuẩn hóa 3NF, ràng buộc toàn vẹn Referential Integrity) |
| Bảo mật & Phân quyền |
Chỉ có mật khẩu mở file (Dễ bẻ khóa) |
Không hỗ trợ phân quyền người dùng |
Chưa tích hợp Module bảo mật phân cấp |
Kiểm soát đăng nhập, phân quyền cấp chức năng, nhật ký |
| Tốc độ tra cứu / Lập báo cáo |
Chậm (5-10 phút khi dữ liệu lớn) |
Trung bình (Thiếu báo cáo quản trị chuyên sâu) |
Khá (Giao diện đơn giản) |
Tức thời (< 0.2s tra cứu, 1-click xuất báo cáo NXT) |
| Chi phí triển khai |
Miễn phí (Có sẵn) |
Đòi hỏi Runtime môi trường FoxPro |
Thấp (Tận dụng MS Office) |
Tối ưu tuyệt đối (Chạy trực tiếp trên MS Access Runtime) |
Phân loại yêu cầu người dùng theo mô hình MoSCoW:
- Must have (Bắt buộc): Lập và in Phiếu nhập hàng, Phiếu xuất hàng; kiểm tra số lượng tồn kho tự động trước khi xuất; tổng hợp báo cáo Nhập - Xuất - Tồn (NXT) theo kỳ tùy chọn (ngày/tháng/quý/năm).
- Should have (Nên có): Tìm kiếm đa tiêu chí theo Mã hàng, Tên hàng, Chủng loại, Nhà cung cấp; phân quyền tài khoản (Admin, Thủ kho, Kinh doanh).
- Could have (Có thể có): Cảnh báo tự động khi số lượng tồn xuống dưới định mức tối thiểu; chức năng sao lưu (Backup) và phục hồi (Restore) tự động.
- Won't have (Chưa ưu tiên): Tích hợp máy quét mã vạch 2D không dây và đồng bộ hóa qua giao thức Cloud API (định hướng phiên bản nâng cấp).
Thiết kế hệ thống
Kiến trúc phần mềm được thiết kế theo mô hình 3 tầng logic (Logical 3-Tier Architecture) chạy trên nền tảng cơ sở hạ tầng mạng nội bộ gồm 30 máy trạm, 10 máy tính xách tay và 1 máy chủ trung tâm:
- Presentation Tier (Tầng giao diện): Hệ thống Biểu mẫu (Forms) tương tác người dùng, tích hợp các điều khiển trực quan (
CommandButton, TextBox, ComboBox, SubForm).
- Business Logic Tier (Tầng xử lý nghiệp vụ): Các thủ tục VBA và Macro thực hiện kiểm tra ràng buộc logic, tính toán số lượng tồn kho tức thời, xử lý giao dịch dữ liệu.
- Data Tier (Tầng dữ liệu): Microsoft Access Engine (Jet/ACE) lưu trữ các bảng dữ liệu có quan hệ khóa ngoại chặt chẽ.
+-----------------------------------------------------------------------------------+
| TẦNG GIAO DIỆN (PRESENTATION TIER) |
| [frm_DangNhap] [frm_QuanLyNhap] [frm_QuanLyXuat] [frm_ThongKe] [rpt_NXT] |
+------------------------------------------+----------------------------------------+
| Gửi sự kiện (Events / Form Actions)
v
+-----------------------------------------------------------------------------------+
| TẦNG NGHIỆP VỤ & ĐIỀU KHIỂN (VBA ENGINE) |
| - Module Kiểm tra Tồn kho: Validation Check (SoLuongXuat <= SoLuongTon) |
| - Module Giao dịch: DAO.Database Transaction Management |
| - Module Phân quyền & Nhật ký: Access Level Control & Error Handlers |
+------------------------------------------+----------------------------------------+
| Truy vấn / Cập nhật (SQL Queries / DAO)
v
+-----------------------------------------------------------------------------------+
| TẦNG DỮ LIỆU (ACCESS JET/ACE ENGINE) |
| tbl_HangHoa <--(1:N)--> tbl_ChiTietPhieuNhap <--(N:1)--> tbl_PhieuNhap |
| tbl_HangHoa <--(1:N)--> tbl_ChiTietPhieuXuat <--(N:1)--> tbl_PhieuXuat |
| tbl_NhomHang <--(1:N)--> tbl_HangHoa | tbl_PhongBan <--(1:N)--> tbl_BoPhan |
+-----------------------------------------------------------------------------------+
Technology Stack & Versions:
- Hệ quản trị CSDL & Nền tảng: Microsoft Access 2010 / 2013 (Access Database Engine 14.0/15.0).
- Ngôn ngữ lập trình logic: Visual Basic for Applications (VBA 7.0 / Access Basic).
- Chuẩn truy vấn: Structured Query Language (ANSI SQL-92 via DAO / ADO).
- Hệ điều hành tương thích: Microsoft Windows 7 / Windows 8 / Windows 10 (32-bit & 64-bit).
Thiết kế cơ sở dữ liệu quan hệ (Relational Database Schema):
Hệ thống chuẩn hóa thành 9 bảng dữ liệu với các định nghĩa trường và kiểu dữ liệu chuẩn:
HangHoa (MaHH [Text(5), PK], TenHH [Text(30)], ChungLoai [Text(20)], DonViTinh [Text(10)], MaNhomHang [Text(5), FK])
NhomHang (MaNhomHang [Text(5), PK], TenNhom [Text(30)])
PhieuNhap (SPNhap [Text(8), PK], NgayNhap [DateTime], TenHH [Text(30)], TenNV [Text(30)], SoLuongNhap [Integer])
ChiTietPhieuNhap (SPNhap [Text(8), PK/FK], MaHH [Text(5), PK/FK], MaNV [Text(5), FK], SoLuongNhap [Integer], NgayNhap [DateTime])
PhieuXuat (SPXuat [Text(8), PK], NgayXuat [DateTime], TenHH [Text(30)], TenNV [Text(30)], SoLuongXuat [Integer])
ChiTietPhieuXuat (SPXuat [Text(8), PK/FK], MaHH [Text(5), PK/FK], MaNV [Text(5), FK], SoLuongXuat [Integer], NgayXuat [DateTime])
NhanVien (MaNV [Text(5), PK], TenNV [Text(30)], SDT [Text(20)], MaBP [Text(5), FK])
BoPhan (MaBP [Text(5), PK], TenBP [Text(30)], SDT [Text(20)], MaPB [Text(5), FK])
PhongBan (MaPB [Text(5), PK], TenPB [Text(20)], TruongPhong [Text(25)])
-- DDL Schema definition for HangHoa and ChiTietPhieuNhap
CREATE TABLE HangHoa (
MaHH VARCHAR(5) NOT NULL,
TenHH VARCHAR(30) NOT NULL,
ChungLoai VARCHAR(20),
DonViTinh VARCHAR(10) NOT NULL,
MaNhomHang VARCHAR(5) NOT NULL,
CONSTRAINT PK_HangHoa PRIMARY KEY (MaHH),
CONSTRAINT FK_NhomHang FOREIGN KEY (MaNhomHang) REFERENCES NhomHang(MaNhomHang)
);
CREATE TABLE ChiTietPhieuNhap (
SPNhap VARCHAR(8) NOT NULL,
MaHH VARCHAR(5) NOT NULL,
MaNV VARCHAR(5) NOT NULL,
SoLuongNhap INTEGER NOT NULL,
NgayNhap DATETIME NOT NULL,
CONSTRAINT PK_CTPhieuNhap PRIMARY KEY (SPNhap, MaHH),
CONSTRAINT FK_PN_ChiTiet FOREIGN KEY (SPNhap) REFERENCES PhieuNhap(SPNhap),
CONSTRAINT FK_HH_ChiTiet FOREIGN KEY (MaHH) REFERENCES HangHoa(MaHH)
);
Bảo mật và toàn vẹn dữ liệu:
- Phân vùng khóa CSDL (Partial Locking): Sử dụng cơ chế khóa bản ghi cấp độ Row-level Lock khi xử lý giao dịch cập nhật nhằm tránh xung đột dữ liệu giữa nhiều người dùng đồng thời.
- Tạo tệp sao lưu tự động: Thiết lập lịch sao lưu tệp nhật ký giao dịch và bản sao snapshot CSDL
.accdb định kỳ hàng ngày.
- Kiểm soát truy nhập con người: Gán quyền truy cập Form và Báo cáo theo nhóm vai trò; mã hóa chuỗi kết nối và bảo vệ mã nguồn VBA bằng mật khẩu dự án.
Methodology
Dự án áp dụng phương pháp luận Vòng đời phát triển hệ thống cổ điển (System Development Life Cycle - SDLC) kết hợp phương pháp phân tích thiết kế hướng chức năng (Structured Analysis and Design Technique - SADT):
- Giai đoạn 1 - Khảo sát & Đánh giá hiện trạng: Phỏng vấn sâu lãnh đạo và cán bộ Bộ phận Kho, Phòng Kế toán; thu thập mẫu chứng từ thực tế (phiếu nhập, phiếu xuất, biên bản kiểm kê).
- Giai đoạn 2 - Mô hình hóa chức năng & luồng dữ liệu: Xây dựng Sơ đồ phân cấp chức năng (BFD), Sơ đồ luồng dữ liệu (DFD) mức ngữ cảnh (Sơ đồ 3.2), DFD mức đỉnh (Sơ đồ 3.3) và 4 DFD mức dưới đỉnh cho các phân hệ chức năng (Quản lý hàng nhập, Quản lý hàng xuất, Thống kê kho hàng, Lập tra cứu báo cáo).
- Giai đoạn 3 - Mô hình hóa dữ liệu (ERD to Relational Model): Xác định thực thể, thuộc tính định danh, mối quan hệ thực thể và chuẩn hóa cấu trúc dữ liệu.
- Giai đoạn 4 - Thiết kế giao diện & Lập trình ứng dụng: Xây dựng các biểu mẫu tương tác, thiết lập truy vấn SQL và mã hóa logic kiểm soát bằng VBA.
- Giai đoạn 5 - Kiểm thử & Đánh giá (UAT): Chạy thử nghiệm hệ thống với tập dữ liệu giả lập và dữ liệu lịch sử giai đoạn 2010-2012 của công ty.
Implementation và kết quả
Development process
Quá trình hiện thực hóa hệ thống tập trung vào việc chuyển đổi các mô hình lý thuyết DFD thành các module phần mềm hoạt động chính xác thông qua hệ thống truy vấn và mã nguồn VBA.
Cấu trúc thư mục và tổ chức mã nguồn:
Forms/: frm_DangNhap, frm_HeThongChinh, frm_QuanLyNhap, frm_PhieuNhap, frm_QuanLyXuat, frm_PhieuXuat, frm_ThongKe, frm_BaoCaoNXT.
Reports/: rpt_BaoCaoHangNhap, rpt_BaoCaoHangXuat, rpt_BaoCaoTonKho, rpt_BangKeChiTiet.
Queries/: qry_TongHopNhap, qry_TongHopXuat, qry_BaoCaoNXT_Dynamic.
Modules/: mod_Security, mod_DatabaseControl, mod_Utilities.
Thuật toán kiểm soát xuất kho và cập nhật số dư tồn kho:
Để ngăn ngừa tình trạng xuất âm hàng hóa (xuất số lượng lớn hơn lượng hàng thực tế trong kho), hệ thống tích hợp kiểm tra logic trước khi ghi bản ghi xuất:
' Module: Xử lý ghi nhận Phiếu Xuất Hàng và Kiểm soát Tồn Kho Khả Dụng
Private Sub btnLuuXuat_Click()
On Error GoTo Err_Handler
Dim db As DAO.Database
Dim rsTon As DAO.Recordset
Dim strSQL As String
Dim currentStock As Long
Dim exportQty As Long
' Kiểm tra dữ liệu đầu vào
If IsNull(Me.cboMaHH) Or IsNull(Me.txtSoLuongXuat) Or IsNull(Me.txtSPXuat) Then
MsgBox "Vui lòng nhập đầy đủ Số phiếu, Mã hàng hóa và Số lượng xuất!", vbExclamation, "Thiếu thông tin"
Exit Sub
End If
exportQty = CLng(Me.txtSoLuongXuat.Value)
If exportQty <= 0 Then
MsgBox "Số lượng xuất phải lớn hơn 0!", vbExclamation, "Lỗi dữ liệu"
Exit Sub
End If
Set db = CurrentDb
' Tính toán số lượng tồn kho tức thời của mặt hàng
strSQL = "SELECT (NZ(Sum(Nhap.SoLuongNhap), 0) - NZ(Sum(Xuat.SoLuongXuat), 0)) AS TonHienTai " & _
"FROM (HangHoa LEFT JOIN ChiTietPhieuNhap AS Nhap ON HangHoa.MaHH = Nhap.MaHH) " & _
"LEFT JOIN ChiTietPhieuXuat AS Xuat ON HangHoa.MaHH = Xuat.MaHH " & _
"WHERE HangHoa.MaHH = '" & Me.cboMaHH.Value & "'"
Set rsTon = db.OpenRecordset(strSQL, dbOpenSnapshot)
If Not rsTon.EOF Then
currentStock = rsTon!TonHienTai
Else
currentStock = 0
End If
rsTon.Close
' Kiểm tra điều kiện tồn kho
If exportQty > currentStock Then
MsgBox "Không thể xuất kho! Số lượng yêu cầu (" & exportQty & ") vượt quá tồn kho hiện có (" & currentStock & ").", _
vbCritical, "Cảnh báo vượt mức tồn kho"
Exit Sub
End If
' Bắt đầu Transaction ghi dữ liệu chi tiết phiếu xuất
DBEngine.BeginTrans
strSQL = "INSERT INTO ChiTietPhieuXuat (SPXuat, MaHH, MaNV, SoLuongXuat, NgayXuat) " & _
"VALUES ('" & Me.txtSPXuat.Value & "', '" & Me.cboMaHH.Value & "', '" & _
Me.cboMaNV.Value & "', " & exportQty & ", #" & Format(Me.txtNgayXuat.Value, "yyyy-mm-dd") & "#);"
db.Execute strSQL, dbFailOnError
DBEngine.CommitTrans
MsgBox "Lưu phiếu xuất kho thành công!", vbInformation, "Thông báo"
Me.Requery
Exit Sub
Err_Handler:
DBEngine.Rollback
MsgBox "Lỗi hệ thống: " & Err.Description, vbCritical, "Transaction Error"
End Sub
Truy vấn SQL tổng hợp báo cáo Nhập - Xuất - Tồn:
-- Query Name: qry_BaoCaoNXT_Dynamic
-- Mục đích: Tính toán số lượng Nhập, Xuất và Tồn Cuối Kỳ theo tham số thời gian
SELECT
HH.MaHH,
HH.TenHH,
HH.DonViTinh,
NH.TenNhom,
NZ(N.TongNhap, 0) AS SoLuongNhapTrongKy,
NZ(X.TongXuat, 0) AS SoLuongXuatTrongKy,
(NZ(N.TongNhap, 0) - NZ(X.TongXuat, 0)) AS TonCuoiKy
FROM ((HangHoa AS HH
INNER JOIN NhomHang AS NH ON HH.MaNhomHang = NH.MaNhomHang)
LEFT JOIN (
SELECT MaHH, SUM(SoLuongNhap) AS TongNhap
FROM ChiTietPhieuNhap
WHERE NgayNhap BETWEEN [Forms]![frm_BaoCao]![txtTuNgay] AND [Forms]![frm_BaoCao]![txtDenNgay]
GROUP BY MaHH
) AS N ON HH.MaHH = N.MaHH)
LEFT JOIN (
SELECT MaHH, SUM(SoLuongXuat) AS TongXuat
FROM ChiTietPhieuXuat
WHERE NgayXuat BETWEEN [Forms]![frm_BaoCao]![txtTuNgay] AND [Forms]![frm_BaoCao]![txtDenNgay]
GROUP BY MaHH
) AS X ON HH.MaHH = X.MaHH
ORDER BY NH.TenNhom, HH.TenHH;
Testing và validation
Hệ thống đã trải qua 3 giai đoạn thử nghiệm nghiêm ngặt: Unit Testing, Integration Testing và User Acceptance Testing (UAT) trên hệ thống máy trạm của Công ty Thành Hưng.
| Kịch bản kiểm thử (Test Scenario) |
Dữ liệu đầu vào (Test Data) |
Kết quả kỳ vọng |
Kết quả thực tế |
Trạng thái |
| TC01: Kiểm tra khóa chính trùng lặp |
Nhập MaHH = 'CPU01' đã tồn tại |
Hệ thống từ chối bản ghi, báo lỗi trùng khóa |
Báo lỗi Error 3022 (Duplicate Key), giữ nguyên dữ liệu |
PASS |
| TC02: Ràng buộc xuất âm hàng hóa |
Mặt hàng RAM 4GB tồn 5, yêu cầu xuất 8 |
Chặn hành động xuất kho, hiển thị hộp thoại cảnh báo |
Hiển thị MsgBox cảnh báo, hủy Transaction |
PASS |
| TC03: Toàn vẹn tham chiếu (Cascade Delete) |
Xóa phòng ban khi đang có nhân viên trực thuộc |
Không cho phép xóa do có ràng buộc khóa ngoại |
Hệ thống hiển thị cảnh báo Referential Integrity |
PASS |
| TC04: Tổng hợp báo cáo Nhập-Xuất-Tồn |
Truy vấn dữ liệu từ 01/01/2012 đến 31/12/2012 |
Số liệu tồn cuối kỳ = Tổng nhập - Tổng xuất |
Báo cáo khớp 100% với biên bản kiểm kê kho năm 2012 |
PASS |
Kết quả đạt được
- Tốc độ xử lý: Thời gian lập báo cáo định kỳ rút ngắn từ 4 giờ (trên Excel) xuống còn 2,3 giây (giảm 99,8% thời gian). Thời gian tìm kiếm thông tin hàng hóa đạt dưới 0,15 giây trên tập dữ liệu 10.000 bản ghi.
- Độ chính xác: Triệt tiêu 100% lỗi sai lệch số liệu do ghi đè công thức thủ công; đảm bảo cân bằng chính xác số liệu kế toán và số liệu kiểm kê kho thực tế.
- Mức độ hài lòng người dùng: Khảo sát UAT trên 15 nhân viên thuộc các bộ phận Kho, Kinh doanh, Cung ứng đạt điểm đánh giá trung bình 4,75/5,0 về tính thân thiện của giao diện và tốc độ phản hồi.
Đổi mới và đóng góp
- Chuẩn hóa toàn diện kiến trúc dữ liệu: Khắc phục triệt để nhược điểm dư thừa dữ liệu từ các nghiên cứu trước đây (như đề tài quản lý hàng hóa bằng Access của Nguyễn Kim Phượng tại ĐHKTQD). Cấu trúc 9 bảng dữ liệu được chuẩn hóa đạt chuẩn 3NF, phân tách rõ ràng giữa thông tin chung của phiếu và chi tiết từng dòng hàng hóa.
- Cơ chế Transaction an toàn: Ứng dụng mô hình điều khiển giao dịch (
BeginTrans, CommitTrans, Rollback) của Jet Engine trong VBA, đảm bảo rằng nếu xảy ra sự cố mất điện hoặc lỗi mạng trong lúc ghi dữ liệu phiếu xuất/nhập, CSDL sẽ tự động khôi phục về trạng thái an toàn trước đó, không gây rác dữ liệu.
- Tự động hóa luồng nghiệp vụ liên phòng ban: Tạo ra sự liên kết khép kín giữa yêu cầu hàng mua của Bộ phận Kho $\rightarrow$ phê duyệt của Ban Giám đốc $\rightarrow$ lập đơn của Phòng Cung ứng $\rightarrow$ thủ tục nhập kho của Thủ kho, loại bỏ toàn bộ các bước chuyển giao giấy tờ trung gian không cần thiết.
Ứng dụng thực tế và triển khai
Tình huống ứng dụng thực tế (Use Case Scenarios)
- Tình huống 1: Nhập kho lô thiết bị máy tính từ nhà cung cấp (Dell/Compaq):
Thủ kho mở
frm_QuanLyNhap, nhấn nút "Nhập Mới". Hệ thống tự sinh mã phiếu SPNhap. Thủ kho chọn mã nhà cung cấp, nhân viên phụ trách và thêm chi tiết danh mục linh kiện (CPU, RAM, Mainboard, Ổ cứng) kèm số lượng và đơn giá. Sau khi nhấn "Lưu", CSDL tự động ghi nhận vào bảng PhieuNhap và ChiTietPhieuNhap, đồng thời cập nhật số lượng tồn khả dụng cho toàn hệ thống ngay lập tức.
- Tình huống 2: Xuất linh kiện phục vụ lắp ráp máy tính văn phòng:
Nhân viên kinh doanh gửi yêu cầu xuất linh kiện. Thủ kho mở
frm_QuanLyXuat, chọn mã hàng. Nếu số lượng yêu cầu vượt quá tồn kho thực tế, hệ thống lập tức khóa nút xác nhận và hiển thị cảnh báo số lượng tồn khả dụng hiện tại. Nếu hợp lệ, phiếu xuất được tạo và tự động in trực tiếp ra máy in hóa đơn.
Yêu cầu triển khai và phân tích chi phí - lợi ích (Cost-Benefit Analysis)
- Yêu cầu phần cứng máy trạm: CPU Intel Core 2 Duo trở lên, RAM tối thiểu 1GB (khuyến nghị 2GB), ổ cứng trống 500MB, màn hình độ phân giải 1024x768.
- Yêu cầu phần mềm: Hệ điều hành Windows XP SP3 / Windows 7 / Windows 8 / Windows 10, cài đặt sẵn bộ Microsoft Office (chứa MS Access 2007/2010/2013) hoặc Microsoft Access Runtime (miễn phí).
+---------------------------------------------------------------------------------+
| PHÂN TÍCH HIỆU QUẢ ĐẦU TƯ (ROI TRONG 12 THÁNG ĐẦU TIÊN) |
+------------------------------------+--------------------------------------------+
| HẠNG MỤC CHI PHÍ ĐẦU TƯ BAN ĐẦU | LỢI ÍCH KINH TẾ QUY ĐỔI MỖI NĂM |
| - Bản quyền phần mềm: 0 VNĐ | - Tiết kiệm 45 giờ làm việc/tháng cho |
| (Tận dụng MS Access Runtime) | thủ kho và kế toán: ~35.000.000 VNĐ |
| - Chi phí phần cứng: 0 VNĐ | - Giảm thất thoát, hư hao hàng do quản lý |
| (Tận dụng hạ tầng 30 PC sẵn có) | chính xác hạn tồn: ~50.000.000 VNĐ |
| - Đào tạo nội bộ: 3.000.000 VNĐ | - Tối ưu vòng quay hàng tồn kho: 18.5% |
+------------------------------------+--------------------------------------------+
| TỔNG CHI PHÍ: 3.000.000 VNĐ | TỔNG GIÁ TRỊ THU HỒI: ~85.000.000 VNĐ/năm |
| | THỜI GIAN HOÀN VỐN (ROI): < 1.5 THÁNG |
+---------------------------------------------------------------------------------+
Hạn chế và hướng phát triển
Hạn chế kỹ thuật
- Dung lượng CSDL cục bộ: Định dạng
.accdb của Microsoft Access bị giới hạn kích thước tối đa là 2GB. Dù phù hợp với quy mô hiện tại của Thành Hưng (dữ liệu 3 năm chiếm khoảng 120MB), hệ thống sẽ gặp giới hạn nếu mở rộng chuỗi chi nhánh trong 5-7 năm tới.
- Môi trường đa người dùng đồng thời (Concurrency): Khi có trên 15-20 người dùng cùng ghi dữ liệu một lúc qua chia sẻ file mạng LAN, hiệu năng của Jet Engine có thể bị suy giảm và xuất hiện tình trạng xung đột khóa file.
Hướng phát triển trong tương lai
- Nâng cấp Backend lên Microsoft SQL Server: Chuyển đổi toàn bộ bảng dữ liệu sang SQL Server 2016/2019 thông qua liên kết ODBC (Access Front-End, SQL Server Back-End), tăng tính toàn vẹn, bảo mật cấp độ doanh nghiệp và hỗ trợ CSDL không giới hạn.
- Tích hợp công nghệ nhận dạng mã vạch (Barcode / QR Code): Trang bị đầu đọc mã vạch quét trực tiếp số Serial Number (SN) của từng linh kiện điện tử vào Form nhập/xuất, loại bỏ hoàn toàn thao tác gõ mã thủ công.
- Phát triển phiên bản Web/Mobile: Mở rộng giao diện quản lý trên nền tảng Web Application (sử dụng ASP.NET Core hoặc Node.js kết hợp React/Vue.js), cho phép Ban Giám đốc tra cứu số liệu tồn kho trực tiếp từ thiết bị di động.
Đối tượng hưởng lợi
- Sinh viên ngành Hệ thống thông tin quản lý (MIS) và CNTT: Tài liệu tham khảo chuẩn mực về phương pháp phân tích thiết kế hướng chức năng, cách xây dựng sơ đồ BFD, DFD các mức, mô hình ERD và kỹ thuật lập trình VBA trên cơ sở dữ liệu quan hệ.
- Lập trình viên & Kỹ sư triển khai hệ thống: Cung cấp mẫu thiết kế cơ sở dữ liệu 3NF thực tế cho bài toán quản lý kho hàng linh kiện, các mẫu truy vấn SQL tối ưu và kỹ thuật xử lý Transaction kiểm soát xuất âm hàng hóa.
- Doanh nghiệp phân phối và bán lẻ: Mô hình giải pháp chi phí thấp (Low-cost) nhưng hiệu quả vượt trội, giúp số hóa nhanh chóng quy trình kho bãi mà không cần đầu tư các hệ thống ERP hàng trăm triệu đồng.
- Cán bộ quản lý kho và kinh doanh: Công cụ làm việc trực quan, giúp giảm 90% thời gian ghi chép giấy tờ, loại bỏ sai sót và cung cấp báo cáo tồn kho tức thời phục vụ ra quyết định kinh doanh.
Câu hỏi thường gặp
1. Yêu cầu kỹ thuật tối thiểu để cài đặt và vận hành hệ thống là gì?
Hệ thống yêu cầu máy tính chạy hệ điều hành Windows 7 trở lên, CPU tối thiểu 1.5 GHz, dung lượng RAM 1GB (khuyến nghị 2GB) và có cài đặt bộ Microsoft Office Access (bản 2007, 2010, 2013 hoặc mới hơn) hoặc sử dụng gói miễn phí Microsoft Access Runtime do Microsoft cung cấp.
2. Giới hạn lưu trữ của hệ thống là bao nhiêu và giải quyết quá tải thế nào?
CSDL Microsoft Access .accdb giới hạn kích thước ở mức 2GB (tương đương khoảng 1,5 - 2 triệu dòng giao dịch chi tiết). Đối với doanh nghiệp quy mô vừa như Thành Hưng, dung lượng này đảm bảo vận hành ổn định từ 5-7 năm. Khi vượt ngưỡng, giải pháp tối ưu là chuyển CSDL (Back-End) lên Microsoft SQL Server Express mà vẫn giữ nguyên toàn bộ giao diện Forms và Báo cáo (Front-End) hiện có.
3. Hệ thống có khả năng tích hợp với các phần mềm kế toán khác không?
Hệ thống hỗ trợ xuất (Export) dữ liệu báo cáo và danh mục sang các định dạng tiêu chuẩn như Microsoft Excel (.xlsx), CSV, XML và PDF. Nhờ đó, nhân viên kế toán có thể dễ dàng đồng bộ số liệu Nhập - Xuất - Tồn vào các phần mềm kế toán chuyên dụng như MISA, FAST hay Bravo.
4. Chi phí bảo trì và vận hành hệ thống hàng năm ước tính là bao nhiêu?
Do hệ thống vận hành trên hạ tầng phần cứng có sẵn và sử dụng nền tảng Access, chi phí bản quyền hàng năm là 0 VNĐ. Doanh nghiệp chỉ cần duy trì quy trình sao lưu tệp CSDL định kỳ và bố trí một nhân sự IT nội bộ phụ trách quản trị tài khoản người dùng và bảo dưỡng máy trạm.
5. Khả năng bảo mật của hệ thống trước rủi ro rò rỉ dữ liệu như thế nào?
Hệ thống được thiết kế với 3 lớp bảo vệ: (1) Kiểm soát xác thực người dùng thông qua bảng phân quyền và mật khẩu mã hóa tại Form đăng nhập; (2) Cơ chế khóa thiết kế (ẩn Navigation Pane, chuyển file sang định dạng thực thi .accde để chống xem và sửa mã nguồn VBA); (3) Cơ chế phân quyền cấp thư mục mạng chỉ cho phép các máy trạm được chỉ định quyền đọc/ghi tệp dữ liệu.
Kết luận
Đề tài khóa luận "Phân tích, thiết kế hệ thống thông tin quản lý hàng hóa tại Công ty CP máy tính Thành Hưng" đã giải quyết thành công và toàn diện bài toán tin học hóa nghiệp vụ quản lý kho trong một doanh nghiệp phân phối thiết bị CNTT đang trên đà tăng trưởng mạnh. Bằng việc áp dụng phương pháp luận phân tích thiết kế hướng chức năng (SADT), chuẩn hóa cơ sở dữ liệu 3NF và phát triển các module điều khiển mạnh mẽ trên nền tảng Microsoft Access kết hợp VBA, hệ thống đã chứng minh tính khả thi cao, loại bỏ hoàn toàn các nhược điểm của phương thức quản lý thủ công qua Excel.
Giải pháp không chỉ mang lại giá trị học thuật xuất sắc cho sinh viên khối ngành Hệ thống thông tin quản lý mà còn đem lại giá trị kinh tế trực tiếp cho doanh nghiệp: rút ngắn thời gian xử lý thủ tục kho trên 90%, bảo toàn tính toàn vẹn của dữ liệu và hỗ trợ đắc lực cho Ban Giám đốc trong việc hoạch định kế hoạch kinh doanh. Đây là bước đệm vững chắc để doanh nghiệp tiến tới chuẩn hóa và tích hợp các hệ thống quản trị nguồn lực doanh nghiệp (ERP) toàn diện trong tương lai.