首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在报价行项目搜索中添加产品ean13条形码(Odoo 8)

在报价行项目搜索中添加产品ean13条形码(Odoo 8)
EN

Stack Overflow用户
提问于 2018-05-10 17:30:22
回答 2查看 295关注 0票数 0

我想知道如何继续在搜索中添加销售报价中条形码(ean 13)的产品。像这里的图片一样,我只有产品的名称和产品的内部参考。

我尝试像这样覆盖模型product.product:

代码语言:javascript
复制
# -*- coding: utf-8 -*-

from openerp import models, api

class product_product(models.model):

_inherit = "product.product"

def name_search(self, cr, user, name='', args=None, operator='ilike', context=None, limit=100):

res = super(product_product, self).name_search(self, cr, user, name='', args=None, operator='ilike', context=None, limit=100)

if operator in ('ilike', 'like', '=', '=like', '=ilike'):

domain = [('ean13', operator, name)]

ids = self.search(cr, user, domain, limit=limit, context=context)

res += self.name_get(cr, user, ids, context=context)

return res

self.search([('ean13', 'ilike', name)])
EN

回答 2

Stack Overflow用户

发布于 2018-05-10 23:45:41

name_get方法更改drop_down列表中显示的默认名称。

改写name_search方法,如下所示:

代码语言:javascript
复制
@api.model
def name_search(self, name='', args=None, operator='ilike', limit=100):
    # Make a search with default criteria
    temp = super(models.Model, self).name_search(
        name=name, args=args, operator=operator, limit=limit)
    # Make the other search
    temp += super(ProductProduct, self).name_search(
        name=name, args=args, operator=operator, limit=limit)
    # Merge both results
    res = []
    keys = []
    for val in temp:
        if val[0] not in keys:
            res.append(val)
            keys.append(val[0])
            if len(res) >= limit:
                break
    return res

您只需要将ean13的结果也添加到方法中:

代码语言:javascript
复制
self.search([('ean13', 'ilike', name)])
票数 0
EN

Stack Overflow用户

发布于 2020-08-05 20:06:44

你也可以这样写

代码语言:javascript
复制
def name_search(self, cr, user, name='', args=None, operator='ilike', context=None, limit=100):

    res = super(product_product, self).name_search(self, cr, user, name='', args=None, operator='ilike', context=None, limit=100)

    if operator in ('ilike', 'like', '=', '=like', '=ilike'):

        domain = [('ean13', operator, name)]

        ids = self.search(cr, user, domain, limit=limit, context=context)
        res+=self.browse(ids).name_get()
        return res
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50269680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档