aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorT-Aji <tolujbd2@gmail.com>2024-08-23 09:33:17 +0100
committerT-Aji <tolujbd2@gmail.com>2024-08-23 09:33:17 +0100
commita8cadadfe2b96c84a29a252110822ec535a0da7e (patch)
tree080dcdc4e29426437987a04aa257e3c2fe3bc8b8 /src
parentc5bc22b0e4e637eb20b1057af937c6eda1def4fa (diff)
downloadde-project-bentley-a8cadadfe2b96c84a29a252110822ec535a0da7e.tar.gz
de-project-bentley-a8cadadfe2b96c84a29a252110822ec535a0da7e.zip
payment schema added
Diffstat (limited to 'src')
-rw-r--r--src/fact_payment.py30
-rw-r--r--src/fact_sales_order.py18
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
git.ajschof.me — hosted by ajschofield — powered by cgit