首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按日期创建自动操作- Odoo 10

按日期创建自动操作- Odoo 10
EN

Stack Overflow用户
提问于 2019-05-15 22:16:27
回答 1查看 514关注 0票数 1

我在自定义模板中创建了一个日期字段(用于已关闭的注册合同)。此字段未计算,但我想在此字段上执行操作,以便:

->当用户选择日期时,我希望检索此日期以提供CRON Odoo。此CRON将调用一个函数来完全关闭合同,这要归功于用户之前选择的日期。

你有什么想法吗?

下面是我的CRON:

代码语言:javascript
复制
    <record id="scheduler_synchronization_closed_contract_school_catering" model="ir.cron">
        <field name="name">Scheduler synchronization closed contract school catering</field>
        <field name="user_id" ref="base.user_root" />
        <field name="interval_number">1</field>
        <field name="interval_type">days</field>
        <field name="numbercall">1</field>
        <field name="args" eval=""/>
        <field name="nextcall" eval="" />
        <field name="doall" eval="False"/>
        <field name="model" eval="'ecole.partner.school'"/>
        <field name="function" eval="'closed_contract_school_catering'"/>
        <field name="active" eval="True"/>
    </record>

我想我必须把一些东西放在args和nextcall中,但是我找不到一个例子。

诚恳地

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-15 23:41:02

你需要一个方法。负责“合约结算”部分的ecole.partner.school。然后,您可以创建一个每小时或每个月调用此方法的CronJob。

在我的示例中,将有一个带有字段date_close的模型school.catering.contract,该字段可以由用户在客户端中设置。

代码语言:javascript
复制
class SchoolCateringContract(models.Model):
    # _name, fields, ...

    @api.model
    def run_close_old_contracts(self):
        domain = [('date_close', '<=', fields.Date.today())]
        for contract in self.search(domain):
            # completely close contract whatever this means

cron几乎是正确的。nextcallargs不是必须的。但是numbercall很重要。这意味着应该调用cron的号码。所以1的意思是,它只会被调用一次,永远不会再被调用。如果您需要一个每天都要调用的cron,那么将其设置为-1

代码语言:javascript
复制
<record id="scheduler_synchronization_closed_contract_school_catering" model="ir.cron">
    <field name="name">Scheduler synchronization closed contract school catering</field>
    <field name="user_id" ref="base.user_root" />
    <field name="interval_number">1</field>
    <field name="interval_type">days</field>
    <field name="numbercall">-1</field>
    <field name="doall" eval="False"/>
    <field name="model" eval="'school.catering.contract'"/>
    <field name="function" eval="'run_close_old_contracts'"/>
    <field name="active" eval="True"/>
</record>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56151517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档