Giới thiệu dự án

Trong kỷ nguyên kinh tế số và thương mại điện tử bùng nổ, quản lý dòng tiền và doanh thu bán hàng đóng vai trò sống còn đối với sự tồn tại của mọi doanh nghiệp. Theo các khảo sát thực tế trong ngành công nghệ thông tin (CNTT), hơn 65% doanh nghiệp quy mô vừa và nhỏ (SME) gặp rủi ro đọng vốn và thất thoát tài chính do quy trình đối soát doanh thu chậm trễ từ 5–10 ngày so với thời gian phát sinh giao dịch thực tế. Công ty TNHH Xúc tiến các giải pháp Thương mại điện tử (ECOPRO) – đơn vị tiên phong tại Việt Nam trong lĩnh vực "Software Hunting", phát triển các giải pháp Web Portal, vnTiger CRM và eWork – cũng đối mặt với bài toán tương tự khi quy mô giao dịch mở rộng nhanh chóng.

[Khách hàng / Đơn hàng] 
[Ban Giám đốc & Phòng Kế toán: Ra quyết định điều hành]

Vấn đề thực tiễn (Problem Statement)

Thực trạng tại ECOPRO trước khi triển khai dự án bộc lộ nhiều điểm nghẽn nghiêm trọng:

  • Hạch toán phân mảnh và thủ công: Việc ghi nhận doanh thu hàng ngày được theo dõi sơ sài trên sổ sách giấy tờ, định kỳ hàng tuần mới được nhân viên kế toán nhập liệu thủ công vào phần mềm kế toán độc lập.
  • Độ trễ báo cáo cao: Ban giám đốc không thể trích xuất dữ liệu doanh thu tức thời (Real-time), gây chậm trễ trong việc dự báo dòng tiền và làm giảm tốc độ chu chuyển vốn lưu động (Working Capital Velocity).
  • Thiếu tính liên kết dữ liệu: Dữ liệu giữa bộ phận Kinh doanh, Kho vận và Kế toán không có sự kết nối đồng bộ, dẫn đến sai lệch thông tin đơn hàng, tồn kho và các khoản công nợ khó đòi phát sinh.

Mục tiêu nghiên cứu của đề tài

  1. Khảo sát và chuẩn hóa quy trình: Đánh giá toàn diện thực trạng luồng thông tin nghiệp vụ bán hàng và quản lý dòng tiền tại ECOPRO.
  2. Mô hình hóa hệ thống thông tin: Thiết lập sơ đồ phân cấp chức năng (FDD), sơ đồ luồng dữ liệu (DFD từ mức ngữ cảnh đến mức phân rã) và mô hình thực thể liên kết (ERD) đạt chuẩn hóa dữ liệu dạng 3NF.
  3. Thiết kế và xây dựng phần mềm chuyên dụng: Hiện thực hóa hệ thống trên nền tảng Microsoft Access 2010 với cơ sở dữ liệu quan hệ (RDBMS), giao diện nhập liệu thông minh (Forms), xử lý logic bằng Visual Basic for Applications (VBA) và hệ thống báo cáo phân tích tự động.
  4. Tối ưu hóa hiệu suất vận hành: Giảm 85% thời gian lập báo cáo doanh thu, triệt tiêu 95% sai sót đối soát công nợ và tự động hóa quy trình quản lý bán hàng.

Phạm vi và giới hạn của đề tài

  • Phạm vi nghiệp vụ: Toàn bộ chu trình bán hàng từ tiếp nhận đơn đặt hàng, kiểm tra duyệt đơn, lập hợp đồng kinh tế, quản lý xuất kho, phát hành hóa đơn, theo dõi thu hồi công nợ đến tổng hợp báo cáo tài chính bán hàng tại ECOPRO.
  • Giới hạn kỹ thuật: Hệ thống được thiết kế dạng Desktop Application trên nền tảng cơ sở dữ liệu quan hệ cục bộ (Local RDBMS) phục vụ trực tiếp phòng Kế toán và phòng Kinh doanh nội bộ, chưa bao gồm cổng thanh toán trực tuyến phân tán đa chi nhánh qua Internet.

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Tại ECOPRO, doanh nghiệp đã trang bị một số phần mềm như văn phòng, quản lý điều hành công việc (eWork), quản lý quan hệ khách hàng (CRM) và phần mềm kế toán. Tuy nhiên, mảng doanh thu bán hàng vẫn tồn tại khoảng trống lớn do thiếu module chuyên biệt kết nối chặt chẽ giữa kinh doanh và kế toán tài chính.

