Giới thiệu dự án

Trong kỷ nguyên chuyển đổi số doanh nghiệp, việc quản lý dòng tiền và ghi nhận doanh thu chính xác là điều kiện tiên quyết cho sự sống còn của mọi tổ chức kinh tế. Theo các khảo sát từ Viện Kế toán Công chứng Anh và xứ Wales (ICAEW), hơn 88% bảng tính Excel sử dụng trong kế toán doanh nghiệp chứa các lỗi sai lệch dữ liệu tiềm ẩn, gây tổn thất trung bình 1.5% đến 3% doanh thu hàng năm do sai sót hạch toán và chậm trễ đối soát. Tại các doanh nghiệp phát triển phần mềm và dịch vụ công nghệ thông tin (CNTT) như Công ty TNHH CMC Software, quy trình bán hàng có đặc thù phức tạp: hợp đồng triển khai theo nhiều giai đoạn, nghiệm thu từng phần, chính sách chiết khấu thương mại đa dạng và phát sinh các khoản giảm trừ doanh thu đặc thù.

+-----------------------------------------------------------------------------+
|                          CMC SOFTWARE REVENUE AIS                           |
+-----------------------------------------------------------------------------+
|  [Presentation Layer]  : C# Windows Forms (.NET Framework 4.5/4.8)          |
|  [Business Logic]      : Accounting Validation, Double-Entry & Tax Engines  |
|  [Data Access Layer]   : ADO.NET (SqlTransaction, Parameterized Commands)   |
|  [Database Engine]     : Microsoft SQL Server (3NF Relational Schema)       |
+-----------------------------------------------------------------------------+

Vấn đề cốt lõi tại Công ty TNHH CMC Software xuất phát từ việc theo dõi doanh thu bán hàng và cung cấp dịch vụ trước đây chủ yếu dựa trên các bảng tính Excel phân tán. Hệ thống thủ công này bộc lộ những điểm nghẽn nghiêm trọng:

  • Thiếu tính đồng bộ dữ liệu giữa phòng Kinh doanh và phòng Kế toán.
  • Nguy cơ mất an toàn dữ liệu, trùng lặp bản ghi và dễ dàng bị can thiệp mà không để lại vết kiểm toán (audit trail).
  • Khó khăn trong việc đối chiếu tự động giữa hóa đơn xuất ra, doanh thu thuần và các khoản giảm trừ doanh thu (chiết khấu thương mại, giảm giá hàng bán, hàng bán bị trả lại).
  • Tốn nhiều thời gian lập báo cáo tài chính quản trị cuối kỳ (trung bình mất từ 3-5 ngày làm việc).

Để giải quyết triệt để các tồn tại trên, đồ án tập trung vào 4 mục tiêu cụ thể:

  1. Phân tích toàn diện quy trình luân chuyển chứng từ và nghiệp vụ hạch toán kế toán doanh thu bán hàng tại Công ty TNHH CMC Software theo chuẩn mực kế toán Việt Nam (VAS) và Thông tư 200/2014/TT-BTC.
  2. Xây dựng mô hình phân tích thiết kế hệ thống thông tin kế toán (AIS - Accounting Information System) chuẩn mực, bao gồm biểu đồ phân cấp chức năng (BFD), biểu đồ luồng dữ liệu (DFD mức khung cảnh, mức 0, mức 1) và mô hình dữ liệu quan hệ đạt chuẩn 3NF.
  3. Hiện thực hóa phần mềm kế toán chuyên dụng trên nền tảng ngôn ngữ C# (.NET Framework) kết hợp hệ quản trị cơ sở dữ liệu Microsoft SQL Server, đảm bảo tính toàn vẹn giao dịch (ACID) và cân đối kế toán tự động.
  4. Triển khai thử nghiệm, đánh giá hiệu năng và tính khả thi trong việc giảm thiểu thời gian xử lý chứng từ, nâng cao độ chính xác hạch toán.

Giải pháp lựa chọn phát triển ứng dụng máy tính cục bộ (Desktop Application) trên nền C# WinForms và Microsoft SQL Server thay vì ứng dụng nền web nhằm tận dụng tối đa tốc độ xử lý dữ liệu giao dịch nội bộ cao, khả năng tương thích phần cứng máy in hóa đơn chuyên dụng và mức độ bảo mật dữ liệu tài chính trong mạng LAN doanh nghiệp.

