diff --git a/soong_workflow/models/soong_workflow_mixin.py b/soong_workflow/models/soong_workflow_mixin.py index 85b46ca90..8c5cca738 100644 --- a/soong_workflow/models/soong_workflow_mixin.py +++ b/soong_workflow/models/soong_workflow_mixin.py @@ -310,18 +310,18 @@ class SoongWorkflowMixin(models.AbstractModel): break # 获取当前节点的部门 - current_department = self.department_id - if len(current_node.out_link_ids) > 1: # 筛选与当前节点部门匹配的后续节点 valid_nodes = [] for link in current_node.out_link_ids: target_node = link.node_to # 如果目标节点有部门限制,且与当前节点部门匹配 - if target_node.department_id and (target_node.department_id == current_department or - current_department in self.get_all_sub_departments( - target_node.department_id)): + if target_node.department_id and any( + dept in current_department or + current_department in self.get_all_sub_departments(dept) + for dept in target_node.department_id + ): valid_nodes.append((target_node, link)) # 尝试父部门匹配 @@ -329,9 +329,11 @@ class SoongWorkflowMixin(models.AbstractModel): parent_department = current_department.parent_id for link in current_node.out_link_ids: target_node = link.node_to - if target_node.department_id and (target_node.department_id == parent_department or - parent_department in self.get_all_sub_departments( - target_node.department_id)): + if target_node.department_id and any( + dept in parent_department or + parent_department in self.get_all_sub_departments(dept) + for dept in target_node.department_id + ): valid_nodes.append((target_node, link)) # 如果两种匹配都失败,将所有节点加入有效列表 diff --git a/yuthon_property_approval/models/inherit_yuthon_property.py b/yuthon_property_approval/models/inherit_yuthon_property.py index 87331d8f2..860f50f58 100644 --- a/yuthon_property_approval/models/inherit_yuthon_property.py +++ b/yuthon_property_approval/models/inherit_yuthon_property.py @@ -261,6 +261,24 @@ class PropertyAccountsReceivable(models.Model): penalty = fields.Float(string="违约金") penalty_date = fields.Date(string="违约金日期") + @api.model_create_multi + def create(self, vals_list): + records = super(PropertyAccountsReceivable, self).create(vals_list) + BankStatement = self.env['property.bank.statements'] + for record in records: + if record.lessee_id and record.property_id: + statements = BankStatement.search([ + ('name_account', '=', record.lessee_id.name), + ('bank_state', '=', 'not_reconciled'), + ]) + + for statement in statements: + statement.write({ + 'property_ids': [(4, record.property_id.id)], + 'contract_ids': [(4, record.contract_id.id)], + }) + return records + @api.onchange('penalty_date') def _onchange_penalty_date(self): for record in self: diff --git a/yuthon_property_approval/wizard/property_reconciliation_wizard.py b/yuthon_property_approval/wizard/property_reconciliation_wizard.py index 2187f60d1..6c571bff8 100644 --- a/yuthon_property_approval/wizard/property_reconciliation_wizard.py +++ b/yuthon_property_approval/wizard/property_reconciliation_wizard.py @@ -8,7 +8,7 @@ class PropertyReconciliationWizard(models.Model): _description = '对账弹窗' receivable_total = fields.Float(string='应收金额') - bank_id = fields.Many2one('property.bank.statements', string='银行流水') + bank_id = fields.Many2one('property.bank.statements', string='银行流水') account = fields.Char(string='账号') actual_total = fields.Float(string='实收金额') actual_date = fields.Date(string='实收日期')