diff --git a/yuthon_report/models/hydropower_report.py b/yuthon_report/models/hydropower_report.py index 40d5e0112..70bb598a8 100644 --- a/yuthon_report/models/hydropower_report.py +++ b/yuthon_report/models/hydropower_report.py @@ -49,13 +49,21 @@ class HydropowerReport(models.Model): '房屋名称': property_id.name, '业户名称': property_id.lessee_id.name if property_id.lessee_id else '', '水费': 0.0, - '水费期间': '', + '_water_last_meter': None, + '_water_meter_date': None, '电费': 0.0, - '电费期间': '', + '_electric_last_meter': None, + '_electric_meter_date': None, '小计': 0.0 } property_dict[key]['水费'] += water.receivables - property_dict[key]['水费期间'] = f"{start_date}到{end_date}" + # 记录最早 last_meter 和最晚 meter_date + if water.last_meter: + if property_dict[key]['_water_last_meter'] is None or water.last_meter < property_dict[key]['_water_last_meter']: + property_dict[key]['_water_last_meter'] = water.last_meter + if water.meter_date: + if property_dict[key]['_water_meter_date'] is None or water.meter_date > property_dict[key]['_water_meter_date']: + property_dict[key]['_water_meter_date'] = water.meter_date for electric in electric_data: for property_id in electric.yuthon_property_ids: @@ -65,18 +73,41 @@ class HydropowerReport(models.Model): '房屋名称': property_id.name, '业户名称': property_id.lessee_id.name if property_id.lessee_id else '', '水费': 0.0, - '水费期间': '', + '_water_last_meter': None, + '_water_meter_date': None, '电费': 0.0, - '电费期间': '', + '_electric_last_meter': None, + '_electric_meter_date': None, '小计': 0.0 } property_dict[key]['电费'] += electric.receivables - property_dict[key]['电费期间'] = f"{start_date}到{end_date}" + # 记录最早 last_meter 和最晚 meter_date + if electric.last_meter: + if property_dict[key]['_electric_last_meter'] is None or electric.last_meter < property_dict[key]['_electric_last_meter']: + property_dict[key]['_electric_last_meter'] = electric.last_meter + if electric.meter_date: + if property_dict[key]['_electric_meter_date'] is None or electric.meter_date > property_dict[key]['_electric_meter_date']: + property_dict[key]['_electric_meter_date'] = electric.meter_date rows = [] total_water = 0.0 total_electric = 0.0 for idx, (key, value) in enumerate(property_dict.items(), start=1): + # 拼装水费期间:最早 last_meter 到 最晚 meter_date + w_last = value.pop('_water_last_meter') + w_curr = value.pop('_water_meter_date') + if w_last and w_curr: + value['水费期间'] = f"{w_last}到{w_curr}" + else: + value['水费期间'] = '' + # 拼装电费期间 + e_last = value.pop('_electric_last_meter') + e_curr = value.pop('_electric_meter_date') + if e_last and e_curr: + value['电费期间'] = f"{e_last}到{e_curr}" + else: + value['电费期间'] = '' + value['小计'] = round(value['水费'] + value['电费'], 2) value['水费'] = round(value['水费'], 2) value['电费'] = round(value['电费'], 2) diff --git a/yuthon_salary/views/yuthon_meal_expenses_views.xml b/yuthon_salary/views/yuthon_meal_expenses_views.xml index 26a154c58..13f5b6f8d 100644 --- a/yuthon_salary/views/yuthon_meal_expenses_views.xml +++ b/yuthon_salary/views/yuthon_meal_expenses_views.xml @@ -55,7 +55,7 @@ -