Chào các anh/chị,
Hiện tại tại App 13 (Ngân sách), em cần tính tổng Chi phí cam kết (Committed Cost) cho từng Dòng ngân sách nhằm kiểm soát trần chi tiêu. Tuy nhiên, giá trị cam kết này lại phát sinh từ hai nguồn khác nhau:
-
App 16 (Đơn mua hàng - PO): ghi nhận khi PO được phê duyệt.
-
App 22 (Gói thầu phụ): ghi nhận khi hợp đồng giao khoán chuyển sang trạng thái Đang thực hiện.
Em đang cân nhắc giữa hai phương án:
Phương án 1 – Rollup + Formula
Tạo 2 trường Rollup riêng trên App Ngân sách:
- Committed_PO
- Committed_Subcontract.
- Sau đó sử dụng trường Formula để tính:
- Committed = Committed_PO + Committed_Subcontract
Phương án 2 – Automation cộng dồn trực tiếp theo spec yêu cầu
-
Tạo trường Committed dạng Number.
-
Thiết lập Automation từ App PO và App Gói thầu phụ để cộng dồn giá trị vào trường này khi chứng từ đủ điều kiện ghi nhận cam kết.
Hiện tại em đang chọn về Phương án 1 vì dữ liệu tài chính cần đảm bảo tính chính xác và khả năng đối soát. Việc sử dụng Rollup giúp giá trị cam kết luôn được tính toán dựa trên dữ liệu nguồn hiện tại và cập nhật theo thời gian thực.
Trong khi đó, với Phương án 2, em lo ngại các trường hợp PO hoặc Hợp đồng thầu phụ bị hủy, điều chỉnh giá trị hoặc thay đổi trạng thái sau khi đã ghi nhận cam kết. Khi đó Automation sẽ phải xử lý các nghiệp vụ hoàn tác (rollback) hoặc cập nhật chênh lệch. Nếu logic không được thiết kế đầy đủ, có thể dẫn đến sai lệch số liệu ngân sách.
Không biết trong các dự án thực tế, các anh/chị thường ưu tiên hướng tiếp cận nào cho bài toán này? Rất mong nhận được thêm góc nhìn và kinh nghiệm từ mọi người. Em cảm ơn ạ.