diff --git a/soong_workflow/models/soong_workflow_mixin.py b/soong_workflow/models/soong_workflow_mixin.py index 2038580ed..6f49befb4 100644 --- a/soong_workflow/models/soong_workflow_mixin.py +++ b/soong_workflow/models/soong_workflow_mixin.py @@ -340,22 +340,21 @@ class SoongWorkflowMixin(models.AbstractModel): btn for btn in next_node.button_ids if btn.name == '转交' ] - has_visible_transfer_btn = False + has_visible_transfer_btn = True # 判断按钮隐藏条件 如果没有可用的就跳过(说明流程最后一步) if not transfer_buttons: has_visible_transfer_btn = True else: for btn in transfer_buttons: - if not btn.invisible_expression: - has_visible_transfer_btn = False - break - else: + if btn.is_review_invisible: domain = eval(btn.invisible_expression) expression_result = self.search(domain) has_self_in_result = self.id in expression_result.ids if not has_self_in_result: has_visible_transfer_btn = False break + else: + has_visible_transfer_btn = True if not has_visible_transfer_btn: skipped_node_names.append(next_node.name) diff --git a/soong_workflow/wizard/soong_workflow_comment_wizard.py b/soong_workflow/wizard/soong_workflow_comment_wizard.py index 3a7cf858c..e6d1ea072 100644 --- a/soong_workflow/wizard/soong_workflow_comment_wizard.py +++ b/soong_workflow/wizard/soong_workflow_comment_wizard.py @@ -154,6 +154,8 @@ class SoongWorkflowCommentWizard(models.TransientModel): for record in self: if not record.trans_link_id: continue + available_links = self.env['trans.link'].search([]) + record.invalid_link_ids = available_links[1:] record_id = self.env[record.res_model].browse(record.res_id) if record.res_model and record.res_id else None for link in record.trans_link_id: employee_user_role_ids = self._get_approvers_for_link(link, record_id) diff --git a/yuthon_hr_attendance/models/hr_attendance.py b/yuthon_hr_attendance/models/hr_attendance.py index 6649044ca..c58649264 100644 --- a/yuthon_hr_attendance/models/hr_attendance.py +++ b/yuthon_hr_attendance/models/hr_attendance.py @@ -112,10 +112,9 @@ class HrAttendance(models.Model): record.company_id = False def write(self, vals): - # 仅在修改check_out字段时执行逻辑 if 'check_out' in vals: for record in self: - target_date = record.current_data # date类型 + target_date = record.current_data start_of_day = datetime.combine(target_date, datetime.min.time()) end_of_day = start_of_day + timedelta(days=1) start_str = fields.Datetime.to_string(start_of_day) @@ -127,7 +126,6 @@ class HrAttendance(models.Model): ]) if detail_records: - # 提取所有checkin_time并找出最大值 max_checkin_time = max(detail_records.mapped('checkin_time')) vals['check_out'] = max_checkin_time return super(HrAttendance, self).write(vals)