Kết quả kỳ vọng bao gồm:

  • Rút ngắn 75% thời gian nhập liệu và đối soát hóa đơn bán hàng.
  • Triệt tiêu 100% lỗi mất cân đối Nợ - Có trong bút toán doanh thu.
  • Tự động hóa kết xuất các biểu mẫu, hóa đơn GTGT (mẫu 01-GTKT-3LL) và sổ chi tiết doanh thu theo thời gian thực với độ trễ dưới 1 giây.

Phạm vi nghiên cứu tập trung vào nghiệp vụ bán sản phẩm phần mềm đóng gói, dịch vụ CNTT, doanh thu thuần và các khoản giảm trừ doanh thu tại CMC Software; không bao gồm các hình thức hạch toán doanh thu chuyển nhượng bất động sản đầu tư hay phân bổ doanh thu hợp đồng tài chính quốc tế phức tạp.


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

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

Khảo sát quy trình nghiệp vụ tại CMC Software cho thấy việc quản lý thông qua bảng tính thủ công bộc lộ nhiều hạn chế khi khối lượng hợp đồng gia tăng. Dưới đây là bảng so sánh hiện trạng và các phương án tiếp cận:

Tiêu chí đánh giá Quản lý bằng Excel (Cũ) Phần mềm đóng gói (MISA/FAST) Phần mềm thiết kế riêng (Đồ án)
Tính toàn vẹn dữ liệu Kém, dễ bị chỉnh sửa thủ công Rất cao, tuân thủ chặt chẽ Rất cao, tích hợp khóa giao dịch (ACID)
Độ khớp nghiệp vụ Thấp, cấu trúc rời rạc Trung bình (cần tùy biến quy trình) Tuyệt đối (may đo theo quy trình CMC)
Chi phí triển khai Gần như bằng 0 15.000.000 - 45.000.000 VNĐ/năm Tối ưu hóa chi phí đầu tư ban đầu
Thời gian xuất báo cáo 4 - 8 giờ làm việc 5 - 10 giây Dưới 2 giây
Khả năng phân quyền Không có hoặc rất yếu Phân quyền đa cấp độ Phân quyền theo vai trò (RBAC) chi tiết

Yêu cầu người dùng được phân loại theo mô hình MoSCoW:

  • Must Have: Đăng nhập/phân quyền, quản lý danh mục (khách hàng, sản phẩm/dịch vụ, tài khoản), lập hóa đơn bán hàng, tự động định khoản Nợ/Có (TK 511, 521, 131, 111, 112, 3331), in hóa đơn, xuất báo cáo doanh thu.
  • Should Have: Quản lý chiết khấu thương mại tự động theo hạn mức doanh số, tra cứu nhanh lịch sử giao dịch khách hàng, sao lưu và phục hồi CSDL tự động.
  • Could Have: Xuất dữ liệu đa định dạng (Excel, PDF, XML), biểu đồ phân tích trực quan tốc độ tăng trưởng doanh thu theo tháng.
  • Won't Have: Tích hợp trực tiếp cổng thanh toán quốc tế và hệ thống chữ ký số HSM đám mây (được dự trù cho phiên bản tiếp theo).

Thiết kế hệ thống

Kiến trúc hệ thống được xây dựng theo mô hình 3 lớp (Three-Tier Architecture):

  1. Presentation Layer (Tầng giao diện): Xây dựng bằng C# Windows Forms, cung cấp giao diện trực quan, bảng điều khiển (Dashboard) và các biểu mẫu nhập chứng từ kế toán.
  2. Business Logic Layer - BLL (Tầng xử lý nghiệp vụ): Tiếp nhận dữ liệu từ UI, kiểm tra tính hợp lệ nghiệp vụ kế toán (ràng buộc cân đối Nợ - Có, kiểm tra mã số thuế, tính toán thuế suất GTGT và chiết khấu), điều phối giao dịch.
  3. Data Access Layer - DAL (Tầng truy xuất dữ liệu): Sử dụng ADO.NET tương tác trực tiếp với Microsoft SQL Server thông qua các câu lệnh tham số hóa (Parameterized Queries) và Stored Procedures, ngăn chặn tấn công SQL Injection.
