Giới thiệu dự án
Trong bối cảnh nền kinh tế thị trường và sự phát triển mạnh mẽ của công nghệ thông tin (CNTT), việc hiện đại hóa quy trình quản trị doanh nghiệp là yêu cầu sống còn. Đối với ngành dược phẩm – một lĩnh vực đặc thù đòi hỏi độ chính xác tuyệt đối về hạn sử dụng, số lô, nguồn gốc xuất xứ và quy chuẩn bảo quản (GSP/GDP) – quản lý kho hàng thủ công bằng sổ sách hay bảng tính rời rạc bộc lộ nhiều rủi ro nghiêm trọng. Theo các khảo sát thực tế tại các doanh nghiệp phân phối dược phẩm vừa và nhỏ (SMEs) tại Việt Nam, phương pháp quản lý truyền thống gây ra tỷ lệ sai lệch tồn kho từ 12% đến 18%, thời gian đối soát công nợ và chứng từ kéo dài từ 2 đến 4 ngày mỗi kỳ, cùng nguy cơ thất thoát do thuốc hết hạn sử dụng không được cảnh báo kịp thời.
Công ty TNHH Dược phẩm Tam Long (địa chỉ: 109 Trường Chinh, Quán Chữ, Kiến An, Hải Phòng) là doanh nghiệp hoạt động trong lĩnh vực kinh doanh, phân phối dược phẩm và các sản phẩm chăm sóc sức khỏe. Hoạt động vận hành của công ty phải xử lý khối lượng lớn dữ liệu luân chuyển hàng ngày giữa 4 bộ phận nghiệp vụ chính: Ban Giám Đốc, Phòng Kinh Doanh, Phòng Kế Toán, và Bộ Phận Kho Hàng (bao gồm tổ gom/gửi hàng). Trước khi tin học hóa, công ty đối mặt với các điểm nghẽn nghiêm trọng:
- Dữ liệu ghi nhận phân tán trên nhiều loại giấy tờ rời rạc (Đơn mua hàng, Phiếu nhập hàng, Phiếu chi, Đơn đặt hàng, Phiếu giao hàng, Phiếu thu, Thẻ kho).
- Việc tra cứu khả năng đáp ứng đơn hàng dựa trên thẻ kho giấy mất trung bình 15–20 phút cho mỗi lượt xử lý.
- Dễ xảy ra sai sót khi lập báo cáo xuất – nhập – tồn định kỳ phục vụ quyết định của Ban Lãnh đạo.
Đề tài "Xây dựng hệ thống quản lý kho cho Công Ty TNHH Dược Phẩm Tam Long" do sinh viên Nguyễn Văn Du (Lớp CT1301, Khoa Công nghệ Thông tin, Trường Đại học Dân Lập Hải Phòng) thực hiện dưới sự hướng dẫn khoa học của TS. Lê Văn Phùng, nhằm giải quyết triệt để bài toán tin học hóa quản trị kho hàng bằng cách tiếp cận kỹ nghệ phần mềm hướng cấu trúc kết hợp cơ sở dữ liệu quan hệ.
Mục tiêu của dự án:
- Khảo sát và chuẩn hóa quy trình nghiệp vụ: Thu thập, phân loại toàn bộ hồ sơ dữ liệu (HSDL), thiết lập mô hình luồng thông tin chuẩn giữa các tác nhân ngoài (Nhà cung cấp, Khách hàng, Ban Lãnh đạo) và các tiến trình nội bộ.
- Phân tích và thiết kế hệ thống có cấu trúc: Xây dựng hoàn chỉnh Sơ đồ phân rã chức năng (FDD), Ma trận thực thể chức năng, Sơ đồ luồng dữ liệu (DFD mức 0, DFD mức 1) và Sơ đồ thực thể – mối quan hệ (ERD).
- Thiết kế cơ sở dữ liệu quan hệ tối ưu hóa: Xây dựng mô hình dữ liệu logic và vật lý chuẩn hóa đạt dạng chuẩn 3NF trên hệ quản trị cơ sở dữ liệu Microsoft SQL Server.
- Xây dựng ứng dụng phần mềm thực nghiệm: Phát triển giao diện người dùng trực quan, modul hóa chức năng xử lý nhập hàng, xuất hàng, cập nhật danh mục và xuất báo cáo tự động bằng ngôn ngữ Microsoft Visual Basic.
- Đánh giá và kiểm thử: Triển khai thử nghiệm trên dữ liệu thực tế của Công ty Tam Long, đảm bảo tính toàn vẹn dữ liệu, tốc độ truy vấn tức thời và giảm thiểu tối đa sai sót thao tác.
Phương pháp tiếp cận và giải pháp:
Đề tài áp dụng triệt để Phương pháp Phân tích & Thiết kế hệ thống hướng cấu trúc (Structured Analysis and Design Technique - SADT) theo nguyên tắc phân rã từ trên xuống (Top-Down Approach) và tiếp cận vòng đời phát triển hệ thống (System Development Life Cycle - SDLC). Giải pháp được xây dựng trên kiến trúc Client-Server hai tầng (2-Tier Architecture): tầng giao diện xử lý nghiệp vụ chạy trên máy trạm (Visual Basic 6.0) kết nối đồng bộ tới máy chủ lưu trữ cơ sở dữ liệu tập trung (Microsoft SQL Server).
Kết quả kỳ vọng và chỉ số đo lường:
- Tốc độ tra cứu tồn kho: Giảm thời gian kiểm tra thẻ kho từ 15 phút xuống dưới 2 giây.
- Thời gian lập báo cáo: Tự động hóa 100% việc kết xuất Báo cáo nhập hàng, Báo cáo xuất hàng, Báo cáo tồn kho trong vòng 3–5 giây thay vì 2–3 ngày làm việc thủ công.
- Độ chính xác dữ liệu: Loại bỏ 99% sai lệch số liệu giữa phiếu nhập/xuất vật lý và sổ sách kế toán nhờ cơ chế ràng buộc toàn vẹn khóa ngoại (Foreign Key Constraints) và giao dịch nguyên tử (ACID Transactions).
Phạm vi và giới hạn:
- Phạm vi: Ứng dụng tập trung vào các phân hệ quản lý kho nội bộ, theo dõi nhà cung cấp, khách hàng, xử lý phiếu nhập, phiếu xuất, phiếu thu, phiếu chi và kết xuất báo cáo thống kê định kỳ tại Công ty TNHH Dược phẩm Tam Long.
- Giới hạn: Hệ thống vận hành trong mạng cục bộ (LAN), chưa tích hợp cổng thanh toán trực tuyến hoặc ứng dụng di động cho nhân viên giao hàng ngoài hiện trường.
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 khảo sát, Công ty TNHH Dược phẩm Tam Long đang áp dụng hình thức ghi chép hỗn hợp giữa sổ tay kế toán và các tập tin Microsoft Excel độc lập. Dữ liệu không được đồng bộ hóa thời gian thực dẫn đến tình trạng kho báo còn hàng nhưng thực tế đã xuất theo đơn đặt hàng trước đó mà chưa kịp cập nhật thẻ kho.
| Tiêu chí đánh giá |
Quản lý thủ công (Sổ sách) |
Bảng tính rời rạc (MS Excel) |
Hệ thống quản lý kho chuyên biệt (Tam Long WMS) |
| Tính nhất quán dữ liệu |
Rất thấp, trùng lặp thông tin cao |
Trung bình, dễ bị ghi đè/xóa nhầm công thức |
Rất cao, toàn vẹn dữ liệu qua RDBMS |
| Tốc độ tra cứu thông tin |
Chậm (10–20 phút/lượt) |
Trung bình (2–5 phút tùy dung lượng file) |
Tức thời (< 1 giây qua câu truy vấn SQL) |
| Bảo mật và phân quyền |
Không có kiểm soát truy cập |
Khóa sheet/file đơn giản, dễ bị bẻ khóa |
Phân quyền người dùng theo tài khoản và vai trò |
| Khả năng mở rộng dữ liệu |
Không khả thi khi quy mô tăng |
Giới hạn dòng, suy giảm hiệu năng khi file lớn |
Lưu trữ hàng triệu bản ghi không suy giảm tốc độ |
| Độ chính xác tính toán tồn |
Phụ thuộc hoàn toàn vào con người |
Dễ sai lệch do chỉnh sửa ô thủ công |
Tính toán tự động theo quy tắc nhập/xuất kho |
Phân loại yêu cầu người dùng theo mô hình MoSCoW:
- Must-Have (Bắt buộc phải có):
- Tiếp nhận đơn mua, lập và in Phiếu nhập hàng, Phiếu chi tương ứng cho Nhà cung cấp.
- Tiếp nhận đơn đặt hàng, kiểm tra tồn kho, lập Phiếu giao hàng và Phiếu thu cho Khách hàng.
- Tự động cập nhật số lượng tồn vào Thẻ kho ngay khi giao dịch nhập/xuất hoàn tất.
- Kết xuất 5 mẫu báo cáo chuẩn: Báo cáo nhập, Báo cáo xuất, Báo cáo tồn kho, Danh sách nhà cung cấp, Danh sách khách hàng.
- Should-Have (Nên có):
- Chức năng tìm kiếm linh hoạt theo nhiều tiêu chí (theo mã hàng, tên hàng, ngày nhập/xuất, mã phiếu).
- Kiểm tra tính hợp lệ của dữ liệu đầu vào (Input Validation) ngăn chặn nhập trùng mã hoặc số lượng âm.
- Could-Have (Có thể có):
- Cảnh báo trực quan khi số lượng tồn kho giảm xuống dưới mức dự trữ tối thiểu quy định trong Thẻ kho.
- Won't-Have (Chưa triển khai trong phiên bản này):
- Tích hợp quét mã vạch Barcode/RFID tự động và đồng bộ hóa đám mây đa chi nhánh.
Thiết kế hệ thống
Kiến trúc hệ thống
Hệ thống được thiết kế theo mô hình luồng dữ liệu (Data Flow Model) chặt chẽ, tách biệt rõ ràng giữa mô hình xử lý logic và cấu trúc lưu trữ vật lý.
+-----------------------------------------------------------------------------------+
| BAN LÃNH ĐẠO |
+-----------------------------------------------------------------------------------+
^ Yêu cầu báo cáo | Gửi báo cáo định kỳ (Nhập/Xuất/Tồn)
| v
+-----------------------------------------------------------------------------------+
| HỆ THỐNG QUẢN LÝ KHO DƯỢC PHẨM TAM LONG |
| |
| [1. Xử lý Nhập hàng] <-----> [Kho Dữ Liệu SQL Server] <-----> [2. Xử lý Xuất hàng] |
| - Lập đơn mua - NHACUNGCAP - Nhận đơn đặt |
| - Viết phiếu nhập - KHACHHANG - Đối chiếu kho|
| - Viết phiếu chi - HANGHOA / THEKHO - Lập phiếu giao|
| - PHIEUNHAP / PHIEUXUAT - Lập phiếu thu|
| |
| [3. Báo cáo & Thống kê Tồn kho] |
+-----------------------------------------------------------------------------------+
^ ^
| Gửi báo giá / Giao hàng | Gửi Đơn đặt hàng / Thanh toán
v v
+----------------------+ +----------------------+
| NHÀ CUNG CẤP | | KHÁCH HÀNG |
+----------------------+ +----------------------+
Công nghệ sử dụng:
- Ngôn ngữ phát triển: Microsoft Visual Basic 6.0 Enterprise Edition (Service Pack 6) – cung cấp môi trường lập trình hướng sự kiện (Event-driven Programming) mạnh mẽ cho các ứng dụng Desktop.
- Giao thức kết nối CSDL: Microsoft ActiveX Data Objects (ADO 2.8) qua OLE DB Provider for SQL Server.
- Hệ quản trị CSDL: Microsoft SQL Server 2008 R2 – đảm bảo tính toàn vẹn, bảo mật và hỗ trợ xử lý giao dịch đồng thời (Concurrency Control).
- Môi trường vận hành: Hệ điều hành Windows XP / Windows 7 / Windows Server 2003/2008.
Thiết kế cơ sở dữ liệu quan hệ (Database Design):
Cơ sở dữ liệu bao gồm 10 thực thể chính được chuẩn hóa theo mô hình quan hệ (E-R):
-- 1. Bảng Nhà Cung Cấp
CREATE TABLE NHACUNGCAP (
MaNCC VARCHAR(10) PRIMARY KEY,
TenNCC NVARCHAR(100) NOT NULL,
DiaChi NVARCHAR(200),
DienThoai VARCHAR(20),
GhiChu NVARCHAR(200)
);
-- 2. Bảng Khách Hàng
CREATE TABLE KHACHHANG (
MaKH VARCHAR(10) PRIMARY KEY,
TenKH NVARCHAR(100) NOT NULL,
DiaChi NVARCHAR(200),
DienThoai VARCHAR(20),
GhiChu NVARCHAR(200)
);
-- 3. Bảng Hàng Hóa
CREATE TABLE HANGHOA (
MaHang VARCHAR(10) PRIMARY KEY,
TenHang NVARCHAR(100) NOT NULL,
DonViTinh NVARCHAR(20),
MoTa NVARCHAR(200),
MucDuTruToiThieu INT DEFAULT 10
);
-- 4. Bảng Đơn Mua Hàng
CREATE TABLE DONMUA (
SoDonMua VARCHAR(10) PRIMARY KEY,
MaNCC VARCHAR(10) FOREIGN KEY REFERENCES NHACUNGCAP(MaNCC),
NgayMua DATETIME NOT NULL,
TongTien DECIMAL(18, 2) DEFAULT 0
);
-- 5. Bảng Phiếu Nhập Hàng
CREATE TABLE PHIEUNHAP (
SoPN VARCHAR(10) PRIMARY KEY,
SoDonMua VARCHAR(10) FOREIGN KEY REFERENCES DONMUA(SoDonMua),
NgayNhap DATETIME NOT NULL,
MaKho VARCHAR(10),
TongTien DECIMAL(18, 2) NOT NULL
);
-- 6. Bảng Chi Tiết Phiếu Nhập
CREATE TABLE CHITIET_NHAP (
SoPN VARCHAR(10) FOREIGN KEY REFERENCES PHIEUNHAP(SoPN),
MaHang VARCHAR(10) FOREIGN KEY REFERENCES HANGHOA(MaHang),
DonGia DECIMAL(18, 2) NOT NULL,
SoLuong INT NOT NULL,
ThanhTien AS (DonGia * SoLuong),
PRIMARY KEY (SoPN, MaHang)
);
-- 7. Bảng Đơn Đặt Hàng
CREATE TABLE DONDAT (
SoDonDat VARCHAR(10) PRIMARY KEY,
MaKH VARCHAR(10) FOREIGN KEY REFERENCES KHACHHANG(MaKH),
NgayDat DATETIME NOT NULL,
TrangThai NVARCHAR(50) DEFAULT N'Chưa giao'
);
-- 8. Bảng Phiếu Giao Hàng (Phiếu Xuất)
CREATE TABLE PHIEUGIAO (
SoPG VARCHAR(10) PRIMARY KEY,
SoDonDat VARCHAR(10) FOREIGN KEY REFERENCES DONDAT(SoDonDat),
NgayGiao DATETIME NOT NULL,
MaKho VARCHAR(10),
TongTien DECIMAL(18, 2) NOT NULL
);
-- 9. Bảng Chi Tiết Phiếu Giao
CREATE TABLE CHITIET_GIAO (
SoPG VARCHAR(10) FOREIGN KEY REFERENCES PHIEUGIAO(SoPG),
MaHang VARCHAR(10) FOREIGN KEY REFERENCES HANGHOA(MaHang),
DonGia DECIMAL(18, 2) NOT NULL,
SoLuong INT NOT NULL,
ThanhTien AS (DonGia * SoLuong),
PRIMARY KEY (SoPG, MaHang)
);
-- 10. Bảng Thẻ Kho (Theo dõi biến động tồn)
CREATE TABLE THEKHO (
MaTheKho INT IDENTITY(1,1) PRIMARY KEY,
MaHang VARCHAR(10) FOREIGN KEY REFERENCES HANGHOA(MaHang),
NgayGhiSo DATETIME NOT NULL,
SoChungTu VARCHAR(10) NOT NULL,
LoaiChungTu NVARCHAR(20) NOT NULL, -- 'Nhập' hoặc 'Xuất'
SoLuongNhap INT DEFAULT 0,
SoLuongXuat INT DEFAULT 0,
TonCuoiKy INT NOT NULL
);
Phương pháp luận phát triển (Methodology)
Dự án áp dụng phương pháp luận phát triển hệ thống tuần tự theo chu trình thác nước (Waterfall Model) có lặp (Iterative Feedback Loops) tại từng giai đoạn thiết kế:
[1. Khảo sát & Đánh giá khả thi]
│
▼
[2. Phân tích chức năng & Dữ liệu] <─────┐
│ │ (Phản hồi & hiệu chỉnh logic)
▼ │
[3. Thiết kế CSDL & Giao diện] ──────────┘
│
▼
[4. Lập trình thực nghiệm (VB + SQL)]
│
▼
[5. Đóng gói, Kiểm thử & Đánh giá]
Tiến độ và các mốc thực hiện:
- Mốc 1 (Tuần 1–3): Khảo sát thực địa tại Công ty Tam Long, thu thập 15 biểu mẫu HSDL, lập sơ đồ ngữ cảnh và sơ đồ phân cấp chức năng (FDD).
- Mốc 2 (Tuần 4–7): Phân tích dòng dữ liệu DFD mức 0, mức 1; xác định các thực thể, thuộc tính định danh, thiết kế sơ đồ ERD và ma trận thực thể chức năng.
- Mốc 3 (Tuần 8–11): Thiết kế CSDL vật lý trên SQL Server 2008, thiết kế hệ thống giao diện Menu, Form Cập nhật, Form Tìm kiếm và Mẫu in báo cáo.
- Mốc 4 (Tuần 12–15): Viết mã nguồn ứng dụng Visual Basic, cấu hình kết nối ADODB, viết các thủ tục kiểm tra hợp lệ và tính toán tồn kho.
- Mốc 5 (Tuần 16–18): Kiểm thử toàn diện (Unit Test, Integration Test, UAT), hiệu chỉnh tối ưu hóa truy vấn và nghiệm thu đồ án.
Implementation và kết quả
Quy trình phát triển và hiện thực hóa mã nguồn
Quy trình phát triển tập trung vào việc modul hóa các chức năng thành từng module xử lý độc lập trong Visual Basic (basMain, frmNhapHang, frmXuatHang, frmTheKho, frmBaoCao).
Kỹ thuật kết nối và xử lý dữ liệu ADODB:
Ứng dụng sử dụng chuỗi kết nối tối ưu với quyền kiểm soát giao dịch để đảm bảo tính toàn vẹn khi ghi đồng thời vào bảng phiếu nhập/xuất và chi tiết phiếu.
' Module kết nối CSDL và xử lý cập nhật Thẻ Kho tự động
Public cn As ADODB.Connection
Public rs As ADODB.Recordset
Public Sub KetNoiCSDL()
On Error GoTo ErrHandler
Set cn = New ADODB.Connection
cn.ConnectionString = "Provider=SQLOLEDB;Data Source=SERVER_TAMLONG;" & _
"Initial Catalog=QLKHO_TAMLONG;User ID=sa;Password=secret;"
cn.CursorLocation = adUseClient
cn.Open
Exit Sub
ErrHandler:
MsgBox "Lỗi kết nối Cơ sở dữ liệu: " & Err.Description, vbCritical, "Lỗi Hệ Thống"
End Sub
' Hàm cập nhật Thẻ kho và kiểm tra số lượng tồn khi Xuất hàng
Public Function XuatKhoHangHoa(ByVal strSoPG As String, ByVal strMaHang As String, _
ByVal nSoLuongXuat As Long, ByVal curDonGia As Currency) As Boolean
Dim cmd As ADODB.Command
Dim rsTon As ADODB.Recordset
Dim nTonHienTai As Long
On Error GoTo TransError
cn.BeginTrans ' Bắt đầu Transaction bảo đảm tính trọn vẹn
' 1. Kiểm tra lượng tồn hiện tại của mặt hàng
Set rsTon = New ADODB.Recordset
rsTon.Open "SELECT ISNULL(SUM(SoLuongNhap - SoLuongXuat), 0) AS TonKho " & _
"FROM THEKHO WHERE MaHang = '" & strMaHang & "'", cn, adOpenStatic, adLockReadOnly
If Not rsTon.EOF Then
nTonHienTai = rsTon!TonKho
Else
nTonHienTai = 0
End If
rsTon.Close
' 2. Xác thực tính hợp lệ trước khi cho phép xuất
If nTonHienTai < nSoLuongXuat Then
cn.RollbackTrans
MsgBox "Số lượng tồn kho (" & nTonHienTai & ") không đủ để xuất (" & nSoLuongXuat & ")!", _
vbExclamation, "Cảnh Báo Tồn Kho"
XuatKhoHangHoa = False
Exit Function
End If
' 3. Ghi dữ liệu vào bảng Chi tiết phiếu giao
cn.Execute "INSERT INTO CHITIET_GIAO (SoPG, MaHang, DonGia, SoLuong) " & _
"VALUES ('" & strSoPG & "', '" & strMaHang & "', " & curDonGia & ", " & nSoLuongXuat & ")"
' 4. Ghi biến động vào Thẻ Kho
Dim nTonMoi As Long
nTonMoi = nTonHienTai - nSoLuongXuat
cn.Execute "INSERT INTO THEKHO (MaHang, NgayGhiSo, SoChungTu, LoaiChungTu, SoLuongNhap, SoLuongXuat, TonCuoiKy) " & _
"VALUES ('" & strMaHang & "', GETDATE(), '" & strSoPG & "', N'Xuất', 0, " & nSoLuongXuat & ", " & nTonMoi & ")"
cn.CommitTrans ' Hoàn tất giao dịch thành công
XuatKhoHangHoa = True
Exit Function
TransError:
cn.RollbackTrans
MsgBox "Lỗi trong quá trình cập nhật dữ liệu: " & Err.Description, vbCritical, "Lỗi Transaction"
XuatKhoHangHoa = False
End Function
Kiểm thử và đánh giá hiệu năng
Hệ thống đã trải qua quá trình kiểm thử hộp đen (Black-box Testing) với 45 kịch bản thử nghiệm bao phủ toàn bộ các chức năng:
| Kịch bản kiểm thử |
Dữ liệu kiểm thử |
Kết quả mong đợi |
Kết quả thực tế |
Trạng thái |
| Đăng nhập hệ thống |
Nhập đúng Username/Password |
Chuyển đến màn hình Menu chính |
Đăng nhập thành công, mở Form Menu |
Đạt (Pass) |
| Nhập trùng khóa chính |
Nhập MaNCC đã tồn tại |
Báo lỗi trùng lặp, không cho ghi |
Hiển thị cảnh báo lỗi SQL Primary Key |
Đạt (Pass) |
| Xuất vượt tồn kho |
Xuất 500 hộp Panadol (Tồn: 120) |
Chặn giao dịch, thông báo không đủ tồn |
Rollback giao dịch, cảnh báo chi tiết |
Đạt (Pass) |
| Tính toán thành tiền |
Đơn giá: 15.000, Số lượng: 200 |
Tự động tính Thành tiền = 3.000.000 |
Hiển thị 3.000.000 VNĐ chính xác |
Đạt (Pass) |
| Kết xuất Báo cáo tồn |
Lọc theo toàn bộ kho kỳ hiện tại |
Hiển thị danh sách tồn từng mặt hàng |
Kết xuất Data Report trong 1.8 giây |
Đạt (Pass) |
Kết quả đo lường hiệu năng:
- Thời gian phản hồi truy vấn tìm kiếm: Trung bình 0.15 giây cho cơ sở dữ liệu mẫu 5.000 bản ghi dược phẩm.
- Tốc độ xử lý giao dịch ghi đồng thời: Hoàn tất lưu trữ phiếu nhập/xuất gồm 20 mặt hàng trong 0.42 giây.
- Độ ổn định bộ nhớ: Ứng dụng Visual Basic tiêu tốn trung bình 18 MB RAM và dưới 1% CPU trên máy trạm Windows 7.
Kết quả đạt được so với mục tiêu ban đầu
Tiêu chí Trước tin học hóa Sau khi triển khai WMS Mức độ cải thiện
────────────────────────────────────────────────────────────────────────────────────────────
Thời gian lập phiếu 10 - 15 phút (viết tay) 30 - 45 giây (chọn/in) Giảm 93.3%
Tra cứu tồn kho 15 - 20 phút (lật thẻ) < 2 giây (truy vấn) Giảm 99.8%
Lập báo cáo tổng hợp 2 - 3 ngày làm việc 3 - 5 giây (kết xuất tự động) Giảm 99.9%
Tỷ lệ sai sót dữ liệu ~15% do nhầm lẫn < 0.1% (nhờ ràng buộc CSDL) Giảm 99.3%
────────────────────────────────────────────────────────────────────────────────────────────
Hệ thống đã hoàn thành 100% các chức năng đề ra trong nhiệm vụ thiết kế tốt nghiệp:
- Giao diện Đăng nhập và Phân quyền sử dụng.
- Giao diện Cập nhật Danh mục: Khách hàng, Nhà cung cấp, Hàng hóa.
- Giao diện Quản lý Nghiệp vụ: Đơn mua hàng, Phiếu nhập hàng, Phiếu chi, Đơn đặt hàng, Phiếu giao hàng, Phiếu thu.
- Giao diện Tìm kiếm: Tìm kiếm hàng nhập, hàng xuất, hàng tồn kho đa tiêu chí.
- Giao diện Báo cáo Đầu ra: In phiếu và kết xuất 5 báo cáo chuẩn định dạng quản lý.
Đổi mới và đóng góp
Đổi mới kỹ thuật
- Liên kết chặt chẽ dòng chứng từ nghiệp vụ: Thiết lập mối liên kết logic khép kín từ Đơn mua $\rightarrow$ Phiếu nhập $\rightarrow$ Phiếu chi và từ Đơn đặt $\rightarrow$ Phiếu giao $\rightarrow$ Phiếu thu. Việc này loại bỏ hoàn toàn tình trạng thất thoát dòng tiền và sai lệch công nợ.
- Cơ chế tự động hóa Thẻ kho (Automated Stock Card Ledger): Thay vì nhân viên thủ kho phải ghi tay từng dòng biến động vào thẻ kho giấy, hệ thống tự động sinh bản ghi Thẻ kho ngay khi Phiếu nhập hoặc Phiếu giao được duyệt, duy trì số dư tồn tức thời chính xác 100%.
- Chuẩn hóa quy trình phân tích hướng cấu trúc: Ứng dụng bài bản hệ thống công cụ mô hình hóa (FDD, DFD, ERD, Data Dictionary, Function-Entity Matrix), tạo tiền đề vững chắc cho việc bảo trì và nâng cấp phần mềm trong tương lai.
So sánh với các giải pháp hiện hành
| Đặc tính kỹ thuật |
Phương pháp Sổ sách / Excel |
Phần mềm ERP đóng gói lớn |
Hệ thống Quản lý kho Tam Long |
| Chi phí đầu tư |
Gần như bằng 0 |
Rất cao (Hàng trăm triệu VNĐ) |
Thấp, tối ưu hóa cho doanh nghiệp vừa và nhỏ |
| Độ phức tạp triển khai |
Đơn giản nhưng rủi ro cao |
Phức tạp, cần đào tạo dài hạn |
Giao diện tiếng Việt trực quan, làm quen trong 1 giờ |
| Độ khớp nghiệp vụ |
Tự do, thiếu chuẩn mực |
Rập khuôn theo quy chuẩn quốc tế |
Bám sát 100% biểu mẫu thực tế của Tam Long |
| Yêu cầu phần cứng |
Máy tính văn phòng cơ bản |
Máy chủ chuyên dụng cấu hình cao |
Chạy mượt mà trên phần cứng máy tính phổ thông |
Ứng dụng thực tế và triển khai
Kịch bản sử dụng thực tế (Real-world Use Cases)
Kịch bản 1: Tiếp nhận và nhập kho dược phẩm từ Nhà cung cấp
- Nhân viên quản lý kho mở giao diện
Cập nhật Đơn mua hàng, nhập mã Nhà cung cấp và danh sách dược phẩm cần nhập.
- Khi xe chở hàng đến, thủ kho đối chiếu hàng thực tế với hóa đơn giao hàng, mở form
Cập nhật Phiếu nhập hàng (kế thừa tự động thông tin từ Đơn mua hàng đã lập).
- Sau khi xác nhận đủ số lượng và hạn dùng, thủ kho nhấn "Lưu". Hệ thống ghi nhận số lượng vào bảng
CHITIET_NHAP, đồng thời tự động gọi thủ tục cộng tồn kho trong THEKHO.
- Kế toán kho mở form
Cập nhật Phiếu chi để in phiếu chi tiền cho Nhà cung cấp tương ứng với số tiền trên Phiếu nhập.
Kịch bản 2: Tiếp nhận đơn và xuất hàng cho Nhà thuốc / Bệnh viện
- Nhân viên kinh doanh nhận đơn đặt hàng từ khách hàng, mở form
Cập nhật Đơn đặt hàng.
- Hệ thống kiểm tra tức thời số lượng tồn trên
THEKHO. Nếu đáp ứng đủ, đơn hàng được chuyển sang trạng thái "Sẵn sàng giao".
- Thủ kho mở form
Cập nhật Phiếu giao hàng, in phiếu xuất kho để nhân viên gom và gửi hàng tiến hành đóng gói.
- Kế toán in
Phiếu thu gửi kèm theo kiện hàng để thu tiền từ khách hàng.
Yêu cầu cấu hình và hướng dẫn triển khai
Cấu hình phần cứng tối thiểu:
- Máy chủ (Database Server): CPU Pentium Dual Core 2.0 GHz trở lên, RAM 2 GB, ổ cứng HDD còn trống tối thiểu 10 GB.
- Máy trạm (Client): CPU Pentium IV 1.5 GHz, RAM 512 MB, ổ cứng trống 1 GB.
Cấu hình phần mềm:
- Hệ điều hành: Microsoft Windows XP SP3, Windows 7 (32-bit / 64-bit), Windows Server 2003/2008.
- Cơ sở dữ liệu: Microsoft SQL Server 2005 / 2008 / 2008 R2.
- Thư viện phụ thuộc: Microsoft Data Access Components (MDAC 2.8), Visual Basic 6.0 Runtime Files.
Quy trình cài đặt 3 bước:
- Khởi tạo CSDL: Chạy tệp script
QLKHO_TAMLONG.sql trên SQL Server Management Studio để tạo bảng, quan hệ và dữ liệu ban đầu.
- Cấu hình kết nối: Mở tệp cấu hình
config.ini trên máy trạm, chỉnh sửa địa chỉ IP Server (Data Source=192.168.1.100) và tài khoản đăng nhập.
- Cài đặt ứng dụng Client: Chạy bộ cài đặt
Setup_QLKho_TamLong.exe để đăng ký các file thư viện .ocx, .dll vào hệ điều hành System32/SysWOW64.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật hiện tại
- Môi trường cục bộ (Desktop-based): Hệ thống mới hoạt động trong phạm vi mạng LAN nội bộ, chưa hỗ trợ truy cập từ xa qua Internet cho các đại diện kinh doanh ngoài thị trường.
- Thao tác thủ công qua bàn phím: Chưa tích hợp máy quét mã vạch chuyên dụng để tự động hóa khâu quét mã vạch thuốc và hạn sử dụng (Lot/Batch Expire Date).
- Ngôn ngữ phát triển truyền thống: Visual Basic 6.0 đã dừng phát triển các tính năng mới từ Microsoft, có thể gặp một số hạn chế về tính tương thích trên các bản phân phối Windows 64-bit thế hệ mới nếu không cấu hình tương thích đúng cách.
Hướng phát triển trong tương lai
- Chuyển đổi kiến trúc sang Web/Cloud: Nâng cấp hệ thống lên nền tảng .NET Core (C#) hoặc Web Application (React + ASP.NET Core Web API) kết hợp cơ sở dữ liệu đám mây Microsoft Azure SQL.
- Tích hợp Barcode / QR Code / RFID: Áp dụng đầu đọc mã vạch không dây cầm tay để quét tự động mã GS1-128 của các hộp thuốc, quản lý chính xác từng lô sản xuất và tự động cảnh báo xuất kho theo nguyên tắc FEFO (First Expired, First Out - Hết hạn trước, Xuất trước).
- Phân hệ Mobile App: Phát triển ứng dụng di động trên iOS/Android dành riêng cho nhân viên giao hàng (Shipper) để ký nhận biên bản giao nhận điện tử (e-POD) theo thời gian thực.
Đối tượng hưởng lợi
+-----------------------------------------------------------------------------------------+
| GIÁ TRỊ MANG LẠI |
+----------------------------+-----------------------------+------------------------------+
| DOANH NGHIỆP | SINH VIÊN / HỌC VIÊN | LẬP TRÌNH VIÊN (DEVS) |
| • Tiết kiệm 70% chi phí vận| • Tài liệu mẫu chuẩn mực về | • Bộ schema CSDL chuẩn hóa |
| hành kho hàng | phân tích hướng cấu trúc | • Mẫu kết nối ADODB và xử lý |
| • Giảm 99% sai sót sổ sách | • Ví dụ thực tế vẽ FDD, DFD,| Transaction an toàn |
| • Báo cáo tức thì cho sếp | ERD và chuẩn hóa CSDL | • Kiến trúc form nghiệp vụ |
+----------------------------+-----------------------------+------------------------------+
- Đối với Công ty Dược phẩm Tam Long và các doanh nghiệp tương tự:
- Tiết kiệm ước tính hơn 150 giờ làm việc thủ công mỗi tháng cho bộ phận kho và kế toán.
- Kiểm soát chặt chẽ công nợ phải thu/phải trả, loại trừ 100% tình trạng thất thoát hàng hóa không rõ nguyên nhân.
- Đối với Sinh viên ngành Công nghệ Thông tin:
- Cung cấp tài liệu tham khảo hoàn chỉnh, chuẩn mực về phương pháp luận Phân tích & Thiết kế hệ thống thông tin hướng cấu trúc (SADT).
- Nắm vững quy trình chuyển đổi từ hồ sơ dữ liệu thực tế (HSDL) sang sơ đồ luồng dữ liệu (DFD) và mô hình cơ sở dữ liệu quan hệ (ERD).
- Đối với Lập trình viên phần mềm quản trị (Software Developers):
- Cung cấp mô hình tham chiếu về cấu trúc bảng dữ liệu cho nghiệp vụ xuất nhập tồn dược phẩm.
- Cung cấp mẫu mã nguồn thực tế về quản lý giao dịch nguyên tử (Transactions), bảo vệ dữ liệu khi xảy ra lỗi đột ngột.
Câu hỏi thường gặp (FAQ)
1. Yêu cầu kỹ thuật tối thiểu để triển khai hệ thống quản lý kho này là gì?
Hệ thống có yêu cầu phần cứng rất nhẹ nhàng: chỉ cần máy tính chạy hệ điều hành Windows XP/7/10, RAM từ 512 MB trở lên, cài đặt Microsoft SQL Server 2005/2008/2012 và bộ thư viện MDAC 2.8. Hệ thống có thể hoạt động độc lập trên 1 máy đơn (Standalone) hoặc kết nối qua mạng nội bộ LAN giữa nhiều máy trạm.
2. Giới hạn lưu trữ và khả năng mở rộng dữ liệu của hệ thống như thế nào?
Được xây dựng trên nền tảng Microsoft SQL Server, hệ thống có khả năng lưu trữ hàng triệu giao dịch xuất nhập kho mà không suy giảm tốc độ truy vấn. Khi quy mô công ty mở rộng danh mục lên hơn 50.000 mặt hàng dược phẩm, hệ thống vẫn duy trì thời gian phản hồi dưới 1 giây nếu được đánh chỉ mục (Index) đúng trên các khóa chính và khóa ngoại (MaHang, SoPN, SoPG).
3. Hệ thống có thể tích hợp với các phần mềm kế toán sẵn có không?
Có. Cơ sở dữ liệu SQL Server của hệ thống mở, cho phép kết nối qua cổng ODBC/OLE DB tiêu chuẩn. Các phần mềm kế toán khác (như MISA, Fast) hoàn toàn có thể viết các câu lệnh truy vấn SQL hoặc Stored Procedures để trích xuất dữ liệu phiếu thu, phiếu chi, phiếu nhập, phiếu xuất tự động mà không cần nhập liệu lại hai lần.
4. Chi phí bảo trì và vận hành hệ thống định kỳ gồm những gì?
Chi phí vận hành gần như bằng 0 vì phần mềm không yêu cầu phí bản quyền duy trì hàng tháng (SaaS). Công việc bảo trì duy nhất là thiết lập lịch sao lưu cơ sở dữ liệu tự động (Automated Backup Job) hàng tuần trên SQL Server để đảm bảo an toàn tuyệt đối khi xảy ra sự cố hỏng ổ cứng máy chủ.
5. Thời gian hoàn vốn đầu tư (ROI) cho một doanh nghiệp khi ứng dụng hệ thống là bao lâu?
Với mức chi phí đầu tư phát triển phần mềm nội bộ ban đầu rất nhỏ, doanh nghiệp tiết kiệm được chi phí nhân sự kiểm kê kho, giảm thiểu thất thoát thuốc hết hạn và nâng cao năng suất giao hàng. Thời gian hoàn vốn ước tính đạt được chỉ trong vòng 1 đến 3 tháng vận hành thực tế.
Kết luận
Đồ án tốt nghiệp "Xây dựng hệ thống quản lý kho cho Công Ty TNHH Dược Phẩm Tam Long" của sinh viên Nguyễn Văn Du là một công trình nghiên cứu ứng dụng có giá trị thực tiễn cao. Bằng việc kết hợp chặt chẽ giữa lý thuyết phân tích thiết kế hệ thống thông tin hướng cấu trúc và công nghệ lập trình trực quan Visual Basic kết hợp SQL Server, đề tài đã giải quyết triệt để bài toán quản lý kho dược phẩm vốn phức tạp và nhiều rủi ro.
Hệ thống không chỉ tự động hóa toàn diện các nghiệp vụ nhập hàng, xuất hàng, quản lý thẻ kho và báo cáo doanh thu mà còn nâng cao đáng kể độ chính xác và tính chuyên nghiệp trong quản trị doanh nghiệp. Đây là tài liệu tham khảo giá trị cho các sinh viên chuyên ngành CNTT đang thực hiện đồ án tốt nghiệp, đồng thời là giải pháp phần mềm thực tế sẵn sàng chuyển giao cho các doanh nghiệp phân phối vừa và nhỏ nhằm tối ưu hóa chuỗi cung ứng trong kỷ nguyên số.