Odoo python编程语言

Odoo python编程语言,python,odoo-10,Python,Odoo 10,在V10中,如何控制自动序列号的生成?例如,如果我们获取员工Id。当我们创建员工Id时,会生成类似EMP-0001的序列。假设我们没有储蓄就丢弃了它。下次创建新员工Id时,我们得到的序列是EMP-0002。如何预防?请在odoo 10中给出答案当您单击“创建”按钮时,您不应在默认参数中选择序列,否则系统将选择序列 您应该在create方法中编写序列逻辑 例: 在上面的示例中,当您销售时,系统将读取序列 您可以在销售订单基础模块中找到相同的参考 这可能会对您有所帮助。首先,您必须为员工ID插入一个

在V10中,如何控制自动序列号的生成?例如,如果我们获取员工Id。当我们创建员工Id时,会生成类似EMP-0001的序列。假设我们没有储蓄就丢弃了它。下次创建新员工Id时,我们得到的序列是EMP-0002。如何预防?请在odoo 10中给出答案

当您单击“创建”按钮时,您不应在默认参数中选择序列,否则系统将选择序列

您应该在create方法中编写序列逻辑

例:

在上面的示例中,当您销售时,系统将读取序列

您可以在销售订单基础模块中找到相同的参考


这可能会对您有所帮助。

首先,您必须为员工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