Giao diện
Công nợ AR/AP — Net Offset & P&L per Shipment
TKHQ tổng hợp phải thu (AR), phải trả (AP), cấn trừ 2 chiều theo từng đối tác, tính P&L từng lô hàng và tự động nhắc nợ theo tuổi nợ.
Theo dõi phải thu / phải trả per partner, cấn trừ 2 chiều, P&L từng lô hàng, nhắc nợ thông minh. Route: /finance/cong-no.
Tổng quan
TKHQ hiển thị nhanh tổng phải thu (AR), tổng phải trả (AP), số đơn quá hạn, tuổi nợ trung bình theo workspace.
KPI công nợ:
| Chỉ số | Giá trị ví dụ | Ý nghĩa |
|---|---|---|
| Phải thu (AR) | 1.520.300.000 ₫ | Tổng khách hàng còn nợ |
| Phải trả (AP) | 845.700.000 ₫ | Tổng mình còn nợ nhà cung cấp |
| Quá hạn | 234.000.000 ₫ | Trên 9 hoá đơn đã quá ngày thanh toán |

Net offset cấn trừ
Khi một đối tác vừa có AR (họ nợ mình) vừa có AP (mình nợ họ), cấn trừ 2 chiều để chỉ thanh toán số chênh lệch.
Ví dụ cấn trừ:
| Chiều | Khoản | Số tiền |
|---|---|---|
| AR | Cước dịch vụ forwarder tháng 5 | 120.000.000 ₫ |
| AP | Cước xe container 3 chuyến | 80.000.000 ₫ |
| Net balance | Họ còn nợ sau cấn trừ | 40.000.000 ₫ |
Thực hiện cấn trừ
Vào /partners/:id → tab Net Offset → chọn khoản AR và AP muốn cấn trừ → xác nhận. Hệ thống tạo settlement entry và ghi audit log.
P&L per shipment
P&L từng lô hàng (cost-per-shipment) tổng hợp tự động từ tất cả cost line liên kết với Shipment — bao gồm cả chi phí chuyến xe, nhiên liệu và chi phí thuê ngoài.
Cấu thành margin:
| Khoản mục | Nguồn | Ảnh hưởng margin |
|---|---|---|
| Doanh thu | shipmentRevenue | Cộng |
| Chi phí trip (xăng/cầu đường/thuê ngoài) | Tổng các trip liên kết lô hàng | Trừ, chỉ phần trip chưa phát hành báo nợ cho khách |
| Chi phí trip — đã thu lại | Trip đã có báo nợ Đã phát hành/Thu một phần/Đã thu | Net-0, không trừ (coi như đã thu lại) |
| Trị giá hải quan, adjustments | Tờ khai liên kết | Net-0 ở giai đoạn này |
| Dem/Det/Storage | Debit note accrual | Net-0 (re-bill qua debit note riêng) |
| Thuế + duty | Ước tính từ HS code policy | Net-0 ở giai đoạn này |
Xem P&L
Vào chi tiết Shipment → tab Tài chính → P&L. Hoặc tổng hợp tại /finance/cong-no → tab P&L per shipment với bộ lọc kỳ.
Chi phí đã báo nợ không trừ 2 lần vào margin
Chi phí chuyến xe (xăng, cầu đường, thuê ngoài) chỉ trừ vào margin khi trip đó chưa có báo nợ phát hành cho khách. Ngay khi báo nợ chuyển trạng thái Đã phát hành trở lên, phần chi phí tương ứng coi như đã thu lại — không trừ nữa. Card P&L hiển thị 2 dòng riêng: "chưa thu lại" (trừ margin) và "đã thu lại" (chip riêng, không trừ). Xem chi tiết luồng sinh báo nợ tại Debit Note — Phụ phí & Trip Cost.
Liên kết xăng → Trip → Shipment
Chi phí xăng tự động chảy: FuelLog → Trip.fuelCost → Shipment.tripCosts → P&L. Không cần nhập tay — xem hướng dẫn tại Quản lý nhiên liệu.
Đối soát nhà xe
Đối soát nhà xe (carrier reconciliation) so chiếu chi phí chuyến ghi trong hệ thống với số tiền hóa đơn nhà xe gửi, phát hiện chênh lệch để xử lý trước khi ghi công nợ phải trả (AP).
Tạo một bản ghi đối soát:
- Vào
/finance/carrier-reconciliation→ Tạo đối soát - Chọn đối tác nhà xe
- (Tuỳ chọn) Gắn với một Chuyến (Trip) cụ thể — nếu chọn, chi phí chuyến lấy tự động từ hệ thống, số bạn nhập vào ô "Chi phí chuyến" bị bỏ qua
- (Tuỳ chọn) Chọn hóa đơn từ kho chứng từ — nếu hóa đơn đã được trích xuất, số hóa đơn và số tiền tự điền sẵn (có thể sửa)
- Nhập số tiền hóa đơn, tiền tệ, tỷ giá nếu khác VND
- Lưu → hệ thống tự tính chênh lệch và gắn trạng thái Khớp hoặc Lệch theo ngưỡng dung sai
Không gắn chuyến sẽ không truy vết được chi phí fleet
Nếu bỏ qua bước chọn Chuyến, hệ thống hiển thị cảnh báo ngay trong form tạo — bản ghi đối soát đó sẽ không liên kết được với chi phí chuyến thực tế trong sổ Fleet.
Bản ghi không gắn chuyến:
Danh sách đối soát đánh dấu nhãn "Không gắn chuyến" cho các bản ghi tạo mà không chọn Trip — hiện cả ở dòng danh sách, trang chi tiết và drawer chi tiết. Dùng công tắc "Chỉ hiện không gắn chuyến" phía trên bảng để lọc riêng nhóm này và xử lý dứt điểm.
Bấm vào một dòng trong danh sách đối soát để mở drawer chi tiết — so sánh side-by-side số tiền hệ thống (chi phí chuyến) và số tiền hóa đơn nhà xe, highlight chênh lệch tiền tệ nếu 2 bên khác đồng tiền, kèm ô ghi chú lý do xử lý (resolve note) ngay trong drawer.
Route FE: /finance/carrier-reconciliation
Sổ chi tiết
Sổ chi tiết per partner (partner ledger) — danh sách mọi giao dịch AR/AP của một đối tác, có chạy số dư tích luỹ.
Ví dụ sổ chi tiết:
| Ngày | Loại | Mã chứng từ | Phát sinh | Số dư |
|---|---|---|---|---|
| 2026-05-12 | Debit Note | DN-2026-0142 | + 24.000.000 ₫ | 120.000.000 ₫ |
| 2026-05-18 | Thanh toán | PMT-0301 | - 50.000.000 ₫ | 70.000.000 ₫ |
| 2026-05-25 | Invoice | INV-2026-0871 | + 86.000.000 ₫ | 156.000.000 ₫ |
| 2026-06-01 | Quá hạn | DN-2026-0142 | — | 156.000.000 ₫ |
Chi tiết công nợ từng đối tác
Xem đầy đủ phát sinh và đối chiếu từng dòng của một đối tác — lọc theo kỳ, loại chứng từ, hoặc trạng thái thanh toán.