+----------------------------------------------------------------+
|                   THIẾT KẾ CƠ SỞ DỮ LIỆU CHUẨN 3NF             |
+----------------------------------------------------------------+
|  tbl_KhachHang (MaKH, TenKH, DiaChi, MaSoThue, SoDT)           |
|         | 1                                                    |
|         | N                                                    |
|  tbl_HoaDonBanHang (SoHD, NgayLap, MaKH, HinhThucTT, TongTien) |
|         | 1                                                    |
|         | N                                                    |
|  tbl_ChiTietHoaDon (SoHD, MaSP, SoLuong, DonGia, ChietKhau)    |
|         | N                                                    |
|         | 1                                                    |
|  tbl_SanPhamDichVu (MaSP, TenSP, DonViTinh, DonGiaBan)         |
+----------------------------------------------------------------+

Hệ cơ sở dữ liệu quan hệ được chuẩn hóa từ dạng chuẩn 1 (1NF) đến dạng chuẩn 3 (3NF), triệt tiêu các dị thường thêm (insertion anomalies), sửa đổi (update anomalies) và xóa (deletion anomalies). Cấu trúc bảng vật lý tiêu biểu:

-- Thiết kế bảng Hóa đơn bán hàng
CREATE TABLE tbl_HoaDonBanHang (
    SoHD NVARCHAR(20) PRIMARY KEY,
    NgayLap DATE NOT NULL,
    MaKH NVARCHAR(20) NOT NULL,
    DienGiai NVARCHAR(255),
    HinhThucTT NVARCHAR(50) DEFAULT N'Chưa thanh toán',
    MaTKNoc NVARCHAR(10) NOT NULL, -- TK 131, 111, 112
    MaTKCo NVARCHAR(10) NOT NULL,  -- TK 5111, 5112, 5113
    ThueSuatGTGT DECIMAL(5,2) DEFAULT 10.00,
    TongTienChuaThue DECIMAL(18,2) NOT NULL,
    TienThueGTGT DECIMAL(18,2) NOT NULL,
    TongTienThanhToan DECIMAL(18,2) NOT NULL,
    CONSTRAINT FK_HoaDon_KhachHang FOREIGN KEY (MaKH) REFERENCES tbl_KhachHang(MaKH)
);

-- Thiết kế bảng Chi tiết hóa đơn bán hàng
CREATE TABLE tbl_ChiTietHoaDon (
    ID INT IDENTITY(1,1) PRIMARY KEY,
    SoHD NVARCHAR(20) NOT NULL,
    MaSP NVARCHAR(20) NOT NULL,
    SoLuong INT NOT NULL CHECK (SoLuong > 0),
    DonGia DECIMAL(18,2) NOT NULL CHECK (DonGia >= 0),
    TyLeChietKhau DECIMAL(5,2) DEFAULT 0.00,
    TienChietKhau AS (SoLuong * DonGia * TyLeChietKhau / 100),
    ThanhTien AS ((SoLuong * DonGia) - (SoLuong * DonGia * TyLeChietKhau / 100)),
    CONSTRAINT FK_CTHD_HoaDon FOREIGN KEY (SoHD) REFERENCES tbl_HoaDonBanHang(SoHD) ON DELETE CASCADE,
    CONSTRAINT FK_CTHD_SanPham FOREIGN KEY (MaSP) REFERENCES tbl_SanPhamDichVu(MaSP)
);

Methodology

Quy trình phát triển phần mềm tuân thủ phương pháp luận Phân tích và Thiết kế Hệ thống Có cấu trúc (SSADM - Structured Systems Analysis and Design Method), kết hợp với mô hình Thác nước (Waterfall Model) có kiểm soát chất lượng qua từng giai đoạn:

  • Tuần 1 - 3 (Khảo sát hiện trạng & Xác định yêu cầu): Thu thập mẫu chứng từ thực tế (Hóa đơn GTGT, Phiếu thu, Sổ cái TK 511, Bảng kê chiết khấu), phỏng vấn kế toán trưởng và nhân viên bán hàng CMC Software.
  • Tuần 4 - 7 (Phân tích hệ thống): Xây dựng sơ đồ phân cấp chức năng (BFD), biểu đồ ngữ cảnh, biểu đồ luồng dữ liệu DFD mức 0 và mức 1, lập ma trận thực thể chức năng (CRUD Matrix).
  • Tuần 8 - 11 (Thiết kế hệ thống logic và vật lý): Xây dựng mô hình E-R, chuẩn hóa cơ sở dữ liệu 3NF, thiết kế giao diện Form (UI) và kiến trúc tầng dữ liệu.
  • Tuần 12 - 14 (Lập trình & Đóng gói): Viết mã nguồn C#, cài đặt các lớp kết nối CSDL, lập trình thủ tục giao dịch và kiểm soát lỗi.
  • Tuần 15 - 16 (Kiểm thử, Đào tạo & Chuyển giao): Thực hiện kiểm thử đơn vị (Unit Test), kiểm thử tích hợp (Integration Test), nghiệm thu người dùng (UAT) và tài liệu hóa.

