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