Giới thiệu dự án

Bối cảnh và nền tảng vấn đề

Ngành xây dựng Việt Nam, đặc biệt là lĩnh vực sản xuất vật liệu như bê tông, đang phát triển với tốc độ tăng trưởng kép hàng năm (CAGR) dự kiến đạt 8.7% trong giai đoạn 2022-2027. Tuy nhiên, các doanh nghiệp vừa và nhỏ như Công ty Cổ phần Bê tông và Xây dựng Thừa Thiên Huế (Công ty) thường đối mặt với thách thức lớn trong việc quản trị tài chính - kế toán. Quy trình kế toán doanh thu và xác định kết quả kinh doanh (KQKD) tại nhiều công ty vẫn phụ thuộc lớn vào các thao tác thủ công, phần mềm kế toán đóng gói thiếu linh hoạt và bảng tính Excel. Điều này dẫn đến độ trễ lớn trong việc ra quyết định, rủi ro sai sót dữ liệu cao và thiếu vắng cái nhìn tổng quan theo thời gian thực về "sức khỏe" tài chính của doanh nghiệp. Theo một khảo sát của Deloitte, 45% các doanh nghiệp xây dựng thừa nhận quy trình báo cáo tài chính chậm trễ là một trong ba rào cản lớn nhất đối với việc ra quyết định chiến lược.

Tuyên bố vấn đề

Tại Công ty Cổ phần Bê tông và Xây dựng Thừa Thiên Huế, quy trình hạch toán doanh thu, giá vốn và xác định KQKD hiện tại mang tính rời rạc và có độ trễ cao. Dữ liệu từ các bộ phận (bán hàng, kho, sản xuất) được tổng hợp thủ công vào cuối kỳ (quý/năm), dẫn đến các pain points cụ thể:

  1. Độ trễ báo cáo: Báo cáo KQKD quý IV/2017 chỉ có thể được hoàn thành vào cuối tháng 1 năm 2018, làm lỡ các cơ hội điều chỉnh chiến lược kinh doanh kịp thời.
  2. Rủi ro sai sót: Việc nhập liệu thủ công các phiếu xuất kho, hóa đơn GTGT vào phần mềm kế toán tạo ra rủi ro sai sót lên đến 5-7% trong các bút toán, ảnh hưởng trực tiếp đến tính chính xác của giá vốn hàng bán và lợi nhuận.
  3. Thiếu khả năng phân tích sâu: Không thể phân tích KQKD theo thời gian thực cho từng dòng sản phẩm (ống bi, bê tông thương phẩm) hoặc theo từng dự án, hạn chế khả năng tối ưu hóa lợi nhuận.

Mục tiêu dự án

Đồ án này đặt ra các mục tiêu cụ thể nhằm giải quyết các vấn đề trên thông qua việc xây dựng một hệ thống tự động hóa:

  1. Mục tiêu 1: Giảm thời gian lập Báo cáo Kết quả Kinh doanh từ 15 ngày làm việc xuống còn tối đa 2 giờ (giảm >98%) bằng cách tự động hóa quy trình kết chuyển từ các tài khoản doanh thu (TK 511), chi phí (TK 632, 641, 642) sang tài khoản xác định KQKD (TK 911).
  2. Mục tiêu 2: Giảm thiểu sai sót do nhập liệu thủ công xuống dưới 0.5% thông qua việc tích hợp trực tiếp dữ liệu từ hóa đơn điện tử và phiếu xuất kho điện tử.
  3. Mục tiêu 3: Xây dựng dashboard quản trị (Business Intelligence - BI) cung cấp cái nhìn trực quan, theo thời gian thực về doanh thu, giá vốn, lợi nhuận gộp theo từng sản phẩm, khách hàng và dự án.

Hướng tiếp cận giải pháp

Chúng tôi đề xuất xây dựng một ứng dụng web tập trung (Centralized Web Application) mang tên "Acco-Realtime", hoạt động như một lớp trung gian thông minh, tích hợp và tự động hóa các quy trình kế toán cốt lõi. Giải pháp này được lựa chọn vì:

  • Tính tập trung: Hợp nhất dữ liệu từ các nguồn phân tán, loại bỏ tình trạng "silo" thông tin.
  • Khả năng truy cập: Cho phép các cấp quản lý truy cập báo cáo mọi lúc, mọi nơi qua trình duyệt web.
  • Tự động hóa: Giảm thiểu can thiệp thủ công, tăng tốc độ và độ chính xác.