Kế hoạch quản trị rủi ro:

  • Rủi ro sai lệch số dư kế toán: Kiểm soát tự động bằng ràng buộc Transaction cấp CSDL; nếu bảng cân đối không khớp, toàn bộ giao dịch được Rollback.
  • Rủi ro mất dữ liệu máy chủ: Lập lịch tự động sao lưu định kỳ (Differential/Full Backup hàng ngày lúc 23:00).

Implementation và kết quả

Development process

Quá trình lập trình sử dụng Microsoft Visual Studio trên nền tảng .NET Framework và ngôn ngữ C#. Hệ thống áp dụng mẫu kiến trúc hướng đối tượng với các lớp Helper chuyên biệt cho quản lý kết nối CSDL, xử lý chuỗi và xác thực tài chính.

Đoạn mã nguồn dưới đây minh họa giải thuật xử lý lưu hóa đơn bán hàng và tự động cập nhật sổ nhật ký chung với cơ chế kiểm soát giao dịch nguyên tử (SqlTransaction), đảm bảo dữ liệu ghi nhận doanh thu và công nợ luôn đồng bộ tuyệt đối:

using System;
using System.Data;
using System.Data.SqlClient;

public class SalesInvoiceProcessor
{
    private string connectionString = @"Data Source=SERVER_CMC;Initial Catalog=CMC_AccountingDB;Integrated Security=True";

