From 56e55d8cbdf17e774ee77890236396fadc08052e 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: Fri, 12 Dec 2025 19:35:05 +0800 Subject: [PATCH] =?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 --- yuthon_property/wizard/meter_price_wizard.py | 20 +++++++++++++++++++ yuthon_property/wizard/water_price_wizard.py | 21 ++++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/yuthon_property/wizard/meter_price_wizard.py b/yuthon_property/wizard/meter_price_wizard.py index eacefff64..7b29b2afc 100644 --- a/yuthon_property/wizard/meter_price_wizard.py +++ b/yuthon_property/wizard/meter_price_wizard.py @@ -17,6 +17,26 @@ class MeterPriceWizard(models.TransientModel): default=lambda self: str(datetime.now().year)) price = fields.Float(string='计费单价', digits=(16, 4)) + @api.onchange("select_time", "select_year") + def _get_price(self): + year = int(self.select_year) + month = int(self.select_time) + start_date = datetime(year, month, 1).date() + if month == 12: + next_month = 1 + next_year = year + 1 + else: + next_month = month + 1 + next_year = year + end_date = (datetime(next_year, next_month, 1).date() - timedelta(days=1)) + logs_id = self.env['hydropower.logs'].search([('logs_date', '>=', start_date), ('logs_date', '<=', end_date), + ('meter_type', '=', 'electric') + ], limit=1) + if logs_id: + self.price = logs_id.price + else: + self.price = 0.0 + def confirm(self): year = int(self.select_year) month = int(self.select_time) diff --git a/yuthon_property/wizard/water_price_wizard.py b/yuthon_property/wizard/water_price_wizard.py index 47e7bbf8b..77f321d86 100644 --- a/yuthon_property/wizard/water_price_wizard.py +++ b/yuthon_property/wizard/water_price_wizard.py @@ -17,6 +17,27 @@ class WaterPriceWizard(models.TransientModel): default=lambda self: str(datetime.now().year)) price = fields.Float(string='计费单价', digits=(16, 4)) + @api.onchange("select_time", "select_year") + def _get_price(self): + year = int(self.select_year) + month = int(self.select_time) + start_date = datetime(year, month, 1).date() + if month == 12: + next_month = 1 + next_year = year + 1 + else: + next_month = month + 1 + next_year = year + end_date = (datetime(next_year, next_month, 1).date() - timedelta(days=1)) + logs_id = self.env['hydropower.logs'].search([('logs_date', '>=', start_date), ('logs_date', '<=', end_date), + ('meter_type', '=', 'water') + ], + limit=1) + if logs_id: + self.price = logs_id.price + else: + self.price = 0.0 + def confirm(self): year = int(self.select_year) month = int(self.select_time)