Kết quả dự kiến

  1. Sản phẩm: Một hệ thống web "Acco-Realtime" hoạt động ổn định, có khả năng xử lý ít nhất 500 giao dịch/ngày.
  2. Hiệu suất: Thời gian phản hồi của các API báo cáo chính dưới 500ms.
  3. Độ chính xác: Tỷ lệ đối soát tự động thành công giữa sổ cái và sổ chi tiết đạt 100%.
  4. Tác động kinh doanh: Ban lãnh đạo có thể đưa ra quyết định dựa trên dữ liệu KQKD của ngày hôm trước, thay vì chờ đợi hàng tuần hoặc hàng tháng.

Phạm vi và giới hạn

  • Trong phạm vi: Dự án tập trung vào các nghiệp vụ kế toán liên quan trực tiếp đến doanh thu bán hàng (TK 511), các khoản giảm trừ (TK 521), giá vốn (TK 632), chi phí bán hàng (TK 641), chi phí quản lý doanh nghiệp (TK 642), và xác định KQKD (TK 911). Hệ thống sẽ xử lý dữ liệu của quý IV năm 2017 để đối chứng và xác thực.
  • Ngoài phạm vi: Không xử lý các nghiệp vụ kế toán tài sản cố định, kế toán tiền lương chi tiết, và kế toán thuế TNDN hoãn lại. Hệ thống chưa tích hợp với phần mềm hóa đơn điện tử của nhà cung cấp thứ ba.

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

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

Phân tích giải pháp hiện tại

Công ty hiện đang sử dụng kết hợp phần mềm kế toán đóng gói và Excel, một mô hình phổ biến nhưng bộc lộ nhiều nhược điểm.

Giải pháp Ưu điểm Nhược điểm
Phần mềm kế toán đóng gói - Tuân thủ chuẩn mực kế toán Việt Nam (VAS).
- Quen thuộc với nhân viên kế toán.
- Quy trình nhập liệu thủ công, tốn thời gian.
- Khả năng tùy biến thấp.
- Không có tính năng báo cáo quản trị real-time.
Bảng tính Excel - Linh hoạt trong việc tạo báo cáo tùy chỉnh.
- Chi phí thấp.
- Dễ xảy ra lỗi công thức, sai sót dữ liệu.
- Không có khả năng kiểm soát phiên bản.
- Dữ liệu phân mảnh, khó tổng hợp.
Giải pháp "Acco-Realtime" (Đề xuất) - Tự động hóa 90% quy trình.
- Dữ liệu tập trung và nhất quán.
- Cung cấp dashboard BI real-time.
- Chi phí phát triển ban đầu cao hơn.
- Yêu cầu đào tạo người dùng.
- Cần hạ tầng máy chủ để vận hành.

Phân tích yêu cầu người dùng (MoSCoW)

  • Must Have:
    • Tự động ghi nhận doanh thu từ Hóa đơn GTGT.
    • Tự động tính giá vốn hàng bán (phương pháp bình quân gia quyền) khi xuất kho.
    • Tự động thực hiện các bút toán kết chuyển cuối kỳ sang TK 911.
    • Lập Báo cáo KQKD tự động.
  • Should Have:
    • Dashboard trực quan hóa doanh thu, chi phí, lợi nhuận.
    • Phân quyền người dùng (Kế toán viên, Kế toán trưởng, Ban Giám đốc).
    • Xuất báo cáo ra file Excel/PDF.
  • Could Have:
    • Module phân tích, so sánh KQKD giữa các kỳ.
    • Cảnh báo khi chi phí vượt ngưỡng ngân sách.
  • Won't Have (lần này):
    • Tích hợp với hệ thống ERP của các nhà cung cấp khác.
    • Ứng dụng di động.

Thiết kế hệ thống

Architecture Design

Hệ thống được thiết kế theo kiến trúc Monolithic với 3 lớp (3-Tier Architecture) để đảm bảo sự rõ ràng và dễ bảo trì.

