diff --git a/yuthon_property_approval/models/property_lease_renewal.py b/yuthon_property_approval/models/property_lease_renewal.py index 572c5447b..f7ebb0fca 100644 --- a/yuthon_property_approval/models/property_lease_renewal.py +++ b/yuthon_property_approval/models/property_lease_renewal.py @@ -96,7 +96,17 @@ class PropertyLeaseRenewal(models.Model): if not contract_actual_end_date or contract_actual_end_date >= month_end_date: rec.hide = True origin_contract = rec.contract_id - original_lessee_id = origin_contract.lessee_id.id if origin_contract.lessee_id else False + first_alteration = self.env['lessee.alteration.line'].search( + [('contract_id', '=', origin_contract.id)], + order='end_date asc', limit=1 + ) + if first_alteration: + original_lessee_id = first_alteration.lessee_id.id + rec.display_name = first_alteration.lessee_id.name + else: + original_lessee_id = origin_contract.lessee_id.id if origin_contract.lessee_id else False + rec.original_lessee_id = origin_contract.lessee_id.name if origin_contract.lessee_id else False + version_str = origin_contract.version.lstrip('V') main_version = version_str.split('.')[0] new_main_version = int(main_version) + 1 @@ -109,18 +119,30 @@ class PropertyLeaseRenewal(models.Model): contract_to_unlink.unlink() # 新增新承租方的物业合同信息 property_contract_list = [] - if original_lessee_id and origin_contract.id and rec.effective_date and origin_contract.contact_state == 'ing': - origin_contract.write({ - 'version': new_version, - 'lessee_id': rec.new_lessee_id.id + origin_contract.write({ + 'version': new_version, + 'lessee_id': rec.new_lessee_id.id + }) + # 新增承租方变更明细 + origin_contract.is_lessee = True + domain = [ + ('contract_id', '=', origin_contract.id), + ('end_date', '=', rec.effective_date - relativedelta(days=1)) + ] + existing_line = self.env['lessee.alteration.line'].search(domain, limit=1) + if existing_line: + existing_line.write({ + 'lessee_id': original_lessee_id, + 'end_date': rec.effective_date - relativedelta(days=1) }) - origin_contract.is_lessee = True + else: self.env['lessee.alteration.line'].create({ 'contract_id': origin_contract.id, 'lessee_id': original_lessee_id, 'start_date': origin_contract.actual_start_time, 'end_date': rec.effective_date - relativedelta(days=1), }) + origin_contract._compute_contract_count() property_contract_list.append([0, 0, { 'tenant_id': rec.new_lessee_id.id,