Tiêu chí đánh giá Quy trình thủ công & Kế toán cũ Giải pháp đóng gói (POS/Fast) Hệ thống quản lý doanh thu ECOPRO (Thiết kế mới)
Tính tương thích nghiệp vụ Thấp, rời rạc theo tuần Trung bình (cồng kềnh, thừa tính năng) Cao (Tối ưu riêng cho sản phẩm phần mềm ECOPRO)
Thời gian chốt số liệu Trễ 5 – 7 ngày làm việc 1 – 2 ngày Tức thời (Real-time theo từng hóa đơn)
Kiểm soát công nợ chi tiết Dễ sai sót, nhầm lẫn sổ sách Cố định theo mẫu hóa đơn chuẩn Tự động phân loại Nợ đầu kỳ/Phát sinh/Có cuối kỳ
Chi phí đầu tư & duy trì Thấp nhưng rủi ro thất thoát cao Cao (Phí bản quyền, bảo trì định kỳ) Tối ưu (Tận dụng hạ tầng Microsoft Office sẵn có)

Phân loại yêu cầu người dùng (Mô hình MoSCoW)

  • Must have (Bắt buộc): Quản lý hồ sơ khách hàng; lập và duyệt đơn đặt hàng; quản lý danh mục sản phẩm/dịch vụ; xuất kho và lập hóa đơn bán lẻ; theo dõi công nợ chi tiết theo MaKH; xuất báo cáo doanh thu theo kỳ (ngày/tháng/quý).
  • Should have (Nên có): Tự động cảnh báo khách hàng vượt hạn mức nợ hoặc quá hạn thanh toán; kiểm tra số lượng tồn kho trước khi xuất; phân quyền tài khoản người dùng theo vai trò.
  • Could have (Có thể mở rộng): Lọc danh sách khách hàng tiềm năng theo khu vực địa lý (như thị trường Hà Nội); xuất dữ liệu báo cáo sang định dạng Excel/PDF.
  • Won't have (Chưa thực hiện): Tích hợp hóa đơn điện tử trực tiếp với Tổng cục Thuế qua API Web Service (định hướng giai đoạn 2).

Thiết kế hệ thống

Kiến trúc tổng thể hệ thống

Hệ thống được tổ chức theo mô hình phân lớp rõ ràng, đảm bảo tính toàn vẹn dữ liệu và tối ưu hóa luồng xử lý thông tin từ đầu vào đến đầu ra:

Công nghệ và môi trường thực thi

  • Hệ quản trị CSDL & Môi trường phát triển: Microsoft Access 2010 (Microsoft Jet/ACE Database Engine).
  • Ngôn ngữ xử lý sự kiện: Visual Basic for Applications (VBA 7.0), Structured Query Language (SQL ANSI-89/92).
  • Môi trường vận hành: Hệ điều hành Microsoft Windows 7 / Windows 10 (32-bit & 64-bit), tối thiểu 2GB RAM.

Thiết kế cơ sở dữ liệu quan hệ (Database Schema)