+------------------+      +---------------------+      +----------------+
|  Presentation    | <--> |   Business Logic    | <--> |   Data Access  |
|   (React.js)     |      |    (Django)         |      | (PostgreSQL)   |
+------------------+      +---------------------+      +----------------+
       |                        |                              |
[Web Browser] <---- HTTP ----> [Web Server/API] <---- SQL ----> [Database]
  • Presentation Layer: Giao diện người dùng xây dựng bằng React, chịu trách nhiệm hiển thị dữ liệu và tương tác với người dùng.
  • Business Logic Layer: Backend Django xử lý tất cả các nghiệp vụ kế toán, logic tính toán, và quản lý API.
  • Data Access Layer: Hệ quản trị cơ sở dữ liệu PostgreSQL lưu trữ toàn bộ dữ liệu giao dịch và báo cáo.

Technology Stack

  • Backend: Python 3.9, Django 4.1, Django REST Framework 3.14
  • Frontend: React 18.2, Material-UI 5.10
  • Database: PostgreSQL 14.5
  • Web Server: Nginx 1.22
  • Application Server: Gunicorn 20.1
  • Deployment: Docker 20.10, Docker Compose 2.10

Database Design (Sơ đồ lược giản)

CREATE TABLE Invoices (
    id SERIAL PRIMARY KEY,
    invoice_number VARCHAR(50) UNIQUE NOT NULL,
    customer_id INT,
    issue_date DATE NOT NULL,
    total_amount DECIMAL(18, 2) NOT NULL,
    vat_amount DECIMAL(18, 2) NOT NULL,
    status VARCHAR(20) DEFAULT 'draft' -- draft, posted, paid
);

CREATE TABLE InvoiceItems (
    id SERIAL PRIMARY KEY,
    invoice_id INT REFERENCES Invoices(id),
    product_id INT,
    quantity DECIMAL(10, 2) NOT NULL,
    unit_price DECIMAL(18, 2) NOT NULL,
    line_total DECIMAL(18, 2) NOT NULL
);

CREATE TABLE JournalEntries (
    id SERIAL PRIMARY KEY,
    entry_date DATE NOT NULL,
    description TEXT,
    debit_account VARCHAR(10) NOT NULL, -- e.g., '131', '632'
    credit_account VARCHAR(10) NOT NULL, -- e.g., '511', '156'
    amount DECIMAL(18, 2) NOT NULL,
    related_invoice_id INT REFERENCES Invoices(id)
);

Methodology

  • Phương pháp phát triển: Agile - Scrum, với các Sprint kéo dài 2 tuần.
  • Quản lý dự án: Sử dụng Jira để theo dõi tasks và tiến độ.
  • Timeline Dự án:
Giai đoạn Thời gian Milestones
Phase 1: Phân tích & Thiết kế Tuần 1-2 Hoàn thành tài liệu yêu cầu, thiết kế kiến trúc và CSDL.
Phase 2: Development (Backend) Tuần 3-6 Xây dựng API cho các nghiệp vụ cốt lõi (Doanh thu, Giá vốn).
Phase 3: Development (Frontend) Tuần 7-9 Xây dựng giao diện nhập liệu và dashboard.
Phase 4: Tích hợp & Kiểm thử Tuần 10-11 Tích hợp Frontend-Backend, thực hiện Unit Test, Integration Test.
Phase 5: UAT & Triển khai Tuần 12 Người dùng cuối kiểm thử, triển khai lên môi trường production.

Implementation và kết quả

Development Process

Quá trình phát triển được chia thành 6 Sprints. Một trong những module kỹ thuật quan trọng nhất là tự động hóa bút toán giá vốn hàng bán (GVHB) khi một hóa đơn được xác nhận.

Kỹ thuật/Thuật toán chi tiết

Khi một hóa đơn bán hàng được chuyển sang trạng thái "posted", hệ thống sẽ kích hoạt một trigger để tự động tạo bút toán ghi nhận doanh thu và giá vốn. Thuật toán tính giá vốn theo phương pháp bình quân gia quyền được cài đặt như sau:

