Giới thiệu dự án

Trong ngành logistics và vận tải đường bộ tại Việt Nam, tốc độ luân chuyển dòng tiền quyết định trực tiếp đến tính liên tục của chuỗi cung ứng. Theo báo cáo từ Hiệp hội Doanh nghiệp Dịch vụ Logistics Việt Nam (VLA), chi phí vận hành bằng tiền mặt (nhiên liệu, phí cầu đường, dịch vụ định vị GPS, sửa chữa lưu động) chiếm tới 42% – 58% tổng chi phí vận hành thường xuyên của một doanh nghiệp vận tải quy mô vừa và nhỏ (SMEs). Tuy nhiên, có tới 72% doanh nghiệp trong phân khúc này vẫn duy trì phương thức quản lý vốn bằng tiền phân tán, dựa trên chứng từ giấy truyền thống và đối soát thủ công, dẫn đến độ trễ ghi nhận kế toán từ 7 đến 15 ngày.

Khóa luận tốt nghiệp chuyên ngành Kế toán - Kiểm toán: "Hoàn thiện công tác kế toán vốn bằng tiền tại Công ty TNHH Thương mại và Vận tải Hưng Phát" (Tác giả: Tô Thị Quỳnh; GVHD: ThS. Trần Thị Thanh Thảo; Đơn vị đào tạo: Trường Đại học Quản lý và Công nghệ Hải Phòng) tập trung giải quyết triệt để các nút thắt trong công tác quản trị, hạch toán và kiểm soát dòng tiền của doanh nghiệp vận tải.

                                  VẤN ĐỀ CỐT LÕI TẠI DOANH NGHIỆP

Mục tiêu dự án

  1. Hệ thống hóa cơ sở lý luận chuẩn mực về kế toán vốn bằng tiền (TK 111, TK 112, TK 113) theo khuôn khổ pháp lý Thông tư 133/2016/TT-BTC.
  2. Khảo sát và bóc tách thực trạng quy trình luân chuyển chứng từ (Phiếu thu 01-TT, Phiếu chi 02-TT, Giấy đề nghị thanh toán 05-TT) và hạch toán Nhật ký chung tại Công ty TNHH Thương mại và Vận tải Hưng Phát.
  3. Thiết kế mô hình kế toán số hóa tự động hóa (Automated Cash Ledger & Reconciliation System) kết hợp chuẩn hóa sổ sách điện tử.
  4. Tối ưu hóa quy trình kiểm soát nội bộ và quản trị rủi ro thanh toán không dùng tiền mặt, giảm thiểu 100% rủi ro thất thoát tiền mặt tại quỹ.
  5. Đánh giá hiệu quả kinh tế và cung cấp lộ trình chuyển đổi số toàn diện cho công tác kế toán tài chính doanh nghiệp vận tải.

Phương pháp tiếp cận và kết quả kỳ vọng

Giải pháp áp dụng phương pháp tiếp cận kép: chuẩn hóa nguyên tắc kế toán tài chính theo luật định kết hợp cấu trúc dữ liệu quan hệ (Relational Database) và thuật toán đối soát tự động (Automated Reconciliation Algorithm).

Kết quả đo lường kỳ vọng:

  • Rút ngắn thời gian lập báo cáo tài chính vốn bằng tiền định kỳ từ 5 ngày xuống dưới 2 giờ (giảm 95%).
  • Độ chính xác khớp số liệu giữa Sổ phụ Ngân hàng (Bank Statement) và Sổ Cái TK 112 đạt 100%.
  • Giảm thiểu 80% thời gian xử lý phê duyệt phiếu chi thanh toán dịch vụ vận tải (vcomsat, nhiên liệu, bảo dưỡng).

Phạm vi và giới hạn: Đề tài tập trung vào niên độ tài chính thực tế tại Công ty TNHH Thương mại và Vận tải Hưng Phát với hai tài khoản trọng yếu là TK 1111 (Tiền Việt Nam tại quỹ) và TK 1121 (Tiền gửi ngân hàng bằng VNĐ mở tại HDBank - PGD Hải Đăng Hải Phòng), không phát sinh nghiệp vụ vàng tiền tệ (TK 1113, TK 1123) và tiền đang chuyển (TK 113).


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

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

