我在自定义模板中创建了一个日期字段(用于已关闭的注册合同)。此字段未计算,但我想在此字段上执行操作,以便:
->当用户选择日期时,我希望检索此日期以提供CRON Odoo。此CRON将调用一个函数来完全关闭合同,这要归功于用户之前选择的日期。
你有什么想法吗?
下面是我的CRON:
<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中,但是我找不到一个例子。
诚恳地
发布于 2019-05-15 23:41:02
你需要一个方法。负责“合约结算”部分的ecole.partner.school。然后,您可以创建一个每小时或每个月调用此方法的CronJob。
在我的示例中,将有一个带有字段date_close的模型school.catering.contract,该字段可以由用户在客户端中设置。
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 meanscron几乎是正确的。nextcall和args不是必须的。但是numbercall很重要。这意味着应该调用cron的号码。所以1的意思是,它只会被调用一次,永远不会再被调用。如果您需要一个每天都要调用的cron,那么将其设置为-1。
<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>https://stackoverflow.com/questions/56151517
复制相似问题