adding aiha costing

This commit is contained in:
Khalim Conn-Kowlessar 2024-10-25 19:11:40 +01:00
parent 56fb33a64a
commit 93d375bc7a

View file

@ -65,7 +65,7 @@ def main():
# THis is the data we need for the AIHA project
measures_data = extracted_surveys[
["survey_key", "address", "postcode", "current-energy-efficiency", "current-energy-rating"]
["survey_key", "address", "postcode", "current-energy-efficiency", "current-energy-rating", "number_of_floors"]
]
measures_data = measures_data.sort_values("survey_key", ascending=True)
@ -459,15 +459,20 @@ def main():
},
]
descs = []
for r in recommended_measures:
for m in r["recommended_measures"]:
descs.append(m["description"])
descs = list(set(descs))
scaffolding_data = [
{
"number_of_floors": 2,
"price": 841,
},
{
"number_of_floors": 3,
"price": 1077,
}
]
# TODO - need to add scaffolding
# TODO - Need an update cost for cylinder insulation
pricing_data = [
{'item': '80mm cylinder insulation', 'unit_price': None, 'unit': 'unit'},
{'item': '80mm cylinder insulation', 'unit_price': 50, 'unit': 'unit'},
{'item': '100mm internal wall insulation', 'unit_price': 244.8, 'unit': 'hlp_m2'},
{'item': 'CWI to rdSAP default standard', 'unit_price': 14.21, 'unit': 'hlp_m2'},
{'item': 'Window draught proofing improvements', 'unit_price': None, 'unit': 'unit'},
@ -486,6 +491,31 @@ def main():
]
pricing_data = pd.DataFrame(pricing_data)
for recommendation in recommended_measures:
property_data = measures_data[measures_data["survey_key"] == recommendation["survey_key"]].squeeze()
for measure in recommendation["recommended_measures"]:
measure_pricing = pricing_data[pricing_data["item"] == measure["description"]]
measure_unit = measure_pricing["unit"].values[0]
if measure_unit is None:
blah
continue
if measure_unit == "unit":
measure["Total Cost"] = float(measure_pricing["unit_price"].values[0])
continue
if measure_unit == "unit_needs_scaffolding":
# We need the number of floors
n_floors = property_data["number_of_floors"]
cost_of_scalfolding = [x for x in scaffolding_data if x["number_of_floors"] == n_floors][0]["price"]
measure["Total Cost"] = float(measure_pricing["unit_price"].values[0]) + cost_of_scalfolding
blah
measure["total"] = pricing_data[pricing_data["item"] == measure["measure"]]["unit_price"].values[0]
# Step 1: Normalize the recommended_measures data into a DataFrame.
normalized_measures = []