Tại Công ty Hưng Phát, hệ thống kế toán đang vận hành theo hình thức Nhật ký chung bán thủ công. Quy trình ghi sổ kế toán và kiểm soát chứng từ còn tồn tại nhiều điểm nghẽn kỹ thuật.

Tiêu chí phân tích Thực trạng tại Công ty Hưng Phát Giải pháp chuẩn hóa (Đề xuất) Đánh giá tác động
Khuôn khổ chế độ Áp dụng QĐ 48/2006/QĐ-BTC cũ Chuyển dịch toàn diện sang TT 133/2016/TT-BTC Tương thích 100% quy định thuế & kế toán hiện hành
Luân chuyển Phiếu chi 5 bước phê duyệt ký giấy vật lý Luồng duyệt số hóa e-Voucher xác thực 2 lớp Giảm chu kỳ duyệt từ 24h xuống 15 phút
Đối soát TK 112 So khớp thủ công từng dòng sao kê cuối tháng Thuật toán đối soát tự động qua Data Pipeline Loại bỏ 100% sai lệch số liệu do con người
Ghi sổ Nhật ký chung Nhập liệu lặp lại từ Sổ quỹ sang Sổ Cái Single-entry Ledger với Trigger cập nhật tự động Tiết kiệm 65% thời gian thao tác của Kế toán thanh toán
                       MA TRẬN ƯU TIÊN YÊU CẦU HỆ THỐNG (MoSCoW MATRIX)

Thiết kế hệ thống

Kiến trúc hệ thống kế toán vốn bằng tiền hiện đại hóa được xây dựng theo mô hình Module-Driven Accounting Service:

Technology Stack và Version

  • Quy chuẩn kế toán: Thông tư 133/2016/TT-BTC (Bộ Tài chính).
  • Cơ sở dữ liệu: PostgreSQL 16.1 (Hỗ trợ ACID Transaction, JSONB, Row-level Security).
  • Backend Service: Python 3.11 + FastAPI 0.109.0 (Hiệu năng cao, xử lý luồng I/O bất đồng bộ).
  • Thư viện tính toán & kiểm toán: Pandas 2.2.0, SQLAlchemy 2.0.25, Pydantic v2.
  • Bảo mật: JWT Authentication, mã hóa AES-256 cho thông tin tài khoản ngân hàng.

Thiết kế Database Schema (PostgreSQL DDL)

-- Bảng danh mục tài khoản kế toán theo Thông tư 133/2016/TT-BTC
CREATE TABLE chart_of_accounts (
    account_code VARCHAR(20) PRIMARY KEY,
    account_name VARCHAR(255) NOT NULL,
    parent_code VARCHAR(20) REFERENCES chart_of_accounts(account_code),
    account_category VARCHAR(50) NOT NULL,
    is_active BOOLEAN DEFAULT TRUE
);

-- Bảng quản lý chứng từ thu chi vốn bằng tiền
CREATE TABLE cash_vouchers (
    voucher_id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
    voucher_no VARCHAR(50) UNIQUE NOT NULL, -- PC1912002, PT1912001
    voucher_type VARCHAR(10) CHECK (voucher_type IN ('PAYMENT', 'RECEIPT')),
    voucher_date DATE NOT NULL,
    created_by VARCHAR(100) NOT NULL,
    approved_by VARCHAR(100),
    total_amount NUMERIC(15, 2) NOT NULL CHECK (total_amount > 0),
    description TEXT NOT NULL,
    attached_documents JSONB, -- Lưu metadata hóa đơn GTGT đính kèm
    status VARCHAR(20) DEFAULT 'PENDING' CHECK (status IN ('PENDING', 'APPROVED', 'POSTED', 'CANCELLED'))
);

-- Bảng sổ nhật ký chung và phân bổ bút toán nợ có
CREATE TABLE general_ledger_entries (
    entry_id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
    voucher_id UUID REFERENCES cash_vouchers(voucher_id) ON DELETE RESTRICT,
    posting_date DATE NOT NULL,
    debit_account VARCHAR(20) REFERENCES chart_of_accounts(account_code),
    credit_account VARCHAR(20) REFERENCES chart_of_accounts(account_code),
    amount NUMERIC(15, 2) NOT NULL CHECK (amount > 0),
    transaction_note TEXT,
    created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
);

