From 477e22833eec10571d0d3bd2e72fb12ea5d801ae Mon Sep 17 00:00:00 2001
From: zhouzhou <123@qq.com>
Date: Sat, 7 Sep 2024 16:42:33 +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
---
.../models/yuthon_hr_employee.py | 16 ++++-
.../views/yuthon_hr_employee_views.xml | 69 +++++++++++++++++++
2 files changed, 84 insertions(+), 1 deletion(-)
diff --git a/yuthon_hr_employee/models/yuthon_hr_employee.py b/yuthon_hr_employee/models/yuthon_hr_employee.py
index 11cfa7472..5cb0e39e4 100644
--- a/yuthon_hr_employee/models/yuthon_hr_employee.py
+++ b/yuthon_hr_employee/models/yuthon_hr_employee.py
@@ -1,6 +1,7 @@
# -*- coding: utf-8 -*-
from odoo import api, fields, models
from datetime import datetime
+from odoo.exceptions import UserError, ValidationError
nation_list = [('a', '汉族'), ('b', '壮族'), ('v', '满族'), ('d', '回族'), ('e', '苗族'), ('f', '维吾尔族'),
('g', '土家族'), ('h', '彝族'), ('i', '蒙古族'), ('j', '藏族'), ('k', '布依族'), ('l', '侗族'),
@@ -34,7 +35,7 @@ class YuthonHrEmployee(models.Model):
confirmation_date = fields.Date(string="转正时间")
company_old = fields.Char(string="司龄", compute='_compute_company_old')
user_sex = fields.Selection([('girl', '女'), ('boy', '男')], string="性别")
- user_state = fields.Selection([('in', '在职'), ('leave', '离职'), ('withdraw', '退休')], string="员工状态")
+ user_state = fields.Selection([('in', '在职'), ('leave', '离职'), ('withdraw', '退休')], string="员工状态",compute='_compute_user_state')
user_number_start_time = fields.Date(string="身份中有效开始时间")
user_number_end_time = fields.Date(string="身份证有效到期时间")
nation = fields.Selection(nation_list, string="民族")
@@ -159,3 +160,16 @@ class YuthonHrEmployee(models.Model):
record.retire_years = 0
else:
record.retire_years = 0
+
+ @api.depends('new_start_contract_data', 'new_end_contract_data')
+ def _compute_user_state(self):
+ for record in self:
+ today = datetime.now().date()
+ if record.new_start_contract_data >= record.new_end_contract_data:
+ raise ValidationError('合同开始日期不能大于合同结束日期')
+ if record.new_start_contract_data <= today <= record.new_end_contract_data:
+ record.user_state = 'in'
+ else:
+ record.user_state = 'leave'
+
+
diff --git a/yuthon_hr_employee/views/yuthon_hr_employee_views.xml b/yuthon_hr_employee/views/yuthon_hr_employee_views.xml
index 3c5e8b3b6..9b22dbde4 100644
--- a/yuthon_hr_employee/views/yuthon_hr_employee_views.xml
+++ b/yuthon_hr_employee/views/yuthon_hr_employee_views.xml
@@ -203,6 +203,35 @@
上级领导
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -213,4 +242,44 @@
code
action = model.action_hr_employee()
+
+
+
+ 在职
+ hr.employee
+ kanban,tree,form
+ [('user_state','=','in')]
+
+
+
+ 离职
+ hr.employee
+ kanban,tree,form
+ [('user_state','=','leave')]
+
+
+
+ 退休
+ hr.employee
+ kanban,tree,form
+ [('user_state','=','withdraw')]
+
+
+
+
+
+
+
\ No newline at end of file