Route FE: /finance/partner-ledger
Thêm phát sinh mới
Nút + Thêm phát sinh cho phép chọn nhanh partner và Debit Note liên quan qua ô gợi ý (autocomplete) thay vì gõ tay ID. Nếu chọn đồng tiền khác VND và nhập tỷ giá, số tiền quy đổi VND tự tính (amount × tỷ giá) — có thể ghi đè tay khi cần.
Thanh toán
Mỗi khoản thanh toán (payment) ghi nhận: ngày, kênh, người confirm, đối chiếu sao kê ngân hàng.
Timeline thanh toán ví dụ:
| Sự kiện | Ngày/Giờ | Trạng thái |
|---|---|---|
| Nhận chuyển khoản 50.000.000 ₫ — VCB *** 4321 | 18/05 09:14 | Hoàn thành |
| Confirm DN-2026-0142 thanh toán một phần — Kế toán Lan Anh | 18/05 10:30 | Hoàn thành |
| Gửi nhắc nợ INV-2026-0871 — Email tự động | 01/06 08:00 | Đang xử lý |
Tổng hợp quá hạn toàn workspace
Panel Công nợ quá hạn (AR tổng workspace) trên trang Sổ chi tiết tổng hợp AR chưa tất toán của mọi partner theo 5 mốc tuổi nợ, kèm tổng số tiền quá hạn.
| Mốc tuổi nợ | Ý nghĩa |
|---|---|
| Chưa đến hạn | AR còn trong hạn thanh toán |
| Quá hạn 1–30 ngày | Mới quá hạn |
| Quá hạn 31–60 ngày | Quá hạn trung bình |
| Quá hạn 61–90 ngày | Quá hạn nặng |
| Quá hạn >90 ngày | Rủi ro cao, cần xử lý ngay |
Cảnh báo quá hạn
Workflow nhắc nợ tự động chia 3 mốc theo tuổi nợ — escalate dần.
| Tuổi nợ | Trạng thái | Hành động auto |
|---|---|---|
| 0–7 ngày | SENT | Im lặng, hiển thị dashboard |
| 8–15 ngày | Cảnh báo | Email nhắc lần 1 |
| 16–30 ngày | Quá hạn | Email nhắc lần 2 + Slack alert chủ workspace |
| > 30 ngày | DISPUTED | Auto-escalate sale rep + tạm dừng credit |
Tạm dừng credit
Khi partner có khoản quá hạn > 30 ngày, đơn mới của partner đó cần approval của OWNER mới được phát hành.
Báo cáo kế toán
Trang Báo cáo kế toán (/finance/accounting-reports) tổng hợp số liệu kế toán quản trị dựa trên các bút toán đã ghi sổ (POSTED) — gồm 3 tab:
1. Bảng cân đối phát sinh (Trial balance)
Tổng Nợ / Có theo từng tài khoản kế toán, đúng trong một kỳ đã chọn (không cộng dồn các kỳ trước). Cuối bảng có dòng tổng cộng và nhãn Cân đối / Lệch để phát hiện ngay sai lệch bút toán.
2. P&L theo dimension
Xem doanh thu / chi phí / mức đóng góp gắn theo một đối tượng cụ thể — chọn loại đối tượng (Chuyến xe, Container, Shipment, Tài xế) và nhập ID, có thể lọc theo kỳ hoặc để trống để xem cộng dồn toàn thời gian.
Khi chọn dimension = Shipment, báo cáo hiện thêm dòng "Ước tính Wave A (shipment)" kèm nhãn Khớp hoặc mức lệch — đối chiếu số liệu P&L kế toán với số ước tính nhanh đã có sẵn ở lô hàng.
3. Đối chiếu sổ phụ (Reconcile GL ↔ AR/AP)
So khớp số dư sổ cái (GL) tài khoản Phải thu (131) và Phải trả (331) với sổ phụ công nợ per-đối tác — loại trừ các bút toán ghi tay (MANUAL) khỏi phép so khớp. Mỗi bên (AR/AP) hiện nhãn Khớp hoặc Lệch, kèm bảng chi tiết từng đối tác có chênh lệch. Tab này chỉ báo cáo, không tự sửa số liệu.
Xuất dữ liệu:
Ở đầu trang, chọn kỳ rồi bấm:
- Xuất sổ nhật ký — xuất sổ nhật ký chung (journal) của kỳ đã chọn
- Xuất VAT vào / VAT ra — xuất sổ thuế GTGT đầu vào hoặc đầu ra của kỳ đã chọn
Cùng điều kiện truy cập với Dự báo dòng tiền
Báo cáo kế toán yêu cầu workspace có module Tài chính, tương tự trang Dự báo dòng tiền.
Duyệt chi giá trị lớn (Maker-Checker)
Với các thao tác tài chính giá trị lớn, TKHQ bắt buộc người duyệt khác người tạo (maker ≠ checker) trước khi thao tác có hiệu lực:
- Thu tiền Debit Note: khoản thu ≥ 5.000.000 ₫ phải qua duyệt
- Resolve đối soát nhà xe: chênh lệch ≥ 500.000 ₫ hoặc ≥ 5% giá trị chuyến phải qua duyệt
Yêu cầu chờ duyệt hiển thị tại /finance/approvals — danh sách gồm loại thao tác, tham chiếu, số tiền, người tạo, ngày tạo. Người duyệt xem chi tiết và approve/reject trực tiếp; hệ thống chặn nếu người duyệt trùng người tạo.