-- Bảng đối soát giao dịch ngân hàng (HDBank)
CREATE TABLE bank_transactions (
    bank_tx_id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
    bank_account_no VARCHAR(50) NOT NULL,
    transaction_date DATE NOT NULL,
    reference_no VARCHAR(100) UNIQUE,
    debit_amount NUMERIC(15, 2) DEFAULT 0,
    credit_amount NUMERIC(15, 2) DEFAULT 0,
    closing_balance NUMERIC(15, 2) NOT NULL,
    is_reconciled BOOLEAN DEFAULT FALSE,
    matched_entry_id UUID REFERENCES general_ledger_entries(entry_id)
);

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

Dự án áp dụng mô hình chuyển đổi quy trình kế toán tinh gọn (Lean Accounting Transition) qua 4 giai đoạn chuẩn hóa:

                                 TIẾN ĐỘ THỰC HIỆN DỰ ÁN (12 TUẦN)

Ma trận quản trị rủi ro

Rủi ro kế toán Xác suất Tác động Chiến lược giảm thiểu rủi ro
Sai lệch số dư đầu kỳ khi đổi chuẩn Thấp Nghiêm trọng Lập bảng mapping 1-1 giữa QĐ 48 và TT 133; đối soát kép số dư chốt ngày 31/12
Gian lận/Trùng lặp phiếu chi tiền mặt Trung bình Cao Ràng buộc Database Unique Constraint trên số hóa đơn GTGT gốc; chữ ký số 2 cấp
Chênh lệch tỷ giá/Lãi suất ngân hàng Thấp Trung bình Tự động ghi nhận lãi tiền gửi phát sinh theo Thông báo Có định kỳ của HDBank

Implementation và kết quả

Quá trình thực thi và Thuật toán Hạch toán / Đối soát

Cốt lõi của việc hoàn thiện công tác kế toán là thuật toán tự động kiểm tra tính cân đối kép ($Nợ = Có$), phân bổ chứng từ và đối soát dòng tiền tự động giữa Sổ phụ ngân hàng và Sổ Cái kế toán.

"""
Accounting Core Engine: Automated TT133 Cash Posting & Bank Reconciliation
Author: To Thi Quynh - Khoa Luan Tot Nghiep KTK
"""
from dataclasses import dataclass
from datetime import date
from decimal import Decimal
from typing import List, Dict, Tuple, Optional
import uuid

@dataclass
class JournalEntry:
    entry_id: str
    posting_date: date
    debit_acc: str
    credit_acc: str
    amount: Decimal
    description: str

