!10289 添加功能

Merge pull request !10289 from 李鹏宇/dev_zhou
This commit is contained in:
李鹏宇
2026-03-26 09:38:00 +00:00
committed by Gitee
@@ -217,6 +217,10 @@ class PropertyBankStatements(models.Model):
# 获取当前记录的日期(用于判断出租方变更行的生效期)
target_date = record.start_time.date() if record.start_time else fields.Date.today()
# ====================== 提取目标年月 ======================
target_year = target_date.year
target_month = target_date.month
for lessee in record.lessee_ids:
# 从承租方的租户行提取合同
tenant_lines = lessee.property_contract_ids.filtered(
@@ -228,13 +232,27 @@ class PropertyBankStatements(models.Model):
if not contract:
continue
# 按【年月】判断合同是否有效
is_contract_valid = False
if contract.actual_start_time and contract.actual_start_time <= target_date:
if not contract.actual_end_time or contract.actual_end_time >= target_date:
is_contract_valid = True
if contract.actual_start_time:
start_year = contract.actual_start_time.year
start_month = contract.actual_start_time.month
# 合同开始年月 <= 目标年月
if (start_year < target_year) or (
start_year == target_year and start_month <= target_month):
# 合同结束时间判断:未设置 或 结束年月 >= 目标年月
if not contract.actual_end_time:
is_contract_valid = True
else:
end_year = contract.actual_end_time.year
end_month = contract.actual_end_time.month
if (end_year > target_year) or (
end_year == target_year and end_month >= target_month):
is_contract_valid = True
if not is_contract_valid:
continue
# 1. 筛选合同的出租方变更行:生效日期≤目标日期,失效日期≥目标日期/未设置
valid_lessor_lines = contract.lessor_line.filtered(
lambda l: