SO 带有额外折扣字段的小计不会传递给发票

SO subtotal with extra discount field does not pass over to invoice

这个问题是在我达到 之后出现的。

总而言之,我在销售订单中创建了一个新的额外折扣字段。它是按小计计算的。它作为销售订单的一部分按预期工作。

之后,我确认了,发送了产品,并创建了发票。

我发现从该 SO 创建的发票中的小计与 SO 中的值不同,因为发票中的小计未通过包含额外折扣进行计算。

我研究了 Sale 模型中的 _create_invoices 方法,但我不知道在哪里进行小计计算。

我的目标是使发票小计计算得到与当前 SO 小计相同的值。当然,小计后的其他计算字段,如未税金额、税收和总计也必须与 SO 匹配。

================

更新

好的,现在我知道要使用哪些了。我只覆盖 _get_price_total_and_subtotal_model_prepare_invoice_line。这使我能够将额外折扣从销售发送到发票。但是,当我从销售中创建发票时,发票中显示的单价会减去折扣,但如果我从发票手动创建发票(我在发票中也有额外的折扣字段)单价不会因额外折扣而减少,只有小计打了折扣,这就是我要找的结果。唯一的问题是为什么从销售中创建发票会更改单价?

最后,在花了整整一周的时间弄清楚它是如何工作的之后,我只需要在 account.move.line 模型中覆盖 _get_price_total_and_subtotal_modelcreate。和 _prepare_invoice_linesale.order.line 模型中。

谢谢 CZoellner 的建议。