From 824cd00461e9d93b4eda9ffc42f8406ebfc6e3c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=AE=87?= Date: Wed, 6 May 2026 17:33:44 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=9F=E8=B5=81=E5=90=88=E5=90=8C=E5=AE=A1?= =?UTF-8?q?=E6=89=B9=EF=BC=8C=E5=AD=97=E6=AE=B5=E8=81=94=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../models/property_lease_contract.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/yuthon_property_approval/models/property_lease_contract.py b/yuthon_property_approval/models/property_lease_contract.py index 8a37c3cdd..73d06834e 100644 --- a/yuthon_property_approval/models/property_lease_contract.py +++ b/yuthon_property_approval/models/property_lease_contract.py @@ -2603,12 +2603,24 @@ class PropertyManagementBreakdownLine(models.Model): management_monthly_amount = fields.Float(string="金额", digits=(16, 2)) start_data = fields.Date(string="开始日期") end_data = fields.Date(string="结束日期") - management_month_number = fields.Integer(string="期间月数") + management_month_number = fields.Float(string="期间月数", digits=(16, 2)) management_period_rent = fields.Float(string="期间费用", digits=(16, 2)) - @api.onchange('management_monthly_amount', 'month_number') + @api.onchange('start_data', 'end_data') + def _onchange_management_month_number(self): + if self.start_data and self.end_data: + if self.end_data >= self.start_data: + total_days = (self.end_data - self.start_data).days + 1 + start_month_days = calendar.monthrange(self.start_data.year, self.start_data.month)[1] + self.management_month_number = round(total_days / start_month_days, 2) + else: + self.management_month_number = 0 + else: + self.management_month_number = 0 + + @api.onchange('management_monthly_amount', 'management_month_number') def _onchange_management_amount(self): - self.management_period_rent = self.management_monthly_amount * self.management_month_number + self.management_period_rent = round(self.management_monthly_amount * self.management_month_number, 2) class PropertyWaterFeeLine(models.Model):