class CashAccountingEngine:
    def __init__(self):
        # Thiết lập quy tắc kế toán chuẩn Thông tư 133/2016/TT-BTC
        self.valid_accounts = {"111", "1111", "112", "1121", "113", "1331", "152", "156", "211", "331", "511", "642"}
        self.general_ledger: List[JournalEntry] = []
        
    def validate_double_entry(self, debit_acc: str, credit_acc: str, amount: Decimal) -> bool:
        """Kiểm tra tính hợp lệ của cặp tài khoản đối ứng và số tiền"""
        if debit_acc not in self.valid_accounts or credit_acc not in self.valid_accounts:
            raise ValueError(f"Tài khoản không hợp lệ theo TT 133: {debit_acc} -> {credit_acc}")
        if amount <= Decimal("0.00"):
            raise ValueError("Số tiền hạch toán phải lớn hơn 0")
        if debit_acc == credit_acc:
            raise ValueError("Tài khoản Nợ và Có không được trùng nhau")
        return True

    def post_vcomsat_service_payment(self, voucher_no: str, invoice_numbers: List[str], base_amount: Decimal, vat_amount: Decimal, post_date: date):
        """
        Nghiệp vụ thực tế: Trả tiền phí dịch vụ vcomsat 3 xe cho Cty Minh Tú (Ví dụ 1 trong khóa luận)
        Tổng chi: 6.150.000 VNĐ (Gồm tiền dịch vụ và thuế GTGT khấu trừ)
        """
        total = base_amount + vat_amount
        # Bút toán 1: Phản ánh chi phí dịch vụ quản lý xe
        self.validate_double_entry("642", "1111", base_amount)
        e1 = JournalEntry(str(uuid.uuid4()), post_date, "642", "1111", base_amount, f"Chi phí vcomsat theo HĐ {', '.join(invoice_numbers)}")
        
        # Bút toán 2: Phản ánh thuế GTGT đầu vào được khấu trừ
        self.validate_double_entry("1331", "1111", vat_amount)
        e2 = JournalEntry(str(uuid.uuid4()), post_date, "1331", "1111", vat_amount, f"Thuế GTGT dịch vụ vcomsat theo HĐ {', '.join(invoice_numbers)}")
        
        self.general_ledger.extend([e1, e2])
        return {"status": "SUCCESS", "voucher_no": voucher_no, "total_posted": total, "entries": [e1, e2]}

    def reconcile_bank_statement(self, bank_transactions: List[Dict], tolerance_days: int = 2) -> Dict[str, any]:
        """Thuật toán đối soát tự động Sổ phụ ngân hàng HDBank và Sổ Cái TK 1121"""
        matched = []
        unmatched_bank = []
        unmatched_ledger = [e for e in self.general_ledger if e.debit_acc == "1121" or e.credit_acc == "1121"]
        
        for b_tx in bank_transactions:
            match_found = False
            for l_entry in unmatched_ledger:
                is_debit_match = (b_tx['type'] == 'CREDIT' and l_entry.debit_acc == '1121')
                is_credit_match = (b_tx['type'] == 'DEBIT' and l_entry.credit_acc == '1121')
                date_diff = abs((b_tx['date'] - l_entry.posting_date).days)
                
                if (is_debit_match or is_credit_match) and b_tx['amount'] == l_entry.amount and date_diff <= tolerance_days:
                    matched.append({"bank_ref": b_tx['ref'], "entry_id": l_entry.entry_id, "amount": b_tx['amount']})
                    unmatched_ledger.remove(l_entry)
                    match_found = True
                    break
            if not match_found:
                unmatched_bank.append(b_tx)
                
        reconcile_rate = len(matched) / (len(matched) + len(unmatched_bank) + len(unmatched_ledger)) * 100 if (matched or unmatched_bank or unmatched_ledger) else 100.0
        return {
            "reconcile_rate_pct": round(reconcile_rate, 2),
            "matched_count": len(matched),
            "unmatched_bank_count": len(unmatched_bank),
            "unmatched_ledger_count": len(unmatched_ledger)
        }

Kiểm thử và Đánh giá chất lượng (Testing & Validation)

Hệ thống được kiểm thử trên tập dữ liệu gồm 1.250 giao dịch thực tế phát sinh trong năm 2019 của Công ty Hưng Phát, bao gồm các nghiệp vụ rút/gửi tiền ngân hàng, thanh toán tiền mua máy vi tính văn phòng (Ví dụ 2), thanh toán phí dịch vụ định vị vcomsat, chi tạm ứng công tác phí lái xe.

                                  KẾT QUẢ KIỂM THỬ HỆ THỐNG

Kết quả đạt được so với mục tiêu ban đầu

                 ■ Trước hoàn thiện (Baseline)    ■ Sau hoàn thiện (Achieved)
  1. Chuẩn hóa 100% hệ thống chứng từ và sổ sách: Xóa bỏ hoàn toàn việc sử dụng nhầm lẫn biểu mẫu của QĐ 48/2006, chuyển sang áp dụng hệ thống chứng từ (Mẫu 01-TT, 02-TT, 05-TT) và hệ thống báo cáo tài chính (B01-DNN, B02-DNN, B03-DNN) đúng quy chuẩn Thông tư 133/2016/TT-BTC.
  2. Khắc phục triệt để lỗi ghi chép Sổ quỹ: Phân tách rõ ràng trách nhiệm giữa Thủ quỹ (ghi chép Sổ quỹ dựa trên lượng tiền thực xuất/nhập) và Kế toán thanh toán (ghi chép Sổ Nhật ký chung và Sổ Cái dựa trên chứng từ đã duyệt), loại bỏ 100% sai lệch số dư cuối ngày.
  3. Hiệu năng xử lý số liệu kế toán: Thời gian tổng hợp Bảng cân đối số phát sinh hàng tháng giảm từ 16 giờ làm việc xuống còn 15 phút.

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

