如何使用Python在Odoo 11中的发票上创建计算字段?
我们公司根据逐行给予的折扣支付佣金。我试图在我们发送给销售代表的发票副本上显示此佣金金额 我正在v12.0中使用Odoo studio,并创建了一个标记为“佣金金额”的字段x_studio_field_dakHb,该字段显示在account.invoice.line模型中 我已选中“只读”和“存储”框。在“依赖项”字段中,我有“折扣、价格\小计” 在“高级属性”部分,我有:如何使用Python在Odoo 11中的发票上创建计算字段?,python,odoo,odoo-11,computed-field,Python,Odoo,Odoo 11,Computed Field,我们公司根据逐行给予的折扣支付佣金。我试图在我们发送给销售代表的发票副本上显示此佣金金额 我正在v12.0中使用Odoo studio,并创建了一个标记为“佣金金额”的字段x_studio_field_dakHb,该字段显示在account.invoice.line模型中 我已选中“只读”和“存储”框。在“依赖项”字段中,我有“折扣、价格\小计” 在“高级属性”部分,我有: def compute_commission_amount(self): for record in self:
def compute_commission_amount(self):
for record in self:
if (discount >= 55.0):
x_studio_field_dakHb = (price_subtotal * .05)
elif (discount >= 45.0):
x_studio_field_dakHb = (price_subtotal * .10)
elif (discount >= 30.0):
x_studio_field_dakHb = (price_subtotal * .15)
elif (discount >= 25.0):
x_studio_field_dakHb = (price_subtotal * .20)
elif (discount >= 0.0):
x_studio_field_dakHb = (price_subtotal * .25)
我没有得到任何错误,但字段的计算并不像我预期的那样
我所期望的例子如下:
我的代码中是否缺少一些东西来正确计算?实际上,您需要使用@api.depends('fields1','fields2',…) 每更改一个字段1或字段2,您的佣金值就会更改。
对于示例代码,您可以在系统如何根据callculate产品价格、数量、折扣和税收进行小计更改中找到。您必须使用
记录来分配值。在一个字段中,您会发现有关计算方法的以下提示:
字段Compute是用于计算字段值的Python代码
在一组记录上。该字段的值必须分配给每个
用字典式的作业记录
for record in self:
record['size'] = len(record.name)
因此,您的代码应该如下所示:
def compute_commission_amount(self):
for record in self:
if (record.discount >= 55.0):
record['x_studio_field_dakHb'] = (record.price_subtotal * .05)
elif (record.discount >= 45.0):
record['x_studio_field_dakHb'] = (record.price_subtotal * .10)
elif (record.discount >= 30.0):
record['x_studio_field_dakHb'] = (record.price_subtotal * .15)
elif (record.discount >= 25.0):
record['x_studio_field_dakHb'] = (record.price_subtotal * .20)
elif (record.discount >= 0.0):
record['x_studio_field_dakHb'] = (record.price_subtotal * .25)
编辑:还有一个错误是price\u subtotal
应该从记录中获取。
Edit2:折扣也一样