From 4f06d61ae52af9361818a321a7b84be5e8d050b4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=AE=87?=
<9664676+pengyuthon@user.noreply.gitee.com>
Date: Wed, 12 Nov 2025 20:21:16 +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
---
.../templates/soong_workflow_templates.xml | 30 -------------
.../models/inherit_hr_employee.py | 1 +
.../models/yuthon_reassignment_approval.py | 43 ++++++++++++++++---
.../yuthon_reassignment_approval_views.xml | 1 +
.../models/inherit_yuthon_property.py | 21 +--------
.../views/inherit_yuthon_property_views.xml | 4 +-
6 files changed, 41 insertions(+), 59 deletions(-)
diff --git a/soong_workflow/templates/soong_workflow_templates.xml b/soong_workflow/templates/soong_workflow_templates.xml
index 7cb4dfd0b..1a48c2849 100644
--- a/soong_workflow/templates/soong_workflow_templates.xml
+++ b/soong_workflow/templates/soong_workflow_templates.xml
@@ -14,36 +14,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
- 经办人: []
-
-
-
-
-
-
-
-
-
-
-
diff --git a/yuthon_hr_employee_approval/models/inherit_hr_employee.py b/yuthon_hr_employee_approval/models/inherit_hr_employee.py
index cdd982e4e..88890bcff 100644
--- a/yuthon_hr_employee_approval/models/inherit_hr_employee.py
+++ b/yuthon_hr_employee_approval/models/inherit_hr_employee.py
@@ -25,6 +25,7 @@ class YuthonHrEmployee(models.Model):
'default_onboarding_date': employee.entry_date,
'default_end_of_contract': employee.entry_date,
'default_parent_id': employee.parent_id.id,
+ 'default_version': employee.contract_id.version if employee.contract_id else False,
}
}
diff --git a/yuthon_hr_employee_approval/models/yuthon_reassignment_approval.py b/yuthon_hr_employee_approval/models/yuthon_reassignment_approval.py
index dd559bcdc..a6d86e7c2 100644
--- a/yuthon_hr_employee_approval/models/yuthon_reassignment_approval.py
+++ b/yuthon_hr_employee_approval/models/yuthon_reassignment_approval.py
@@ -1,5 +1,6 @@
from odoo import models, fields, api
from odoo.exceptions import UserError
+from datetime import datetime, time, timedelta, date
class YuthonReassignmentApproval(models.Model):
@@ -23,6 +24,7 @@ class YuthonReassignmentApproval(models.Model):
is_issues = fields.Boolean(string='是否上会')
issues_result = fields.Html(string="会议结果")
related_issues_id = fields.Many2one('issue.library', string="关联议题")
+ version = fields.Char(string="版本")
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
active = fields.Boolean('Active', default=True, tracking=True)
@@ -73,6 +75,7 @@ class YuthonReassignmentApproval(models.Model):
for record in reassignment_approval_ids:
if record.change_date <= current_date:
employee = record.employee_id
+ old_contract = employee.contract_id
update_vals = {}
if record.change_department_id:
update_vals['department_id'] = record.change_department_id.id
@@ -83,16 +86,42 @@ class YuthonReassignmentApproval(models.Model):
if update_vals:
employee.write(update_vals)
- if employee.contract_id:
- contract_vals = {}
+ if old_contract:
+ version_str = self.version.lstrip('V')
+ main_version = version_str.split('.')[0]
+ new_main_version = int(main_version) + 1
+ new_version = f"V{new_main_version}.0"
+ new_contract_vals = {
+ 'employee_id': old_contract.employee_id.id,
+ 'name': old_contract.name,
+ 'state': 'open',
+ 'party_id': old_contract.party_id.id,
+ 'is_annual_salary': old_contract.is_annual_salary,
+ 'date_start': record.change_date,
+ 'date_end': False,
+ 'resource_calendar_id': old_contract.resource_calendar_id.id,
+ 'structure_type_id': old_contract.structure_type_id.id,
+ 'department_id': old_contract.department_id.id,
+ 'job_id': old_contract.job_id.id,
+ 'termination_date': old_contract.termination_date,
+ 'salary_group_id': old_contract.salary_group_id.id,
+ 'contract_type_id': old_contract.contract_type_id.id,
+ 'version': new_version,
+ 'wage': old_contract.wage,
+ }
+
if record.change_job_id:
- contract_vals['job_id'] = record.change_job_id.id
+ new_contract_vals['job_id'] = record.change_job_id.id
if record.change_structure_id:
- contract_vals['struct_id'] = record.change_structure_id.id
+ new_contract_vals[ 'structure_type_id'] = record.change_structure_id.id
if record.change_department_id:
- contract_vals['department_id'] = record.change_department_id.id
- if contract_vals:
- employee.contract_id.write(contract_vals)
+ new_contract_vals['department_id'] = record.change_department_id.id
+ new_contract = self.env['hr.contract'].create(new_contract_vals)
+ old_contract.write({
+ 'state': 'cancel',
+ 'date_end': record.change_date - timedelta(days=1),
+ })
+ employee.contract_id = new_contract.id
record.is_execution = True
diff --git a/yuthon_hr_employee_approval/views/yuthon_reassignment_approval_views.xml b/yuthon_hr_employee_approval/views/yuthon_reassignment_approval_views.xml
index db375ff19..881675294 100644
--- a/yuthon_hr_employee_approval/views/yuthon_reassignment_approval_views.xml
+++ b/yuthon_hr_employee_approval/views/yuthon_reassignment_approval_views.xml
@@ -54,6 +54,7 @@
+
diff --git a/yuthon_property_approval/models/inherit_yuthon_property.py b/yuthon_property_approval/models/inherit_yuthon_property.py
index b94aafb93..5469b6d9d 100644
--- a/yuthon_property_approval/models/inherit_yuthon_property.py
+++ b/yuthon_property_approval/models/inherit_yuthon_property.py
@@ -997,27 +997,8 @@ class PropertyRentList(models.Model):
tenure_type = fields.Selection(related='contract_id.tenure_type', string="权属类型", store=True)
property_address = fields.Text(string="物业信息", compute='get_property_address')
contract_sort = fields.Selection(related='contract_id.contract_sort', string="资产类型", store=True) # 数据库存储问题,无意义
- contract_sort1 = fields.Selection([('property', '物业'), ('guanggao', '广告位'),('parking', '停车场'), ('guanzi', '管子间'), ('room', '机房'), ('base_station','基站'), ('other', '其他')], string="资产类型", default='property')
+ contract_sort1 = fields.Selection([('property', '物业'), ('guanggao', '广告位'), ('parking', '停车场'), ('guanzi', '管子间'), ('room', '机房'), ('base_station','基站'), ('other', '其他')], string="资产类型", default='property')
company_id = fields.Many2one(related='contract_id.lessor_id', string="出租方公司", store=True)
- is_company = fields.Boolean(string='是否是本公司', compute='_compute_is_company', store=False)
-
- @api.depends('company_id')
- @api.depends_context('uid', 'company')
- def _compute_is_company(self):
- user_companies = self.env['res.company'].browse(self.env.companies.ids)
- user_company_names = set(user_companies.mapped('name'))
- account_mapping = {
- '集团本部': ['天河投资', '天投城建'],
- '天河物管': ['天河物管'],
- '天河粮储': ['天河粮储']
- }
- for record in self:
- record.is_company = False
- for company_name, allowed_accounts in account_mapping.items():
- if company_name in user_company_names:
- if record.company_id.referred in allowed_accounts:
- record.is_company = True
- break
@api.depends('contract_id')
def get_property_address(self):
diff --git a/yuthon_property_approval/views/inherit_yuthon_property_views.xml b/yuthon_property_approval/views/inherit_yuthon_property_views.xml
index acb082536..2d1905de7 100644
--- a/yuthon_property_approval/views/inherit_yuthon_property_views.xml
+++ b/yuthon_property_approval/views/inherit_yuthon_property_views.xml
@@ -128,7 +128,7 @@
-
+
@@ -159,7 +159,7 @@
租金列表
property.rent.list
tree,search
- [('is_push', '=', False), ('is_company', '=', True)]
+ [('is_push', '=', False)]
{'search_default_group_admin_id': True, 'search_default_group_due_date': True}