    public bool PostSalesInvoice(string soHD, DateTime ngayLap, string maKH, string dienGiai, 
                                DataTable dtChiTiet, string maTKNo, string maTKCo, decimal thueSuat)
    {
        using (SqlConnection conn = new SqlConnection(connectionString))
        {
            conn.Open();
            SqlTransaction transaction = conn.BeginTransaction(IsolationLevel.ReadCommitted);

            try
            {
                decimal tongTienChuaThue = 0;
                decimal tongChietKhau = 0;

                // Tính toán tổng tiền từ dữ liệu chi tiết
                foreach (DataRow row in dtChiTiet.Rows)
                {
                    int soLuong = Convert.ToInt32(row["SoLuong"]);
                    decimal donGia = Convert.ToDecimal(row["DonGia"]);
                    decimal tyLeCK = Convert.ToDecimal(row["TyLeChietKhau"]);
                    
                    decimal tienHang = soLuong * donGia;
                    decimal chietKhau = tienHang * (tyLeCK / 100);
                    
                    tongTienChuaThue += (tienHang - chietKhau);
                    tongChietKhau += chietKhau;
                }

                decimal tienThueGTGT = tongTienChuaThue * (thueSuat / 100);
                decimal tongTienThanhToan = tongTienChuaThue + tienThueGTGT;

                // 1. Lưu Master Record: tbl_HoaDonBanHang
                string insertMasterSql = @"INSERT INTO tbl_HoaDonBanHang 
                    (SoHD, NgayLap, MaKH, DienGiai, MaTKNo, MaTKCo, ThueSuatGTGT, TongTienChuaThue, TienThueGTGT, TongTienThanhToan) 
                    VALUES (@SoHD, @NgayLap, @MaKH, @DienGiai, @MaTKNo, @MaTKCo, @ThueSuat, @TongChuaThue, @TienThue, @TongThanhToan)";

                using (SqlCommand cmdMaster = new SqlCommand(insertMasterSql, conn, transaction))
                {
                    cmdMaster.Parameters.AddWithValue("@SoHD", soHD);
                    cmdMaster.Parameters.AddWithValue("@NgayLap", ngayLap);
                    cmdMaster.Parameters.AddWithValue("@MaKH", maKH);
                    cmdMaster.Parameters.AddWithValue("@DienGiai", dienGiai);
                    cmdMaster.Parameters.AddWithValue("@MaTKNo", maTKNo);
                    cmdMaster.Parameters.AddWithValue("@MaTKCo", maTKCo);
                    cmdMaster.Parameters.AddWithValue("@ThueSuat", thueSuat);
                    cmdMaster.Parameters.AddWithValue("@TongChuaThue", tongTienChuaThue);
                    cmdMaster.Parameters.AddWithValue("@TienThue", tienThueGTGT);
                    cmdMaster.Parameters.AddWithValue("@TongThanhToan", tongTienThanhToan);
                    cmdMaster.ExecuteNonQuery();
                }

                // 2. Lưu Detail Records: tbl_ChiTietHoaDon
                string insertDetailSql = @"INSERT INTO tbl_ChiTietHoaDon 
                    (SoHD, MaSP, SoLuong, DonGia, TyLeChietKhau) 
                    VALUES (@SoHD, @MaSP, @SoLuong, @DonGia, @TyLeCK)";

                foreach (DataRow row in dtChiTiet.Rows)
                {
                    using (SqlCommand cmdDetail = new SqlCommand(insertDetailSql, conn, transaction))
                    {
                        cmdDetail.Parameters.AddWithValue("@SoHD", soHD);
                        cmdDetail.Parameters.AddWithValue("@MaSP", row["MaSP"].ToString());
                        cmdDetail.Parameters.AddWithValue("@SoLuong", Convert.ToInt32(row["SoLuong"]));
                        cmdDetail.Parameters.AddWithValue("@DonGia", Convert.ToDecimal(row["DonGia"]));
                        cmdDetail.Parameters.AddWithValue("@TyLeCK", Convert.ToDecimal(row["TyLeChietKhau"]));
                        cmdDetail.ExecuteNonQuery();
                    }
                }

                // Cam kết giao dịch thành công
                transaction.Commit();
                return true;
            }
            catch (Exception ex)
            {
                // Hoàn tác nếu có bất kỳ lỗi nào xảy ra
                transaction.Rollback();
                throw new ApplicationException("Lỗi hạch toán hóa đơn bán hàng: " + ex.Message, ex);
            }
        }
    }
}

Testing và validation

Hệ thống trải qua 120 kịch bản kiểm thử (Test Cases), bao gồm kiểm thử chức năng, kiểm thử giá trị biên và kiểm thử chịu tải cơ sở dữ liệu.

+-------------------------------------------------------------------+
|               KẾT QUẢ KIỂM THỬ HỆ THỐNG PHẦN MỀM                  |
+-------------------------------------------------------------------+
|  Tổng số kịch bản kiểm thử (Test Cases) : 120                      |
|  Kịch bản Pass ngay lần đầu             : 112 (93.3%)             |
|  Kịch bản phát hiện lỗi (Defects)       : 8   (6.7%)              |
|  Tỷ lệ sửa lỗi và Pass sau Re-test      : 100%                    |
|  Thời gian phản hồi truy vấn báo cáo    : 0.45s (Chuẩn: < 2.0s)   |
+-------------------------------------------------------------------+

Chi tiết kiểm thử hiệu năng và độ chính xác dữ liệu:

  • Kiểm thử tính toàn vẹn giao dịch (ACID Test): Giả lập sự cố mất điện/ngắt mạng đột ngột trong khi lưu hóa đơn chứa 50 dòng mặt hàng. Kết quả kiểm tra cơ sở dữ liệu xác nhận không xuất hiện bản ghi mồ côi (Orphan Record), dữ liệu quay về trạng thái an toàn 100%.
  • Kiểm thử cân đối Nợ - Có: Tạo 500 bút toán ngẫu nhiên có chiết khấu và thuế suất khác nhau. Thuật toán kiểm soát luôn đảm bảo $\sum \text{Phát sinh Nợ} = \sum \text{Phát sinh Có}$ với sai số $0.00$ VNĐ.
  • Hiệu năng truy vấn: Thử nghiệm truy xuất Báo cáo tổng hợp doanh thu thuần trên tập dữ liệu $50.000$ bản ghi hóa đơn đạt thời gian phản hồi trung bình $450\text{ ms}$.

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

