diff options
| author | T-Aji <tolujbd2@gmail.com> | 2024-08-23 09:33:17 +0100 |
|---|---|---|
| committer | T-Aji <tolujbd2@gmail.com> | 2024-08-23 09:33:17 +0100 |
| commit | a8cadadfe2b96c84a29a252110822ec535a0da7e (patch) | |
| tree | 080dcdc4e29426437987a04aa257e3c2fe3bc8b8 | |
| parent | c5bc22b0e4e637eb20b1057af937c6eda1def4fa (diff) | |
| download | de-project-bentley-a8cadadfe2b96c84a29a252110822ec535a0da7e.tar.gz de-project-bentley-a8cadadfe2b96c84a29a252110822ec535a0da7e.zip | |
payment schema added
| -rw-r--r-- | src/fact_payment.py | 30 | ||||
| -rw-r--r-- | src/fact_sales_order.py | 18 |
2 files changed, 46 insertions, 2 deletions
diff --git a/src/fact_payment.py b/src/fact_payment.py new file mode 100644 index 0000000..92de67c --- /dev/null +++ b/src/fact_payment.py @@ -0,0 +1,30 @@ +import pandas as pd + +def create_dim_payment_type(dict_of_df): + df_payment_type = dict_of_df["payment_type"] + dim_payment_type = df_payment_type.loc[:, ["payment_type_id", "payment_type_name"]] + return dim_payment_type + +def create_fact_payment(dict_of_df): + df_payment = dict_of_df["payment"] + df_payment.index.name = "payment_record_id" + df_payment["created_date"] = pd.to_datetime(df_payment["created_at"]).dt.date + df_payment["created_time"] = pd.to_datetime(df_payment["created_at"]).dt.time + df_payment["last_updated_date"] = pd.to_datetime(df_payment["last_updated"]).dt.date + df_payment["last_updated_time"] = pd.to_datetime(df_payment["last_updated"]).dt.time + fact_payment = df_payment.loc[:,[ + "payment_record_id", + "payment_id", + "created_date", + "created_time", + "last_updated_date", + "last_updated_time", + "transaction_id", + "counterparty_id", + "payment_amount", + "currency_id", + "payment_type_id", + "paid", + "payment_date" + ]] + return fact_payment diff --git a/src/fact_sales_order.py b/src/fact_sales_order.py index b657d7d..425b144 100644 --- a/src/fact_sales_order.py +++ b/src/fact_sales_order.py @@ -44,7 +44,8 @@ def create_fact_sales_order(dict_of_df): df_sales["created_time"] = pd.to_datetime(df_sales["created_at"]).dt.time df_sales["last_updated_date"] = pd.to_datetime(df_sales["last_updated"]).dt.date df_sales["last_updated_time"] = pd.to_datetime(df_sales["last_updated"]).dt.time - df_sales.rename(columns={"staff_id": "sales_staff_id"}) + pd.merge(dict_of_df["staff"], df_sales["sales_staff_id"], on="staff_id", how="left") + # df_sales.rename(columns={"staff_id": "sales_staff_id"}) fact_sales_order = df_sales.loc[:,[ "sales_record_id", "sales_order_id", @@ -70,7 +71,20 @@ def create_fact_sales_order(dict_of_df): # remove duplicates # test dim_date and fact_sales_order - +def create_sales_star_schema(dict_of_df): + dim_design = create_dim_design(dict_of_df) + dim_staff = create_dim_staff(dict_of_df) + dim_currency = create_dim_currency(dict_of_df) + dim_date = create_dim_date(dict_of_df) + + fact_sales_order = create_fact_sales_order(dict_of_df) + + fact_sales_order = fact_sales_order.merge(dim_design, on='design_id', how='left') + fact_sales_order = fact_sales_order.merge(dim_staff, left_on='sales_staff_id', right_on='staff_id', how='left') + fact_sales_order = fact_sales_order.merge(dim_currency, on='currency_id', how='left') + fact_sales_order = fact_sales_order.merge(dim_date, left_on='agreed_delivery_date', right_on='date_id', how='left') + + return fact_sales_order |
