供应商付款三单匹配策略 (3-Way Match)
写在前面(给财务人员): 本文档是 “规则字典” (Rulebook)。 它主要讲解 Odoo 中如何自动判定一笔供应商账单“应不应该付”,通过比对“采购价格与数量”和“收货数量”来避免错付和多付。
1. 规则定义 (Policy Definition)
- 概念解释:三单匹配 (3-Way Match) 是指在供应商结款前,系统自动将 采购单 (PO)、入库单 (Receipt) 和 供应商账单 (Bill) 这三个环节的数据进行比对。
- 业务目标:
- 防止未收货先付款(针对按收货开票场景)。
- 防止账单数量超过采购/收货数量。
- 防止账单单价与采购单价不符。
- 减少财务逐行核对的工作量,提高审核效率与资金安全性。
- 适用范围:所有包含产品明细行的供应商账单 (Vendor Bills)。
2. 详细业务规则 (Business Rules)
系统会自动计算账单上每一行的状态,并最终汇总为整张账单的**“可付性” (Release to Pay)**。
2.1 行级判定规则
| 规则项 | 逻辑说明 | 判定结果 |
|---|---|---|
| 无采购关联 | 账单明细行没有关联任何采购订单行。 | 异常 (Exception) |
| 价格不一致 | 账单行单价与采购行单价不一致(已包含多币种自动汇率换算比对)。 | 异常 (Exception) |
| 按收货数量结算 | 采购政策为“按收货数量”时: 1. 账单数量 ≤ 已收货数量 2. 尚未收货(收货量=0)且 账单数量 ≤ 订购量 3. 其他情况(如开票量大于收货量) | 1. 可付 (Yes) 2. 不可付 (No) 3. 异常 (Exception) |
| 按订购数量结算 | 采购政策为“按订购数量”时: 1. 累计开票数量 ≤ 订购数量 2. 历史已开票量 ≥ 订购数量(本单纯属超开) 3. 加上本单后部分超开 | 1. 可付 (Yes) 2. 不可付 (No) 3. 异常 (Exception) |
2.2 单据级判定规则 (整单可付性)
单据的状态由所有明细行的状态共同决定:
- 异常 (Exception):只要有任意一行是异常,或者行与行之间状态不一致(比如既有可付又有不可付),整单判定为异常。
- 可付 (Ready):所有明细行都判定为可付。
- 不可付 (Hold):所有明细行都判定为不可付。
- 已付 (Paid):账单已经完成付款,不再参与判定。
(注意:如果因特殊原因确实需要付款,财务可以通过在单据“其他信息”中勾选 Force Status 来强制指定最终的判断结果。)
3. 界面展示与管控 (UI & Control)
该策略在系统界面上体现为以下几重控制:
- 工作台分流 (Dashboard):
在会计仪表盘的供应商账单卡片中,默认点击直接跳转到对应的分类池,例如
Bills to Pay(待付池) 和Bills to Validate。 - 列表透视 (List View): 在“供应商账单”列表页,新增 [可付性] 徽章字段。财务可以通过颜色(绿色可付、黄色异常、红色不可付)一眼识别需要优先处理的账单。
- 详情预警 (Form View): 打开账单详情,如果状态是“不可付”或“异常”,顶部会出现醒目的红/黄风险横幅,提示具体有几个异常项。点击 [View Details] 可查看具体的差异原因(例如:“第1行:数量不匹配,订购 10,收货 8,开票 10”)。
- 付款二次确认 (Payment Check): 如果账单存在风险,当业务人员点击账单上的 [Register Payment (登记付款)] 时,系统会强制弹出二次确认窗口。必须人工阅读警告并确认“继续付款”后才能调出付款向导。
4. 对 SOP 的影响
本规则会深层次影响日常操作,具体单据指引请见:
- 供应商账单与付款 SOP:
- 财务在账单列表如何筛选和查看待付款账单。
- 遇到异常横幅时如何展开处理,以及付款被拦截时的操作指引。
5. 常见问题 (FAQ)
- Q: 运费等杂费没有关联采购单,提示“无采购单关联”异常怎么办?
- A: 如果确认是合理的杂项费用,可以在账单详情页勾选
Force Status(强制状态)并手动将判定修改为“Yes”,然后再进行正常付款。
- A: 如果确认是合理的杂项费用,可以在账单详情页勾选
- Q: 已经付款的单子还会提示异常吗?
- A: 不会。只要付款状态变为
Paid,系统会自动将可付性状态显示为“已付 (Paid)”,并且隐藏所有风险提示。
- A: 不会。只要付款状态变为