Hệ thống đã hoàn thiện đầy đủ các phân hệ nghiệp vụ đã đề ra:

Phân hệ chức năng Trạng thái kế hoạch Kết quả thực tế Ghi chú đánh giá
Quản lý danh mục 100% Hoàn thành 100% Quản lý KH, Sản phẩm, Tài khoản linh hoạt
Hạch toán doanh thu (TK 511) 100% Hoàn thành 100% Tự động phân tách doanh thu phần mềm & dịch vụ
Quản lý giảm trừ (TK 521) 100% Hoàn thành 100% Hạch toán chiết khấu, trả lại chính xác
Báo cáo & Kết xuất hóa đơn 100% Hoàn thành 100% Xuất mẫu 01-GTKT-3LL, báo cáo quản trị
Bảo mật & Phân quyền 100% Hoàn thành 100% Phân quyền Admin, Kế toán viên, Quản lý

Đánh giá UAT từ 12 nhân sự tại phòng Tài chính - Kế toán CMC Software cho thấy điểm số hài lòng đạt 9.2/10, đặc biệt đánh giá cao tính thân thiện của form nhập liệu và tốc độ trích xuất báo cáo nhanh gấp 10 lần phương pháp cũ.


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

Đồ án mang lại những giá trị cải tiến kỹ thuật và ứng dụng thực tiễn rõ rệt:

  • Tự động hóa hoàn toàn chu trình hạch toán kép: Loại bỏ quy trình tính toán phân bổ thuế và chiết khấu bằng tay. Khi kế toán nhập tỷ lệ chiết khấu thương mại, hệ thống tự động ghi giảm trừ vào tài khoản cấp hai (TK 5211) và kết chuyển doanh thu thuần sang tài khoản xác định kết quả kinh doanh (TK 911) cuối kỳ.
  • Kiểm soát tính hợp thức dữ liệu tại thời gian thực (Real-time Validation): Tích hợp thuật toán xác thực Mã số thuế doanh nghiệp (theo thuật toán Modulo 11 của Tổng cục Thuế) và kiểm tra số dư công nợ khách hàng trước khi cho phép xuất hóa đơn mới.
  • So sánh cải tiến hiệu suất:
    • Tốc độ lập chứng từ: Giảm từ trung bình 8 phút/hóa đơn xuống còn 1.5 phút/hóa đơn (tăng hiệu suất 81.25%).
    • Tỷ lệ sai sót số liệu: Giảm từ 4.2% xuống còn 0% đối với các lỗi toán học và lỗi lệch tài khoản đối ứng.
    • Thời gian tổng hợp báo cáo tháng: Giảm từ 3 ngày xuống còn dưới 1 phút.
  • Đóng góp học thuật và ngành: Đồ án cung cấp một tài liệu tham khảo hoàn chỉnh về phương pháp luận ứng dụng SSADM vào tin học hóa kế toán doanh thu bán hàng cho sinh viên ngành Hệ thống Thông tin Kinh tế và Kế toán doanh nghiệp.

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

Kịch bản sử dụng thực tế (Use Case)

Kịch bản: Công ty CMC Software ký hợp đồng cung cấp phần mềm Quản lý bệnh viện trị giá 200.000.000 VNĐ cho Khách hàng A, thanh toán chuyển khoản, chiết khấu thương mại 5%, thuế GTGT 10%.

  1. Nhân viên kế toán mở Form "Lập Hóa Đơn Bán Hàng", gõ mã khách hàng KH0012 $\rightarrow$ Hệ thống tự động điền Tên, Địa chỉ, Mã số thuế.
  2. Chọn mã sản phẩm SP_HIS_01, số lượng 1, đơn giá 200.000.000, nhập tỷ lệ chiết khấu 5%.
  3. Hệ thống tự động tính:
    • Tiền chiết khấu: $10.000.000\text{ VNĐ}$
    • Doanh thu chưa thuế: $190.000.000\text{ VNĐ}$
    • Thuế GTGT (10%): $19.000.000\text{ VNĐ}$
    • Tổng thanh toán: $209.000.000\text{ VNĐ}$
  4. Chọn định khoản: Nợ TK 1121 ($209.000.000$), Có TK 5113 ($190.000.000$), Có TK 33311 ($19.000.000$).
  5. Nhấn "Lưu & In" $\rightarrow$ Dữ liệu ghi vào SQL Server trong $0.3\text{ giây}$, hóa đơn GTGT hiển thị trên màn hình sẵn sàng in.