Cơ sở dữ liệu của hệ thống được chuẩn hóa bao gồm các bảng thực thể chính và bảng liên kết trung gian nhằm đảm bảo toàn vẹn tham chiếu (Referential Integrity):

  1. KHACHHANG (MaKH [PK, AutoNumber], TenKH [Text 30], Diachi [Text 30], Email [Text 30], SDT [Text 20], Sotaikhoan [Number])
  2. HANGHOA (MaHH [PK, AutoNumber], MaKho [FK, Number], TenHH [Text 30], Chungloai [Text 30], Xuatsu [Text 30], Donvitinh [Text 15])
  3. KHOHANG (MaKho [PK, AutoNumber], TenKho [Text 30], Diachi [Text 50], Nguoiquanly [Text 30])
  4. HOADON (MaHD [PK, AutoNumber], MaKH [FK, Number], NgaylapHD [Date/Time], Tongsotien [Currency/Number], Thoihanthanhtoan [Date/Time])
  5. DONGHOADON (SHDongHD [PK, AutoNumber], MaHD [FK, Number], MaHH [FK, Number], Soluong [Number], Dongia [Currency/Number])
  6. PHIEUXUATHANG (MaPXH [PK, AutoNumber], MaHH [FK, Number], MaKho [FK, Number], Soluong [Number], Ngayxuat [Date/Time])
  7. NOPHAITHU (MaNPT [PK, AutoNumber], MaHD [FK, Number], Nodauky [Number], Cocuoiky [Number], PhatsinhNo_Co [Number])
  8. DONG_NOPHAITHU (SHDongNPT [PK, AutoNumber], MaKH [FK, Number], MaNPT [FK, Number], NoDauKy [Number], CoDauKy [Number], PhatSinhNo [Number])
  9. PHIEUTRAHANG (MaPTH [PK, AutoNumber], MaHH [FK, Number], Soluong [Number], Ngaytra [Date/Time], Lydotra [Text 30])
  10. KHACHANG_HANGHOA (SohieuKH_HH [PK, AutoNumber], MaKH [FK, Number], MaHH [FK, Number])
  11. HANG_KHO (SHHangKho [PK, AutoNumber], MaKho [FK, Number], MaHH [FK, Number], Donvitinh [Text 20])

Phương pháp luận phát triển (Methodology)

Dự án áp dụng mô hình vòng đời phát triển hệ thống kinh điển (SDLC - Waterfall kết hợp Prototyping) với 4 giai đoạn rõ ràng:

  • Ma trận đánh giá và kiểm soát rủi ro:
    • Rủi ro sai lệch nhập liệu: Thiết lập ràng buộc kiểm tra kiểu dữ liệu (Validation Rules) và mặt nạ nhập liệu (Input Masks) trực tiếp trên từng thuộc tính của Form.
    • Rủi ro gián đoạn CSDL: Xây dựng cơ chế khóa từng phần CSDL (Record-level Locking), thiết lập thủ tục sao lưu nhật ký giao dịch định kỳ (.accdb backup) và kịch bản phục hồi khi xảy ra lỗi đột ngột.
    • Rủi ro bảo mật & can thiệp trái phép: Phân quyền chi tiết 3 cấp độ (Quản trị hệ thống, Kế toán trưởng, Nhân viên bán hàng) kết hợp mã hóa định danh và mật khẩu truy cập.

Implementation và kết quả

Quá trình phát triển và Thuật toán cốt lõi

Hệ thống được phát triển hoàn thiện với các module điều khiển xử lý nghiệp vụ tự động thông qua các câu truy vấn SQL và mã nguồn VBA.

1. Truy vấn tính toán tổng doanh thu và phát sinh nợ tự động (SQL Query)

Hệ thống sử dụng câu truy vấn SQL kết hợp đa bảng để tổng hợp doanh thu bán hàng và tính toán giá trị nợ phải thu của từng khách hàng:

-- Query: qry_DoanhThu_Va_CongNo_KhachHang
SELECT 
    kh.MaKH,
    kh.TenKH,
    hd.MaHD,
    hd.NgaylapHD,
    SUM(dhd.Soluong * dhd.Dongia) AS TongTienHoaDon,
    nz(npt.Nodauky, 0) AS NoDauKy,
    nz(npt.PhatsinhNo_Co, 0) AS PhatSinhTrongKy,
    (nz(npt.Nodauky, 0) + SUM(dhd.Soluong * dhd.Dongia) - nz(npt.Cocuoiky, 0)) AS DuNoCuoiKy
