Dưới đây là diễn giải chi tiết toàn bộ chu kỳ sống (Vòng đời Flow Công Nợ) từ khi bắt đầu phát sinh đến khi thanh toán xong dành cho mã Nhà cung cấp NCC-011, bám sát theo Business Logic 4 lớp của hệ thống VinhPhatERP v3.
Giai đoạn 1: Khởi nguồn - Ghi nhận nợ (Nợ Tăng)
Công nợ không sinh ra ngay khi tạo nháp chứng từ. Hệ thống bảo mật dòng tiền bằng cách chỉ kích hoạt công nợ ở các "Điểm chốt" (Check-points) mang tính xác nhận.
Kịch bản A: NCC-011 giao Sợi (Yarn Receipt)
- Thủ kho lập Phiếu nhập sợi. Trạng thái phiếu là pending -> Công nợ không đổi.
- Quản lý kiểm tra hàng, đối chiếu giá và bấm Xác nhận Nhập kho. Trạng thái phiếu chuyển sang confirmed với tổng tiền 100,000,000đ.
- Database Trigger (sync_yarn_receipt_debt) tự động bắt sự kiện:
- Cộng thêm 100,000,000đ vào số dư (balance) của NCC-011 tại bảng supplier_debt.
- Ghi lại vết lịch sử vào supplier_debt_transactions với loại là purchase (Mua hàng) kèm lời diễn giải: "Nhập sợi - [Mã phiếu]".
Kịch bản B: Giao NCC-011 Gia công dệt (Work Orders & Weaving Invoices)
- Lập Lệnh dệt giao cho NCC-011 (Trạng thái in_progress).
- Lúc này chưa thành nợ chính thức trên sổ cái (balance không đổi).
- Tuy nhiên, hệ thống cảnh báo quản trị trên View báo cáo tổng hợp: Có một khoản Nợ tiềm ẩn (Pending Liability) = (Số m thực tế) x (Đơn giá dệt).
- Khi hoàn thành, Kế toán đối soát và lập Hóa đơn dệt (weaving_invoices) chốt công dệt là 50,000,000đ.
- Database Trigger (sync_weaving_invoice_debt) kích hoạt ngay khi Hóa đơn dệt được lưu:
- Cộng thêm 50,000,000đ vào số dư đang có.
- Ghi lịch sử tiếp theo vào supplier_debt_transactions loại purchase.
(Đến đây, Hệ thống ghi nhận Tổng Nợ Sổ Cái của NCC-011: 150,000,000đ).
Giai đoạn 2: Chi trả - Thanh toán (Nợ Giảm)
Khi kế toán thực hiện thanh toán một phần hoặc toàn bộ số tiền cho NCC-011.
- Kế toán vào màn hình Thanh toán, tạo một phiếu chi / ghi nhận thanh toán 80,000,000đ (Trả qua ngân hàng).
- Khi xác nhận phiếu chi, hệ thống không chạy Trigger mà gọi trực tiếp RPC chuyên biệt rpc_pay_supplier_debt để thanh toán nguyên tử (Atomic). Quá trình diễn ra như sau:
- Bảo mật giao dịch (Lock Row): Khóa dòng công nợ của NCC-011 lại để đề phòng cùng lúc có kế toán thứ 2 cũng ấn thanh toán.
- Tính toán trừ nợ: 150,000,000đ - 80,000,000đ. Cập nhật số dư cuối cùng (balance) xuống còn 70,000,000đ.
- Lưu một dòng Log vào supplier_debt_transactions loại payment (Thanh toán). Đồng tiền giao dịch này cũng phản ánh sang phân hệ dòng tiền Công ty / Quản lý quỹ hằng ngày.
Giai đoạn 3: Sự cố & Trả hàng - Triệt tiêu công nợ (Điều chỉnh giảm)
Trong trường hợp trả hàng lỗi hoặc hủy giao dịch với NCC-011, hệ thống có cơ chế bảo vệ kép.
Ví dụ: Phát hiện 1 lô Mộc dệt lỗi, thay vì làm phiếu xuất trả thủ công và trừ tiền âm, Quản lý chuyển Hóa đơn Dệt/Phiếu Dệt từ completed (hoàn tất) về trạng thái cancelled (Hủy bỏ).
- Trigger của hệ thống phát hiện sự kiện đổi trạng thái từ "Đã lưu" -> "Đã hủy".
- Hệ thống Rollback (Lùi) công nợ: Tự động Trừ lùi lại đúng con số 50,000,000đ ban đầu. Balance của NCC-011 đang từ 70,000,000đ tụt xuống còn 20,000,000đ.
- Hệ thống lưu thêm dòng Log loại adjustment (Điều chỉnh) vào sổ cái. Lịch sử của NCC-011 sẽ ghi nhận rành mạch: Từng nợ 50tr - Hủy bỏ lùi lại 50tr - Dư nợ giảm.
Giai đoạn 4: Quản trị Bức tranh Toàn cảnh ở Dashboard Góc Kế Toán
Trên góc độ Tổng hợp (Màn hình Giao diện SupplierDebtSummary.tsx hoặc báo cáo xuất Excel), khi Giám đốc mở lên xem "Tình hình tài chính NCC-011". Dữ liệu không chỉ bốc từ supplier_debt mà chạy qua View phân tích v_supplier_debt, cho ra các chỉ số:
- Tổng lượng mua (Total Purchased): Tất tần tật các phiếu Nhập Sợi (confirmed) + Hóa đơn dệt.
- Tổng lượng đã trả (Total Paid): Toàn bộ Phiếu chi (Expenses) + Tiền đã thanh toán.
- Số dư hiện nợ (Balance Due): Số liệu cứng đối chiếu trực tiếp từ Sổ cái.
- Nợ tiềm ẩn (Pending Work Value): Rủi ro phải trả trong tháng tới (Cho các Lệnh đang làm dở).
Chuỗi quy trình trên diễn ra khép kín ở tầng Database (Hạ tầng 1) thông qua Triggers và Rule Set chặn bắt, việc này đảm bảo giao diện dù có sập, mạng bị lag hoặc lập trình UI thiếu bước gọi API thì dữ liệu Sổ Nợ (Ledger) của NCC-011 VẪN LUÔN LUÔN CHUẨN XÁC, không thể bóp méo số liệu kế toán.
#VinhPhatERP #CongNoNhaCungCap #KienTrucHeThong #DatabaseTriggers #ERPV3