Yêu cầu triển khai và Đánh giá hiệu quả kinh tế (ROI)

Yêu cầu hệ thống phần cứng/phần mềm:

  • Máy chủ (Database Server): CPU Dual Core 2.0 GHz trở lên, RAM 8GB, Ổ cứng SSD 120GB, Windows Server 2012/2016/2019, SQL Server 2014 trở lên.
  • Máy trạm (Client Workstation): CPU Intel Core i3, RAM 4GB, Windows 7/10/11, .NET Framework 4.5+.
  • Mạng: Mạng cục bộ (LAN) băng thông tối thiểu 100 Mbps.
+-----------------------------------------------------------------------+
|                    PHÂN TÍCH TÀI CHÍNH VÀ HOÀN VỐN (ROI)              |
+-----------------------------------------------------------------------+
|  Tổng chi phí đầu tư ban đầu (CAPEX)       : 22.000.000 VNĐ           |
|  - Bản quyền SQL Server Express & Tool     : 0 VNĐ                    |
|  - Chi phí triển khai, đào tạo & hạ tầng   : 22.000.000 VNĐ           |
|  Tiết kiệm chi phí vận hành hàng tháng     : 5.000.000 VNĐ/tháng      |
|  (Giảm 50 giờ lao động bán hàng/kế toán)                              |
|  Thời gian hoàn vốn ước tính (Payback)     : 4.4 tháng                |
|  Tỷ suất sinh lời nội bộ (ROI sau 1 năm)   : 172%                     |
+-----------------------------------------------------------------------+

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

Dù đạt được những mục tiêu đặt ra, hệ thống vẫn tồn tại một số hạn chế kỹ thuật:

  • Kiến trúc ứng dụng cục bộ: Ứng dụng Desktop WinForms hạn chế khả năng truy cập từ xa ngoài mạng nội bộ của ban lãnh đạo khi đi công tác.
  • Chưa tích hợp API Hóa đơn điện tử: Chưa kết nối trực tiếp qua Web Service với hệ thống của các nhà cung cấp hóa đơn điện tử (như VNPT, Viettel, M-Invoice) và cơ quan Thuế.
  • Xử lý bất đồng bộ còn hạn chế: Các tác vụ in ấn hàng loạt chứng từ lớn có thể gây nghẽn nhẹ luồng giao diện người dùng (UI Thread).

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

  1. Nâng cấp toàn bộ hệ thống lên kiến trúc Web/Cloud-native sử dụng ASP.NET Core Web API kết hợp React hoặc Blazor, hỗ trợ truy cập đa nền tảng (Web, Tablet, Smartphone).
  2. Xây dựng phân hệ tích hợp tự động qua RESTful API để đẩy hóa đơn lên hệ thống Hóa đơn điện tử có mã của Cơ quan Thuế theo Nghị định 123/2020/NĐ-CP.
  3. Ứng dụng các giải pháp phân tích dữ liệu nâng cao (Business Intelligence - BI) nhằm dự báo dòng tiền và xu hướng doanh thu dịch vụ phần mềm dựa trên chuỗi thời gian (Time-series Forecasting).

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

Hệ thống và tài liệu đồ án mang lại giá trị định lượng cụ thể cho nhiều nhóm đối tượng:

  • Sinh viên chuyên ngành CNTT & HTTT Kinh tế:
    • Sở hữu một mô hình mẫu chuẩn chỉnh về việc kết hợp giữa lý thuyết kế toán tài chính và kỹ thuật phần mềm C#/.NET.
    • Học hỏi phương pháp chuẩn hóa dữ liệu quan hệ (1NF $\rightarrow$ 3NF) và vẽ biểu đồ luồng dữ liệu DFD đúng quy chuẩn.
  • Kỹ sư phần mềm & Lập trình viên:
    • Tham khảo kiến trúc 3 lớp rõ ràng và kỹ thuật xử lý SqlTransaction để quản lý các giao dịch kế toán có độ rủi ro cao.
    • Tái sử dụng các mẫu thiết kế (Design Patterns) và các biểu mẫu nhập liệu tối ưu hóa cho bàn phím số (Numpad).
  • Doanh nghiệp vừa và nhỏ (SMEs):
    • Tiếp cận một giải pháp phần mềm quản lý doanh thu bán hàng chi phí thấp, tối ưu theo đúng chế độ kế toán hiện hành.
    • Tiết kiệm hàng chục triệu đồng chi phí mua sắm các phần mềm ERP cồng kềnh không sử dụng hết tính năng.
  • Giảng viên và Nhà nghiên cứu:
    • Sử dụng làm tài liệu giảng dạy thực tế, minh họa sống động cho môn học "Phân tích thiết kế hệ thống thông tin kế toán" và "Lập trình ứng dụng cơ sở dữ liệu".

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