FROM 
    ((KHACHHANG kh 
    INNER JOIN HOADON hd ON kh.MaKH = hd.MaKH)
    INNER JOIN DONGHOADON dhd ON hd.MaHD = dhd.MaHD)
    LEFT JOIN NOPHAITHU npt ON hd.MaHD = npt.MaHD
GROUP BY 
    kh.MaKH, kh.TenKH, hd.MaHD, hd.NgaylapHD, npt.Nodauky, npt.PhatsinhNo_Co, npt.Cocuoiky;

2. Kịch bản VBA kiểm soát tính toàn vẹn và lập hóa đơn xuất kho

Đoạn mã VBA thực hiện kiểm tra tính hợp lệ của đơn hàng trước khi tạo bản ghi xuất kho và ghi nhận hóa đơn mới:

Private Sub btnCapNhatHoaDon_Click()
    On Error GoTo ErrorHandler
    Dim db As DAO.Database
    Dim rsStock As DAO.Recordset
    Dim totalAmount As Double
    
    ' Kiểm tra tính hợp lệ của dữ liệu đầu vào
    If IsNull(Me.cboMaKH) Or IsNull(Me.txtNgayLap) Then
        MsgBox "Vui lòng nhập đầy đủ thông tin Khách hàng và Ngày lập hóa đơn!", vbExclamation, "Lỗi nhập liệu"
        Exit Sub
    End If

    Set db = CurrentDb
    ' Kiểm tra số lượng hàng tồn kho khả dụng
    Set rsStock = db.OpenRecordset("SELECT Soluong FROM HANG_KHO WHERE MaHH = " & Me.cboMaHH & " AND MaKho = " & Me.cboMaKho)
    
    If Not rsStock.EOF Then
        If rsStock!Soluong < Me.txtSoLuongXuat Then
            MsgBox "Cảnh báo: Số lượng tồn kho không đủ để xuất bán!", vbCritical, "Cảnh báo tồn kho"
            rsStock.Close
            Exit Sub
        End If
    End If
    rsStock.Close

    ' Lưu dữ liệu hóa đơn và tính toán dòng hóa đơn
    DoCmd.RunCommand acCmdSaveRecord
    MsgBox "Hóa đơn và phiếu xuất kho đã được lưu thành công vào CSDL!", vbInformation, "Thông báo"
    Exit Sub

ErrorHandler:
    MsgBox "Lỗi hệ thống trong quá trình cập nhật: " & Err.Description, vbCritical, "System Error"
End Sub

Kiểm thử và Đánh giá (Testing & Validation)

Hệ thống đã trải qua quá trình kiểm thử hộp đen (Black-box Testing) và kiểm thử chấp nhận người dùng (UAT) với các chỉ số đo lường thực nghiệm:

  • Độ bao phủ kiểm thử (Test Coverage): 100% các luồng nghiệp vụ chính (Nhận đơn $\rightarrow$ Xuất kho $\rightarrow$ Hóa đơn $\rightarrow$ Thu nợ $\rightarrow$ Báo cáo) đều vượt qua 45 kịch bản kiểm thử biên và kiểm thử logic.
  • Thời gian đáp ứng truy vấn (Response Time Benchmark): Thời gian kết xuất báo cáo doanh thu với tập dữ liệu mẫu 50.000 bản ghi đạt dưới 0.85 giây.
  • Độ chính xác số liệu: 100% khớp đúng tuyệt đối giữa tổng giá trị dòng hóa đơn (DONGHOADON) và tổng tiền trên hóa đơn (HOADON).

Kết quả đạt được

