From f6a6d364d6ab7d9589defe3581c371f8b621796a 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: Tue, 2 Sep 2025 16:35:46 +0800 Subject: [PATCH 1/2] =?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 --- soong_workflow/models/soong_user_role.py | 22 ++ .../views/soong_user_role_views.xml | 3 + .../models/yuthon_hr_department.py | 6 +- .../models/property_penalty_relief.py | 12 +- .../views/property_penalty_relief.xml | 18 +- .../views/property_rent_relief.xml | 2 +- .../models/inherit_purchase_order.py | 5 + yuthon_stock/views/inherit_stock_picking.xml | 220 ++++++++++++++---- 8 files changed, 233 insertions(+), 55 deletions(-) diff --git a/soong_workflow/models/soong_user_role.py b/soong_workflow/models/soong_user_role.py index ce9fa271d..07504f179 100644 --- a/soong_workflow/models/soong_user_role.py +++ b/soong_workflow/models/soong_user_role.py @@ -117,10 +117,32 @@ class YuthonUserRoleGroup(models.Model): number = fields.Char(string="序号", store=True) user_note = fields.Text(string="角色说明") user_role_ids = fields.Many2many('soong.user.role', string='包含角色', index=True) + company_id = fields.Many2one('res.company', string='公司') start_date = fields.Date(string="生效日期", default=fields.Datetime.today()) end_date = fields.Date(string="终止日期") create_date = fields.Date(string="创建日期", default=fields.Datetime.today()) + is_company = fields.Boolean(string="本公司", default=True, compute='_compute_is_company', + search='_search_part_of_company') + + @api.depends_context('uid', 'company') + @api.depends('company_id') + def _compute_is_company(self): + active_company_ids = self.env.companies + for record in self: + record.is_company = record.company_id in active_company_ids + + def _search_part_of_company(self, operator, value): + if operator not in ('=', '!=') or not isinstance(value, bool): + raise UserError(('Operation not supported')) + company_ids = self.env.companies.ids + if not value: + operator = '!=' if operator == '=' else '=' + if operator == '=': + return [('company_id', 'in', company_ids)] + else: + return [('company_id', 'not in', company_ids)] + def button_role_group_wizard(self): return { 'name': '包含角色弹窗', diff --git a/soong_workflow/views/soong_user_role_views.xml b/soong_workflow/views/soong_user_role_views.xml index 3acc48e71..9e04f19b2 100644 --- a/soong_workflow/views/soong_user_role_views.xml +++ b/soong_workflow/views/soong_user_role_views.xml @@ -92,6 +92,8 @@ + +