跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(Flatly)
  • 不使用皮肤
折叠

Odoo 中文社区

  1. 主页
  2. 版块
  3. Odoo 新手求助
  4. 关于不同产品类型,生成不同的产品序号的问题?

关于不同产品类型,生成不同的产品序号的问题?

已定时 已固定 已锁定 已移动 未解决 Odoo 新手求助
1 帖子 1 发布者 2.1k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • B 离线
    B 离线
    billchen0769
    写于 最后由 编辑
    #1

    请问一下根据不同的产品类别生成不同的产品编号,有什么简单的方法实现,我想到的方法是给一个新字段,然后根据该字段的内容匹配不同的产品序号,但是获取不到该字段的内容,有什么方法解决,或者有什么更好的实现方法?

    class ProductTemplateInherit(models.Model):
    _inherit = 'product.template'
    x_category_ordinal = fields.Char(related='categ_id.x_ordinal', string='产品类型序号', required=True)
    default_code = fields.Char(default=lambda self: _(' '))

    @api.model
    def create(self, vals):
        if vals.get("x_category_ordinal") is None:
            # 获取记录中的实际数据值
            record = self.env['product.template'].browse(vals['categ_id'])
            x_category_ordinal = record.x_category_ordinal
            vals['x_category_ordinal'] = x_category_ordinal
    
        if vals.get('default_code', _(' ')) == _(' '):
            if vals['x_category_ordinal'] == 'value1':
                vals['default_code'] = self.env['ir.sequence'].next_by_code('sequence_code_1') or _(' ')
            elif vals['x_category_ordinal'] == 'value2':
                vals['default_code'] = self.env['ir.sequence'].next_by_code('sequence_code_2') or _(' ')
            elif vals['x_category_ordinal'] == 'value3':
                vals['default_code'] = self.env['ir.sequence'].next_by_code('sequence_code_3') or _(' ')
            elif vals['x_category_ordinal'] == 'value4':
                vals['default_code'] = self.env['ir.sequence'].next_by_code('sequence_code_4') or _(' ')
            else:
                vals['default_code'] = self.env['ir.sequence'].next_by_code('default_sequence') or _(' ')
    
        res = super(ProductTemplateInherit, self).create(vals)
        return res
    
    1 条回复 最后回复
    0

    • 登录

    • 没有帐号? 注册

    • 登录或注册以进行搜索。
    • 第一个帖子
      最后一个帖子
    0
    • 版块
    • 标签
    • 热门
    • 用户
    • 群组