@@ -6,4 +6,17 @@
|
||||
<field name="prefix">HT%(y)s%(month)s%(day)s</field>
|
||||
<field name="padding">3</field>
|
||||
</record>
|
||||
<record forcecreate="True" id="hr_contract_update_state" model="ir.cron">
|
||||
<field name="name">定时任务:更新员工合同状态</field>
|
||||
<field name="model_id" ref="update_contract_states"/>
|
||||
<field name="state">code</field>
|
||||
<field name="code">model.card_lc_remind_in()</field>
|
||||
<field eval="True" name="active"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="interval_number">1</field>
|
||||
<field name="interval_type">days</field>
|
||||
<field name="nextcall" eval="(DateTime.now()).strftime('%Y-%m-%d 08:20:00')"/>
|
||||
<field name="numbercall">-1</field>
|
||||
<field eval="False" name="doall"/>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -56,6 +56,20 @@ class HrContract(models.Model):
|
||||
# 调用原生写入逻辑
|
||||
return super(HrContract, self).write(vals)
|
||||
|
||||
def update_contract_states(self):
|
||||
today = date.today()
|
||||
active_contracts = self.search([
|
||||
('state', 'not in', ['cancel']),
|
||||
])
|
||||
for contract in active_contracts:
|
||||
if not contract.date_end:
|
||||
contract.state = 'open'
|
||||
else:
|
||||
if contract.date_end < today:
|
||||
contract.state = 'close'
|
||||
else:
|
||||
contract.state = 'open'
|
||||
|
||||
@api.depends_context('uid', 'company')
|
||||
@api.depends('company_id')
|
||||
def _compute_is_company(self):
|
||||
|
||||
Reference in New Issue
Block a user