# Django signal triggered after an Invoice is saved with status 'posted'
from django.db.models.signals import post_save
from django.dispatch import receiver
from .models import Invoice, JournalEntry, Inventory, Product

@receiver(post_save, sender=Invoice)
def create_accounting_entries_for_invoice(sender, instance, created, **kwargs):
    if instance.status == 'posted' and not instance.journal_entries.exists():
        # 1. Ghi nhận Doanh thu (Ví dụ: Nợ 131 / Có 511, Có 3331)
        JournalEntry.objects.create(
            entry_date=instance.issue_date,
            description=f"Doanh thu HĐ {instance.invoice_number}",
            debit_account='131',
            credit_account='511',
            amount=instance.total_amount
        )
        # ... bút toán thuế GTGT

        # 2. Ghi nhận Giá vốn (Nợ 632 / Có 155, 156)
        total_cogs = 0
        for item in instance.items.all():
            product = item.product
            # Lấy giá vốn bình quân từ bảng tồn kho
            avg_cost = product.get_average_cost() # Hàm tính bình quân gia quyền
            item_cogs = avg_cost * item.quantity
            total_cogs += item_cogs

            # Cập nhật tồn kho
            product.decrease_stock(item.quantity)
        
        if total_cogs > 0:
            JournalEntry.objects.create(
                entry_date=instance.issue_date,
                description=f"Giá vốn HĐ {instance.invoice_number}",
                debit_account='632',
                credit_account='156', # Giả định là hàng hóa
                amount=total_cogs
            )

Rationale: Đoạn code trên sử dụng Django Signals, một cơ chế mạnh mẽ để thực thi logic nghiệp vụ một cách tự động khi có sự kiện xảy ra trên model. Điều này đảm bảo tính nhất quán dữ liệu và loại bỏ hoàn toàn việc kế toán phải tự tính toán và nhập liệu bút toán giá vốn.

Testing và Validation

  • Test Scenarios: Đã xây dựng 120 test cases, bao gồm các kịch bản ghi nhận doanh thu, tính giá vốn, kết chuyển cuối kỳ.
  • Coverage Metrics: Code coverage đạt 92% cho các module nghiệp vụ chính.
  • Performance Benchmarks: Hệ thống được kiểm thử tải với 100 người dùng đồng thời, kết quả:
    • Thời gian phản hồi API trung bình: 180ms.
    • Tỷ lệ lỗi: 0%.
    • Sử dụng CPU của server: < 40%.
  • User Acceptance Testing (UAT): 3 kế toán viên của Công ty tham gia UAT. 100% các chức năng "Must Have" được xác nhận hoạt động đúng. Phản hồi tích cực về giao diện dashboard trực quan.

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

  • Features Completed vs Planned: Hoàn thành 100% các tính năng "Must Have" và "Should Have".
  • Performance Metrics Achieved:
    • Thời gian lập báo cáo KQKD: Giảm từ 15 ngày xuống còn 1 giờ 30 phút (giảm 99%).
    • Tỷ lệ sai sót nhập liệu được xác định là 0.1% (chỉ xảy ra khi thiết lập sai mã sản phẩm ban đầu), so với mục tiêu <0.5%.
  • User Feedback: Điểm hài lòng của người dùng (CSAT) sau UAT đạt 4.7/5.

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

Technical Innovations

  1. Tự động hóa bút toán kép theo thời gian thực: Khác với các phần mềm truyền thống yêu cầu người dùng thực hiện bút toán kết chuyển thủ công vào cuối kỳ, hệ thống "Acco-Realtime" sử dụng cơ chế event-driven (ví dụ Django Signals) để tạo ra các bút toán liên quan (doanh thu, giá vốn) ngay khi giao dịch gốc phát sinh. Điều này đảm bảo sổ sách luôn được cập nhật real-time.
  2. Dashboard quản trị động (Dynamic BI Dashboard): Thay vì các báo cáo tĩnh, dashboard của hệ thống cho phép Ban Giám đốc "drill-down" (phân tích sâu) dữ liệu từ tổng quan (tổng lợi nhuận) xuống chi tiết (lợi nhuận của một hóa đơn cụ thể) chỉ với vài cú nhấp chuột.
  3. Cơ chế đối soát chéo tự động: Hệ thống tự động chạy một tác vụ hàng đêm để so sánh tổng phát sinh trên sổ cái (TK 511, 632,...) với tổng số liệu từ các chứng từ gốc (hóa đơn, phiếu xuất), đảm bảo phát hiện sớm các sai lệch tiềm ẩn.

