фильтровать элементы в поле один ко многим, используя домен в odoo - PullRequest
0 голосов
/ 25 января 2019

У меня есть функция onchange, которая заполняет продукты и услуги в поле «один ко многим». Я хочу фильтровать элементы таким образом, чтобы заполнять только продукты, в то время как сервисы в настоящее время не включаются, моя функция заполняет оба типа продуктов

при изменении строки обновления

@api.multi
@api.onchange('project_id')
def change_project_id(self):
    # get project id
    project_id = self.project_id.id
    domain = [
        ('project_budget','=',project_id),
        ('state','=','done')
    ]

    # get approved budget
    approved_budget = self.env['project.budget'].search(domain,limit=1)
    data = {}
    #
    new_lines = self.env['custom_stock_requisition.line']
    # loop through budget lines
    for line in approved_budget.budget_line_items:
        ##populate items
        data = {
            'product_id': line.product_id.id,
            'quantity': line.product_qty,
            'product_uom': line.product_uom.id,
            'price_unit': line.price_unit,
            'product_categ_id': line.product_categ_id,
            'name': line.product_id.name,
            'date_planned': datetime.datetime.now()
        }
        new_line = new_lines.new(data)  # adding new items to the model
        new_lines += new_line
    #
    self.requisition_order_line += new_lines  # set requisition order lines
    return {}

1 Ответ

0 голосов
/ 02 февраля 2019

@api.multi @ api.onchange ('project_id') def change_project_id (self): # получить идентификатор проекта project_id = self.project_id.id domain = [('project_budget', '=', project_id), ('state ',' = ',' done ')]

# get approved budget
approved_budget = self.env['project.budget'].search(domain,limit=1)
data = {}
#
new_lines = self.env['custom_stock_requisition.line']
# loop through budget lines
for line in approved_budget.budget_line_items:
    ##populate items
    if line.product_id.type != 'service:
       data = {
           'product_id': line.product_id.id,
           'quantity': line.product_qty,
           'product_uom': line.product_uom.id,
           'price_unit': line.price_unit,
           'product_categ_id': line.product_categ_id,
           'name': line.product_id.name,
           'date_planned': datetime.datetime.now()
        }
       new_line = new_lines.new(data)  # adding new items to the model
       new_lines += new_line
#
self.requisition_order_line += new_lines  # set requisition order lines
return {}
...