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}