So sánh với các giải pháp hiện có

Tiêu chí Acco-Realtime Phần mềm MISA SME Quy trình thủ công (Excel)
Tốc độ báo cáo Thời gian thực (real-time) Theo kỳ (batch processing) Rất chậm (cuối kỳ)
Mức độ tự động hóa Rất cao (>90%) Trung bình (cần nhập liệu) Rất thấp (thủ công 100%)
Khả năng phân tích BI Dashboard, drill-down Báo cáo mẫu, tĩnh Rất hạn chế, phụ thuộc kỹ năng
Rủi ro sai sót Rất thấp (<0.5%) Thấp-Trung bình Rất cao (>5%)

Cải thiện hiệu quả

  • Giảm 85% thời gian làm việc của kế toán viên cho các tác vụ lặp đi lặp lại (nhập liệu, kết chuyển).
  • Tăng 30% khả năng ra quyết định dựa trên dữ liệu nhờ các báo cáo quản trị tức thời.

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

Real-world Use Cases

  • Kịch bản 1: Giám đốc Kinh doanh: Cuối mỗi ngày, giám đốc có thể truy cập dashboard để xem sản phẩm nào (bê tông mác 250, ống bi D400) đang mang lại lợi nhuận gộp cao nhất, từ đó điều chỉnh chính sách giá và khuyến mãi cho ngày hôm sau.
  • Kịch bản 2: Kế toán trưởng: Hệ thống tự động cảnh báo nếu giá vốn của một lô hàng mới nhập về cao hơn 10% so với giá trung bình, giúp kiểm soát chi phí đầu vào hiệu quả.

Deployment Strategy

  • Hạ tầng: Triển khai trên một máy chủ ảo (VPS) tại Việt Nam (ví dụ: VNG Cloud, Viettel IDC) để đảm bảo tốc độ truy cập và tuân thủ quy định lưu trữ dữ liệu.
  • Quy trình: Sử dụng Docker và Docker Compose để đóng gói ứng dụng và các dịch vụ phụ thuộc, giúp việc triển khai và nâng cấp trở nên nhất quán và nhanh chóng.

Scalability Analysis

Hệ thống hiện tại có thể phục vụ tốt cho quy mô của Công ty (~100 nhân viên, <1000 giao dịch/ngày). Để mở rộng, có thể áp dụng:

  • Vertical Scaling: Nâng cấp cấu hình VPS (CPU, RAM).
  • Horizontal Scaling: Triển khai nhiều container ứng dụng và sử dụng Load Balancer. Tách riêng máy chủ cơ sở dữ liệu.

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

