From 4452cd4347e3b455ac85279165bc7f6872ac53d5 Mon Sep 17 00:00:00 2001 From: Jun-te Kim Date: Wed, 9 Apr 2025 14:24:19 +0000 Subject: [PATCH] deem score worked out --- etl/hubspot_to_deemed_calculator.py | 63 ++++++++++++++++++++++++++--- 1 file changed, 58 insertions(+), 5 deletions(-) diff --git a/etl/hubspot_to_deemed_calculator.py b/etl/hubspot_to_deemed_calculator.py index 443615f..1c5c93e 100644 --- a/etl/hubspot_to_deemed_calculator.py +++ b/etl/hubspot_to_deemed_calculator.py @@ -23,7 +23,7 @@ for deal in deals: "Address": deal.deal_name, "Trickle Vent": 1 if deal.needs_trickle_ventilation else 0, "wetrooms": deal.no_of_wet_rooms, - "hubspot_wall_insulation_info": deal.existing_wall_insulation, + "hubspot_wall_insulation": deal.existing_wall_insulation, "POST INSTALL SAP SCORE": deal.post_sap_score, }) @@ -56,16 +56,69 @@ for survey in list_of_surveys: data = { "Address": survey.pre_site_note.survey_information.address, "HubSpot Address": filtered_df["Address"].values[0], + "Pre SAP from sharepoint": number, + "Post SAP from surveyor": filtered_df["POST INSTALL SAP SCORE"].values[0], "Surveyor's Name": survey.pre_site_note.assessor_information.name, "floor_area_group" : floor_banding, "wetrooms" : filtered_df["wetrooms"].values[0], - "Trickle Vent" : filtered_df["Ventilation Requirements"].values[0], + "Trickle Vent" : filtered_df["Trickle Vent"].values[0], + "survey_stated_work_type": filtered_df["hubspot_work_type"].values[0], } - insulation = None + csr_insulation = None merged_df = pd.DataFrame() if survey.csr: if survey.csr.insulation_info: - insultation = survey.csr.insulation_info.type.upper() + csr_insulation = survey.csr.insulation_info.type.upper() + + hubspot_wall_insulation = None + hubspot_wall_insulation = filtered_df["hubspot_wall_insulation"].values[0] + data.update({"csr_insulation": csr_insulation}) + data.update({"hubspot_wall_insulation": hubspot_wall_insulation}) + + if funding_type == "GBIS": + if csr_insulation is None and hubspot_wall_insulation.upper() == "EMPTY": + data.update({"funding": funding_type.upper()}) + df = pd.DataFrame([data]) + merged_df = pd.merge(df, price_empty, on=['funding', 'Trickle Vent', 'floor_area_group', 'wetrooms'], how='left') + elif "FOAM" in csr_insulation.upper() and "FOAM" in hubspot_wall_insulation.upper(): + data.update({"funding": funding_type.upper() + " Remedial"}) + df = pd.DataFrame([data]) + merged_df = pd.merge(df, price_foam, on=['funding', 'Trickle Vent', 'floor_area_group', 'wetrooms'], how='left') + else: + data.update({"funding": funding_type.upper() + " Remedial"}) + df = pd.DataFrame([data]) + merged_df = pd.merge(df, price_general, on=['funding', 'Trickle Vent', 'floor_area_group', 'wetrooms'], how='left') + elif funding_type == "ECO4": + if csr_insulation is None and hubspot_wall_insulation.upper() == "EMPTY": + formatted_funding_type = f"{funding_type.upper()} - SAP {get_band(int(number))} to {get_band(filtered_df["POST INSTALL SAP SCORE"].values[0])}" + data.update({"funding": formatted_funding_type}) + df = pd.DataFrame([data]) + merged_df = pd.merge(df, price_empty, on=['funding', 'Trickle Vent', 'floor_area_group', 'wetrooms'], how='left') + elif "FOAM" in csr_insulation.upper() and "FOAM" in hubspot_wall_insulation.upper(): + formatted_funding_type = f"REMEDIAL - {funding_type.upper()} - SAP {get_band(int(number))} to {get_band(filtered_df["POST INSTALL SAP SCORE"].values[0])}" + data.update({"funding": formatted_funding_type}) + df = pd.DataFrame([data]) + merged_df = pd.merge(df, price_foam, on=['funding', 'Trickle Vent', 'floor_area_group', 'wetrooms'], how='left') + else: + formatted_funding_type = f"REMEDIAL - {funding_type.upper()} - SAP {get_band(int(number))} to {get_band(filtered_df["POST INSTALL SAP SCORE"].values[0])}" + data.update({"funding": formatted_funding_type}) + df = pd.DataFrame([data]) + merged_df = pd.merge(df, price_general, on=['funding', 'Trickle Vent', 'floor_area_group', 'wetrooms'], how='left') + else: + raise RuntimeError(f"UNKNOWN FUNDING TYPE {funding_type}") + + if not merged_df.empty: + total_price.append(merged_df) + +final_df = pd.concat(total_price, ignore_index=True) + +final_df.to_csv("survery_data.csv", index=False) + + +print(f"WEEK COMMENCING {WEEK_COMMENCING}") +print("Excel file 'survey_data.xlsx' created successfully!") + + + - \ No newline at end of file