我必须为Odoo工作。这是我的第一次,所以有些事情我不明白。
我的特定任务是确保在确认报价后:如果客户还没有客户代码,他将获得下一个。
例如,如果最大的客户代码是“ CL2000”,我希望下一个代码是“ CL2001”。
我尝试使用Odoo中的已实现工具创建自动操作。确认报价后,我设法将客户代码关联了起来,但始终保持不变。
我没有看到很多有关Odoo的教程。如果有人可以帮助我解决我的问题或链接到好的教程,我将不胜感激。
答案 0 :(得分:0)
要为客户帐户自动设置自动递增的客户代码,您可以创建“ ir.sequence”,这是odoo基本功能。
创建“ ir.sequence”以自动生成客户代码的步骤:
第1步:为顺序创建数据文件,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<!-- Sequences for customer codes -->
<record id="seq_res_partner" model="ir.sequence">
<field name="name">Customer code</field>
<field name="code">res.partner.customer.code</field>
<field name="padding">8</field>
<field name="number_next">CL2001</field>
<field name="number_increment">1</field>
</record>
</data>
</odoo>
步骤2:继承创建res.partner模型的方法以自动生成客户代码。
@api.model
def create(self, vals):
if isinstance(vals, dict):
if not vals.get('ref', False):
while 1:
ref = self.env['ir.sequence'].next_by_code('res.partner.customer.code') or ''
partner = self.env['res.partner'].search([('ref', '=', ref)])
if not partner:
break
vals.update({'ref': ref})
elif vals.get('ref',False):
ref_by_user = vals.get('ref',False)
partner = self.env['res.partner'].search([('ref', '=ilike', ref_by_user)])
if partner:
raise ValidationError('Internal Reference duplicate Error. \n This Internal reference already exist for Partner %s'%(partner[0].name))
res = super(ResPartner, self).create(vals)
return res
按照上述步骤,您可以自动生成客户代码。
我希望这会对您有所帮助。谢谢。