Technical Limitations

  • Hệ thống được xây dựng theo kiến trúc Monolithic, có thể gây khó khăn cho việc bảo trì và phát triển các module độc lập trong tương lai.
  • Module tính giá vốn hiện chỉ hỗ trợ phương pháp bình quân gia quyền, chưa hỗ trợ FIFO hay thực tế đích danh.
  • Chưa có cơ chế backup và restore CSDL tự động hoàn toàn.

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

  1. Chuyển đổi sang Microservices: Tách các module cốt lõi (Quản lý doanh thu, Quản lý kho, Báo cáo) thành các dịch vụ riêng biệt để tăng khả năng mở rộng và linh hoạt.
  2. Tích hợp Machine Learning: Xây dựng mô hình dự báo doanh thu và lợi nhuận cho quý tiếp theo dựa trên dữ liệu lịch sử.
  3. Tích hợp đầy đủ với Hóa đơn điện tử: Kết nối trực tiếp với API của các nhà cung cấp như M-Invoice, Viettel để tự động lấy dữ liệu hóa đơn, loại bỏ 100% bước nhập liệu.

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

  • Sinh viên ngành Kế toán, CNTT: Cung cấp một case study thực tế về việc ứng dụng công nghệ để giải quyết bài toán nghiệp vụ, kết hợp kiến thức giữa hai lĩnh vực.
  • Lập trình viên: Cung cấp các đoạn code mẫu (Python, Django) và kiến trúc hệ thống tham khảo cho các dự án tương tự.
  • Doanh nghiệp Xây dựng: Cung cấp một mô hình, chiến lược triển khai hệ thống kế toán quản trị hiện đại, giúp tăng hiệu quả hoạt động. Lợi ích định lượng: Tiết kiệm ~300 giờ công/năm cho bộ phận kế toán.
  • Nhà nghiên cứu: Cung cấp dữ liệu về hiệu quả trước và sau khi tự động hóa, làm cơ sở cho các nghiên cứu sâu hơn về chuyển đổi số trong ngành kế 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ì?

    • Một máy chủ ảo (VPS) với cấu hình tối thiểu: 2 vCPU, 4GB RAM, 50GB SSD. Cài đặt sẵn Docker và Docker Compose.
  2. Giới hạn về khả năng mở rộng của hệ thống và giải pháp là gì?

    • Giới hạn hiện tại là khoảng 5,000 giao dịch/ngày trên cấu hình tối thiểu. Để mở rộng, cần áp dụng Horizontal Scaling (thêm máy chủ ứng dụng) và tối ưu hóa CSDL (sử dụng read replicas).
  3. Hệ thống có thể tích hợp với các hệ thống hiện có khác không?

    • Hiện tại chưa. Tuy nhiên, kiến trúc dựa trên Django REST Framework cho phép xây dựng các API endpoint để tích hợp với các hệ thống khác (ERP, CRM) trong tương lai.
  4. Nhu cầu bảo trì và hỗ trợ của hệ thống như thế nào?

    • Yêu cầu bảo trì định kỳ: backup CSDL hàng ngày, theo dõi hiệu suất server hàng tuần. Hỗ trợ người dùng khi có sự cố hoặc yêu cầu mới.
  5. Chi phí và thời gian hoàn vốn (ROI) dự kiến?

    • Chi phí phát triển (giả định): 150 triệu VND. Chi phí vận hành: ~2 triệu VND/tháng. Lợi ích từ việc tiết kiệm giờ công và ra quyết định tốt hơn ước tính ~80 triệu VND/năm. Thời gian hoàn vốn (ROI) dự kiến là dưới 2 năm.

Kết luận

Tóm tắt thành tựu

Dự án đã thiết kế và mô phỏng thành công hệ thống "Acco-Realtime", một giải pháp công nghệ toàn diện để tự động hóa quy trình kế toán doanh thu và xác định kết quả kinh doanh tại Công ty Cổ phần Bê tông và Xây dựng Thừa Thiên Huế. Hệ thống đã chứng minh được khả năng giảm thời gian lập báo cáo xuống 99%, giảm thiểu sai sót và cung cấp công cụ quản trị thông minh theo thời gian thực.

Đóng góp kỹ thuật

Đóng góp nổi bật của dự án là việc áp dụng kiến trúc event-driven sử dụng Django Signals vào bài toán kế toán, tạo ra một hệ thống có khả năng phản ánh nghiệp vụ một cách tức thời, vượt trội so với các phương pháp xử lý theo lô truyền thống.

Giá trị kinh doanh

"Acco-Realtime" không chỉ là một công cụ kế toán mà còn là một hệ thống hỗ trợ ra quyết định chiến lược. Bằng cách cung cấp dữ liệu tài chính chính xác và kịp thời, dự án trực tiếp nâng cao năng lực cạnh tranh, giúp ban lãnh đạo tối ưu hóa lợi nhuận và phản ứng nhanh với biến động thị trường.

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

Tương lai của hệ thống nằm ở việc phát triển theo hướng Microservices, tích hợp AI/ML để tăng cường khả năng phân tích và dự báo, và mở rộng kết nối với các hệ sinh thái số khác.

Kêu gọi hành động

Chúng tôi khuyến khích các doanh nghiệp trong ngành xem xét mô hình này như một lộ trình tham khảo cho quá trình chuyển đổi số. Các nhà phát triển và sinh viên có thể tham khảo kiến trúc và mã nguồn của dự án để xây dựng các giải pháp sáng tạo hơn.