diff --git a/soong_workflow/models/soong_workflow_record.py b/soong_workflow/models/soong_workflow_record.py index c7f26e12b..900f18379 100644 --- a/soong_workflow/models/soong_workflow_record.py +++ b/soong_workflow/models/soong_workflow_record.py @@ -77,6 +77,25 @@ class SoongWorkflowRecord(models.Model): compute='_compute_is_to_do', search='_search_is_to_do', ) + + 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 employee in self: + employee.is_company = employee.company_id in active_company_ids + + def _search_part_of_company(self, operator, value): + 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)] + @api.depends('employee_ids', 'soong_state', 'reclaim_state') def _compute_is_to_do(self): current_uid = self.env.user.id diff --git a/soong_workflow/views/soong_workflow_record.xml b/soong_workflow/views/soong_workflow_record.xml index a5c630aa8..b91f99870 100644 --- a/soong_workflow/views/soong_workflow_record.xml +++ b/soong_workflow/views/soong_workflow_record.xml @@ -324,6 +324,7 @@ 待办 ir.actions.act_window + [('is_company', '=', True)] soong.workflow.record tree,kanban,search {'header_search_default_approve_state': 1, 'header_search_default_to_do':1, @@ -336,6 +337,7 @@ 已办 ir.actions.act_window + [('is_company', '=', True)] soong.workflow.record tree,kanban,search {'header_search_default_approve_state': 1, 'header_search_default_to_do':1, @@ -350,6 +352,7 @@ 流程查询 ir.actions.act_window + [('is_company', '=', True)] soong.workflow.record tree,kanban,search [('reclaim_state', '=', False), ('member_of_department', '=', True)] @@ -360,6 +363,7 @@ 人事相关流程 ir.actions.act_window + [('is_company', '=', True)] soong.workflow.record tree,kanban,search [('reclaim_state', '=', False), '|', ('approvals_group_id.name', '=', '人力资源'), @@ -370,6 +374,7 @@ 流程查询 ir.actions.act_window + [('is_company', '=', True)] soong.workflow.record tree,kanban,search [('reclaim_state', '=', False), ('approvals_group_id.name', '!=', '人力资源'), @@ -381,6 +386,7 @@ 流程监控 ir.actions.act_window + [('is_company', '=', True)] soong.workflow.record tree,form,search @@ -391,6 +397,7 @@ 工作流回收站 ir.actions.act_window + [('is_company', '=', True)] soong.workflow.record tree,form [('reclaim_state', '=', True)] diff --git a/yuthon_hr_attendance/models/hr_attendance_wechat.py b/yuthon_hr_attendance/models/hr_attendance_wechat.py index a4a45ab5b..17a3ea96a 100644 --- a/yuthon_hr_attendance/models/hr_attendance_wechat.py +++ b/yuthon_hr_attendance/models/hr_attendance_wechat.py @@ -53,6 +53,24 @@ class HrAttendance(models.Model): ) is_approval = fields.Boolean(string="是否审批修正", default=False) + 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 employee in self: + employee.is_company = employee.company_id in active_company_ids + + def _search_part_of_company(self, operator, value): + 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 action_show_details(self): self.ensure_one() view = self.env.ref("yuthon_wechat.view_hr_attendance_detail_tree") diff --git a/yuthon_hr_attendance/security/planning_group.xml b/yuthon_hr_attendance/security/planning_group.xml index 6bf543528..99a2b1027 100644 --- a/yuthon_hr_attendance/security/planning_group.xml +++ b/yuthon_hr_attendance/security/planning_group.xml @@ -34,11 +34,11 @@ [('company_id', 'in', company_ids)] - - 考勤记录多公司 - - [('company_id', 'in', company_ids)] - + + + + + 假期额度记录多公司 diff --git a/yuthon_hr_attendance/views/hr_attendance_views.xml b/yuthon_hr_attendance/views/hr_attendance_views.xml index ebb6a8cdc..484b946b4 100644 --- a/yuthon_hr_attendance/views/hr_attendance_views.xml +++ b/yuthon_hr_attendance/views/hr_attendance_views.xml @@ -157,11 +157,13 @@ 出勤 + [('is_company', '=', True)] hr.attendance tree,form 全部考勤 + [('is_company', '=', True)] hr.attendance tree,form [('employee_id.resource_calendar_id.name', '=', '行政考勤')] diff --git a/yuthon_hr_employee_approval/models/yuthon_onboard_approval.py b/yuthon_hr_employee_approval/models/yuthon_onboard_approval.py index 7f3a497e1..2bd154eb9 100644 --- a/yuthon_hr_employee_approval/models/yuthon_onboard_approval.py +++ b/yuthon_hr_employee_approval/models/yuthon_onboard_approval.py @@ -76,7 +76,24 @@ class YuthonOnboardApproval(models.Model): salary_group_id = fields.Many2one( "yuthon.salary.group", string="工资单分组", store=True, index=True ) - is_this_company = fields.Boolean(string='本公司', default=True) + + 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 employee in self: + employee.is_company = employee.company_id in active_company_ids + + def _search_part_of_company(self, operator, value): + 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 _get_default_name_title(self): return self._description if self._description else self._name diff --git a/yuthon_hr_employee_approval/security/company_rule.xml b/yuthon_hr_employee_approval/security/company_rule.xml index 008fdf066..75ade0ffc 100644 --- a/yuthon_hr_employee_approval/security/company_rule.xml +++ b/yuthon_hr_employee_approval/security/company_rule.xml @@ -1,8 +1,8 @@ - - 入职多公司 - - [('company_id', 'in', company_ids)] - + + + + + \ No newline at end of file diff --git a/yuthon_hr_employee_approval/views/yuthon_onboard_approval_views.xml b/yuthon_hr_employee_approval/views/yuthon_onboard_approval_views.xml index af5e89c4a..f7fd745af 100644 --- a/yuthon_hr_employee_approval/views/yuthon_onboard_approval_views.xml +++ b/yuthon_hr_employee_approval/views/yuthon_onboard_approval_views.xml @@ -36,7 +36,7 @@ - + @@ -123,6 +123,7 @@ 基本信息 + [('is_company', '=', True)] yuthon.onboard.approval tree,form diff --git a/yuthon_purchase/data/process_code_data.xml b/yuthon_purchase/data/process_code_data.xml index e1c3c3916..111210ede 100644 --- a/yuthon_purchase/data/process_code_data.xml +++ b/yuthon_purchase/data/process_code_data.xml @@ -7,9 +7,9 @@ 3 - - 采购多公司 - - [('company_id', 'in', company_ids)] - + + + + + diff --git a/yuthon_purchase/models/inherit_purchase_order.py b/yuthon_purchase/models/inherit_purchase_order.py index 047ec2444..cf26baefa 100644 --- a/yuthon_purchase/models/inherit_purchase_order.py +++ b/yuthon_purchase/models/inherit_purchase_order.py @@ -36,6 +36,23 @@ class InheritPurchaseOrder(models.Model): pay_way = fields.Selection([('onetime', '一次性'), ('installment', '分期')], string="付款方式", default='onetime') reason_text = fields.Text(string="申请事由") pay_line_ids = fields.One2many('purchase.order.pay.line', 'order_id', string="付款详情") + 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 employee in self: + employee.is_company = employee.company_id in active_company_ids + + def _search_part_of_company(self, operator, value): + 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 update_state(self): order_ids = self.env["purchase.order"].browse( diff --git a/yuthon_purchase/views/inherit_purchase_order_views.xml b/yuthon_purchase/views/inherit_purchase_order_views.xml index ac267e1a3..b504e40aa 100644 --- a/yuthon_purchase/views/inherit_purchase_order_views.xml +++ b/yuthon_purchase/views/inherit_purchase_order_views.xml @@ -158,4 +158,10 @@ code action = model.update_state() + + + Purchase Orders + [('is_company', '=', True)] + purchase.order +