【问题标题】:Custome prefix for sequence - OdooV14序列的自定义前缀 - Odoo V14
【发布时间】:2021-06-23 11:55:35
【问题描述】:

我正在尝试更改 Odoo 中引用序列的前缀。 我希望前缀更改为布尔值,但我没有任何结果。

这是我的代码:

class prefix_change(models.Model):
_inherit = 'sale.order'

prefix_choice = fields.Boolean(string="Set to OL", default=False)


def _get_sequence(self, xml_id='quotation.seq'):

    user = self.env.user
    sequence = self.env['ir.sequence'].with_company(user.company_id).next_by_code(xml_id)

    if not sequence:
        return _('New')
    try:
        prefix, suffix = sequence.split('-')
    except Exception as e:
        logging.error(repr(e))
        return _('New')

    if not self.prefix_choice :
        prefix = "BE"
    else:
        prefix = "OL"

    return "%s-%s-%s" % (prefix, suffix)

提前谢谢....

【问题讨论】:

  • 您可以使用 create 和 write 方法来更改 SO 的名称。如果您需要代码方面的帮助,请告诉我。
  • 确实,我犹豫了很多,但我不知道这是否合适,因为我希望前缀根据布尔值而改变(选中 = true 并且前缀 = OL AND unchecked = false 和前缀 = BE)

标签: boolean odoo sequence prefix quotations


【解决方案1】:

回答 W.R.T 创建和写入调用:

@api.model
def create(self, values):
    res = super(prefix_change, self).create(values)
    name = res.name
    if res.prefix_choice:
        name = res.name.replace('SO', 'OL')
    else:
        name = res.name.replace('SO', 'BE')

    res.name = name
    return res


def write(self, values):
    res = super(prefix_change, self).write(values)
    if 'prefix_choice' in values and values.get('prefix_choice'):
        #update code accordingly if needed
        if 'BE' in self.name:
            self.name = self.name.replace('BE', 'OL')
    if 'prefix_choice' in values and not values.get('prefix_choice'):
        if 'OL' in self.name:
            self.name = self.name.replace('OL', 'BE')


    return res

请检查并告诉我它是否适合您。

【讨论】:

  • 首先非常感谢您的帮助!在 write 函数中,在“if 'prefix_choice' in values:”下,我应该在更新的情况下替换前缀?
  • 是的,但是在替换前缀之前你必须检查字符串是否包含'BE'或'OL'。
  • 哦,是的,当然!我尝试了创建功能,但它不起作用,就像当我按下创建时,名称尚未生成,因此它无法替换字符
  • 保存记录后将执行操作。
  • 我也更新了写方法的答案。
猜你喜欢
  • 2021-03-31
  • 2014-07-08
  • 2021-04-04
  • 2019-12-19
  • 2020-09-13
  • 2021-11-01
  • 2011-05-17
  • 2017-05-25
  • 2015-08-02
相关资源
最近更新 更多