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):