Skip to main content

供应商付款三单匹配策略 (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)

该策略在系统界面上体现为以下几重控制:

  1. 工作台分流 (Dashboard): 在会计仪表盘的供应商账单卡片中,默认点击直接跳转到对应的分类池,例如 Bills to Pay (待付池) 和 Bills to Validate
  2. 列表透视 (List View): 在“供应商账单”列表页,新增 [可付性] 徽章字段。财务可以通过颜色(绿色可付、黄色异常、红色不可付)一眼识别需要优先处理的账单。
  3. 详情预警 (Form View): 打开账单详情,如果状态是“不可付”或“异常”,顶部会出现醒目的红/黄风险横幅,提示具体有几个异常项。点击 [View Details] 可查看具体的差异原因(例如:“第1行:数量不匹配,订购 10,收货 8,开票 10”)。
  4. 付款二次确认 (Payment Check): 如果账单存在风险,当业务人员点击账单上的 [Register Payment (登记付款)] 时,系统会强制弹出二次确认窗口。必须人工阅读警告并确认“继续付款”后才能调出付款向导。

4. 对 SOP 的影响

本规则会深层次影响日常操作,具体单据指引请见:

  • 供应商账单与付款 SOP
    • 财务在账单列表如何筛选和查看待付款账单。
    • 遇到异常横幅时如何展开处理,以及付款被拦截时的操作指引。

5. 常见问题 (FAQ)

  • Q: 运费等杂费没有关联采购单,提示“无采购单关联”异常怎么办?
    • A: 如果确认是合理的杂项费用,可以在账单详情页勾选 Force Status(强制状态)并手动将判定修改为“Yes”,然后再进行正常付款。
  • Q: 已经付款的单子还会提示异常吗?
    • A: 不会。只要付款状态变为 Paid,系统会自动将可付性状态显示为“已付 (Paid)”,并且隐藏所有风险提示。