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):