Odoo 如何在报价单小计中增加另一个折扣?

Odoo 如何在报价单小计中增加另一个折扣?,odoo,odoo-14,Odoo,Odoo 14,报价订单行中有一个小计(价格\小计)字段 我添加了一个新字段额外折扣 我试过这个代码,但没有用 @api.depends('product_uom_qty', 'price_unit', 'extra_discount') def compute_all(self): for record in self: record.price_subtotal = (record.product_uom_qty * record.price_unit) -

报价订单行中有一个
小计
(价格\小计)字段

我添加了一个新字段
额外折扣

我试过这个代码,但没有用

@api.depends('product_uom_qty', 'price_unit', 'extra_discount')
    def compute_all(self):
        for record in self:
            record.price_subtotal = (record.product_uom_qty * record.price_unit) - record.extra_discount
它对
小计
没有任何影响

那么,我如何做到这一点呢?

我会尝试覆盖sale.order.line.price\u subtotal字段后面的内容

但我不确定
api.depends()
extensions(再添加一个重新计算触发器字段)是否按预期工作

但它应该是这样的:

class SaleOrderLine(models.Model):
_inherit=“sale.order.line”
额外折扣=字段。浮动()
@api.取决于(‘产品数量’、‘折扣’、‘价格单位’,
“税号”、“额外折扣”)
定义计算金额(自身):
"""
计算SO线的数量。
完全重写以将字段额外折扣添加到
公式和触发器。
"""
对于line in self:
价格=行价格单位*(1-(行折扣或0.0)/100.0)
#新增:减去额外折扣
价格-=行。额外折扣
税=行。税\ id。计算\全部(价格、行。订单\ id。货币\ id、行。产品\计量单位数量、产品=行。产品\ id、合作伙伴=行。订单\ id。合作伙伴\发货\ id)
line.update({
“价格税”:税中t的总和(t.get('金额',0.0)。get('税',[]),
“总价”:税费[“含总价],
“价格小计”:税费[“不含总额”],
})
如果self.env.context.get('import_file',False)而不是self.env.user.user_有_组('account.group_account_manager'):
line.tax\u id.invalidate\u缓存(['invoice\u repartition\u line\u id'],[line.tax\u id.id])

您必须使用
update
方法更新当前记录…如
self.update{'price\u subtotal':NEWVALUE}
@AdamStrauss我尝试将其添加到最后一行下,但它给了我
SyntaxError:无效语法
。在循环中写入
price\u subtotal\n=(record.product\u数量*record.price\u单位)-record.extra_discount
然后在下一行'record.update({'price_subtotal':price_subtotal_n})@AdamStrauss它现在没有任何错误,但也不会影响小计字段。看起来好像什么也没发生。您确定方法正在调用吗?如果没有,请在此方法中添加上面的onchange decorator