如何解决Odoo 14
在 pos.order.line 中,我添加了一个布尔字段;我添加了 2 个字段计算; 我想根据布尔值将行的总和分成 2 个字段:
'amount1' 中布尔值为 False 的行的 (qty * price_unit) 总和
'amount2' 中带有布尔值 True 的行的总和 (qty * price_unit)
请问我该怎么做?
class PosOrder(models.Model):
_inherit = "pos.order"
amount1 = fields.Monetary(compute='_compute_amount1',readonly=True)
amount2 = fields.Monetary(compute='_compute_amount2',readonly=True)
@api.depends('payment_ids','lines')
def _compute_amount_ht(self):
for line in self.lines:
if line.is_false == True:
self.amount1 += line.qty * line.price_unit
else:
self.amount2 += line.qty * line.price_unit
class PosOrderLine(models.Model):
_inherit = "pos.order.line"
is_false = fields.Boolean(default=False)
解决方法
您需要先迭代 self ,然后根据您的公式进行求和。然后将其分配回 pos.order 字段。例如,
@api.depends('payment_ids','lines')
def _compute_amount_ht(self):
for order in self:
amount1 = 0.0
amount2 = 0.0
for line in order.lines:
if line.is_false == True:
amount1 += line.qty * line.price_unit
else:
amount2 += line.qty * line.price_unit
order.amount1 = amount1
order.amount2 = amount2
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。