Merge pull request !5624 from 李鹏宇/dev
This commit is contained in:
李鹏宇
2025-10-13 03:18:47 +00:00
committed by Gitee
@@ -217,10 +217,10 @@ class PropertyRentalWizard(models.Model):
"due_date": start_date
})
def process_rent_record(self, record, rent_id, date_field_year_month, days, period_month=0, multiplier=1, is_year=0):
def process_rent_record(self, record, rent_id, date_field_year_month, multiplier=1):
"""封装处理租金逻辑,增加 multiplier 参数用于乘法"""
if rent_id.start_data:
start_date_adj = rent_id.start_data + relativedelta(months=period_month)
start_date_adj = rent_id.start_data
start_year_month = start_date_adj.strftime('%Y-%m')
end_year_month = rent_id.end_data.strftime('%Y-%m')
start_day = start_date_adj.day
@@ -251,39 +251,17 @@ class PropertyRentalWizard(models.Model):
# 获取当月第一天和最后一天
first_day = datetime.strptime(date_field_year_month, '%Y-%m').date()
last_day = first_day + relativedelta(months=1) - relativedelta(days=1)
next_month_first_day = first_day + relativedelta(months=1)
records = self.env['property.lease.contract'].search([
('actual_start_time', '<=', last_day),
('actual_start_time', '<', next_month_first_day),
('actual_end_time', '>=', first_day),
])
filtered_records = [
rec for rec in records
if not (
rec.cycle_mode == 'fixed_monthly'
# 条件2:实际开始日期的日是1号
and getattr(rec.actual_start_time, 'day', None) != 1
# 条件3:实际结束日期的年月等于目标年月
and getattr(rec.actual_end_time, 'year', None) == year
and getattr(rec.actual_end_time, 'month', None) == month
)
]
for record in filtered_records:
date_data = {
'five': 5,
'fifteen': 15,
'twentyfive': 25
}
days = date_data.get(record.date_of_payment, 0)
period_month = record.rent_free_period_month if record.rent_free_period_month else 0 # 免租期
#判断是否年
is_year = 0
if record.cycle_dict == 'year':
is_year = 1
for record in records:
# 获取租金乘数(1 表示按月,3 表示季租金,6 表示半年租金,年后面赋值)
multiplier = self.get_multiplier(record.cycle_dict)
for rent_id in record.breakdown_ids:
self.process_rent_record(record, rent_id, date_field_year_month, days, period_month, multiplier, is_year)
self.process_rent_record(record, rent_id, date_field_year_month, multiplier)
self.create_deposit_list(record)
# 生成水电费列表
self.create_water_fee_list(record, first_day, last_day)