From 3feaf50f0eeacfd6d39f49f5e6bed01d9fcbab65 Mon Sep 17 00:00:00 2001 From: zhou <123@> Date: Wed, 11 Jun 2025 10:33:48 +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/soong_workflow_record.py | 18 ++++++++ .../views/soong_workflow_record.xml | 4 +- .../views/yuthon_vacation_reports_views.xml | 2 +- .../models/yuthon_hr_employee.py | 41 +++++-------------- .../views/yuthon_hr_employee_views.xml | 12 ++---- yuthon_property/views/menuitem.xml | 4 +- .../models/inherit_yuthon_property.py | 29 ++++--------- .../wizard/property_reconciliation_wizard.py | 2 +- .../property_reconciliation_wizard_views.xml | 4 +- 9 files changed, 50 insertions(+), 66 deletions(-) diff --git a/soong_workflow/models/soong_workflow_record.py b/soong_workflow/models/soong_workflow_record.py index d05a88dc0..dda3c6b2f 100644 --- a/soong_workflow/models/soong_workflow_record.py +++ b/soong_workflow/models/soong_workflow_record.py @@ -47,6 +47,7 @@ class SoongWorkflowRecord(models.Model): department_id = fields.Many2one("hr.department", string="部门", required=True) done_by = fields.Many2one(comodel_name="res.users", string="发起人") active = fields.Boolean(string="归档", default=True) + soong_state = fields.Selection([('to_do', '待办'), ('done', '已办')], string="流程状态", default="done") member_of_department = fields.Boolean("是否是本部门数据", compute='_compute_part_of_department', search='_search_part_of_department') @api.depends_context('uid', 'company') @@ -100,6 +101,23 @@ class SoongWorkflowRecord(models.Model): "view_mode": "form", } + @api.model + def get_view(self, view_id=None, view_type='form', **options): + """在视图加载时检查当前用户是否在经办人列表中,并更新状态""" + # 检查是否通过特定动作触发(替换为你的视图ID) + if options.get('action_id') == 538: # 替换为实际的视图ID + current_employee = self.env['hr.employee'].search([('user_id', '=', self.env.uid)], limit=1) + if current_employee: + # 更新所有当前用户是经办人的记录状态为"待办" + records = self.search([ + ('employee_ids', 'in', current_employee.ids), + ('soong_state', '=', 'done') + ]) + if records: + records.write({'soong_state': 'to_do'}) + + return super(SoongWorkflowRecord, self).get_view(view_id, view_type, **options) + # def get_department_employees(self, department_id): # valid_user_ids = set() # employee_ids = self.sudo().env['hr.employee'].search([('department_id', '=', department_id.id)]) diff --git a/soong_workflow/views/soong_workflow_record.xml b/soong_workflow/views/soong_workflow_record.xml index 0fab0d917..1f5301a06 100644 --- a/soong_workflow/views/soong_workflow_record.xml +++ b/soong_workflow/views/soong_workflow_record.xml @@ -24,7 +24,7 @@ soong.workflow.record @@ -40,6 +40,7 @@ +