1. Cấu hình máy tính tối thiểu để cài đặt và vận hành phần mềm là gì?

Máy tính cần chạy hệ điều hành Windows 7 SP1 trở lên, cấu hình tối thiểu vi xử lý Intel/AMD 1.8 GHz, RAM 2GB, dung lượng ổ cứng trống tối thiểu 500MB và đã cài đặt Microsoft .NET Framework 4.5 cùng Microsoft SQL Server 2008 R2/2014 trở lên.

2. Phần mềm xử lý sự cố mất điện đột ngột khi đang lưu hóa đơn như thế nào?

Hệ thống sử dụng cơ chế kiểm soát giao dịch SqlTransaction ở mức cô lập ReadCommitted. Nếu có sự cố mất kết nối hoặc ngắt nguồn khi dữ liệu chưa được ghi trọn vẹn vào cả 2 bảng Master và Detail, hệ thống cơ sở dữ liệu sẽ tự động Rollback về trạng thái trước giao dịch, hoàn toàn không gây sai lệch số dư.

3. Phần mềm có hỗ trợ theo dõi doanh thu theo từng hợp đồng phần mềm không?

Có. Trong cơ sở dữ liệu, mỗi hóa đơn hoặc chứng từ bán hàng đều được liên kết trực tiếp với mã danh mục sản phẩm/dịch vụ hoặc số hợp đồng tương ứng, cho phép kế toán trích xuất báo cáo doanh thu lũy kế theo từng hợp đồng độc lập.

4. Chi phí bảo trì và nâng cấp hệ thống định kỳ là bao nhiêu?

Do hệ thống được phát triển trên công nghệ chuẩn của Microsoft, chi phí bảo trì định kỳ rất thấp (chủ yếu là công tác sao lưu dữ liệu SQL Server tự động và dọn dẹp log tệp tin hàng quý, ước tính dưới 1.000.000 VNĐ/tháng nếu thuê ngoài).

5. Dữ liệu kế toán xuất ra từ phần mềm có thể chuyển sang Excel để làm việc tiếp không?

Có. Tất cả các lưới dữ liệu (DataGridView), báo cáo doanh thu, sổ chi tiết TK 511 và hóa đơn đều tích hợp module xuất trực tiếp sang định dạng .xlsx hoặc .csv chỉ với một cú nhấp chuột.


Kết luận

Đồ án tốt nghiệp "Xây dựng phần mềm kế toán doanh thu bán hàng tại Công ty TNHH CMC Software" của sinh viên Phạm Thị Phương đã giải quyết thành công bài toán chuyển đổi số nghiệp vụ kế toán doanh thu từ phương thức thủ công sang hệ thống phần mềm chuyên nghiệp. Bằng việc kết hợp chặt chẽ giữa lý luận kế toán doanh nghiệp theo chuẩn mực Việt Nam và kỹ thuật phân tích thiết kế hệ thống hiện đại, đồ án đã hiện thực hóa một ứng dụng C#/.NET - SQL Server có độ tin cậy cao, đảm bảo tính toàn vẹn giao dịch tài chính và tối ưu hóa 75% thời gian xử lý nghiệp vụ cho kế toán viên.

Đây không chỉ là một công trình nghiên cứu ứng dụng có giá trị thực tiễn trực tiếp tại đơn vị thực tập CMC Software mà còn là tài liệu tham khảo kỹ thuật hữu ích cho cộng đồng học thuật và các nhà phát triển giải pháp công nghệ tài chính trong tương lai.