From 03ab469a11a3871736a4a4227dc2fd5887afa46a Mon Sep 17 00:00:00 2001 From: Jun-te Kim Date: Tue, 25 Mar 2025 17:46:59 +0000 Subject: [PATCH] data base --- etl/jjc_invoice.py | 25 +++- etl/ratecard/jjcRateCardEmptyCavity.csv | 162 +++++++++++++++++++++++- etl/transform/types.py | 1 + 3 files changed, 181 insertions(+), 7 deletions(-) diff --git a/etl/jjc_invoice.py b/etl/jjc_invoice.py index 9bebea6..6178ff8 100644 --- a/etl/jjc_invoice.py +++ b/etl/jjc_invoice.py @@ -402,12 +402,25 @@ def get_insulation_type(str): else: return "GENERAL" -def rate_card_reader(): - jjc_empty_cavity_df = pd.read_csv(os.path.join(os.getcwd(), "ratecard", "jjcRateCards", "empty.csv")) - jjc_general_cavity_df = pd.read_csv(os.path.join(os.getcwd(), "ratecard", "jjcRateCards", "foam.csv")) - jjc_foam_cavity_df = pd.read_csv(os.path.join(os.getcwd(), "ratecard", "jjcRateCards", "general.csv")) - +def get_jjc_price_matrix(file="empty.csv"): + rate_card_df = pd.read_csv(os.path.join(os.getcwd(), "ratecard", "jjcRateCards", file)) + rate_card_df = pd.read_csv(os.path.join(os.getcwd(), "ratecard", "jjcRateCards", "empty.csv")) + + price_table = [] + converter = { + + } + for key, value in rate_card_df.iterrows() + + print(key) + print(value) + break + + +jjc_rate_card_reader() +jjc_rate_card_reader("foam.csv") +jjc_rate_card_reader("general.csv") def main(): @@ -419,7 +432,6 @@ def main(): "Address": [], "Surveyor's Name": [], "Type of Work": [], - "Price": [], "Pre SAP": [], "Total Floor Area": [], "Empty/Cavity": [], @@ -479,6 +491,7 @@ def main(): df = pd.DataFrame(data) + # Save to an Excel file df.to_excel("survey_data.xlsx", index=False) df.to_csv("survery_data.csv", index=False) diff --git a/etl/ratecard/jjcRateCardEmptyCavity.csv b/etl/ratecard/jjcRateCardEmptyCavity.csv index 05e405a..6e4a565 100644 --- a/etl/ratecard/jjcRateCardEmptyCavity.csv +++ b/etl/ratecard/jjcRateCardEmptyCavity.csv @@ -1 +1,161 @@ -floor_area, trickle_vent, number of wet rooms, \ No newline at end of file +funding_type,floor_area,trickle_vent,number_of_wet_rooms,price +HIGH D TO HIGH C (ECO4),0-72m,0,0,-1 +HIGH D TO HIGH C (ECO4),0-72m,0,1,-1 +HIGH D TO HIGH C (ECO4),0-72m,0,2,-1 +HIGH D TO HIGH C (ECO4),0-72m,0,3,-1 +HIGH D TO HIGH C (ECO4),0-72m,1,0,-1 +HIGH D TO HIGH C (ECO4),0-72m,1,1,-1 +HIGH D TO HIGH C (ECO4),0-72m,1,2,-1 +HIGH D TO HIGH C (ECO4),0-72m,1,3,-1 +HIGH D TO HIGH C (ECO4),73-97m,0,0,-1 +HIGH D TO HIGH C (ECO4),73-97m,0,1,-1 +HIGH D TO HIGH C (ECO4),73-97m,0,2,-1 +HIGH D TO HIGH C (ECO4),73-97m,0,3,-1 +HIGH D TO HIGH C (ECO4),73-97m,1,0,-1 +HIGH D TO HIGH C (ECO4),73-97m,1,1,-1 +HIGH D TO HIGH C (ECO4),73-97m,1,2,-1 +HIGH D TO HIGH C (ECO4),73-97m,1,3,-1 +HIGH D TO HIGH C (ECO4),98-199m,0,0,-1 +HIGH D TO HIGH C (ECO4),98-199m,0,1,-1 +HIGH D TO HIGH C (ECO4),98-199m,0,2,-1 +HIGH D TO HIGH C (ECO4),98-199m,0,3,-1 +HIGH D TO HIGH C (ECO4),98-199m,1,0,-1 +HIGH D TO HIGH C (ECO4),98-199m,1,1,-1 +HIGH D TO HIGH C (ECO4),98-199m,1,2,-1 +HIGH D TO HIGH C (ECO4),98-199m,1,3,-1 +HIGH D TO HIGH C (ECO4),over 200m,0,0,-1 +HIGH D TO HIGH C (ECO4),over 200m,0,1,-1 +HIGH D TO HIGH C (ECO4),over 200m,0,2,-1 +HIGH D TO HIGH C (ECO4),over 200m,0,3,-1 +HIGH D TO HIGH C (ECO4),over 200m,1,0,-1 +HIGH D TO HIGH C (ECO4),over 200m,1,1,-1 +HIGH D TO HIGH C (ECO4),over 200m,1,2,-1 +HIGH D TO HIGH C (ECO4),over 200m,1,3,-1 +HIGH D TO LOW C (ECO4),0-72m,0,0,-1 +HIGH D TO LOW C (ECO4),0-72m,0,1,-1 +HIGH D TO LOW C (ECO4),0-72m,0,2,-1 +HIGH D TO LOW C (ECO4),0-72m,0,3,-1 +HIGH D TO LOW C (ECO4),0-72m,1,0,-1 +HIGH D TO LOW C (ECO4),0-72m,1,1,-1 +HIGH D TO LOW C (ECO4),0-72m,1,2,-1 +HIGH D TO LOW C (ECO4),0-72m,1,3,-1 +HIGH D TO LOW C (ECO4),73-97m,0,0,-1 +HIGH D TO LOW C (ECO4),73-97m,0,1,-1 +HIGH D TO LOW C (ECO4),73-97m,0,2,-1 +HIGH D TO LOW C (ECO4),73-97m,0,3,-1 +HIGH D TO LOW C (ECO4),73-97m,1,0,-1 +HIGH D TO LOW C (ECO4),73-97m,1,1,-1 +HIGH D TO LOW C (ECO4),73-97m,1,2,-1 +HIGH D TO LOW C (ECO4),73-97m,1,3,-1 +HIGH D TO LOW C (ECO4),98-199m,0,0,-1 +HIGH D TO LOW C (ECO4),98-199m,0,1,-1 +HIGH D TO LOW C (ECO4),98-199m,0,2,-1 +HIGH D TO LOW C (ECO4),98-199m,0,3,-1 +HIGH D TO LOW C (ECO4),98-199m,1,0,-1 +HIGH D TO LOW C (ECO4),98-199m,1,1,-1 +HIGH D TO LOW C (ECO4),98-199m,1,2,-1 +HIGH D TO LOW C (ECO4),98-199m,1,3,-1 +HIGH D TO LOW C (ECO4),over 200m,0,0,-1 +HIGH D TO LOW C (ECO4),over 200m,0,1,-1 +HIGH D TO LOW C (ECO4),over 200m,0,2,-1 +HIGH D TO LOW C (ECO4),over 200m,0,3,-1 +HIGH D TO LOW C (ECO4),over 200m,1,0,-1 +HIGH D TO LOW C (ECO4),over 200m,1,1,-1 +HIGH D TO LOW C (ECO4),over 200m,1,2,-1 +HIGH D TO LOW C (ECO4),over 200m,1,3,-1 +LOW D TO HIGH C (ECO4),0-72m,0,0,-1 +LOW D TO HIGH C (ECO4),0-72m,0,1,-1 +LOW D TO HIGH C (ECO4),0-72m,0,2,-1 +LOW D TO HIGH C (ECO4),0-72m,0,3,-1 +LOW D TO HIGH C (ECO4),0-72m,1,0,-1 +LOW D TO HIGH C (ECO4),0-72m,1,1,-1 +LOW D TO HIGH C (ECO4),0-72m,1,2,-1 +LOW D TO HIGH C (ECO4),0-72m,1,3,-1 +LOW D TO HIGH C (ECO4),73-97m,0,0,-1 +LOW D TO HIGH C (ECO4),73-97m,0,1,-1 +LOW D TO HIGH C (ECO4),73-97m,0,2,-1 +LOW D TO HIGH C (ECO4),73-97m,0,3,-1 +LOW D TO HIGH C (ECO4),73-97m,1,0,-1 +LOW D TO HIGH C (ECO4),73-97m,1,1,-1 +LOW D TO HIGH C (ECO4),73-97m,1,2,-1 +LOW D TO HIGH C (ECO4),73-97m,1,3,-1 +LOW D TO HIGH C (ECO4),98-199m,0,0,-1 +LOW D TO HIGH C (ECO4),98-199m,0,1,-1 +LOW D TO HIGH C (ECO4),98-199m,0,2,-1 +LOW D TO HIGH C (ECO4),98-199m,0,3,-1 +LOW D TO HIGH C (ECO4),98-199m,1,0,-1 +LOW D TO HIGH C (ECO4),98-199m,1,1,-1 +LOW D TO HIGH C (ECO4),98-199m,1,2,-1 +LOW D TO HIGH C (ECO4),98-199m,1,3,-1 +LOW D TO HIGH C (ECO4),over 200m,0,0,-1 +LOW D TO HIGH C (ECO4),over 200m,0,1,-1 +LOW D TO HIGH C (ECO4),over 200m,0,2,-1 +LOW D TO HIGH C (ECO4),over 200m,0,3,-1 +LOW D TO HIGH C (ECO4),over 200m,1,0,-1 +LOW D TO HIGH C (ECO4),over 200m,1,1,-1 +LOW D TO HIGH C (ECO4),over 200m,1,2,-1 +LOW D TO HIGH C (ECO4),over 200m,1,3,-1 +LOW D TO LOW C (ECO4),0-72m,0,0,-1 +LOW D TO LOW C (ECO4),0-72m,0,1,-1 +LOW D TO LOW C (ECO4),0-72m,0,2,-1 +LOW D TO LOW C (ECO4),0-72m,0,3,-1 +LOW D TO LOW C (ECO4),0-72m,1,0,-1 +LOW D TO LOW C (ECO4),0-72m,1,1,-1 +LOW D TO LOW C (ECO4),0-72m,1,2,-1 +LOW D TO LOW C (ECO4),0-72m,1,3,-1 +LOW D TO LOW C (ECO4),73-97m,0,0,--1 +LOW D TO LOW C (ECO4),73-97m,0,1,-1 +LOW D TO LOW C (ECO4),73-97m,0,2,-1 +LOW D TO LOW C (ECO4),73-97m,0,3,-1 +LOW D TO LOW C (ECO4),73-97m,1,0,-1 +LOW D TO LOW C (ECO4),73-97m,1,1,-1 +LOW D TO LOW C (ECO4),73-97m,1,2,-1 +LOW D TO LOW C (ECO4),73-97m,1,3,-1 +LOW D TO LOW C (ECO4),98-199m,0,0,-1 +LOW D TO LOW C (ECO4),98-199m,0,1,-1 +LOW D TO LOW C (ECO4),98-199m,0,2,-1 +LOW D TO LOW C (ECO4),98-199m,0,3,-1 +LOW D TO LOW C (ECO4),98-199m,1,0,-1 +LOW D TO LOW C (ECO4),98-199m,1,1,-1 +LOW D TO LOW C (ECO4),98-199m,1,2,-1 +LOW D TO LOW C (ECO4),98-199m,1,3,-1 +LOW D TO LOW C (ECO4),over 200m,0,0,-1 +LOW D TO LOW C (ECO4),over 200m,0,1,-1 +LOW D TO LOW C (ECO4),over 200m,0,2,-1 +LOW D TO LOW C (ECO4),over 200m,0,3,-1 +LOW D TO LOW C (ECO4),over 200m,1,0,-1 +LOW D TO LOW C (ECO4),over 200m,1,1,-1 +LOW D TO LOW C (ECO4),over 200m,1,2,-1 +LOW D TO LOW C (ECO4),over 200m,1,3,-1 +GBIS,0-72m,0,0,-1 +GBIS,0-72m,0,1,-1 +GBIS,0-72m,0,2,-1 +GBIS,0-72m,0,3,-1 +GBIS,0-72m,1,0,-1 +GBIS,0-72m,1,1,-1 +GBIS,0-72m,1,2,-1 +GBIS,0-72m,1,3,-1 +GBIS,73-97m,0,0,-1 +GBIS,73-97m,0,1,-1 +GBIS,73-97m,0,2,-1 +GBIS,73-97m,0,3,-1 +GBIS,73-97m,1,0,-1 +GBIS,73-97m,1,1,-1 +GBIS,73-97m,1,2,-1 +GBIS,73-97m,1,3,-1 +GBIS,98-199m,0,0,-1 +GBIS,98-199m,0,1,-1 +GBIS,98-199m,0,2,-1 +GBIS,98-199m,0,3,-1 +GBIS,98-199m,1,0,-1 +GBIS,98-199m,1,1,-1 +GBIS,98-199m,1,2,-1 +GBIS,98-199m,1,3,-1 +GBIS,over 200m,0,0,-1 +GBIS,over 200m,0,1,-1 +GBIS,over 200m,0,2,-1 +GBIS,over 200m,0,3,-1 +GBIS,over 200m,1,0,-1 +GBIS,over 200m,1,1,-1 +GBIS,over 200m,1,2,-1 +GBIS,over 200m,1,3,-1 \ No newline at end of file diff --git a/etl/transform/types.py b/etl/transform/types.py index 57dc14d..ebccc5f 100644 --- a/etl/transform/types.py +++ b/etl/transform/types.py @@ -150,6 +150,7 @@ class Windows(BaseModel): g_value: int class PropertyDetail(BaseModel): + # change this name to build parts age_band: str dimensions: List[Dimension] = [] wall: Optional[Walls] = None