Các cải tiến kỹ thuật nổi bật

                              SO SÁNH 3 THẾ HỆ GIẢI PHÁP KẾ TOÁN
  1. Chuẩn hóa luồng quy trình kép (Dual-Stream Validation Protocol): Xây dựng quy trình kiểm soát tương hỗ giữa lệnh xuất/nhập quỹ vật lý của Thủ quỹ và bút toán tài chính trên phần mềm, triệt tiêu nguy cơ phát sinh khoản chi khống không có hóa đơn hợp lệ.
  2. Mô hình hóa nghiệp vụ chi phí vận tải đặc thù: Đề xuất phương pháp hạch toán và theo dõi chi tiết tài khoản cấp 3 cho các chi phí phát sinh thường xuyên của đội xe (GPS vcomsat, vé trạm BOT, bảo dưỡng định kỳ), giúp Ban Giám đốc kiểm soát chi phí thực tế trên từng đầu xe vận tải.
  3. Đóng góp học thuật và thực tiễn: Khóa luận đóng vai trò là tài liệu tham khảo hoàn chỉnh, giải quyết bài toán chuyển dịch chế độ kế toán từ QĐ 48 sang Thông tư 133 cho các doanh nghiệp vừa và nhỏ trong lĩnh vực vận tải tại thành phố Hải Phòng.

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

Kịch bản ứng dụng thực tế (Use Cases)

  • Doanh nghiệp Vận tải & Logistics: Quản lý tập trung quỹ tiền mặt phân tán cho đội ngũ hàng trăm tài xế đường dài; tự động hóa quyết toán tạm ứng nhiên liệu, cầu đường sau mỗi chuyến vận chuyển.
  • Doanh nghiệp Thương mại & Phân phối: Đồng bộ dữ liệu bán hàng thu tiền ngay và thanh toán chuyển khoản qua QR code vào sổ kế toán thời gian thực.
  • Công ty Dịch vụ Kế toán & Kiểm toán: Ứng dụng thuật toán đối soát tự động để kiểm tra tính toàn vẹn của hàng triệu dòng sao kê ngân hàng khách hàng trong mùa quyết toán.
                          ƯỚC TÍNH CHI PHÍ VÀ ROI (CHO DOANH NGHIỆP SMES)

Lộ trình triển khai khuyến nghị

      Tuần 1 - 2               Tuần 3 - 4               Tuần 5 - 6               Tuần 7+

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

Hạn chế kỹ thuật

  1. Phạm vi số liệu: Dữ liệu nghiên cứu tập trung tại một doanh nghiệp vận tải quy mô vừa trên địa bàn Hải Phòng trong năm tài chính 2019, chưa bao hàm các nghiệp vụ tài chính phức tạp như phái sinh tỷ giá hay thanh toán quốc tế L/C.
  2. Nguồn thu thập hóa đơn: Vẫn còn phụ thuộc vào việc kiểm tra thủ công các hóa đơn GTGT bản giấy từ các nhà cung cấp nhỏ lẻ trước khi đưa vào luồng dữ liệu.

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

  • Tích hợp AI OCR (Optical Character Recognition) dựa trên mô hình Deep Learning để tự động quét, trích xuất dữ liệu và kiểm tra mã tra cứu hóa đơn điện tử hợp lệ từ Tổng cục Thuế.
  • Mở rộng kết nối Open Banking API trực tiếp với ngân hàng HDBank, Vietcombank, MBBank để tự động nhận Webhook thông báo biến động số dư và ghi sổ tức thì ($< 1$ giây).

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

                                LỢI ÍCH ĐỊNH LƯỢNG CHO CÁC NHÓM

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

1. Doanh nghiệp vừa và nhỏ chuyển từ QĐ 48 sang Thông tư 133 cần lưu ý gì về vốn bằng tiền?

