Odoo python编程语言
在V10中,如何控制自动序列号的生成?例如,如果我们获取员工Id。当我们创建员工Id时,会生成类似EMP-0001的序列。假设我们没有储蓄就丢弃了它。下次创建新员工Id时,我们得到的序列是EMP-0002。如何预防?请在odoo 10中给出答案当您单击“创建”按钮时,您不应在默认参数中选择序列,否则系统将选择序列 您应该在create方法中编写序列逻辑 例: 在上面的示例中,当您销售时,系统将读取序列 您可以在销售订单基础模块中找到相同的参考Odoo python编程语言,python,odoo-10,Python,Odoo 10,在V10中,如何控制自动序列号的生成?例如,如果我们获取员工Id。当我们创建员工Id时,会生成类似EMP-0001的序列。假设我们没有储蓄就丢弃了它。下次创建新员工Id时,我们得到的序列是EMP-0002。如何预防?请在odoo 10中给出答案当您单击“创建”按钮时,您不应在默认参数中选择序列,否则系统将选择序列 您应该在create方法中编写序列逻辑 例: 在上面的示例中,当您销售时,系统将读取序列 您可以在销售订单基础模块中找到相同的参考 这可能会对您有所帮助。首先,您必须为员工ID插入一个
这可能会对您有所帮助。首先,您必须为员工ID插入一个字段。如下所示
name = fields.Char(string="Employee ID", Index= True, default=lambda self:('New'), readonly=True)
之后,您必须在views文件夹中创建一个名为ir_sequence.xml的文件
<odoo>
<data>
<record id="seq_bi_ticket" model="ir.sequence">
<field name="name"> [NAME] </field>
<field name="code">[class_name]</field>
<field name="prefix"> EMP </field>
<field name="padding"> 5 </field>
<!-- The length of the number you need is 5 -->
<field name="company_id" eval="False"/>
</record>
</data>
</odoo>
结束了。你就这样走吧 你的标题没有反映你的问题。请检查并使其更具描述性。此方法返回错误。create方法只接受两个参数。如何调用字段中的方法。@api.model def create(self,vals):如果vals.get('barcode','New')='New':vals['barcode']=self.env['ir.sequence']。next_by_code('emp.code')或'New返回super(HrEmployee,self)。create(vals)barcode=fields.chars(string='Badge ID',required=True,default=create)我在employee.pyhr\u employee.py中编写此代码hr\u考勤模块,
<odoo>
<data>
<record id="seq_bi_ticket" model="ir.sequence">
<field name="name"> [NAME] </field>
<field name="code">[class_name]</field>
<field name="prefix"> EMP </field>
<field name="padding"> 5 </field>
<!-- The length of the number you need is 5 -->
<field name="company_id" eval="False"/>
</record>
</data>
</odoo>
@api.model
def create(self, vals):
if vals.get('name', _('New')) == _('New'):
if 'company_id' in vals:
vals['name'] = self.env['ir.sequence'].with_context(force_company=vals['company_id']).next_by_code('[CLASS_NAME]') or _('New')
else:
vals['name'] = self.env['ir.sequence'].next_by_code('[CLASS_NAME]') or _('New')
result = super([CLASS_NAME], self).create(vals)
return result