首页 > 解决方案 > 如果订单行中的所有复选框都为真,则将复选框设置为真

问题描述

在新的销售订单页面上,我添加了一个复选框,如果订单行表中的(单价>成本)为真

在此处输入图像描述

问题是我需要确定订单行表中的所有复选框是否为真,然后将表外的复选框设置为真,但我不知道如何

在此处输入图像描述

在此处输入图像描述

当我添加这个时,在 x_studio_check_min_cost 计算中

for record in self:
  for one_check in record.invoice_ids.invoice_line_ids.sale_line_ids.x_studio_min_price_sale_by_cost:
    if one_check == True:
      record[('x_studio_check_min_cost')] = True
    else:
      record[('x_studio_check_min_cost')] = False

在销售订单中,出现此错误

 File "", line 2, in <module>
ValueError: <class 'TypeError'>: "'bool' object is not iterable" while evaluating
"for record in self:\n  for one_check in record.invoice_ids.invoice_line_ids.sale_line_ids.x_studio_min_price_sale_by_cost:\n    if one_check == True:\n      record[('x_studio_check_min_cost')] = True\n    else:\n      record[('x_studio_check_min_cost')] = False\n"

我正在使用 odoo studio,因为我是 odoo 新手,并且没有创建模块的经验

感谢您的帮助

标签: odooodoo-12

解决方案


签出此代码,希望它会有所帮助。

  for record in self:
    flag = False
    if any(line.x_studio_min_price_sale_by_cost for line in record.order_line):
        flag = True
    if not flag:
        record['x_studio_check_min_cost'] = True

在字段的计算选项中x_studio_check_min_cost,您可以看到高级属性标题,对吗?在Dependencies字段下方将字段名称设置为 order_line ,在Compute字段中复制粘贴上面的代码(注意缩进)。


推荐阅读