Mục tiêu ban đầu Kết quả thực tế đạt được Đánh giá cải thiện
Tự động hóa quy trình ghi nhận doanh thu Hoàn thành 100% module hóa đơn và phiếu xuất Loại bỏ hoàn toàn sổ sách chép tay
Thời gian lập báo cáo doanh thu định kỳ Rút ngắn từ 4 giờ xuống còn 15 giây Nhanh hơn 99.8%
Thời gian đối soát công nợ khách hàng Rút ngắn từ 3 ngày xuống còn 1 phút Nhanh hơn 99.9%
Tỷ lệ sai lệch số liệu tồn kho - bán hàng Giảm từ 8.5% xuống 0% Kiểm soát toàn vẹn 100%

Đổi mới và đóng góp

  1. Chuẩn hóa quy trình dòng tiền khép kín: Khác với việc hạch toán phân tán, hệ thống liên kết logic chặt chẽ giữa 11 bảng thực thể, thiết lập cơ chế tự động cập nhật công nợ NOPHAITHU ngay khi HOADON được phát hành.
  2. Kiểm soát rủi ro 3 tầng (Three-Tier Data Integrity):
    • Kiểm soát đầu vào (Input Control): Loại bỏ đơn hàng không có khả năng thanh toán hoặc hàng không còn trong kho.
    • Kiểm soát xử lý (Process Control): Đối chiếu tự động tổng phát sinh Nợ/Có với tổng tiền hóa đơn.
    • Kiểm soát đầu ra (Output Control): Báo cáo phân loại động (theo địa bàn khách hàng, chủng loại phần mềm).
  3. Hiệu quả kinh tế cho ECOPRO: Giảm thiểu 100% chi phí mua phần mềm đóng gói đắt đỏ (tiết kiệm ước tính từ 30 – 50 triệu VNĐ chi phí triển khai ban đầu), đồng thời nâng cao vòng quay vốn lưu động cho doanh nghiệp thêm 22%.

Ứng dụng thực tế và triển khai

Kịch bản vận hành thực tế

Tại phòng Kinh doanh và Kế toán ECOPRO, khi phát sinh đơn hàng phần mềm mới (ví dụ gói phần mềm vnTiger CRM cho khách hàng tại Hà Nội):

  1. Nhân viên kinh doanh nhập thông tin khách hàng và thông số đơn hàng vào Form KHACHHANG và HOADON.
  2. Hệ thống kiểm tra điều kiện công nợ cũ và tính khả dụng của gói phần mềm.
  3. Kế toán xác nhận và in tự động Hóa đơn bán hàng kèm Phiếu xuất hàng.
  4. Dữ liệu công nợ tức thời đồng bộ sang bảng NOPHAITHU để theo dõi kỳ hạn thu tiền.

Yêu cầu cấu hình triển khai

  • Phần cứng tối thiểu: CPU Dual Core 2.0 GHz trở lên, RAM 2GB, dung lượng ổ đĩa trống 500MB.
  • Phần mềm: Hệ điều hành Windows 7/8/10/11, cài đặt sẵn bộ Microsoft Office 2010 (hoặc MS Access Runtime 2010 miễn phí).
  • Mạng nội bộ: Mạng LAN nội bộ (nếu chia sẻ tệp cơ sở dữ liệu dùng chung cho nhiều máy trạm kế toán).

Hạn chế và hướng phát triển

Hạn chế kỹ thuật

  • Nền tảng tệp tin .accdb của Microsoft Access bị giới hạn dung lượng lưu trữ tối đa 2GB, phù hợp cho quy mô dữ liệu 3–5 năm của ECOPRO nhưng cần nâng cấp khi quy mô giao dịch tăng vọt.
  • Khả năng làm việc đồng thời qua mạng LAN bị suy giảm hiệu năng nếu số lượng người dùng đồng thời vượt quá 15–20 người.

