From 81dd4f90c9a40d4b39b247ebb8377d2f51699eef 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: Wed, 4 Mar 2026 16:12:24 +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 --- .../models/property_lease_renewal.py | 34 +++++++++++++++---- 1 file changed, 28 insertions(+), 6 deletions(-) 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, From a466c213fec5d1c8b3834118f343c11f9e459625 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: Wed, 4 Mar 2026 16:20:17 +0800 Subject: [PATCH 2/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 --- .../models/property_lease_renewal.py | 37 ++++--------------- 1 file changed, 7 insertions(+), 30 deletions(-) diff --git a/yuthon_property_approval/models/property_lease_renewal.py b/yuthon_property_approval/models/property_lease_renewal.py index f7ebb0fca..55f3013ec 100644 --- a/yuthon_property_approval/models/property_lease_renewal.py +++ b/yuthon_property_approval/models/property_lease_renewal.py @@ -96,17 +96,7 @@ 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 - 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 - + original_lessee_id = origin_contract.lessee_id.id 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 @@ -123,26 +113,13 @@ class PropertyLeaseRenewal(models.Model): '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) - }) - 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), - }) - + 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,