python - 如何每天重置 Odoo 12 中的序列(ir.sequence 对象)?

标签 python odoo odoo-12 erp

我在 Odoo 12 中有一个自定义模块,我需要每天为模型记录创建序列,所以我需要每天下午 00:00 重置它。我尝试使用调度程序,但找不到我应该覆盖或重置我想要的序列的字段。我查看了数据库中的ir_sequence表结构,数据库中并没有存储这个表字段的值,那么我们如何重新设置这个序列呢?

这是我用作调度程序的代码:

<odoo>
    <data noupdate="1">
        <record id="ir_cron_token_no_sequence_daily_restart_scheduler" model="ir.cron">
            <field name="name">Token Nummber Sequence Daily Restart Scheduler</field>
            <field name="user_id" ref="base.user_root"/>
            <field name="model_id" ref="acs_hms.model_hms_appointment"/>
            <field name="interval_number">1</field>
            <field name="interval_type">days</field>
            <field name="numbercall">-1</field>
            <field name="doall" eval="False"/>
            <field name="code">model._reset_token_number_sequences()</field>
            <field name="state">code</field>
        </record>
    </data>
</odoo>

这是我的 _reset_token_number_sequences() 方法:

def _reset_token_number_sequences(self):
        sequences = self.env['ir.sequence'].search([('name', '=like', '%nl_department_%')])
        for sequence in sequences:
            print('Sequence is : ', sequence)
            sequence.write({
                'number_next' : 1,
            })

但它在我的情况下不起作用,请帮助我确定我应该从这里覆盖哪个字段而不是 number_next

最佳答案

在 odoo v12 中保存下一个数值的字段是 number_next_actual。因此,您必须通过 cron 更新 number_next_actual 字段值。您的 Python 代码应如下所示:

    def _reset_token_number_sequences(self):
        # just use write directly on the result this will execute one update query
        sequences = self.env['ir.sequence'].search([('name', '=like', '%nl_department_%')])
        sequences.write({'number_next_actual': 1}) 

希望这段代码对你有帮助。

关于python - 如何每天重置 Odoo 12 中的序列(ir.sequence 对象)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57841576/

相关文章:

postgresql - VPS 上的 OpenERP,以及 Postgresql 到本地机器的重定向

postgresql - Odoo V12 CE Segmentation fault (core dumped) 在安装 Odoo 12 后创建数据库时面临这个问题

python - 与另一个模型相关的 Many2many 字段

python - 如何在 python 中将两个图保存在一个文件中?

Python 字典和线程并发

python - 如何转换为 Python 列表理解

postgresql - 在 postgresql 中同步/复制两个以上的数据库?

python - pygame 中的碰撞不起作用(对象发生碰撞但代码未触发)

python - 在 Odoo 9 中创建自定义操作

linux - Odoo超时杀死cron