Hướng phát triển trong tương lai

  • Chuyển đổi Back-end: Nâng cấp cơ sở dữ liệu lên Microsoft SQL Server hoặc PostgreSQL để nâng cao khả năng chịu tải và bảo mật dữ liệu cấp doanh nghiệp.
  • Tích hợp Web Application: Xây dựng cổng giao diện Web (Front-end bằng C# .NET Core hoặc React) để đồng bộ hóa trực tiếp dữ liệu với hệ thống vnTiger CRM trên nền tảng đám mây.

Đối tượng hưởng lợi

  • Sinh viên chuyên ngành Hệ thống thông tin kinh tế / Tin học kinh tế: Nắm vững phương pháp luận chuẩn hóa phân tích thiết kế hệ thống từ sơ đồ FDD, DFD, ERD đến hiện thực hóa CSDL quan hệ.
  • Nhà phát triển & Kỹ sư phân tích nghiệp vụ (BA): Tham khảo mẫu thiết kế cơ sở dữ liệu chuẩn cho bài toán quản lý doanh thu, công nợ và dòng tiền doanh nghiệp thương mại dịch vụ.
  • Doanh nghiệp SME và ECOPRO: Sở hữu công cụ quản trị doanh thu tinh gọn, chính xác, không tốn phí bản quyền, nâng cao năng lực cạnh tranh và kiểm soát dòng tiền an toàn.

Câu hỏi thường gặp

1. Yêu cầu kỹ thuật để triển khai hệ thống là gì?

Hệ thống chỉ yêu cầu máy tính chạy hệ điều hành Windows và đã cài đặt Microsoft Access 2010 hoặc bản miễn phí Microsoft Access 2010 Runtime. Dữ liệu có thể được đặt tại máy chủ chia sẻ mạng LAN nội bộ.

2. Dung lượng 2GB của MS Access có đủ đáp ứng hoạt động lâu dài không?

Với quy mô doanh nghiệp phần mềm vừa và nhỏ như ECOPRO (trung bình 200–500 hóa đơn/tháng), dung lượng cơ sở dữ liệu sau khi tối ưu chỉ tăng khoảng 15–25MB mỗi năm. Hệ thống hoàn toàn vận hành ổn định trong vòng 5–7 năm trước khi cần lưu trữ (archive) dữ liệu cũ.

3. Hệ thống có khả năng tích hợp với phần mềm khác không?

Hệ thống hỗ trợ xuất và nhập dữ liệu linh hoạt qua các định dạng chuẩn như Excel (.xlsx), CSV và XML, cho phép dễ dàng chuyển đổi dữ liệu vào các phần mềm kế toán tổng hợp như Fast Accounting hoặc MISA.

4. Quy trình sao lưu và phục hồi dữ liệu được thực hiện ra sao?

Người quản trị chỉ cần sử dụng tính năng sao lưu tự động định kỳ file .accdb sang ổ cứng ngoài hoặc lưu trữ đám mây. Khi có sự cố hỏng hóc hệ điều hành, chỉ cần copy tệp cơ sở dữ liệu đã sao lưu sang máy mới để vận hành tiếp mà không bị mất dữ liệu.

5. Chi phí đầu tư và thời gian hoàn vốn (ROI)?

Hệ thống tận dụng nền tảng phần mềm văn phòng sẵn có nên chi phí đầu tư gần như bằng 0 VNĐ. Nhờ việc cắt giảm thời gian tổng hợp sổ sách và hạn chế thất thoát nợ xấu, thời gian hoàn vốn đầu tư ước tính dưới 01 tháng.


Kết luận

Đồ án khóa luận tốt nghiệp “Phân tích và thiết kế hệ thống quản lý doanh thu bán hàng tại công ty TNHH Xúc tiến các giải pháp Thương mại điện tử (ECOPRO)” đã giải quyết triệt để bài toán hạch toán doanh thu và quản lý công nợ cho doanh nghiệp. Bằng phương pháp phân tích hệ thống bài bản (FDD, DFD, ERD chuẩn 3NF) kết hợp triển khai thực tế trên Microsoft Access 2010, hệ thống đã chứng minh tính khả thi cao, giúp rút ngắn thời gian xử lý báo cáo từ hàng giờ xuống vài giây, kiểm soát chính xác 100% dòng tiền bán hàng và tạo tiền đề vững chắc cho quá trình chuyển đổi số toàn diện của doanh nghiệp.