You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Odoo14社区版销售/采购/财务模块全局与行折扣财务侧集成方案咨询

Odoo 14 财务模块自定义折扣集成修改方案

核心原则

不要全量复制原生方法覆盖实现,优先通过super()调用原生逻辑后扩展调整,避免后续版本升级、补丁更新出现兼容性问题。

需要继承修改的方法列表

一、account.move.line (行级折扣处理)

  • _get_price_total_and_subtotal_model
    这是行级金额计算的核心方法,无需完全重写,调用原生super方法获取默认的未税小计、含税总额等值后,代入你已经实现的行级折扣(百分比/金额)逻辑,调整计税基数和行小计返回值即可。
    同时需要把你新增的discount_line_amount、discount_line_percent字段追加到该方法的depends依赖列表中,确保折扣变动时自动触发重算。
  • _onchange_price_subtotal
    仅需将你的行折扣字段添加到onchange触发字段列表,调用super后如果需要调整行余额可做小幅修改,无需全量覆盖。

二、account.move (全局折扣+整单计算处理)

  • _compute_amount_all
    该方法负责计算整单的未税金额、税额、总金额,调用super拿到原生计算结果后,代入你的全局折扣逻辑,更新amount_untaxed、amount_tax、amount_total三个核心字段即可。
  • _recompute_dynamic_lines
    这是整单动态行(税金行、应收/应付行)重算的入口,调用super后需要做两个处理:
    1. 新增全局折扣对应的会计分录行,绑定提前配置好的销售/采购折扣损益科目
    2. 调整应收/应付行的金额,确保折扣额、总金额、借贷方金额完全匹配
  • _recompute_tax_lines
    仅需要确保传入计税的base值为行折扣+全局折扣折算后的金额即可,不要全量重写该方法,避免税金计算逻辑混乱。

手动创建账单适配

在account.move和account.move.line的表单视图中添加你新增的折扣字段,给字段设置onchange触发规则,例如修改全局折扣百分比时自动计算对应折扣金额,确保手动录入场景下也能触发全量重算。

注意事项

  • 折扣的计税规则要符合当地税法要求,国内场景默认按折扣后金额计税,需确保税金计算基数为折扣后的实际成交金额
  • 不要直接修改原生表的核心字段存储逻辑,所有调整都通过compute或方法扩展实现
  • 测试时重点验证借贷平衡、税金计算、应收/应付金额三个核心节点,避免出现账务错误

内容的提问来源于stack exchange,提问作者holydragon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 12:57:03