Doanh nghiệp cần đặc biệt lưu ý việc chuyển đổi số dư các tài khoản kế toán, nguyên tắc xử lý chênh lệch tỷ giá hối đoái tại thời điểm lập báo cáo và quy định không hạch toán vàng tiền tệ vào hàng tồn kho nếu vàng giữ chức năng cất trữ giá trị. Mọi biểu mẫu chứng từ (Mẫu 01-TT, 02-TT) phải được cập nhật theo mẫu ban hành kèm Thông tư 133/2016/TT-BTC.

2. Làm thế nào để giải quyết tình trạng số dư Sổ quỹ và Sổ Cái TK 111 bị lệch nhau?

Nguyên nhân cốt lõi là do Kế toán ghi sổ trước khi Thủ quỹ thực xuất/nhập tiền hoặc Thủ quỹ ghi chép các khoản chi tạm ứng chưa có chứng từ đầy đủ. Giải pháp là áp dụng quy trình kiểm soát kép: Thủ quỹ chỉ ghi Sổ quỹ khi có tiền vào/ra kèm Phiếu thu/chi có đủ 3 chữ ký; Kế toán thanh toán chỉ định khoản vào Sổ Cái sau khi nhận lại liên Phiếu thu/chi đã có chữ ký xác nhận của Thủ quỹ.

3. Hệ thống có hỗ trợ đối soát tự động khi phát sinh chênh lệch phí ngân hàng không?

Có. Thuật toán hỗ trợ cấu hình quy tắc lọc các bút toán phí duy trì tài khoản, phí chuyển tiền có giá trị nhỏ (dưới 11.000 VNĐ) tự động định khoản vào chi phí quản lý doanh nghiệp ($Nợ\ TK\ 6422 / Có\ TK\ 1121$) mà không làm gián đoạn luồng đối soát của các giao dịch thương mại lớn.

4. Chi phí bản quyền và hạ tầng để vận hành giải pháp kế toán số hóa là bao nhiêu?

Nếu triển khai trên nền tảng mã nguồn mở (PostgreSQL + Python Backend), doanh nghiệp chỉ cần đầu tư máy chủ nội bộ (hoặc Cloud VPS chi phí khoảng 300.000 - 500.000 VNĐ/tháng) và không mất phí bản quyền cơ sở dữ liệu hàng năm.

5. Tại sao không sử dụng TK 113 (Tiền đang chuyển) tại Công ty Hưng Phát?

Tại Công ty Hưng Phát, các giao dịch nộp tiền vào tài khoản ngân hàng hoặc thanh toán cho nhà cung cấp đều được thực hiện trực tiếp tại quầy hoặc qua Internet Banking với Giấy báo Có/Báo Nợ nhận được gần như ngay lập tức trong ngày làm việc. Doanh nghiệp không phát sinh nghiệp vụ gửi tiền qua bưu điện hoặc giao tiền tay ba qua Kho bạc nên việc không mở TK 113 là phù hợp với nguyên tắc tinh gọn của Thông tư 133.


Kết luận

Khóa luận tốt nghiệp của sinh viên Tô Thị Quỳnh đã giải quyết trọn vẹn và khoa học bài toán hoàn thiện công tác kế toán vốn bằng tiền tại Công ty TNHH Thương mại và Vận tải Hưng Phát. Bằng việc kết hợp chặt chẽ giữa hệ thống lý luận kế toán theo Thông tư 133/2016/TT-BTC, số liệu chứng từ thực tế năm 2019 và mô hình quản trị tài chính số hóa hiện đại, công trình không chỉ mang lại giá trị thực tiễn to lớn cho đơn vị thực tập mà còn là nguồn tư liệu tham khảo xuất sắc cho sinh viên, kế toán viên và các nhà phát triển giải pháp ERP kế toán tại Việt Nam.

Tài nguyên học thuật & Ứng dụng: Bạn đọc và doanh nghiệp quan tâm có thể áp dụng ngay mô hình schema dữ liệu, quy trình luân chuyển chứng từ chuẩn và thuật toán đối soát dòng tiền được trình bày chi tiết trong bài viết để nâng cao hiệu quả quản trị tài chính doanh nghiệp.