From 235ae8ee1f5848b72ddaa0c949bc477aee7eb795 Mon Sep 17 00:00:00 2001 From: zhou <123@> Date: Tue, 17 Jun 2025 20:27:49 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- yuthon_contract/data/contract_code_data.xml | 13 +++++++++++++ yuthon_contract/models/inherit_hr_contract.py | 14 ++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/yuthon_contract/data/contract_code_data.xml b/yuthon_contract/data/contract_code_data.xml index 691b0f896..22610f704 100644 --- a/yuthon_contract/data/contract_code_data.xml +++ b/yuthon_contract/data/contract_code_data.xml @@ -6,4 +6,17 @@ HT%(y)s%(month)s%(day)s 3 + + 定时任务:更新员工合同状态 + + code + model.card_lc_remind_in() + + + 1 + days + + -1 + + \ No newline at end of file diff --git a/yuthon_contract/models/inherit_hr_contract.py b/yuthon_contract/models/inherit_hr_contract.py index 912dd63f6..432408276 100644 --- a/yuthon_contract/models/inherit_hr_contract.py +++ b/yuthon_contract/models/inherit_hr_contract.py @@ -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):