From 146fd243bb393220c3b92906f97f7943088e7ab9 Mon Sep 17 00:00:00 2001 From: Jan Dirk van de Bijl Date: Tue, 20 May 2025 15:19:45 +0200 Subject: [PATCH 01/31] mooie dingen --- __pycache__/cleanup.cpython-313.pyc | Bin 0 -> 2700 bytes __pycache__/eda_service.cpython-313.pyc | Bin 0 -> 10689 bytes cleanup.py | 35 ++++++ eda_service.py | 154 ++++++++++++++++++++++++ main.py | 61 ++++++++++ 5 files changed, 250 insertions(+) create mode 100644 __pycache__/cleanup.cpython-313.pyc create mode 100644 __pycache__/eda_service.cpython-313.pyc create mode 100644 cleanup.py create mode 100644 eda_service.py create mode 100644 main.py diff --git a/__pycache__/cleanup.cpython-313.pyc b/__pycache__/cleanup.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..672208f7ecadc486ed9f8ba9fa34a1469b4f6dc3 GIT binary patch literal 2700 zcmbVOUrZE77@ytS`@{W#6F5X{%c$h=5NNB=Dg_b6L!&@)%LxgWY}dVoF5c~)vwK*0 z;;GT3O`$D8pG054H+YhVKG+xIOOqpK;&tnTX`3d#snoP-U;5479sl%_rt>iK%{RaK z{>?Yv%!beBM$kT)h0y`mw8iI|knBxF&Q$#WZsGTHc;$*I7V=(O0V$#lNa z0o^=`G7+Y@v^BOD$S6u|u8!bD!Ci#L(LH7$WHUKQOHC06potSY%F*S-*cL~psxZdp zfYcF->N3$|6Y z7hCkJiI_y)OQ%{>Q>IH06jd<C@bY~I}tBJlVv7DQR<0`KHqeAx+GDNG|^27d%?Zc7{J-lna5 zw=M)1tCXaIHqQyR6vEQA0J^+IU8RszRss zky4hF@+G>Naiw-rAGT$7xs@vwQCm4W#uaVCkc<825%M4mcm4nxttl9doJhn7soXXR z{w)doo+t-$99wegp?s=b4+rwDLf%;P7&C^tZ1rf22~`eE+udDVT{vA28t^YO-{GEA zDlr8&6Aw+LWZa*>raA`DboGFS3-=a7m6%lGa=dlg&0kThyNnyBs~bD8su@^OaU6={ z7%h&irVD7phmv7cFYb;F7P0e1( z95|IJ?|JMxo%2-Q=zi+mlc_xX*c-}uE1w-|TI#yfwbZ@tt-l`5RRnGi-x|Ix+!C@C z%}@P-o9@Mr77u5dPG)MlANx=JDXzfffo)-c7Fb-tSxOTMMraK03D^jPAsp%?3ib zVAIn0o$=+dJKB?A=X$X7dp;ZN*@+8h15Iz@hO)uaTexSt<*bcngXfFubA!}7&tiD- z_;UNo{uN)Q=HwH9_p5r;aO|%?Fsgoc12Nzzpfa^bmcz@(SK8P1ulXKC9x)H}OwENS z{)<`v#eZJdDC%#0A4L9#rrto<&OWre!|&T4R#b<^plKud+U1~3Rw+Ip|*fPgn0 zMJRVyYe1w7SdiJYoWnqqNT*v1IZ{sZ$9iJrxB!2L`Zv;JC*UC6PldqqT2b}&wHw#2 zmy-&ZhgeHR{!74^Wt(#H26*Y?P5&kEc)JB5sm0R?N_z$2YFbPbRw@KxOd-0FP*hpf z1cAH*l1Yem)}`FUfocaj{11sZCdJ~42>4D&Op`jf-V-d6}ZOYFb>syST% literal 0 HcmV?d00001 diff --git a/__pycache__/eda_service.cpython-313.pyc b/__pycache__/eda_service.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..04e7ecd89670a42a2e4bf35ed9d0f93598d59faf GIT binary patch literal 10689 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 max_cols else "")) + + print("\nNote:") + print("- object = likely strings, mixed types, or nested structures (e.g., dict/list)") + print("- int64 / float64 = numeric values") + print("- bool = True/False data") + print("- datetime64 = timestamps or date fields") + + print("\nRepresentative values per column:") + representative_values = {} + for col in self.df.columns: + non_null_series = self.df[col].dropna() + if not non_null_series.empty: + val = non_null_series.iloc[0] + else: + val = None + representative_values[col] = val + print(f"- {col}: {repr(val)}") + + return representative_values + + + + def sample_preview(self, max_cols: int = 20, show_all_rows: bool = False): + # Purpose: Get a feel for what the data looks like + print(f"\n=== {self.name} — Sample Preview ===") + pd.set_option("display.max_columns", max_cols) + print(self.df if show_all_rows else self.df.head(self.preview_rows)) + pd.reset_option("display.max_columns") + + def missing_values(self): + # Purpose: Identify which columns have missing values (absolute) + print(f"\n=== {self.name} — Missing Values (count) ===") + missing = self.df.isnull().sum() + missing = missing[missing > 0] + if missing.empty: + print("No missing values.") + else: + print(missing.sort_values(ascending=False)) + + def null_percentage(self): + # Purpose: Prioritize columns with the highest proportion of missing data + print(f"\n=== {self.name} — Missing Values (percentage) ===") + total = len(self.df) + nulls = (self.df.isnull().sum() / total * 100).sort_values(ascending=False) + nulls = nulls[nulls > 0] + if nulls.empty: + print("No missing value percentages above zero.") + else: + print(nulls.round(2)) + + def duplicate_rows(self, show_samples: bool = True): + # Purpose: Detect and optionally inspect duplicate rows (based on hashable columns) + print(f"\n=== {self.name} — Duplicate Rows ===") + hashable_cols = [col for col in self.df.columns if self.df[col].map(type).isin([int, float, str, bool, type(None)]).all()] + if not hashable_cols: + print("No hashable columns to detect duplicates.") + return + + try: + dupe_mask = self.df[hashable_cols].duplicated() + dupe_count = dupe_mask.sum() + print(f"Duplicate count (based on {len(hashable_cols)} hashable columns): {dupe_count}") + if dupe_count > 0 and show_samples: + print(self.df[dupe_mask].head()) + except Exception as e: + print(f"Error during duplicate detection: {e}") + + def numeric_summary(self): + # Purpose: Get descriptive statistics of numeric columns + print(f"\n=== {self.name} — Numeric Summary ===") + numeric_df = self.df.select_dtypes(include=[np.number]) + if numeric_df.empty: + print("No numeric columns available.") + else: + print(numeric_df.describe()) + + def value_ranges(self): + # Purpose: Check min and max values of numeric columns + print(f"\n=== {self.name} — Value Ranges (numeric) ===") + num_df = self.df.select_dtypes(include=[np.number]) + for col in num_df.columns: + print(f"{col}: min={num_df[col].min()}, max={num_df[col].max()}") + + def categorical_summary(self, top_n: int = 5): + # Purpose: Identify frequent values in categorical columns + print(f"\n=== {self.name} — Categorical Summary ===") + cat_cols = self.df.select_dtypes(include=["object", "category"]).columns + if not len(cat_cols): + print("No categorical columns found.") + return + for col in cat_cols: + print(f"\nColumn: {col}") + print(self.df[col].value_counts().head(top_n)) + + def correlation_matrix(self): + # Purpose: Explore relationships between numeric variables + print(f"\n=== {self.name} — Correlation Matrix ===") + num_df = self.df.select_dtypes(include=[np.number]) + if num_df.empty: + print("No numeric columns present.") + else: + print(num_df.corr(numeric_only=True)) \ No newline at end of file diff --git a/main.py b/main.py new file mode 100644 index 0000000..da1261f --- /dev/null +++ b/main.py @@ -0,0 +1,61 @@ +import pandas as pd +import numpy as np +import requests +from eda_service import EDAService +from cleanup import DataFrameCleaner + +def load_nested_json(url): + response = requests.get(url) + response.raise_for_status() + data = response.json() + if isinstance(data, dict): + return pd.DataFrame(data.values()) + elif isinstance(data, list): + return pd.DataFrame(data) + else: + raise ValueError("Unsupported JSON structure") + +# URLs of the datasets +url_inkooporderregels = "http://app-wfs-01:5100/F/Inkooporderregels_All.json" +url_ontvangstregels = "http://app-wfs-01:5100/F/Ontvangstregels.json" +url_relaties = "http://app-wfs-01:5100/F/Relaties.json" +url_feedback = "http://app-wfs-01:5100/F/FeedbackLeveranciers.json" + +try: + df_inkooporderregels = load_nested_json(url_inkooporderregels) + df_ontvangstregels = load_nested_json(url_ontvangstregels) + df_relaties = load_nested_json(url_relaties) + df_feedback = load_nested_json(url_feedback) +except Exception as e: + print(f"Error loading JSON data: {e}") + exit(1) + +# Optioneel: definieer een mapping per kolom voor het casten van datatypes +dtype_mapping_inkoop = { + 'DatumInkooporder': 'datetime', + 'DatumLevering': 'datetime', + 'Aantal': 'numeric', + 'ArtikelCode': 'str', + 'Goedgekeurd': 'bool' +} + +# Reinig de DataFrame met opgegeven type conversies +# cleaner = DataFrameCleaner(df_inkooporderregels, name="Inkooporderregels") +# cleaner.apply_dtype_mapping(dtype_mapping_inkoop) +# df_inkooporderregels = cleaner.get_cleaned_df() + +# Dictionary of step names for reference +step_names = { + 1: "Structure Overview", + 2: "Missing Values (count)", + 3: "Null Percentage", + 4: "Duplicate Rows", + 5: "Numeric Summary", + 6: "Numeric Ranges", + 7: "Categorical Summary", + 8: "Correlation Matrix" +} + +# Voer een specifieke EDA stap uit op de gereinigde DataFrame +eda = EDAService(df_inkooporderregels, name="Inkooporderregels") +eda.run_step(1) From d7c84afebd8439455e18ff84f0be7d737a11c006 Mon Sep 17 00:00:00 2001 From: Jan Dirk van de Bijl Date: Tue, 20 May 2025 16:23:06 +0200 Subject: [PATCH 02/31] mooi man --- .gitignore | 2 + __pycache__/cleanup.cpython-313.pyc | Bin 2700 -> 6586 bytes __pycache__/eda_service.cpython-313.pyc | Bin 10689 -> 11345 bytes __pycache__/loader.cpython-313.pyc | Bin 0 -> 3968 bytes cleanup.py | 81 ++++++++++-- eda_service.py | 12 +- loader.py | 70 ++++++++++ main.py | 167 ++++++++++++++++-------- 8 files changed, 272 insertions(+), 60 deletions(-) create mode 100644 .gitignore create mode 100644 __pycache__/loader.cpython-313.pyc create mode 100644 loader.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2994540 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +# Ignore all .json files +*.json \ No newline at end of file diff --git a/__pycache__/cleanup.cpython-313.pyc b/__pycache__/cleanup.cpython-313.pyc index 672208f7ecadc486ed9f8ba9fa34a1469b4f6dc3..a390269d1b5fae5980e9a902e5a7245a678a4e5c 100644 GIT binary patch literal 6586 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 b((?{63&VVgoL?fxzqq#ij`) literal 2700 zcmbVOUrZE77@ytS`@{W#6F5X{%c$h=5NNB=Dg_b6L!&@)%LxgWY}dVoF5c~)vwK*0 z;;GT3O`$D8pG054H+YhVKG+xIOOqpK;&tnTX`3d#snoP-U;5479sl%_rt>iK%{RaK z{>?Yv%!beBM$kT)h0y`mw8iI|knBxF&Q$#WZsGTHc;$*I7V=(O0V$#lNa z0o^=`G7+Y@v^BOD$S6u|u8!bD!Ci#L(LH7$WHUKQOHC06potSY%F*S-*cL~psxZdp zfYcF->N3$|6Y z7hCkJiI_y)OQ%{>Q>IH06jd<C@bY~I}tBJlVv7DQR<0`KHqeAx+GDNG|^27d%?Zc7{J-lna5 zw=M)1tCXaIHqQyR6vEQA0J^+IU8RszRss zky4hF@+G>Naiw-rAGT$7xs@vwQCm4W#uaVCkc<825%M4mcm4nxttl9doJhn7soXXR z{w)doo+t-$99wegp?s=b4+rwDLf%;P7&C^tZ1rf22~`eE+udDVT{vA28t^YO-{GEA zDlr8&6Aw+LWZa*>raA`DboGFS3-=a7m6%lGa=dlg&0kThyNnyBs~bD8su@^OaU6={ z7%h&irVD7phmv7cFYb;F7P0e1( z95|IJ?|JMxo%2-Q=zi+mlc_xX*c-}uE1w-|TI#yfwbZ@tt-l`5RRnGi-x|Ix+!C@C z%}@P-o9@Mr77u5dPG)MlANx=JDXzfffo)-c7Fb-tSxOTMMraK03D^jPAsp%?3ib zVAIn0o$=+dJKB?A=X$X7dp;ZN*@+8h15Iz@hO)uaTexSt<*bcngXfFubA!}7&tiD- z_;UNo{uN)Q=HwH9_p5r;aO|%?Fsgoc12Nzzpfa^bmcz@(SK8P1ulXKC9x)H}OwENS z{)<`v#eZJdDC%#0A4L9#rrto<&OWre!|&T4R#b<^plKud+U1~3Rw+Ip|*fPgn0 zMJRVyYe1w7SdiJYoWnqqNT*v1IZ{sZ$9iJrxB!2L`Zv;JC*UC6PldqqT2b}&wHw#2 zmy-&ZhgeHR{!74^Wt(#H26*Y?P5&kEc)JB5sm0R?N_z$2YFbPbRw@KxOd-0FP*hpf z1cAH*l1Yem)}`FUfocaj{11sZCdJ~42>4D&Op`jf-V-d6}ZOYFb>syST% diff --git a/__pycache__/eda_service.cpython-313.pyc b/__pycache__/eda_service.cpython-313.pyc index 04e7ecd89670a42a2e4bf35ed9d0f93598d59faf..19083952bf0e85fd16af6c24c247fc968a947606 100644 GIT binary patch delta 1435 zcmah}ZA@EL7(S=;yS=xUdrMnNf!i;;8-^m#f+QOd=4b3CZEge$B9;nG%5Aw9hAcDN zNX%G_5q6f)xhVWFhD2j#nkCDAESebOS7Mtw+jIou4-)<5HZ}h6kLR=l8~=EIJmX_;IZp$T22dd=EtWpO2wkRQV-bc^cfkjbm8XcF_8#g&RWnM%hiYB`aSE81GQ zicYEpf)%OgXJ~4M=#?oYAtw_GdX^pwRjf)36ucbXRp-^i{g#=qxxoKaLk2-D^~tZ7;Eb0vp(&ifkx%%i@6zd9xes zG46AJu)sj)>EI9gP`TZm*SpG`eY0<)Z*%a<;Mz#p=G>g!n9asFQYD*Eun9$5N6FS* zuyq%0y=zaGE!;cHmzLL+OJ_?KZ^7c-3Fa-{yyfxhqjxN!-OjG-_KzlR4i`I*WtX=X z-aYeK@4C5sv_H@Iwxb0`*kzj9v#M-Q)}NI>@NJ(hdV2HjVBQw`k?Ff{0#@%mItLrS zgm4^v#dc{$ykX@<)W}JV1__~ zz%bgehqbTaP+6^tEDlNyhfu5QSfI+PDkt%J#qi|o@kC}ZnU(~dY$jsz@yii(!8HjN zazDBDRM^Aq_Ap${nfcogzJb1V` delta 949 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 literal 0 HcmV?d00001 diff --git a/cleanup.py b/cleanup.py index f983e05..96b66dc 100644 --- a/cleanup.py +++ b/cleanup.py @@ -1,20 +1,53 @@ import pandas as pd +import numpy as np class DataFrameCleaner: - def __init__(self, df: pd.DataFrame, name: str = "DataFrame"): + def __init__(self, df: pd.DataFrame, name: str = "DataFrame", log_enabled: bool = False): + """ + Maak een nieuwe cleaner voor een pandas DataFrame. + + Parameters: + - df: De originele DataFrame die schoongemaakt moet worden. + - name: Een optionele naam voor logging/prints. + - log_enabled: Als True, worden logberichten geprint. + """ self.df = df.copy() self.name = name + self.low_info_cols = [] + self.log_enabled = log_enabled + + def _log(self, message: str): + if self.log_enabled: + print(message) + + def drop_columns(self, columns: list): + self._log(f"\n=== {self.name} — Dropping Specified Columns ===") + + existing_cols = [col for col in columns if col in self.df.columns] + missing_cols = [col for col in columns if col not in self.df.columns] + + if existing_cols: + self.df.drop(columns=existing_cols, inplace=True) + self._log(f"Dropped columns: {', '.join(existing_cols)}") + else: + self._log("No columns to drop.") + + if missing_cols: + self._log(f"Skipped (not found): {', '.join(missing_cols)}") def apply_dtype_mapping(self, mapping: dict = None): - # Purpose: Map specified columns to given dtypes explicitly - print(f"\n=== {self.name} — Applying Type Mappings ===") + self._log(f"\n=== {self.name} — Applying Type Mappings ===") if mapping is None: - print("No mapping provided.") + self._log("No mapping provided.") return + converted = [] + skipped = [] + failed = [] + for column, target_type in mapping.items(): if column not in self.df.columns: - print(f"Skipping '{column}': not in dataframe.") + skipped.append(column) continue try: if target_type == 'datetime': @@ -27,9 +60,41 @@ def apply_dtype_mapping(self, mapping: dict = None): self.df[column] = self.df[column].astype(bool) else: self.df[column] = self.df[column].astype(target_type) - print(f"Converted '{column}' to {target_type}") - except Exception as e: - print(f"Failed to convert '{column}' to {target_type}: {e}") + converted.append((column, target_type)) + except Exception: + failed.append(column) + + if converted: + self._log("Converted columns:") + for col, dtype in converted: + self._log(f" - {col}: {dtype}") + + if skipped: + self._log(f"Skipped (not in DataFrame): {', '.join(skipped)}") + + if failed: + self._log(f"Failed to convert: {', '.join(failed)}") + + def rename_columns(self, rename_map: dict): + self._log(f"\n=== {self.name} — Renaming Columns ===") + + existing = {k: v for k, v in rename_map.items() if k in self.df.columns} + missing = [k for k in rename_map if k not in self.df.columns] + + if existing: + self.df.rename(columns=existing, inplace=True) + self._log("Renamed columns:") + for old, new in existing.items(): + self._log(f" - {old} -> {new}") + else: + self._log("No columns were renamed.") + + if missing: + self._log(f"Skipped (not found): {', '.join(missing)}") + + def normalize_nones(self): + self._log(f"\n=== {self.name} — Replacing 'None'/'null' strings with NaN ===") + self.df.replace(["None", "null"], pd.NA, inplace=True) def get_cleaned_df(self): return self.df diff --git a/eda_service.py b/eda_service.py index 4cd5271..cb23cff 100644 --- a/eda_service.py +++ b/eda_service.py @@ -44,7 +44,8 @@ def structure_overview(self, max_cols: int = 50): print(f"- {dtype}: {count} columns ({percentage:.1f}%)") print("\nExample column names by type:") - grouped = self.df.dtypes.groupby(self.df.dtypes) + dtypes_series = self.df.dtypes.astype(str) + grouped = dtypes_series.groupby(dtypes_series) for dtype, cols in grouped.groups.items(): cols_list = list(cols) shown_cols = cols_list[:max_cols] @@ -68,6 +69,15 @@ def structure_overview(self, max_cols: int = 50): representative_values[col] = val print(f"- {col}: {repr(val)}") + print("\nColumns with only one unique value:") + single_value_columns = {} + for col in self.df.columns: + uniques = self.df[col].dropna().unique() + if self.df[col].nunique(dropna=False) == 1: + single_value = uniques[0] if len(uniques) > 0 else None + single_value_columns[col] = single_value + print(f"- {col}: {repr(single_value)}") + return representative_values diff --git a/loader.py b/loader.py new file mode 100644 index 0000000..de78f5d --- /dev/null +++ b/loader.py @@ -0,0 +1,70 @@ +import os +import json +import pandas as pd +import requests + +# Lokale directory waar de JSON-bestanden worden opgeslagen +DATA_DIR = "data" +os.makedirs(DATA_DIR, exist_ok=True) + +datasets = { + "Inkooporderregels": ("http://app-wfs-01:5100/F/Inkooporderregels_All.json", "Inkooporderregels_All.json"), + "Ontvangstregels": ("http://app-wfs-01:5100/F/Ontvangstregels.json", "Ontvangstregels.json"), + "Relaties": ("http://app-wfs-01:5100/F/Relaties.json", "Relaties.json"), + "FeedbackLeveranciers": ("http://app-wfs-01:5100/F/FeedbackLeveranciers.json", "FeedbackLeveranciers.json"), + "Leveranciers": ("http://app-wfs-01:5100/F/Leveranciers.json", "Leveranciers.json") # Added Leveranciers dataset +} + +def download_if_missing(url: str, filename: str, log: bool = False): + filepath = os.path.join(DATA_DIR, filename) + if not os.path.exists(filepath): + if log: + print(f"Downloading {filename} from {url} ...") + try: + response = requests.get(url) + response.raise_for_status() + with open(filepath, "w", encoding="utf-8") as f: + json.dump(response.json(), f, ensure_ascii=False) + if log: + print(f"Saved to {filepath}") + except Exception as e: + if log: + print(f"Failed to download {filename}: {e}") + raise + else: + if log: + print(f"Using cached file: {filepath}") + return filepath + +def load_nested_json_file(filepath: str, log: bool = False): + if log: + print(f"Loading file: {filepath}") + with open(filepath, encoding="utf-8") as f: + data = json.load(f) + + if isinstance(data, dict): + return pd.DataFrame(data.values()) + elif isinstance(data, list): + return pd.DataFrame(data) + else: + raise ValueError("Unsupported JSON structure") + +def load_all_datasets(log: bool = False): + try: + file_inkoop = download_if_missing(*datasets["Inkooporderregels"], log=log) + file_ontvangst = download_if_missing(*datasets["Ontvangstregels"], log=log) + file_relaties = download_if_missing(*datasets["Relaties"], log=log) + file_feedback = download_if_missing(*datasets["FeedbackLeveranciers"], log=log) + file_leveranciers = download_if_missing(*datasets["Leveranciers"], log=log) # Added Leveranciers download + + df_inkoop = load_nested_json_file(file_inkoop, log=log) + df_ontvangst = load_nested_json_file(file_ontvangst, log=log) + df_relaties = load_nested_json_file(file_relaties, log=log) + df_feedback = load_nested_json_file(file_feedback, log=log) + df_leveranciers = load_nested_json_file(file_leveranciers, log=log) # Added Leveranciers DataFrame + + return df_inkoop, df_ontvangst, df_relaties, df_feedback, df_leveranciers # Return Leveranciers dataframe + except Exception as e: + if log: + print(f"Error loading datasets: {e}") + raise diff --git a/main.py b/main.py index da1261f..23124cd 100644 --- a/main.py +++ b/main.py @@ -1,61 +1,126 @@ -import pandas as pd -import numpy as np -import requests from eda_service import EDAService from cleanup import DataFrameCleaner - -def load_nested_json(url): - response = requests.get(url) - response.raise_for_status() - data = response.json() - if isinstance(data, dict): - return pd.DataFrame(data.values()) - elif isinstance(data, list): - return pd.DataFrame(data) - else: - raise ValueError("Unsupported JSON structure") - -# URLs of the datasets -url_inkooporderregels = "http://app-wfs-01:5100/F/Inkooporderregels_All.json" -url_ontvangstregels = "http://app-wfs-01:5100/F/Ontvangstregels.json" -url_relaties = "http://app-wfs-01:5100/F/Relaties.json" -url_feedback = "http://app-wfs-01:5100/F/FeedbackLeveranciers.json" +from loader import load_all_datasets +from IPython.display import display try: - df_inkooporderregels = load_nested_json(url_inkooporderregels) - df_ontvangstregels = load_nested_json(url_ontvangstregels) - df_relaties = load_nested_json(url_relaties) - df_feedback = load_nested_json(url_feedback) -except Exception as e: - print(f"Error loading JSON data: {e}") + df_inkooporderregels, df_ontvangstregels, df_relaties, df_feedback, df_suppliers = load_all_datasets() +except Exception: exit(1) -# Optioneel: definieer een mapping per kolom voor het casten van datatypes -dtype_mapping_inkoop = { - 'DatumInkooporder': 'datetime', - 'DatumLevering': 'datetime', - 'Aantal': 'numeric', - 'ArtikelCode': 'str', - 'Goedgekeurd': 'bool' + + +# drop-lijst = alle kolommen behalve degene in rename_map +inkoop_columns_to_drop = { + 'OrNu', + 'Volgnummer', + 'ItCd', + 'Omschrijving', + 'GuLiIOR', + 'BronRegelGUID', + 'Upri', + 'Project', + 'RegelStatus', + 'QuUn', + 'TypeItem', + 'Opmerkingen', + 'Referentie', + 'ReferentieInkooprelatie', + 'VoorraadBijhouden', + 'StatusOrder', + 'Opmerking', + 'DsEx', + 'V1Cd', + 'Kostprijs', + 'ModifiedDate', + 'ModifiedDate1', + 'ModifiedDate2', + 'ModifiedDate3', + 'ModifiedDate4', + 'Definitief', + 'Regelbedrag', + 'WFS_ID', + 'WFS_ISR_ID', + 'WFS_DS_NR', + 'TotalValue', + 'AantalOntvangen', + 'Korting', + 'Verplichting', + 'Verantwoordelijke', + 'ItemCodeLeverancier', + 'sNr', + 'Gehad', + 'Red', + 'Naam' } -# Reinig de DataFrame met opgegeven type conversies -# cleaner = DataFrameCleaner(df_inkooporderregels, name="Inkooporderregels") -# cleaner.apply_dtype_mapping(dtype_mapping_inkoop) -# df_inkooporderregels = cleaner.get_cleaned_df() - -# Dictionary of step names for reference -step_names = { - 1: "Structure Overview", - 2: "Missing Values (count)", - 3: "Null Percentage", - 4: "Duplicate Rows", - 5: "Numeric Summary", - 6: "Numeric Ranges", - 7: "Categorical Summary", - 8: "Correlation Matrix" + +# conversies = subset van dtype_mapping_inkoop die je behoudt (alleen de te hernoemen kolommen) +inkoop_columns_to_convert = { + 'Datum': 'datetime', + 'DatumToegezegd': 'datetime', + 'AfwijkendeAfleverdatum': 'datetime', + 'Vrijgegeven_op': 'datetime', + 'getDate': 'datetime', + 'CrId': 'int64', } -# Voer een specifieke EDA stap uit op de gereinigde DataFrame -eda = EDAService(df_inkooporderregels, name="Inkooporderregels") -eda.run_step(1) +# inkoop_rename_map = { +# "Naam": "SupplierName", +# "DatumInkooporder": "OrderDate", +# "AfwijkendeAfleverdatum": "AdjustedDeliveryDate", +# "DatumToegezegd": "DatumToegezegd" +# } + + +# Reiniging uitvoeren +cleaner = DataFrameCleaner(df_inkooporderregels, name="Inkooporderregels") + +cleaner.drop_columns(inkoop_columns_to_drop) +cleaner.apply_dtype_mapping(inkoop_columns_to_convert) +# cleaner.rename_columns(inkoop_rename_map) +cleaner.normalize_nones() +df_inkooporderregels = cleaner.get_cleaned_df() + +# EDA uitvoeren +# eda = EDAService(df_inkooporderregels, name="Inkooporderregels") +# eda.run_step(1) + + + +# relation_rename = { +# "Naam": "Name", +# "Geblokkeerd": "Blocked", +# "DbId": "Id" +# } +# suppliers_to_drop = [ +# 'BcCo', 'StraatHuisnr', 'PostcodeWoonplaats', 'Land', +# 'TelNr', 'Email', 'IBAN', 'Btwnr', 'KvKnr', 'Betalingsvoorwaarde', +# 'KredietLimiet', 'TempBlocked', 'BtwPlicht', 'Blocked', 'CreateDate', +# 'ModifiedDate', 'IsCrediteur', 'Niet_tonen_in_inkooporderlijst', +# 'AfwijkendEmail', 'sNr' +# ] + +# suppliers_mapping = { +# 'CrId': 'int64', +# 'Naam': 'str' +# } + +# suppliers_cleaner = DataFrameCleaner(df_suppliers, name="df_suppliers") +# suppliers_cleaner.drop_columns(suppliers_to_drop) +# suppliers_cleaner.apply_dtype_mapping(suppliers_mapping) +# # relation_cleaner.rename_columns(relation_rename) +# df_suppliers = suppliers_cleaner.get_cleaned_df() + +# eda = EDAService(df_suppliers, name="df_suppliers") +# eda.run_step(1) +# print(df_inkooporderregels.columns.tolist()) + + + +# df_inkooporderregels = df_inkooporderregels.merge(df_suppliers[['CrId', 'Naam']], on='CrId', how='left') + + +# display(df_suppliers.head()) + +display(df_inkooporderregels.head()) \ No newline at end of file From 1c09d120bc6cf246d79cfa5ab78b89647cdf9843 Mon Sep 17 00:00:00 2001 From: Jan Dirk van de Bijl Date: Tue, 20 May 2025 17:18:39 +0200 Subject: [PATCH 03/31] nog wat beter --- __pycache__/ui.cpython-313.pyc | Bin 0 -> 3888 bytes main.py | 156 +++++++++++---------------------- ui.py | 57 ++++++++++++ 3 files changed, 106 insertions(+), 107 deletions(-) create mode 100644 __pycache__/ui.cpython-313.pyc create mode 100644 ui.py diff --git a/__pycache__/ui.cpython-313.pyc b/__pycache__/ui.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6b3831da3843c891c9b7282f3034cf7289e3abc0 GIT binary patch literal 3888 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 literal 0 HcmV?d00001 diff --git a/main.py b/main.py index 23124cd..689bd14 100644 --- a/main.py +++ b/main.py @@ -1,7 +1,7 @@ from eda_service import EDAService from cleanup import DataFrameCleaner from loader import load_all_datasets -from IPython.display import display +import pandas as pd try: df_inkooporderregels, df_ontvangstregels, df_relaties, df_feedback, df_suppliers = load_all_datasets() @@ -10,117 +10,59 @@ -# drop-lijst = alle kolommen behalve degene in rename_map -inkoop_columns_to_drop = { - 'OrNu', - 'Volgnummer', - 'ItCd', - 'Omschrijving', - 'GuLiIOR', - 'BronRegelGUID', - 'Upri', - 'Project', - 'RegelStatus', - 'QuUn', - 'TypeItem', - 'Opmerkingen', - 'Referentie', - 'ReferentieInkooprelatie', - 'VoorraadBijhouden', - 'StatusOrder', - 'Opmerking', - 'DsEx', - 'V1Cd', - 'Kostprijs', - 'ModifiedDate', - 'ModifiedDate1', - 'ModifiedDate2', - 'ModifiedDate3', - 'ModifiedDate4', - 'Definitief', - 'Regelbedrag', - 'WFS_ID', - 'WFS_ISR_ID', - 'WFS_DS_NR', - 'TotalValue', - 'AantalOntvangen', - 'Korting', - 'Verplichting', - 'Verantwoordelijke', - 'ItemCodeLeverancier', - 'sNr', - 'Gehad', - 'Red', - 'Naam' -} - +# Define the columns you want to keep (relevant columns) +# print(df_inkooporderregels.columns) +relevant_columns_inkoop = [ + 'GuLiIOR', 'Datum', 'DatumToegezegd', 'AfwijkendeAfleverdatum', 'Naam' +] +# print(df_ontvangstregels.columns) +relevant_columns_ontvangst = [ + 'BronregelGuid', 'Datum', 'TotaalOntvangen', 'NogTeOntvangen', 'Status_regel', 'Itemcode', 'Naam' +] -# conversies = subset van dtype_mapping_inkoop die je behoudt (alleen de te hernoemen kolommen) +# Apply dtype conversions inkoop_columns_to_convert = { - 'Datum': 'datetime', - 'DatumToegezegd': 'datetime', - 'AfwijkendeAfleverdatum': 'datetime', - 'Vrijgegeven_op': 'datetime', - 'getDate': 'datetime', - 'CrId': 'int64', + 'Datum': 'datetime', + 'DatumToegezegd': 'datetime', + 'AfwijkendeAfleverdatum': 'datetime', + 'Vrijgegeven_op': 'datetime', + 'getDate': 'datetime', + 'Naam': 'str' } -# inkoop_rename_map = { -# "Naam": "SupplierName", -# "DatumInkooporder": "OrderDate", -# "AfwijkendeAfleverdatum": "AdjustedDeliveryDate", -# "DatumToegezegd": "DatumToegezegd" -# } - - -# Reiniging uitvoeren -cleaner = DataFrameCleaner(df_inkooporderregels, name="Inkooporderregels") +# Clean data for df_inkooporderregels +cleaner = DataFrameCleaner(df_inkooporderregels, name="df_inkooporderregels") +cleaner.apply_dtype_mapping(inkoop_columns_to_convert) # Apply dtype conversions +df_inkooporderregels_clean = cleaner.get_cleaned_df()[relevant_columns_inkoop] -cleaner.drop_columns(inkoop_columns_to_drop) -cleaner.apply_dtype_mapping(inkoop_columns_to_convert) -# cleaner.rename_columns(inkoop_rename_map) -cleaner.normalize_nones() -df_inkooporderregels = cleaner.get_cleaned_df() +# Clean data for df_ontvangstregels +cleaner2 = DataFrameCleaner(df_ontvangstregels, name="df_ontvangstregels") +df_ontvangstregels_clean = cleaner2.get_cleaned_df()[relevant_columns_ontvangst] -# EDA uitvoeren -# eda = EDAService(df_inkooporderregels, name="Inkooporderregels") +# Optionally, run the EDA service (unchanged part) +# eda = EDAService(df_ontvangstregels_clean, name="df_ontvangstregels") # eda.run_step(1) - - -# relation_rename = { -# "Naam": "Name", -# "Geblokkeerd": "Blocked", -# "DbId": "Id" -# } -# suppliers_to_drop = [ -# 'BcCo', 'StraatHuisnr', 'PostcodeWoonplaats', 'Land', -# 'TelNr', 'Email', 'IBAN', 'Btwnr', 'KvKnr', 'Betalingsvoorwaarde', -# 'KredietLimiet', 'TempBlocked', 'BtwPlicht', 'Blocked', 'CreateDate', -# 'ModifiedDate', 'IsCrediteur', 'Niet_tonen_in_inkooporderlijst', -# 'AfwijkendEmail', 'sNr' -# ] - -# suppliers_mapping = { -# 'CrId': 'int64', -# 'Naam': 'str' -# } - -# suppliers_cleaner = DataFrameCleaner(df_suppliers, name="df_suppliers") -# suppliers_cleaner.drop_columns(suppliers_to_drop) -# suppliers_cleaner.apply_dtype_mapping(suppliers_mapping) -# # relation_cleaner.rename_columns(relation_rename) -# df_suppliers = suppliers_cleaner.get_cleaned_df() - -# eda = EDAService(df_suppliers, name="df_suppliers") -# eda.run_step(1) -# print(df_inkooporderregels.columns.tolist()) - - - -# df_inkooporderregels = df_inkooporderregels.merge(df_suppliers[['CrId', 'Naam']], on='CrId', how='left') - - -# display(df_suppliers.head()) - -display(df_inkooporderregels.head()) \ No newline at end of file +# Merge df_inkooporderregels_clean with df_ontvangstregels_clean on 'GuLiIOR' and 'BronregelGuid' +merged_df = pd.merge(df_inkooporderregels_clean, df_ontvangstregels_clean, + left_on=['GuLiIOR'], right_on=['BronregelGuid'], how='left') +print(merged_df[['GuLiIOR', 'BronregelGuid', 'TotaalOntvangen']].head()) +# Add the total deliveries column to df_inkooporderregels_clean +df_inkooporderregels_clean['TotalDeliveries'] = merged_df.groupby('GuLiIOR')['BronregelGuid'].transform('count') + +# Get the most recent delivery date for each GuLiIOR from df_ontvangstregels_clean +latest_delivery_date = df_ontvangstregels_clean.groupby('BronregelGuid')['Datum'].max() + +# Merge the most recent delivery date back into df_inkooporderregels_clean +df_inkooporderregels_clean['DeliveryDate'] = df_inkooporderregels_clean['GuLiIOR'].map(latest_delivery_date) + +# Check the result +print(df_inkooporderregels_clean.head()) +print(df_ontvangstregels_clean.head()) +# # Create the UI instance +# from ui import UI # Assuming UI is in a file named `ui.py` + +# # Instantiate the UI class and run it +# ui = UI(df_inkooporderregels_clean) +# ui.year_selection() # Call the year selection method +# ui.show_date_analysis() # Display the analysis and plot based on selected year diff --git a/ui.py b/ui.py new file mode 100644 index 0000000..ba584c4 --- /dev/null +++ b/ui.py @@ -0,0 +1,57 @@ +import streamlit as st +import matplotlib.pyplot as plt +import seaborn as sns + +class UI: + def __init__(self, df_inkooporderregels): + self.df_inkooporderregels = df_inkooporderregels + self.selected_year = None + self.filtered_df = None + + def year_selection(self): + # Year input via Streamlit + self.selected_year = st.selectbox('Selecteer een jaar voor de analyse:', self.df_inkooporderregels['Datum'].dt.year.unique()) + + # Filter the data for the selected year + self.filtered_df = self.df_inkooporderregels[self.df_inkooporderregels['Datum'].dt.year == self.selected_year] + + def show_date_analysis(self): + if self.selected_year is None or self.filtered_df is None: + return + + # Date-related plots + st.subheader('Date Analysis') + + # Plotting the 'Datum' (Order Date) over time, showing orders per month + st.write(f""" + Deze grafiek toont het aantal bestellingen per maand in de dataset voor het jaar {self.selected_year}. + De **orderdatum** vertegenwoordigt de datum waarop de inkooporder is aangemaakt of geregistreerd. + In de grafiek worden de aantallen bestellingen per maand weergegeven. + + Door de **trends** in de maandelijkse bestellingen te bekijken, kunnen we bijvoorbeeld seizoensgebonden schommelingen, + promotieperiodes of andere invloeden op de bestelactiviteit herkennen. + + De **kde (kernel density estimate)** geeft een geschatte verdeling van de orderdatums weer, wat helpt bij het identificeren van + gebieden met een hoge concentratie van bestellingen, zelfs als de gegevens op bepaalde dagen relatief laag zijn. + + Let op de x-as (de **maanden**) en de y-as (de **frequentie van bestellingen per maand**). + """) + + # Extracting year and month from the 'Datum' column + self.filtered_df['YearMonth'] = self.filtered_df['Datum'].dt.to_period('M') + + # Grouping by the Year-Month period and counting orders + monthly_orders = self.filtered_df.groupby('YearMonth').size() + + # Convert 'YearMonth' period to datetime and extract month names + month_names = monthly_orders.index.to_timestamp().month_name().str[:3] # Get abbreviated month names + + # Plotting the orders per month + plt.figure(figsize=(12, 6)) + sns.barplot(x=month_names, y=monthly_orders.values, color='skyblue') + + plt.title(f'Aantal Bestellingen per Maand voor {self.selected_year}') + plt.xlabel('Maand') + plt.ylabel('Aantal Bestellingen') + plt.xticks(rotation=45) # Rotating x-axis labels for better readability + st.pyplot(fig=plt.gcf()) # Explicitly passing the figure From 416209112c2b9aca6d55840b11ffee17681cb284 Mon Sep 17 00:00:00 2001 From: Jan Dirk van de Bijl Date: Tue, 20 May 2025 17:23:27 +0200 Subject: [PATCH 04/31] merge --- main.py | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/main.py b/main.py index 689bd14..5964f2c 100644 --- a/main.py +++ b/main.py @@ -9,7 +9,7 @@ exit(1) - +print(len(df_inkooporderregels)) # Define the columns you want to keep (relevant columns) # print(df_inkooporderregels.columns) relevant_columns_inkoop = [ @@ -36,8 +36,9 @@ df_inkooporderregels_clean = cleaner.get_cleaned_df()[relevant_columns_inkoop] # Clean data for df_ontvangstregels -cleaner2 = DataFrameCleaner(df_ontvangstregels, name="df_ontvangstregels") -df_ontvangstregels_clean = cleaner2.get_cleaned_df()[relevant_columns_ontvangst] +# cleaner2 = DataFrameCleaner(df_ontvangstregels, name="df_ontvangstregels") +# df_ontvangstregels_clean = cleaner2.get_cleaned_df()[relevant_columns_ontvangst] +df_ontvangstregels_clean = df_ontvangstregels # Optionally, run the EDA service (unchanged part) # eda = EDAService(df_ontvangstregels_clean, name="df_ontvangstregels") @@ -55,10 +56,19 @@ # Merge the most recent delivery date back into df_inkooporderregels_clean df_inkooporderregels_clean['DeliveryDate'] = df_inkooporderregels_clean['GuLiIOR'].map(latest_delivery_date) +print(len(df_inkooporderregels_clean)) + +# Filter the rows where 'DeliveryDate' is NaT and 'TotalDeliveries' is 0 +no_deliveries = df_inkooporderregels_clean[(df_inkooporderregels_clean['DeliveryDate'].isna()) & + (df_inkooporderregels_clean['TotalDeliveries'] == 0)] + +# Print the first few rows +print(len(no_deliveries)) +print(no_deliveries.head()) # Check the result -print(df_inkooporderregels_clean.head()) -print(df_ontvangstregels_clean.head()) +# print(df_inkooporderregels_clean.head()) +# print(df_ontvangstregels_clean.head()) # # Create the UI instance # from ui import UI # Assuming UI is in a file named `ui.py` From 7cb14f6f7b1e20e90e34d3afc8f35a36ae6846d8 Mon Sep 17 00:00:00 2001 From: Jan Dirk van de Bijl Date: Tue, 20 May 2025 17:27:03 +0200 Subject: [PATCH 05/31] merge --- main.py | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/main.py b/main.py index 5964f2c..3ed9e9b 100644 --- a/main.py +++ b/main.py @@ -63,16 +63,13 @@ (df_inkooporderregels_clean['TotalDeliveries'] == 0)] # Print the first few rows -print(len(no_deliveries)) -print(no_deliveries.head()) +# print(len(no_deliveries)) +# print(no_deliveries.head()) -# Check the result -# print(df_inkooporderregels_clean.head()) -# print(df_ontvangstregels_clean.head()) -# # Create the UI instance -# from ui import UI # Assuming UI is in a file named `ui.py` +# Create the UI instance +from ui import UI # Assuming UI is in a file named `ui.py` -# # Instantiate the UI class and run it -# ui = UI(df_inkooporderregels_clean) -# ui.year_selection() # Call the year selection method -# ui.show_date_analysis() # Display the analysis and plot based on selected year +# Instantiate the UI class and run it +ui = UI(df_inkooporderregels_clean) +ui.year_selection() # Call the year selection method +ui.show_date_analysis() # Display the analysis and plot based on selected year From cab045711d82ab7e32a7f924b0d7c8c4249b9441 Mon Sep 17 00:00:00 2001 From: Jan Dirk van de Bijl Date: Tue, 20 May 2025 17:33:32 +0200 Subject: [PATCH 06/31] nog beter --- __pycache__/ui.cpython-313.pyc | Bin 3888 -> 8496 bytes main.py | 14 ++++- ui.py | 111 ++++++++++++++++++++++++++------- 3 files changed, 100 insertions(+), 25 deletions(-) diff --git a/__pycache__/ui.cpython-313.pyc b/__pycache__/ui.cpython-313.pyc index 6b3831da3843c891c9b7282f3034cf7289e3abc0..2fd4fb91b5611b062b85f375b5e7ef88519055c0 100644 GIT binary patch literal 8496 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 L2fpQK&4&L!S*F_@ delta 2076 zcmZ`)O>7%Q6yEXL@vhf#>ileDr%lFb^Rvbcw6vtDN>SQ?XlNo4s}fBmqIEpkY`oqz zv+Jbx#RUlz<&uV#5N9q(oGNkQPzeqkDj}q}iEy>0H!it_{=k6)yjdqrKxL(!*?IHc z_ulv3o7uaU@Ak%?wzft%c>2G{EdCtXh;^g08$+qiZmyrp29jKsKNn!z97n?&d5i`( zJ{^eCu-2l4y}Jx>mIEFBHv)64EdxIaOX8HlMLyTmlF&@N8_j{=~kd3q_DCxGf^}3HGu_w;< zApgRn0usO`InG+rjuApp1nc6nWM_OQxDyaE7LiLG_B zU|FS_Z-;dogIkS&^MZq|1*{QDG~IS60n|gjuKIClR9(}&)Agd)+H9(kGSu;{%FoXqcsH%pm`qDnl8tc1j;IWyO zTc=bT5BoK27R^kj6$}6%svPVsQ1Ve3!g@(e2YnBgBQMy|BXFubH06mmh)Sm{(^=eM z_eo6&>_lPSVHb>oyzqjq*?N_DVY^Vt8D*mI9=heBiWi!<42xDzjQib*FaP(fP5Ecd zKV4qPUsO9@qPugd=}4fK11YIlCV1t+tI|yc*rM!Wq;VKL(Jto}i3MB)9r*o*n zS~yW!7uJMb4#~6V;p~TvS))E{Y~CpDa*~O}T|U|#ea1z_*4uRy?bR44935!L>AIY5$fI?6bW0v<$P;yWVoQFfAy3xj z$@^#Sk8jG;s}ge`U5~6qz8rlZocL9c)}=M+PN6Yyp+0co2jziq?KhB#YvN|-=y$=! z`N{gp^OKvS?`^hU+ZLvnKG@zF-4=TGzBfCDw*|%h`&iGhEdf*ZQ-U;wVQN;1)oWT2 z+&}u>kXRE@nGJ8c7xD2LQ>GFd*nRE~?2l!$qQ@G<2ug2XQ#+CBt$IJvUOSurE5sFkgcK`jn_Si<A`8G1E*7nP m*&vtbyRc+GApgI-%Oivyaq?rX?-AGaXYedaJ>g*RE&l;5Lst&~ diff --git a/main.py b/main.py index 3ed9e9b..3930356 100644 --- a/main.py +++ b/main.py @@ -66,10 +66,18 @@ # print(len(no_deliveries)) # print(no_deliveries.head()) -# Create the UI instance +# Import necessary UI class and other dependencies from ui import UI # Assuming UI is in a file named `ui.py` +import pandas as pd -# Instantiate the UI class and run it +# Create the UI instance ui = UI(df_inkooporderregels_clean) + +# Select year for analysis ui.year_selection() # Call the year selection method -ui.show_date_analysis() # Display the analysis and plot based on selected year + +# Select suppliers for analysis +ui.supplier_selection() # Call the supplier selection method + +# Display the analysis and plot based on the selected year and suppliers +ui.show_date_analysis() # Display the analysis and plot based on selected year and suppliers \ No newline at end of file diff --git a/ui.py b/ui.py index ba584c4..56e0caf 100644 --- a/ui.py +++ b/ui.py @@ -1,11 +1,13 @@ import streamlit as st import matplotlib.pyplot as plt import seaborn as sns +import pandas as pd class UI: def __init__(self, df_inkooporderregels): self.df_inkooporderregels = df_inkooporderregels self.selected_year = None + self.selected_suppliers = None self.filtered_df = None def year_selection(self): @@ -15,43 +17,108 @@ def year_selection(self): # Filter the data for the selected year self.filtered_df = self.df_inkooporderregels[self.df_inkooporderregels['Datum'].dt.year == self.selected_year] + def supplier_selection(self): + # Multiselect filter for suppliers + supplier_options = self.df_inkooporderregels['Naam'].unique() + self.selected_suppliers = st.multiselect('Selecteer leveranciers voor de analyse:', supplier_options) + + # Filter the data for the selected suppliers + if self.selected_suppliers: + self.filtered_df = self.filtered_df[self.filtered_df['Naam'].isin(self.selected_suppliers)] + def show_date_analysis(self): if self.selected_year is None or self.filtered_df is None: return # Date-related plots - st.subheader('Date Analysis') + st.subheader('Date Analysis for Troubleshooting Suppliers') - # Plotting the 'Datum' (Order Date) over time, showing orders per month + # ** Missing Deliveries per Supplier ** st.write(f""" - Deze grafiek toont het aantal bestellingen per maand in de dataset voor het jaar {self.selected_year}. - De **orderdatum** vertegenwoordigt de datum waarop de inkooporder is aangemaakt of geregistreerd. - In de grafiek worden de aantallen bestellingen per maand weergegeven. + Deze grafiek toont het aantal bestellingen die niet geleverd zijn per leverancier voor het jaar {self.selected_year}. + Dit helpt bij het identificeren van leveranciers die niet voldoen aan de afgesproken leveringen. + """) - Door de **trends** in de maandelijkse bestellingen te bekijken, kunnen we bijvoorbeeld seizoensgebonden schommelingen, - promotieperiodes of andere invloeden op de bestelactiviteit herkennen. + # Grouping by Supplier ('Naam') and counting missing deliveries (TotalDeliveries == 0) + missing_deliveries = self.filtered_df[self.filtered_df['TotalDeliveries'] == 0].groupby('Naam').size() - De **kde (kernel density estimate)** geeft een geschatte verdeling van de orderdatums weer, wat helpt bij het identificeren van - gebieden met een hoge concentratie van bestellingen, zelfs als de gegevens op bepaalde dagen relatief laag zijn. + plt.figure(figsize=(12, 6)) + sns.barplot(x=missing_deliveries.index, y=missing_deliveries.values, color='salmon') + plt.title(f'Missing Deliveries per Supplier voor {self.selected_year}') + plt.xlabel('Leverancier') + plt.ylabel('Aantal Ontbrekende Leveringen') + plt.xticks(rotation=90) + st.pyplot(fig=plt.gcf()) - Let op de x-as (de **maanden**) en de y-as (de **frequentie van bestellingen per maand**). + # ** Late Deliveries per Supplier ** + st.write(f""" + Deze grafiek toont het aantal vertraagde leveringen per leverancier voor het jaar {self.selected_year}. + Een vertraging in de levering wordt gedefinieerd als een afwijking van de afgesproken leverdatum. """) - # Extracting year and month from the 'Datum' column - self.filtered_df['YearMonth'] = self.filtered_df['Datum'].dt.to_period('M') + # Identifying late deliveries based on AfwijkendeAfleverdatum + late_deliveries = self.filtered_df[self.filtered_df['AfwijkendeAfleverdatum'].notna()] + late_deliveries_count = late_deliveries.groupby('Naam').size() + + plt.figure(figsize=(12, 6)) + sns.barplot(x=late_deliveries_count.index, y=late_deliveries_count.values, color='orange') + plt.title(f'Vertraagde Leveringen per Supplier voor {self.selected_year}') + plt.xlabel('Leverancier') + plt.ylabel('Aantal Vertraagde Leveringen') + plt.xticks(rotation=90) + st.pyplot(fig=plt.gcf()) + + # ** Deliveries per Supplier ** + st.write(f""" + Deze grafiek toont het aantal leveringen per leverancier voor het jaar {self.selected_year}. + Dit helpt bij het identificeren van leveranciers die mogelijk niet genoeg leveren. + """) - # Grouping by the Year-Month period and counting orders - monthly_orders = self.filtered_df.groupby('YearMonth').size() + deliveries_per_supplier = self.filtered_df.groupby('Naam')['TotalDeliveries'].sum() - # Convert 'YearMonth' period to datetime and extract month names - month_names = monthly_orders.index.to_timestamp().month_name().str[:3] # Get abbreviated month names + plt.figure(figsize=(12, 6)) + sns.barplot(x=deliveries_per_supplier.index, y=deliveries_per_supplier.values, color='lightgreen') + plt.title(f'Aantal Leveringen per Leverancier voor {self.selected_year}') + plt.xlabel('Leverancier') + plt.ylabel('Aantal Leveringen') + plt.xticks(rotation=90) + st.pyplot(fig=plt.gcf()) + + # ** Supplier Delivery Frequency vs Order Volume ** + st.write(f""" + Deze grafiek toont de verhouding tussen de frequentie van leveringen en het ordervolume per leverancier voor het jaar {self.selected_year}. + Leveranciers met een lage leverfrequentie kunnen mogelijk problemen hebben. + """) + + # Delivery frequency vs. order volume (TotalOrders per Supplier) + delivery_frequency = self.filtered_df.groupby('Naam').size() + order_volume = self.filtered_df.groupby('Naam')['GuLiIOR'].count() # Number of orders per supplier + + # Merging delivery frequency and order volume + delivery_data = pd.DataFrame({ + 'DeliveryFrequency': delivery_frequency, + 'OrderVolume': order_volume + }) - # Plotting the orders per month plt.figure(figsize=(12, 6)) - sns.barplot(x=month_names, y=monthly_orders.values, color='skyblue') + sns.scatterplot(x='OrderVolume', y='DeliveryFrequency', data=delivery_data, hue='DeliveryFrequency', palette='viridis') + plt.title(f'Leverancier Leverfrequentie vs Ordervolume voor {self.selected_year}') + plt.xlabel('Ordervolume') + plt.ylabel('Leverfrequentie') + st.pyplot(fig=plt.gcf()) + + # ** Performance Over Time ** + st.write(f""" + Deze grafiek toont de prestaties van de leveranciers over de tijd voor het jaar {self.selected_year}. + Door de prestaties over de tijd te bekijken, kunnen we zien of leveranciers steeds minder goed presteren. + """) + + # Group by Year and Month and calculate total deliveries over time for each supplier + self.filtered_df['YearMonth'] = self.filtered_df['Datum'].dt.to_period('M') + supplier_performance = self.filtered_df.groupby(['YearMonth', 'Naam'])['TotalDeliveries'].sum().unstack() - plt.title(f'Aantal Bestellingen per Maand voor {self.selected_year}') + supplier_performance.plot(figsize=(12, 6)) + plt.title(f'Leverancier Prestatie Over Tijd voor {self.selected_year}') plt.xlabel('Maand') - plt.ylabel('Aantal Bestellingen') - plt.xticks(rotation=45) # Rotating x-axis labels for better readability - st.pyplot(fig=plt.gcf()) # Explicitly passing the figure + plt.ylabel('Aantal Leveringen') + st.pyplot(fig=plt.gcf()) From f9d1bb136be11313c79f8a19f05cfbf8f82112b3 Mon Sep 17 00:00:00 2001 From: Jan Dirk van de Bijl Date: Tue, 20 May 2025 17:40:38 +0200 Subject: [PATCH 07/31] mooi --- __pycache__/ui.cpython-313.pyc | Bin 8496 -> 8496 bytes main.py | 7 ++++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/__pycache__/ui.cpython-313.pyc b/__pycache__/ui.cpython-313.pyc index 2fd4fb91b5611b062b85f375b5e7ef88519055c0..6c3c1d5e77f047a142d167e90f1df79b7b5f0757 100644 GIT binary patch delta 19 Zcmdnsw84q%GcPX}0}$jc+Q_A*2mm@U1s4DS delta 19 Zcmdnsw84q%GcPX}0}vE0*vO@(2mm@i1sMPU diff --git a/main.py b/main.py index 3930356..01888e7 100644 --- a/main.py +++ b/main.py @@ -2,6 +2,7 @@ from cleanup import DataFrameCleaner from loader import load_all_datasets import pandas as pd +from ui import UI # Assuming UI is in a file named `ui.py` try: df_inkooporderregels, df_ontvangstregels, df_relaties, df_feedback, df_suppliers = load_all_datasets() @@ -66,9 +67,9 @@ # print(len(no_deliveries)) # print(no_deliveries.head()) -# Import necessary UI class and other dependencies -from ui import UI # Assuming UI is in a file named `ui.py` -import pandas as pd + + + # Create the UI instance ui = UI(df_inkooporderregels_clean) From b3d236c098a6f7c2330b867318203dc950b13575 Mon Sep 17 00:00:00 2001 From: Jan Dirk van de Bijl Date: Wed, 21 May 2025 10:07:34 +0200 Subject: [PATCH 08/31] data catalog --- __pycache__/cleanup.cpython-312.pyc | Bin 0 -> 6439 bytes __pycache__/eda_service.cpython-312.pyc | Bin 0 -> 11180 bytes __pycache__/loader.cpython-312.pyc | Bin 0 -> 3895 bytes __pycache__/ui.cpython-312.pyc | Bin 0 -> 8401 bytes data_catalog.py | 74 ++++++++++++++++++++++++ loader.py | 10 ++-- main.py | 2 +- 7 files changed, 80 insertions(+), 6 deletions(-) create mode 100644 __pycache__/cleanup.cpython-312.pyc create mode 100644 __pycache__/eda_service.cpython-312.pyc create mode 100644 __pycache__/loader.cpython-312.pyc create mode 100644 __pycache__/ui.cpython-312.pyc create mode 100644 data_catalog.py diff --git a/__pycache__/cleanup.cpython-312.pyc b/__pycache__/cleanup.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0969f0c527619111f3de9a05c0d1fb4515f1f3a8 GIT binary patch literal 6439 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 J4B=W`_+Moec5DCu literal 0 HcmV?d00001 diff --git a/__pycache__/eda_service.cpython-312.pyc b/__pycache__/eda_service.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3d20cd9df42192cc1ab2b462961e89def4a909cd GIT binary patch literal 11180 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 literal 0 HcmV?d00001 diff --git a/__pycache__/loader.cpython-312.pyc b/__pycache__/loader.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..50fa4b2f0e55158184fa4913bbf37c0b140c58ce GIT binary patch literal 3895 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 Date: Wed, 21 May 2025 14:37:04 +0200 Subject: [PATCH 09/31] better --- .../17.14.670.39694/CodeChunks.db | Bin 0 -> 69632 bytes .../17.14.670.39694/CodeChunks.db-shm | Bin 0 -> 32768 bytes .../17.14.670.39694/CodeChunks.db-wal | Bin 0 -> 1108312 bytes .../17.14.670.39694/SemanticSymbols.db | Bin 0 -> 49152 bytes .../17.14.670.39694/SemanticSymbols.db-shm | Bin 0 -> 32768 bytes .../17.14.670.39694/SemanticSymbols.db-wal | Bin 0 -> 1268992 bytes .vs/project-2-eda-sql/v17/.wsuo | Bin 0 -> 31232 bytes .vs/slnx.sqlite | Bin 0 -> 90112 bytes data_catalog.py | 74 -------- main.py | 178 +++++++++++++----- 10 files changed, 129 insertions(+), 123 deletions(-) create mode 100644 .vs/project-2-eda-sql/CopilotIndices/17.14.670.39694/CodeChunks.db create mode 100644 .vs/project-2-eda-sql/CopilotIndices/17.14.670.39694/CodeChunks.db-shm create mode 100644 .vs/project-2-eda-sql/CopilotIndices/17.14.670.39694/CodeChunks.db-wal create mode 100644 .vs/project-2-eda-sql/CopilotIndices/17.14.670.39694/SemanticSymbols.db create mode 100644 .vs/project-2-eda-sql/CopilotIndices/17.14.670.39694/SemanticSymbols.db-shm create mode 100644 .vs/project-2-eda-sql/CopilotIndices/17.14.670.39694/SemanticSymbols.db-wal create mode 100644 .vs/project-2-eda-sql/v17/.wsuo create mode 100644 .vs/slnx.sqlite delete mode 100644 data_catalog.py diff --git a/.vs/project-2-eda-sql/CopilotIndices/17.14.670.39694/CodeChunks.db b/.vs/project-2-eda-sql/CopilotIndices/17.14.670.39694/CodeChunks.db new file mode 100644 index 0000000000000000000000000000000000000000..aa5d6e1877ba096aaa27cf3251fef8ec933c4dcf GIT binary patch literal 69632 zcmeI&O>g5w7{GD6+l|w_wCTyGO0KGsM7vrxsw%_*iI6(QZ0dAV7g`Avg~q!Zwsp2` zDwdc&T`lbvi^~p*kjMw&+nP>B$^&Q?M-I3_H24} zF`8*RQcYS~l0MZmNs`LqZ(aOFuaekUj&{VSoY-EpS(Y9>`>VS4k5p5-((0dUzpehf z`a$)g`gi50@}r7X`gP^I;vYq+_>0n2eqYoG

~v00Id7KLy;%nxd+z?0!EReS2025)&8ufYjwY@t~IJ9O}y&HxULzdrSIzl&Fov6dED!1hXdoFJvh~# z=%-ry*yoU#4-`tn@N z@Wau~Z0he1{rba}|FQ0FR26k=OTLx;J2$)<_P9Gaw-cMI=_nFM-ZvKSLWiT-i-n== zt`<~dYf&hPI~leTJ8N#OqNv7>?6xLeM8?Um^Ww&N>Bro?vM+CJ=j?}|%ot}Js)i98 z=AM2c67|mdb**n|^^8`8PEafo-Mlr+in_BSzv=kW8K-9yRnqbqXT%xs4`y|#RLA+x z6W;RN?VDjk-Tpu~_D!#cHo}WGwSnH%2fEqOk2JsRVD#$M#ChH@#!ZiBPw(ks9CX@8 zo%Wud(U6}S@8m>7epz-4qL*Km6!qh6*h`w$W+l#Hcv>>(m5i*#t-aUaH%AwC_F##!+_RnM-hi5autdkhSQZ^mCO0@W zm6F6DTbP)SRtoBq?L}iY2{mjb_e$Se9lHRovAako%!c#MrZYJCFPQgV&H-QQf4ocMafR=lk^%Zj?YA-ifc)b^%lHy47+A7me==wu-Ya~7_6+Tfn_yP^vOVa0-X1h|A3tu!6LqKG>v`V_ z%)WRYMi0Y!Z*)ET>PpPj*5txIo}Jz8vte=r+eUPirpW4tO9i#Fu_&uiIKx)7bx(Yc zDth0gs@_}8d*g)w0tg_000IagfB*srAb;L)BF%cqw00IagfB*srAbt>u literal 0 HcmV?d00001 diff --git a/.vs/project-2-eda-sql/CopilotIndices/17.14.670.39694/CodeChunks.db-shm b/.vs/project-2-eda-sql/CopilotIndices/17.14.670.39694/CodeChunks.db-shm new file mode 100644 index 0000000000000000000000000000000000000000..f09834200b9da01663517b2f835abb728cba9bff GIT binary patch literal 32768 zcmeI*d6bV;9LMqZGmF_w29-gYL})aTT~S(;#1L7=I+ipBWoslPgk+5d$u9d6V^D;Gtc1J9DR9|d}z5iK7i|=}0HK@DV-fO+N-O zgkg+e6l0mdWTr8TZr|yWZ&8Q(G@=D9d6#y)&j)m+JH6<` zXAI zCq%V>_x^T0>4t!>>9Q4Qx@SE^4#LSvE*_&GPg9a|yi8@@q%MtVLQ|U2oOoK(p3Zzs zUj~uLXeKd(c`V_3*6=G^*~3ASIl~36;qPQtMXS#4VF5oLCJ%YZPaz6ZgkqGUEaj=d zE4;=VL{o!W#L$3P-k}xm(SZa$q#Hf>giqlnD z1HbV*+t|ro_H&4%oZuvXbB>E#CKVqilN03FzIX}=NI(J-kbndva3=+94_$=>yeVM2 zM=K=YO#$0CT_FK)3fR*E6cX^JfIUk?Apvg+*i&Q_67Z%#CU3sB-dX}iAV3Nd@T`D6 h8&4qtZwlB`Ar%skfCMBU0SQPz0uqpb1SDVut^ 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 m-_c)yw-o{iAb~o&q^Bm*IRqOXF z7Ng|E^|}TlA15v)78Vkp5t2wGR`~B4|BV*0z8HPr@6yQnwAGcw?#b`#n|~!XmX;D5 zzis}!@x#W4t6yjS$$XdoHT@*@Q|goDAD4dNJF!3j0ucB=1p1$Eq%L3GN`LhQ^Q?B8 zdb-!Hzw92nw(9uQW5Ifa=|H4+@Oo;gsCRBb&& z_!90^HN6_{F1g)Pn=;FFa-Mr;nFZ2tp7jjdI8=NpRNyrdHqg2m@?&E(KiPZvfK`PF}b5WE|BMW@=(=pR~tI1RUfM5{?ckHd+V0e-<~`M({1_ItBYd`x3A6^Mc7Qv zSthR?T@htBHXi>KIjB?*^8I%+sqFr~)K@2u!!lo72$65g%;=vtk#jz6i@Idg>lVmq z+i?q{V;J3?kLi55lFDAcJ{`wk#)VOteB;WDVTm@=O^$81^)z64EvHl2ot^Zz$%!oS z&ckjWs5QM&tPp*2ZOEiiSG6N@!u{B~{E_1b%)|J@Gj z+8@vtJUNbGi>ejh=A>2z#feuE$8%^(bjmhkAxh{NAz8&*iiUzlm&h_{x76^{^j4 zuslnpvY&48Qn4J9zEB@EgWNP@u))@Jm?%{%E02ggwY4m+T;bf7N$x_H^8LkSK5cln zN3m|pZmZYjlByZ>n3~q(dBb>TBYO%&R(OgWR%eFCcqN1%E7WPTj-3DI{iRfPYfJim z^hy?VygX?t@L0mSQ%!l&g@F_sdR5i`+#PSkrU8+_p;;T}tmWp-pHhwU_8VlS&BO1!IRw2^VX5ve7 z#+gKuS*JO0&6hJyBbv-Q&1jyd4moHv>r_Dj+~JjZp5wUWUCKJHS-0Ab!FnDYPeYii z!)i@Yk2LWGmOC$jJgF&%N=?y9{H`L}oKwxbm^0z`K2Kh$SXTJ-bQbwM*_Qg*Xr4qz zG!HGC-ZNMy+OQNBY(rD;Hxy0~P0^^q@Q7f-M4QF@jLs$J?9&-nun^Ba_kD|3C zzs*jITkUo6a!I^kfdB*`009U<00Izz00bZa0SG`~UIj8DF#P>Lujxfx5P$##AOHaf zKmY;|fB*y_0D*x3p8ul|AOHafKmY;|fB*y_009U<00Q$bfam}7pJPM_0SG_<0uX=z z1Rwwb2tWV=5Ww?))Bpq^009U<00Izz00bZa0SG`~{sr*-fBtif2q6Fg2tWV=5P$## zAOHafKmY>x`yVv`0SG_<0uX=z1Rwwb2tWV=5SV`f@$df^HvdR${>@*oKmY;|fB*y_ z009U<00Izz00bZ~4+5D?GVxv*NK#5B*6{p)9@2^!AOHafKmY;|fB*y_009U<00M6o z!2kdEW*_W@00bZa0SG_<0uX=z1Rwwb2+V_kc>XVK{+ZxESReoa2tWV=5P$##AOHaf WKmY;|m?MGJq literal 0 HcmV?d00001 diff --git a/.vs/project-2-eda-sql/CopilotIndices/17.14.670.39694/SemanticSymbols.db-shm b/.vs/project-2-eda-sql/CopilotIndices/17.14.670.39694/SemanticSymbols.db-shm new file mode 100644 index 0000000000000000000000000000000000000000..d6dd49bf2d431b2d17bcb0289863e25c82accbe8 GIT binary patch literal 32768 zcmeI)c~F*B6vy%J0R-6;kmUtMWK;It42#q>$tbg|tZ1>aRV&Mqth7u8%gQJ#O|w!< zS~P6mw8b_xEiKIot!Pujtv$-4uraEa5 zR^$vJ&b*?u+-FjCNpWq%gsOzN#(=!U%Ce}Mx_VC=zjtf9QRvid`cLeCdSLW%roK-4 zIoZKU_x@0_c`diDThG0E)4Qg3z2^Vu{r){Um``(4uWxH^-v3cP%{iRM zgDxf| zHt+C0AF!5>_=JsYrj9Lq#kYLNHX7K;9)96h{@`!+Iqhrwtb=v55DT?1i?k^7ST~Ee z9+qOMmS$O&ZF%PQw^2yI?FJM@0!j2DgIo&eLtpxFG^HHJiJZ&`&g5Lq=VC77TCQUf zld0rZ?xdRgn8SP?;V~X(Da&|)ms!D^yvr)qv7SwQ##X-Od$zNSz5K?X{DYal1zINy zw`hyC?v`jhE!}b~UuRMWvYiEdi6)k=bR(W*GAZN;22#dw%DI5iT)|kbVjL5=kz2Tp zyLo^GJi#-(!dt9n1D{jR4t}B$9}BVwi?bxlumYXscHT)X*LDFvV(38%X=IT{5r=am z{Talu9M3RL;dIVoB%`>5F^uPWZej{m%wQ(>a6fZ-h=nZXNuK6eUgT9?XC?2kh7b9e zPx*o``Gz0(k=^{v@BBp*z7}A?*4esPjCHjHOSWE?X}RY1#ZyQ?0uqpb1SB8<2}nQ! z5|DrdBp?9^NI(J-kbndvAOQ(TKmrnwfCMBU0SQPz0uqpb1SB8<2}nQ!5|DrdBp`v7 G1pWo~P^~%u literal 0 HcmV?d00001 diff --git a/.vs/project-2-eda-sql/CopilotIndices/17.14.670.39694/SemanticSymbols.db-wal b/.vs/project-2-eda-sql/CopilotIndices/17.14.670.39694/SemanticSymbols.db-wal new file mode 100644 index 0000000000000000000000000000000000000000..48b1a47aa78ee2bdf3690987e0533caa73e8e3bf GIT binary patch literal 1268992 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 literal 0 HcmV?d00001 diff --git a/.vs/project-2-eda-sql/v17/.wsuo b/.vs/project-2-eda-sql/v17/.wsuo new file mode 100644 index 0000000000000000000000000000000000000000..629e6b4eaf5c3ffb688ebd5ef91774a9664b4674 GIT binary patch literal 31232 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 KlK(&U|Nj7T9y|R2 literal 0 HcmV?d00001 diff --git a/.vs/slnx.sqlite b/.vs/slnx.sqlite new file mode 100644 index 0000000000000000000000000000000000000000..9a0e1bbbe3bb34ff863463e095b557d8e99f16c6 GIT binary patch literal 90112 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 U00e*l5C8%|00;nqr%K@e0mR%S{Qv*} literal 0 HcmV?d00001 diff --git a/data_catalog.py b/data_catalog.py deleted file mode 100644 index 341783b..0000000 --- a/data_catalog.py +++ /dev/null @@ -1,74 +0,0 @@ -import os -import json -import streamlit as st - -class DataCatalog: - def __init__(self): - self.entries = [] - - def link_directory(self, root_path: str, recursive: bool = True): - """Link a directory and iterate over its files.""" - for dirpath, dirnames, filenames in os.walk(root_path): - for file in filenames: - full_path = os.path.join(dirpath, file) - self.entries.append({ - "type": "file", - "path": full_path, - "extension": os.path.splitext(file)[1], - "comment": "" - }) - if not recursive: - break - - def list_entries(self): - """Print a list of all entries.""" - for entry in self.entries: - print(f"[{entry['type']}] {entry['path']} ({entry['extension']})") - - def add_comment(self, path: str, comment: str): - """Add or update a comment for a given file path.""" - for entry in self.entries: - if entry["path"] == path: - entry["comment"] = comment - return True - return False - - def export_to_json(self, filepath: str): - """Export the catalog to a JSON file.""" - with open(filepath, 'w') as f: - json.dump(self.entries, f, indent=2) - -def display_directory_level(current_path, root_path): - try: - entries = sorted(os.listdir(current_path)) - except PermissionError: - st.write("[Permission Denied]") - return - - st.markdown("### Directory: " + current_path) - - if current_path != root_path: - parent_path = os.path.dirname(current_path) - if st.button("⬅️ Go Back"): - st.session_state["current_path"] = parent_path - st.query_params["reload"] = "1" - - for entry in entries: - full_path = os.path.join(current_path, entry) - if os.path.isdir(full_path): - if st.button(f"📁 {entry}", key=full_path): - st.session_state["current_path"] = full_path - st.query_params["reload"] = "1" - else: - st.write(f"📄 {entry}") - -# Streamlit UI -if __name__ == "__main__": - st.title("Data Catalog Directory Browser") - root_path = st.text_input("Enter the root directory path:", value=r"C:\\Users\\jdvdb\\OneDrive\\Documenten") - - if "current_path" not in st.session_state: - st.session_state["current_path"] = root_path - - if os.path.isdir(st.session_state["current_path"]): - display_directory_level(st.session_state["current_path"], root_path) \ No newline at end of file diff --git a/main.py b/main.py index b876cd2..d075b7a 100644 --- a/main.py +++ b/main.py @@ -2,83 +2,163 @@ from cleanup import DataFrameCleaner from loader import load_all_datasets import pandas as pd -from ui import UI # Assuming UI is in a file named `ui.py` +from ui import UI # Assuming UI is in a file named ui.py +# Load all required datasets try: - df_inkooporderregels, df_ontvangstregels, df_relaties, df_feedback, df_suppliers = load_all_datasets(True) + df_inkooporderregels, df_ontvangstregels, df_relaties, df_feedback, df_suppliers = load_all_datasets() except Exception: exit(1) - -print(len(df_inkooporderregels)) -# Define the columns you want to keep (relevant columns) -# print(df_inkooporderregels.columns) +# Define relevant columns to retain for analysis relevant_columns_inkoop = [ - 'GuLiIOR', 'Datum', 'DatumToegezegd', 'AfwijkendeAfleverdatum', 'Naam' + 'GuLiIOR', 'Datum', 'DatumToegezegd', 'AfwijkendeAfleverdatum', 'Naam', 'BronRegelGUID' ] -# print(df_ontvangstregels.columns) + relevant_columns_ontvangst = [ 'BronregelGuid', 'Datum', 'TotaalOntvangen', 'NogTeOntvangen', 'Status_regel', 'Itemcode', 'Naam' ] -# Apply dtype conversions +# Define columns to convert to specific dtypes inkoop_columns_to_convert = { - 'Datum': 'datetime', - 'DatumToegezegd': 'datetime', - 'AfwijkendeAfleverdatum': 'datetime', - 'Vrijgegeven_op': 'datetime', - 'getDate': 'datetime', + 'Datum': 'datetime', + 'DatumToegezegd': 'datetime', + 'AfwijkendeAfleverdatum': 'datetime', + 'Vrijgegeven_op': 'datetime', + 'getDate': 'datetime', 'Naam': 'str' } -# Clean data for df_inkooporderregels +# Clean and prepare df_inkooporderregels cleaner = DataFrameCleaner(df_inkooporderregels, name="df_inkooporderregels") -cleaner.apply_dtype_mapping(inkoop_columns_to_convert) # Apply dtype conversions -df_inkooporderregels_clean = cleaner.get_cleaned_df()[relevant_columns_inkoop] +cleaner.apply_dtype_mapping(inkoop_columns_to_convert) +df_inkooporderregels_clean = cleaner.get_cleaned_df()[relevant_columns_inkoop].copy() + +# Clean and prepare df_ontvangstregels +cleaner2 = DataFrameCleaner(df_ontvangstregels, name="df_ontvangstregels") +df_ontvangstregels_clean = cleaner2.get_cleaned_df()[relevant_columns_ontvangst] + +# --- Create unified delivery date --- + +# 1. DatumToegezegd is the original promised delivery date and should not be changed. +# 2. AfwijkendeAfleverdatum is the override delivery date and may be updated. +# 3. ExpectedDeliveryDate is resolved from either of the two. +# 4. TODO: Handle cases where both are missing. + +df_inkooporderregels_clean['ExpectedDeliveryDate'] = df_inkooporderregels_clean['AfwijkendeAfleverdatum'].combine_first( + df_inkooporderregels_clean['DatumToegezegd'] +) + +# Remove the original date columns +df_inkooporderregels_clean.drop(columns=['AfwijkendeAfleverdatum', 'DatumToegezegd'], inplace=True) + +# --- Identify faulty rows (missing expected delivery date) --- + +# These records must be investigated +items_without_delivery_date = df_inkooporderregels_clean[ + df_inkooporderregels_clean['ExpectedDeliveryDate'].isna() +].copy() + +# Group ontvangstregels by BronregelGuid and sum received quantities +delivery_sums = df_ontvangstregels_clean.groupby('BronregelGuid')['TotaalOntvangen'].sum() + +# Map the delivery totals to items_without_delivery_date using GuLiIOR +items_without_delivery_date['Deliveries'] = items_without_delivery_date['GuLiIOR'].map(delivery_sums) + +# Fill missing values with 0 for unmatched items +items_without_delivery_date['Deliveries'] = items_without_delivery_date['Deliveries'].fillna(0) + +# --- Logging the issue scope --- + +missing_total = len(items_without_delivery_date) +missing_with_no_delivery = (items_without_delivery_date['Deliveries'] == 0).sum() + +print( + "Items without expected delivery date: {}, of which have no deliveries: {} ({:.2f}%)".format( + missing_total, + missing_with_no_delivery, + (missing_with_no_delivery / missing_total) * 100 + ) +) +# Result is: Items without expected delivery date: 3270, of which have no deliveries: 3235 (98.93%) +# Conclusion -> We will create a seperate visual for these record and investigate later how these happen most likely these are canceled orders + + + +# Subset 3: Correct lines (ExpectedDeliveryDate is filled) +items_with_delivery_date = df_inkooporderregels_clean[df_inkooporderregels_clean['ExpectedDeliveryDate'].notna()].copy() + + + + + +# # Optionally, run the EDA service (unchanged part) +# # eda = EDAService(df_inkooporderregels, name="df_inkooporderregels") +# # eda.run_step(1) + +# # Merge df_inkooporderregels_clean with df_ontvangstregels_clean on 'GuLiIOR' and 'BronregelGuid' +# merged_df = pd.merge(df_inkooporderregels_clean, df_ontvangstregels_clean, +# left_on=['GuLiIOR'], right_on=['BronregelGuid'], how='left') +# print(merged_df[['GuLiIOR', 'BronregelGuid', 'TotaalOntvangen']].head()) +# # Add the total deliveries column to df_inkooporderregels_clean +# df_inkooporderregels_clean['TotalDeliveries'] = merged_df.groupby('GuLiIOR')['BronregelGuid'].transform('count') + +# # Get the most recent delivery date for each GuLiIOR from df_ontvangstregels_clean +# latest_delivery_date = df_ontvangstregels_clean.groupby('BronregelGuid')['Datum'].max() + +# # Merge the most recent delivery date back into df_inkooporderregels_clean +# df_inkooporderregels_clean['DeliveryDate'] = df_inkooporderregels_clean['GuLiIOR'].map(latest_delivery_date) +# print(len(df_inkooporderregels_clean)) + +# # Filter the rows where 'DeliveryDate' is NaT and 'TotalDeliveries' is 0 +# no_deliveries = df_inkooporderregels_clean[(df_inkooporderregels_clean['DeliveryDate'].isna()) & +# (df_inkooporderregels_clean['TotalDeliveries'] == 0)] + +# # Print the first few rows +# # print(len(no_deliveries)) +# # print(no_deliveries.head()) + + + + -# Clean data for df_ontvangstregels -# cleaner2 = DataFrameCleaner(df_ontvangstregels, name="df_ontvangstregels") -# df_ontvangstregels_clean = cleaner2.get_cleaned_df()[relevant_columns_ontvangst] -df_ontvangstregels_clean = df_ontvangstregels +# # Create the UI instance +# ui = UI(df_inkooporderregels_clean) -# Optionally, run the EDA service (unchanged part) -# eda = EDAService(df_ontvangstregels_clean, name="df_ontvangstregels") -# eda.run_step(1) +# # Select year for analysis +# ui.year_selection() # Call the year selection method -# Merge df_inkooporderregels_clean with df_ontvangstregels_clean on 'GuLiIOR' and 'BronregelGuid' -merged_df = pd.merge(df_inkooporderregels_clean, df_ontvangstregels_clean, - left_on=['GuLiIOR'], right_on=['BronregelGuid'], how='left') -print(merged_df[['GuLiIOR', 'BronregelGuid', 'TotaalOntvangen']].head()) -# Add the total deliveries column to df_inkooporderregels_clean -df_inkooporderregels_clean['TotalDeliveries'] = merged_df.groupby('GuLiIOR')['BronregelGuid'].transform('count') +# # Select suppliers for analysis +# ui.supplier_selection() # Call the supplier selection method -# Get the most recent delivery date for each GuLiIOR from df_ontvangstregels_clean -latest_delivery_date = df_ontvangstregels_clean.groupby('BronregelGuid')['Datum'].max() +# # Display the analysis and plot based on the selected year and suppliers +# ui.show_date_analysis() # Display the analysis and plot based on selected year and suppliers -# Merge the most recent delivery date back into df_inkooporderregels_clean -df_inkooporderregels_clean['DeliveryDate'] = df_inkooporderregels_clean['GuLiIOR'].map(latest_delivery_date) -print(len(df_inkooporderregels_clean)) -# Filter the rows where 'DeliveryDate' is NaT and 'TotalDeliveries' is 0 -no_deliveries = df_inkooporderregels_clean[(df_inkooporderregels_clean['DeliveryDate'].isna()) & - (df_inkooporderregels_clean['TotalDeliveries'] == 0)] -# Print the first few rows -# print(len(no_deliveries)) -# print(no_deliveries.head()) +# Controleer of er geldige datums zijn +# if items_without_delivery_date['Datum'].notna().any(): +# # Vind de index van de rij met de hoogste Datum +# idx = items_without_delivery_date['Datum'].idxmax() +# print(f"Index met hoogste Datum: {idx}") +# print(items_without_delivery_date.loc[idx]) -# Create the UI instance -ui = UI(df_inkooporderregels_clean) +# # Haal de BronRegelGUID uit die rij +# bronregel_id = items_without_delivery_date.loc[idx, 'BronRegelGUID'] +# print(f"BronRegelGUID van die rij: {bronregel_id}") -# Select year for analysis -ui.year_selection() # Call the year selection method +# # Zoek de bijbehorende rij(en) in het originele DataFrame +# item = df_inkooporderregels[df_inkooporderregels['BronRegelGUID'] == bronregel_id] -# Select suppliers for analysis -ui.supplier_selection() # Call the supplier selection method +# # Print het volledige item (alle kolommen, alle matches) +# print("\nVolledige rij(en) uit df_inkooporderregels met deze BronRegelGUID:") +# print(item.to_string(index=False)) # netjes zonder index +# else: +# # Geen geldige datums aanwezig +# aantal_leeg = items_without_delivery_date['ExpectedDeliveryDate'].isna().sum() +# print(f"Aantal lege ExpectedDeliveryDate: {aantal_leeg}") -# Display the analysis and plot based on the selected year and suppliers -ui.show_date_analysis() # Display the analysis and plot based on selected year and suppliers \ No newline at end of file From 0a675e4a3b9ff3beba243ee50a8dfe9dcd0f3789 Mon Sep 17 00:00:00 2001 From: Jan Dirk van de Bijl Date: Wed, 21 May 2025 14:43:51 +0200 Subject: [PATCH 10/31] merge --- .../17.14.670.39694/CodeChunks.db-wal | Bin 1108312 -> 1367872 bytes .../17.14.670.39694/SemanticSymbols.db-wal | Bin 1268992 -> 1565632 bytes .vs/project-2-eda-sql/v17/.wsuo | Bin 31232 -> 31232 bytes main.py | 47 +++++++++++++----- 4 files changed, 34 insertions(+), 13 deletions(-) diff --git a/.vs/project-2-eda-sql/CopilotIndices/17.14.670.39694/CodeChunks.db-wal b/.vs/project-2-eda-sql/CopilotIndices/17.14.670.39694/CodeChunks.db-wal index 9019ef422487b30281f0a64252ebc0313fddba80..3fe2e1809bb5825c39d5bda571079c65af8d7a4d 100644 GIT binary patch delta 1817 zcmbW%e^8Tk90%~{`#giq?b)6|2zv2TyE766l`x}HKoUr$R!YLXPqKAdb_kj9@5HgizVzeZN~h>%ackKcC&_{eC^4 zd+r$TG-Z|^oHq3b0I8t=x4MX{6CpFq zt54u&lIglEO(X>J&e28E&|qOYE`lYJ@$Z(32-92JaIxTKuVHk&t|XlE&%^)_3lc)x zj#!qnE-()UfSKeedDtnVf(*XoCk`Y8Pd|Lv6F--n)Vh_;14`zA758GN9+L~H&0ViC z$?t$i)LJEmVJ_^?t++Bd^VoEnv~6*Hh|g-G#J**<0CuZb5*(RyCEgc`9YxHCU-6$I z_&wixPs=|49s1ZNMabi(<~?CY3}M3_jxmhdQs%z*c8vQ7GOIY|fda4Ws&}nxV7m&L zy}?9O_??VWWL7zw|J)qWARp{#v~TI>@iheBl#zXIf6OC9=Jq`Gaj4|8+0k#1O@+w& znzjdQ1QRp=j3Xs%QeB#|dt*-+66bQn=E}yXVx|03*qw{SiOOAX%vY#{NSx~|#>=0R z&F8;pvv0xE=(99G-G9*Cipboeqg@q2bGmXpvgIPOWY_Wfw(Q}0#~4N_D9d2lA;S(5T3X>9kzOejeT5}a5YdGYSP2V-895DL8 zat$KKz8@6ce=_dmb_umEK<|+`l}G%z4gcT|iQF zfz38*--1QHFNasp$VC(~bBnBG?FU=O;&vch9s?E#_RLuuiUj^$3yvvF%Di!Rb~?SK z9Fesgaye-bt(Y4=g5_E!LMvi}YJMoWivN*|#9C)@FiCN;50IGi&nRKEcW@wY)3d9GV`?hnu(N< zUdI?lZBbRoN=|Q1GqIoM4d7ynVp7Q1g1`xYzo35njW)I)6S(fsWB+~@D(2R?>tLaY z5|ZthROD}(x(=Rn75S5eqVp|^B_Z#5;uLP2C!cl2^7rxdYmHy~1v9d1AQJ%e+@9~9 zO-b(~3?5?Y7mP=>VpJ=2m$F{!Pp+pZF(7>K-Px%pv(n!_f#n;0teZBmcaZ@5>_1mJ SI>}7>&bDOy9}jy5KJhnPik!y) delta 41 wcmX@GFZjkK=Y|%>7N!>F7M2#)7Pc1l7LFFq7OocV7M>Q~7QPn#EdmiQ0Z60{cmMzZ diff --git a/.vs/project-2-eda-sql/CopilotIndices/17.14.670.39694/SemanticSymbols.db-wal b/.vs/project-2-eda-sql/CopilotIndices/17.14.670.39694/SemanticSymbols.db-wal index 48b1a47aa78ee2bdf3690987e0533caa73e8e3bf..3d9d36d6e4139bc8e50c2351eeb79ea5c643d547 100644 GIT binary patch delta 2210 zcmbW&drT7t90%~;UFjXYmKM6nQ>qCMAM-I8PLMej7^15h8IXvgovAq8#*7NIr4;al z!~jv5w&D~N5ta$kiC#qJFcNu8c?kHJF2kY&jq=YrsP|lQ?A}I+arCcZ(C8t~|x6_J^rlmItIdSOzIqmTL z>Ik|z2Aw6PXRTM_w#*ycOd@G?hYNZTnKZO7LU%K1A^DbGt3Y2$Y=3ZFgScZv zS>&L>qj4)q&tHd3$UM^o0)dn5C#im>%~g7h<58{g;;M?gYCfh8A#Ab4__wj*xxaeT z?OynE36>@ln0l;OsFTVy@mMZ>E}D3V5-v+`mLu&uAF)1Y&0B%nTEr>jc)dG1hjrMN zL5BWardJKxE%9d%1Aerl7?Dw2<}y6(}BDzf|Y8bPP!b#a}=1)#Go`ZjU4n=zQvF)dbS_G`5y z1kX7J3@zwn^*_!y^zhDAdzsPsgq9^-32qAkosQE@8h9zH7ESPNCtyt-=mxfWeKHo) zuo84SN1f2~thQ_Z*28>^)lG!E3nDI8O#z*b*R3}jSAZ^J#>uKJ9*goh9n)fU;}>GG zAGdDl0)`HB-_4#mP-%WI&|YSApI(0ux35pR0d#s!H)&w)t&;J=%KCO#Qx7^-pr@}- zVAu%g^p3jwyQ3F~I%oUxF;+*Hn z-oJO4eB!=}0$jQyZluMh&ai7)2Onc`X_5UO7PWq`A8_eBZm(JWC*X#Hl+BM*{Iwj8 zX~Cl#x^UiH+CL7AbkNDs?fC;wyEoa(jP88w(I9nfN*?G8oNm&XJ7S=R? zj{2!tb@4>bS{=Y)8Z<#&F|8>z z9FA$RxT2Ec%PwQ(p`b7T&V8)yMPk5EkG;&`rr&y?3V4)k23!V*V+OV8b7F~&`NQDC;18mdpxb-xx4`{KM8C&Voh3P_TQ#ja+oNdy; zDT9k^zE9ba3R@Zh7Zp}w?(LNZ1J3A(dx0L2_teB#_!#?IuGP%+&b<0N1y9b%>w2vF zPlHa=r+!|VoY2kbm=>$c&%XQgc-rt2U>HG{+;wf&$>KIAdzsO7+~`ca_gO)c$@b|9 zL`E%YQcRP#@j4X8Q$^t+Spt*o(-%TBqh;7|&Pb6)94?mpERd7aOv>emw}_l3*-MsN z)Gx)tP%ITK9F_!&1evRZS)PSgmGexQS%?Q+HGr%`5V(t5?nKUw=2Cn_YC8xb8y3ih zY0J3iq3qx{qPbE8n~FvxZ`t#e=Ih;pOvjUHnjhSK9ncc_zc*k`EUVo;5+_=HeS?%V s3FOX$rjIdHi8>Ej)Q!$g%d!OA#a9cS)Fsis#1Zu<#-Cy$5br?$0hsVK!2kdN delta 46 zcmX?bJicL*uC71aO$ delta 77 zcmZqp!r1VIaYGIhYr?}-M|?IHGW}*|oxs%xVzSlf2-+~ffZBl|5OecCqxYuRgfo}~ E0pv>+c>n+a diff --git a/main.py b/main.py index d075b7a..e1b342a 100644 --- a/main.py +++ b/main.py @@ -54,24 +54,21 @@ # --- Identify faulty rows (missing expected delivery date) --- -# These records must be investigated +# Filter lines without an expected delivery date items_without_delivery_date = df_inkooporderregels_clean[ df_inkooporderregels_clean['ExpectedDeliveryDate'].isna() ].copy() -# Group ontvangstregels by BronregelGuid and sum received quantities -delivery_sums = df_ontvangstregels_clean.groupby('BronregelGuid')['TotaalOntvangen'].sum() +# Count how many ontvangstregels are linked to each BronregelGuid +delivery_counts = df_ontvangstregels_clean['BronregelGuid'].value_counts() -# Map the delivery totals to items_without_delivery_date using GuLiIOR -items_without_delivery_date['Deliveries'] = items_without_delivery_date['GuLiIOR'].map(delivery_sums) - -# Fill missing values with 0 for unmatched items -items_without_delivery_date['Deliveries'] = items_without_delivery_date['Deliveries'].fillna(0) +# Map count of deliveries to GuLiIOR +items_without_delivery_date['DeliveryCount'] = items_without_delivery_date['GuLiIOR'].map(delivery_counts).fillna(0).astype(int) # --- Logging the issue scope --- missing_total = len(items_without_delivery_date) -missing_with_no_delivery = (items_without_delivery_date['Deliveries'] == 0).sum() +missing_with_no_delivery = (items_without_delivery_date['DeliveryCount'] == 0).sum() print( "Items without expected delivery date: {}, of which have no deliveries: {} ({:.2f}%)".format( @@ -79,16 +76,40 @@ missing_with_no_delivery, (missing_with_no_delivery / missing_total) * 100 ) -) -# Result is: Items without expected delivery date: 3270, of which have no deliveries: 3235 (98.93%) -# Conclusion -> We will create a seperate visual for these record and investigate later how these happen most likely these are canceled orders +) + +# Result is: Items without expected delivery date: 3270, of which have no deliveries: 283 (8.65%) +# Conclusion -> We will need to find out why these dates arent filled to make them work in our vissuals # Subset 3: Correct lines (ExpectedDeliveryDate is filled) -items_with_delivery_date = df_inkooporderregels_clean[df_inkooporderregels_clean['ExpectedDeliveryDate'].notna()].copy() +# Filter only the valid lines with a known expected delivery date +items_with_delivery_date = df_inkooporderregels_clean[ + df_inkooporderregels_clean['ExpectedDeliveryDate'].notna() +].copy() + +# Count how many ontvangstregels are linked to each BronregelGuid +delivery_counts = df_ontvangstregels_clean['BronregelGuid'].value_counts() +# Map count of deliveries to GuLiIOR +items_with_delivery_date['DeliveryCount'] = items_with_delivery_date['GuLiIOR'].map(delivery_counts).fillna(0) +# Convert to integer +items_with_delivery_date['DeliveryCount'] = items_with_delivery_date['DeliveryCount'].astype(int) + +# Logging: how many have 0 deliveries +valid_total = len(items_with_delivery_date) +valid_with_no_delivery = (items_with_delivery_date['DeliveryCount'] == 0).sum() + +print( + "Items with expected delivery date: {}, of which have no deliveries: {} ({:.2f}%)".format( + valid_total, + valid_with_no_delivery, + (valid_with_no_delivery / valid_total) * 100 + ) +) +#Result is: Items with expected delivery date: 10252, of which have no deliveries: 524 (5.11%) From 47354c03c5eccad4aa52f0a51df773a0188e6248 Mon Sep 17 00:00:00 2001 From: Jan Dirk van de Bijl Date: Wed, 21 May 2025 14:58:39 +0200 Subject: [PATCH 11/31] merge --- .vs/project-2-eda-sql/v17/.wsuo | Bin 31232 -> 31232 bytes main.py | 63 +++++++++++++++++++++++++++----- 2 files changed, 54 insertions(+), 9 deletions(-) diff --git a/.vs/project-2-eda-sql/v17/.wsuo b/.vs/project-2-eda-sql/v17/.wsuo index 3e39e58466a1b530e3205f6134bc45760935b89f..fb84d588bd42bde90fae4bf09736d16d6d78df50 100644 GIT binary patch delta 312 zcmZqp!r1VIaYGIh>xP^_j)2XDOuv~~8>|dLOtx@N4o(IJhW|h?xlv4I^B4XQMh;= items_without_delivery_date['QuUn'] + +# Logging: how many lines are fully delivered +fully_delivered_count = items_without_delivery_date['FullyDelivered'].sum() + +print( + "Items without expected delivery date: {}, fully delivered: {} ({:.2f}%)".format( + missing_total, + fully_delivered_count, + (fully_delivered_count / missing_total) * 100 + ) +) + # Result is: Items without expected delivery date: 3270, of which have no deliveries: 283 (8.65%) # Conclusion -> We will need to find out why these dates arent filled to make them work in our vissuals @@ -93,10 +118,7 @@ delivery_counts = df_ontvangstregels_clean['BronregelGuid'].value_counts() # Map count of deliveries to GuLiIOR -items_with_delivery_date['DeliveryCount'] = items_with_delivery_date['GuLiIOR'].map(delivery_counts).fillna(0) - -# Convert to integer -items_with_delivery_date['DeliveryCount'] = items_with_delivery_date['DeliveryCount'].astype(int) +items_with_delivery_date['DeliveryCount'] = items_with_delivery_date['GuLiIOR'].map(delivery_counts).fillna(0).astype(int) # Logging: how many have 0 deliveries valid_total = len(items_with_delivery_date) @@ -109,7 +131,30 @@ (valid_with_no_delivery / valid_total) * 100 ) ) -#Result is: Items with expected delivery date: 10252, of which have no deliveries: 524 (5.11%) + +# --- Additional analysis: full delivery status --- +# Group ontvangstregels by BronregelGuid and sum AantalOntvangen +total_received_per_line = df_ontvangstregels_clean.groupby('BronregelGuid')['AantalOntvangen'].sum() + +# Map total received amount to items_with_delivery_date via GuLiIOR +items_with_delivery_date['TotalReceived'] = items_with_delivery_date['GuLiIOR'].map(total_received_per_line).fillna(0).astype(float) + +# Ensure QuUn is numeric and non-null +items_with_delivery_date['QuUn'] = items_with_delivery_date['QuUn'].fillna(0).astype(float) + +# Determine full delivery +items_with_delivery_date['FullyDelivered'] = items_with_delivery_date['TotalReceived'] >= items_with_delivery_date['QuUn'] + +# Logging: how many lines are fully delivered +fully_delivered_count = items_with_delivery_date['FullyDelivered'].sum() + +print( + "Items with expected delivery date: {}, fully delivered: {} ({:.2f}%)".format( + valid_total, + fully_delivered_count, + (fully_delivered_count / valid_total) * 100 + ) +) From 000749e17ab15a53a3129a1ed2733598f383c459 Mon Sep 17 00:00:00 2001 From: Jan Dirk van de Bijl Date: Wed, 21 May 2025 15:14:53 +0200 Subject: [PATCH 12/31] merge --- .vs/project-2-eda-sql/v17/.wsuo | Bin 31232 -> 31232 bytes main.py | 216 ++++++++++++++++---------------- 2 files changed, 110 insertions(+), 106 deletions(-) diff --git a/.vs/project-2-eda-sql/v17/.wsuo b/.vs/project-2-eda-sql/v17/.wsuo index fb84d588bd42bde90fae4bf09736d16d6d78df50..9633f4f40e6d069eac959a289504a380155f792c 100644 GIT binary patch delta 367 zcmZqp!r1VIaYGIh>jf*BJ%N)8nJ)1%urV+&2m|qdAeh`Jrn0$&S%6Ve4JaZH#EL-t z4=AG!q*Z}fW%FE?^Ng$y0>ADK++4_Zoqh5NHl58SeEv+654$ujb`fOekpLxP^_j)2L9OqX~W*%%lY1cCTJ5KL|qQ`ua?EWjwK4iu3GVnrbS z2b56*(kei#x_K_kc}CU-D?^Te&4p~&**Qdjq6ocw{!Eh(GZ}9FA`rmL0}>WMlAc^5 z;y>Bh4=5`Vz{n#3l#xV|-CW`o!nFB>L=7VkFHo2RNow)|S(eQeQl%2SZa`58P&<&Z z`InKG5RVX$FAT&8N4Q>L;t)j<@wmXq19FKNil|or6ORl~L>yW4iw_UuBq`_3&H;NF kCpYj5Ocvm?K=I_{62A}*J`^o{JdB%y-io2SE`v=F04vFUi2wiq diff --git a/main.py b/main.py index bce0951..97b397c 100644 --- a/main.py +++ b/main.py @@ -1,25 +1,27 @@ +# ----------------------------- +# Imports and Initial Setup +# ----------------------------- from eda_service import EDAService from cleanup import DataFrameCleaner from loader import load_all_datasets import pandas as pd from ui import UI # Assuming UI is in a file named ui.py -# Load all required datasets +# ----------------------------- +# Loading Datasets +# ----------------------------- +# Load all required datasets; exit on failure try: df_inkooporderregels, df_ontvangstregels, df_relaties, df_feedback, df_suppliers = load_all_datasets() except Exception: exit(1) -# Define relevant columns to retain for analysis -relevant_columns_inkoop = [ - 'GuLiIOR', 'Datum', 'DatumToegezegd', 'AfwijkendeAfleverdatum', 'Naam', 'BronRegelGUID', 'QuUn' -] - -relevant_columns_ontvangst = [ - 'BronregelGuid', 'Datum', 'AantalOntvangen', 'Status_regel', 'Itemcode', 'Naam' -] - -# Define columns to convert to specific dtypes +# ----------------------------- +# Relevant Columns and Type Mappings +# ----------------------------- +# Specify relevant columns for analysis and expected data types +relevant_columns_inkoop = ['GuLiIOR', 'Datum', 'DatumToegezegd', 'AfwijkendeAfleverdatum', 'Naam', 'BronRegelGUID', 'QuUn'] +relevant_columns_ontvangst = ['BronregelGuid', 'Datum', 'AantalOntvangen', 'Status_regel', 'Itemcode', 'Naam'] inkoop_columns_to_convert = { 'Datum': 'datetime', 'DatumToegezegd': 'datetime', @@ -29,132 +31,134 @@ 'Naam': 'str' } -# Clean and prepare df_inkooporderregels -cleaner = DataFrameCleaner(df_inkooporderregels, name="df_inkooporderregels") -cleaner.apply_dtype_mapping(inkoop_columns_to_convert) -df_inkooporderregels_clean = cleaner.get_cleaned_df()[relevant_columns_inkoop].copy() - -# Clean and prepare df_ontvangstregels -cleaner2 = DataFrameCleaner(df_ontvangstregels, name="df_ontvangstregels") -df_ontvangstregels_clean = cleaner2.get_cleaned_df()[relevant_columns_ontvangst] - -# --- Create unified delivery date --- - -# 1. DatumToegezegd is the original promised delivery date and should not be changed. -# 2. AfwijkendeAfleverdatum is the override delivery date and may be updated. -# 3. ExpectedDeliveryDate is resolved from either of the two. -# 4. TODO: Handle cases where both are missing. - -# ExpectedDeliveryDate is resolved from either AfwijkendeAfleverdatum or DatumToegezegd +# ----------------------------- +# Cleaning and Preparation +# ----------------------------- +# Clean purchase order lines +cleaner_inkoop = DataFrameCleaner(df_inkooporderregels, name="df_inkooporderregels") +cleaner_inkoop.apply_dtype_mapping(inkoop_columns_to_convert) +df_inkooporderregels_clean = cleaner_inkoop.get_cleaned_df()[relevant_columns_inkoop].copy() + +# Clean delivery receipt lines +cleaner_ontvangst = DataFrameCleaner(df_ontvangstregels, name="df_ontvangstregels") +df_ontvangstregels_clean = cleaner_ontvangst.get_cleaned_df()[relevant_columns_ontvangst].copy() + +# ----------------------------- +# Deriving Expected Delivery Dates +# ----------------------------- +# Resolve expected delivery date from override or original date df_inkooporderregels_clean['ExpectedDeliveryDate'] = df_inkooporderregels_clean['AfwijkendeAfleverdatum'].combine_first( df_inkooporderregels_clean['DatumToegezegd'] ) - -# Remove the original date columns df_inkooporderregels_clean.drop(columns=['AfwijkendeAfleverdatum', 'DatumToegezegd'], inplace=True) -# --- Identify faulty rows (missing expected delivery date) --- +# ----------------------------- +# Analysis: Missing Delivery Dates +# ----------------------------- +# Subset lines without expected delivery date +items_without_date = df_inkooporderregels_clean[df_inkooporderregels_clean['ExpectedDeliveryDate'].isna()].copy() -# Filter lines without an expected delivery date -items_without_delivery_date = df_inkooporderregels_clean[ - df_inkooporderregels_clean['ExpectedDeliveryDate'].isna() -].copy() - -# Count how many ontvangstregels are linked to each BronregelGuid +# Map number of deliveries per BronregelGuid to GuLiIOR delivery_counts = df_ontvangstregels_clean['BronregelGuid'].value_counts() +items_without_date['DeliveryCount'] = items_without_date['GuLiIOR'].map(delivery_counts).fillna(0).astype(int) -# Map count of deliveries to GuLiIOR -items_without_delivery_date['DeliveryCount'] = items_without_delivery_date['GuLiIOR'].map(delivery_counts).fillna(0).astype(int) +# Logging stats +missing_total = len(items_without_date) -# Logging: how many have no deliveries -missing_total = len(items_without_delivery_date) -missing_with_no_delivery = (items_without_delivery_date['DeliveryCount'] == 0).sum() +print(f"Percentage that doesnt have a delivery date: {(missing_total/len(df_inkooporderregels_clean) * 100)}") -print( - "Items without expected delivery date: {}, of which have no deliveries: {} ({:.2f}%)".format( - missing_total, - missing_with_no_delivery, - (missing_with_no_delivery / missing_total) * 100 - ) -) +missing_no_delivery = (items_without_date['DeliveryCount'] == 0).sum() +print(f"Items without expected delivery date: {missing_total}, of which have no deliveries: {missing_no_delivery} ({(missing_no_delivery / missing_total) * 100:.2f}%)") -# --- Additional analysis: full delivery status --- +# ----------------------------- +# Analysis: Fully Delivered without Expected Date +# ----------------------------- +# Sum all received quantities per BronregelGuid +total_received = df_ontvangstregels_clean.groupby('BronregelGuid')['AantalOntvangen'].sum() -# Group ontvangstregels by BronregelGuid and sum AantalOntvangen -total_received_per_line = df_ontvangstregels_clean.groupby('BronregelGuid')['AantalOntvangen'].sum() +# Map to items_without_date +items_without_date['TotalReceived'] = items_without_date['GuLiIOR'].map(total_received).fillna(0).astype(float) +items_without_date['QuUn'] = items_without_date['QuUn'].fillna(0).astype(float) -# Map total received amount to items_without_delivery_date via GuLiIOR -items_without_delivery_date['TotalReceived'] = items_without_delivery_date['GuLiIOR'].map(total_received_per_line).fillna(0).astype(float) +# Flag as fully delivered +items_without_date['FullyDelivered'] = items_without_date['TotalReceived'] >= items_without_date['QuUn'] -# Ensure QuUn is numeric and non-null -items_without_delivery_date['QuUn'] = items_without_delivery_date['QuUn'].fillna(0).astype(float) +# Report +fully_delivered_missing = items_without_date['FullyDelivered'].sum() +print(f"Items without expected delivery date: {missing_total}, fully delivered: {fully_delivered_missing} ({(fully_delivered_missing / missing_total) * 100:.2f}%)") -# Determine full delivery -items_without_delivery_date['FullyDelivered'] = items_without_delivery_date['TotalReceived'] >= items_without_delivery_date['QuUn'] +# ----------------------------- +# Analysis: Valid Delivery Dates +# ----------------------------- +# Subset lines with expected delivery date +items_with_date = df_inkooporderregels_clean[df_inkooporderregels_clean['ExpectedDeliveryDate'].notna()].copy() -# Logging: how many lines are fully delivered -fully_delivered_count = items_without_delivery_date['FullyDelivered'].sum() +# Map delivery counts again (already computed above) +items_with_date['DeliveryCount'] = items_with_date['GuLiIOR'].map(delivery_counts).fillna(0).astype(int) -print( - "Items without expected delivery date: {}, fully delivered: {} ({:.2f}%)".format( - missing_total, - fully_delivered_count, - (fully_delivered_count / missing_total) * 100 - ) -) +# Logging stats +valid_total = len(items_with_date) +valid_no_delivery = (items_with_date['DeliveryCount'] == 0).sum() +print(f"Items with expected delivery date: {valid_total}, of which have no deliveries: {valid_no_delivery} ({(valid_no_delivery / valid_total) * 100:.2f}%)") -# Result is: Items without expected delivery date: 3270, of which have no deliveries: 283 (8.65%) -# Conclusion -> We will need to find out why these dates arent filled to make them work in our vissuals +# ----------------------------- +# Analysis: Fully Delivered with Expected Date +# ----------------------------- +# Reuse total_received from above +items_with_date['TotalReceived'] = items_with_date['GuLiIOR'].map(total_received).fillna(0).astype(float) +items_with_date['QuUn'] = items_with_date['QuUn'].fillna(0).astype(float) +# Flag as fully delivered +items_with_date['FullyDelivered'] = items_with_date['TotalReceived'] >= items_with_date['QuUn'] +# Report +fully_delivered_valid = items_with_date['FullyDelivered'].sum() +print(f"Items with expected delivery date: {valid_total}, fully delivered: {fully_delivered_valid} ({(fully_delivered_valid / valid_total) * 100:.2f}%)") -# Subset 3: Correct lines (ExpectedDeliveryDate is filled) -# Filter only the valid lines with a known expected delivery date -items_with_delivery_date = df_inkooporderregels_clean[ - df_inkooporderregels_clean['ExpectedDeliveryDate'].notna() -].copy() -# Count how many ontvangstregels are linked to each BronregelGuid -delivery_counts = df_ontvangstregels_clean['BronregelGuid'].value_counts() +# ----------------------------- +# Missing Delivery Dates by Year +# ----------------------------- +# Extract year from original order date +items_without_date['OrderYear'] = items_without_date['Datum'].dt.year -# Map count of deliveries to GuLiIOR -items_with_delivery_date['DeliveryCount'] = items_with_delivery_date['GuLiIOR'].map(delivery_counts).fillna(0).astype(int) +# Count and percentage of missing delivery dates per year +missing_per_year = items_without_date['OrderYear'].value_counts().sort_index() +missing_perc_per_year = (missing_per_year / missing_total * 100).round(2) -# Logging: how many have 0 deliveries -valid_total = len(items_with_delivery_date) -valid_with_no_delivery = (items_with_delivery_date['DeliveryCount'] == 0).sum() +# Combine into one DataFrame +missing_summary = pd.DataFrame({ + 'MissingCount': missing_per_year, + 'Percentage': missing_perc_per_year.map(lambda x: f"{x:.2f}%") +}) -print( - "Items with expected delivery date: {}, of which have no deliveries: {} ({:.2f}%)".format( - valid_total, - valid_with_no_delivery, - (valid_with_no_delivery / valid_total) * 100 - ) -) +# Print the combined result +print("\nMissing delivery dates per year:") +print(missing_summary) +# Missing delivery dates per year: +# MissingCount Percentage +# OrderYear +# 2021 2339 71.53% +# 2022 638 19.51% +# 2023 122 3.73% +# 2024 123 3.76% +# 2025 48 1.47% -# --- Additional analysis: full delivery status --- -# Group ontvangstregels by BronregelGuid and sum AantalOntvangen -total_received_per_line = df_ontvangstregels_clean.groupby('BronregelGuid')['AantalOntvangen'].sum() -# Map total received amount to items_with_delivery_date via GuLiIOR -items_with_delivery_date['TotalReceived'] = items_with_delivery_date['GuLiIOR'].map(total_received_per_line).fillna(0).astype(float) +# we can see that this issue is happening mostly in older data +# Actions +# 1 I will try to hunt down the reason why it still happens sometimes and try to fill them later +# 2 I will remove the years 2021 and 2022 from this evaluation to minimize the impact of that since its older data this is fine for now -> maybe when i know the reason for action 1 i will add them back -# Ensure QuUn is numeric and non-null -items_with_delivery_date['QuUn'] = items_with_delivery_date['QuUn'].fillna(0).astype(float) +# Define years to exclude +years_to_exclude = [2021, 2022] -# Determine full delivery -items_with_delivery_date['FullyDelivered'] = items_with_delivery_date['TotalReceived'] >= items_with_delivery_date['QuUn'] +# Filter items_without_date +items_without_date = items_without_date[~items_without_date['Datum'].dt.year.isin(years_to_exclude)].copy() -# Logging: how many lines are fully delivered -fully_delivered_count = items_with_delivery_date['FullyDelivered'].sum() +# Filter items_with_date +items_with_date = items_with_date[~items_with_date['Datum'].dt.year.isin(years_to_exclude)].copy() -print( - "Items with expected delivery date: {}, fully delivered: {} ({:.2f}%)".format( - valid_total, - fully_delivered_count, - (fully_delivered_count / valid_total) * 100 - ) -) From df565c2d5235d29eca22481d3b2730537f4a18c0 Mon Sep 17 00:00:00 2001 From: Jan Dirk van de Bijl Date: Wed, 21 May 2025 15:33:09 +0200 Subject: [PATCH 13/31] merge --- .vs/project-2-eda-sql/v17/.wsuo | Bin 31232 -> 31232 bytes main.py | 94 ++++++++++---------------------- 2 files changed, 29 insertions(+), 65 deletions(-) diff --git a/.vs/project-2-eda-sql/v17/.wsuo b/.vs/project-2-eda-sql/v17/.wsuo index 9633f4f40e6d069eac959a289504a380155f792c..e05d24405bdabad7d597e29127984eecc8eeeaa0 100644 GIT binary patch delta 379 zcmZqp!r1VIaYGIhYlGta;~|p^nJ)1%vN13)2mNR>(m&H;)-fZBmg zK!(fae@1RXJVHRGFc2dg;(CRNLli~C;{qcO$TeapqFw<^JTgELab(diK0J(*q?|W9 n2kd2>+`um|S%A+1#iNr;{6aYRP_*#zFm4KZD~8R58BBrz>so>M delta 375 zcmZqp!r1VIaYGIh>jf*BJ%N)8nJ)1%urV+&2m|qdAeh`Jrn0$&S%6Ve4JaZH#EL-t z4=AG!q*Z}fW%FE?^Ng$y0>ADK++4_Zoqh5NHl58SeEv+654$ujb`fOekpL5TJIT z6U5m3&&W-PM-a%824a{^n@e1;FmZs)Lx^}>VB`V0MifOXAydd6}6Pr6Tm;?czh<_sh diff --git a/main.py b/main.py index 97b397c..2818c16 100644 --- a/main.py +++ b/main.py @@ -150,85 +150,49 @@ # 1 I will try to hunt down the reason why it still happens sometimes and try to fill them later # 2 I will remove the years 2021 and 2022 from this evaluation to minimize the impact of that since its older data this is fine for now -> maybe when i know the reason for action 1 i will add them back -# Define years to exclude -years_to_exclude = [2021, 2022] +# # Define years to exclude +# years_to_exclude = [2021, 2022] -# Filter items_without_date -items_without_date = items_without_date[~items_without_date['Datum'].dt.year.isin(years_to_exclude)].copy() +# # Filter items_without_date +# items_without_date = items_without_date[~items_without_date['Datum'].dt.year.isin(years_to_exclude)].copy() -# Filter items_with_date -items_with_date = items_with_date[~items_with_date['Datum'].dt.year.isin(years_to_exclude)].copy() +# # Filter items_with_date +# items_with_date = items_with_date[~items_with_date['Datum'].dt.year.isin(years_to_exclude)].copy() +# Now we will look into the supplier details and for now leave the items_without_date until these are fixed +unique_suppliers = items_with_date['Naam'].unique() +print(f"Unique suppliers {len(unique_suppliers)}") +# Result is: Unique suppliers 350 -# # Optionally, run the EDA service (unchanged part) -# # eda = EDAService(df_inkooporderregels, name="df_inkooporderregels") -# # eda.run_step(1) - -# # Merge df_inkooporderregels_clean with df_ontvangstregels_clean on 'GuLiIOR' and 'BronregelGuid' -# merged_df = pd.merge(df_inkooporderregels_clean, df_ontvangstregels_clean, -# left_on=['GuLiIOR'], right_on=['BronregelGuid'], how='left') -# print(merged_df[['GuLiIOR', 'BronregelGuid', 'TotaalOntvangen']].head()) -# # Add the total deliveries column to df_inkooporderregels_clean -# df_inkooporderregels_clean['TotalDeliveries'] = merged_df.groupby('GuLiIOR')['BronregelGuid'].transform('count') - -# # Get the most recent delivery date for each GuLiIOR from df_ontvangstregels_clean -# latest_delivery_date = df_ontvangstregels_clean.groupby('BronregelGuid')['Datum'].max() - -# # Merge the most recent delivery date back into df_inkooporderregels_clean -# df_inkooporderregels_clean['DeliveryDate'] = df_inkooporderregels_clean['GuLiIOR'].map(latest_delivery_date) -# print(len(df_inkooporderregels_clean)) - -# # Filter the rows where 'DeliveryDate' is NaT and 'TotalDeliveries' is 0 -# no_deliveries = df_inkooporderregels_clean[(df_inkooporderregels_clean['DeliveryDate'].isna()) & -# (df_inkooporderregels_clean['TotalDeliveries'] == 0)] - -# # Print the first few rows -# # print(len(no_deliveries)) -# # print(no_deliveries.head()) - - - - - -# # Create the UI instance -# ui = UI(df_inkooporderregels_clean) - -# # Select year for analysis -# ui.year_selection() # Call the year selection method - -# # Select suppliers for analysis -# ui.supplier_selection() # Call the supplier selection method - -# # Display the analysis and plot based on the selected year and suppliers -# ui.show_date_analysis() # Display the analysis and plot based on selected year and suppliers +# Add latest delivery date per GuLiIOR (matching on BronregelGuid) +items_with_date['DeliveryDate'] = items_with_date['GuLiIOR'].map( + df_ontvangstregels_clean.groupby('BronregelGuid')['Datum'].max() +) +missing_delivery_date_count = items_with_date['DeliveryDate'].isna().sum() +total_items = len(items_with_date) +print( + f"Items with expected delivery date: {total_items}, without actual delivery date: {missing_delivery_date_count} " + f"({(missing_delivery_date_count / total_items) * 100:.2f}%)" +) +# with pd.option_context('display.max_rows', None, 'display.max_columns', None): +# Create the UI instance +ui = UI(df_inkooporderregels_clean) -# Controleer of er geldige datums zijn -# if items_without_delivery_date['Datum'].notna().any(): -# # Vind de index van de rij met de hoogste Datum -# idx = items_without_delivery_date['Datum'].idxmax() +# Select year for analysis +ui.year_selection() # Call the year selection method -# print(f"Index met hoogste Datum: {idx}") -# print(items_without_delivery_date.loc[idx]) +# Select suppliers for analysis +ui.supplier_selection() # Call the supplier selection method -# # Haal de BronRegelGUID uit die rij -# bronregel_id = items_without_delivery_date.loc[idx, 'BronRegelGUID'] -# print(f"BronRegelGUID van die rij: {bronregel_id}") +# Display the analysis and plot based on the selected year and suppliers +ui.show_date_analysis() # Display the analysis and plot based on selected year and suppliers -# # Zoek de bijbehorende rij(en) in het originele DataFrame -# item = df_inkooporderregels[df_inkooporderregels['BronRegelGUID'] == bronregel_id] -# # Print het volledige item (alle kolommen, alle matches) -# print("\nVolledige rij(en) uit df_inkooporderregels met deze BronRegelGUID:") -# print(item.to_string(index=False)) # netjes zonder index -# else: -# # Geen geldige datums aanwezig -# aantal_leeg = items_without_delivery_date['ExpectedDeliveryDate'].isna().sum() -# print(f"Aantal lege ExpectedDeliveryDate: {aantal_leeg}") From 4a85881bb9cc09a83e78924e2341efbffd20d805 Mon Sep 17 00:00:00 2001 From: Jan Dirk van de Bijl Date: Wed, 21 May 2025 15:41:01 +0200 Subject: [PATCH 14/31] ui updated --- .../17.14.670.39694/CodeChunks.db | Bin 69632 -> 73728 bytes .../17.14.670.39694/CodeChunks.db-shm | Bin 32768 -> 32768 bytes .../17.14.670.39694/CodeChunks.db-wal | Bin 1367872 -> 37112 bytes .../17.14.670.39694/SemanticSymbols.db | Bin 49152 -> 53248 bytes .../17.14.670.39694/SemanticSymbols.db-shm | Bin 32768 -> 32768 bytes .../17.14.670.39694/SemanticSymbols.db-wal | Bin 1565632 -> 49472 bytes ...9c473a85-6ddd-456e-b741-cd14d5059323.vsidx | Bin 0 -> 205 bytes ...a5a43584-1c94-46cc-9527-eb80ae44b133.vsidx | Bin 0 -> 51831 bytes ...c3fbdd49-8acd-43ca-9996-522042b6817f.vsidx | Bin 0 -> 205 bytes .vs/project-2-eda-sql/v17/.wsuo | Bin 31232 -> 31744 bytes .vs/slnx.sqlite | Bin 90112 -> 90112 bytes __pycache__/ui.cpython-312.pyc | Bin 8401 -> 7997 bytes main.py | 16 +- ui.py | 170 ++++++++---------- 14 files changed, 87 insertions(+), 99 deletions(-) create mode 100644 .vs/project-2-eda-sql/FileContentIndex/9c473a85-6ddd-456e-b741-cd14d5059323.vsidx create mode 100644 .vs/project-2-eda-sql/FileContentIndex/a5a43584-1c94-46cc-9527-eb80ae44b133.vsidx create mode 100644 .vs/project-2-eda-sql/FileContentIndex/c3fbdd49-8acd-43ca-9996-522042b6817f.vsidx diff --git a/.vs/project-2-eda-sql/CopilotIndices/17.14.670.39694/CodeChunks.db b/.vs/project-2-eda-sql/CopilotIndices/17.14.670.39694/CodeChunks.db index aa5d6e1877ba096aaa27cf3251fef8ec933c4dcf..72242d52d7e3848d7bf8c4566b772832126406be 100644 GIT binary patch literal 73728 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 IT>$_7KXQ3~qW}N^ delta 94 zcmZoTz|ydQWrDOIHv^gH0Mus}*#H0l diff --git a/.vs/project-2-eda-sql/CopilotIndices/17.14.670.39694/CodeChunks.db-shm b/.vs/project-2-eda-sql/CopilotIndices/17.14.670.39694/CodeChunks.db-shm index f09834200b9da01663517b2f835abb728cba9bff..c0435a17606a8693a2cca3d020c6f81ca4385433 100644 GIT binary patch delta 190 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

(E#`%i?0tg_000Iag&}#%(Um)@83q+Aq$oc~0 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

(xDcp4NZwH;=8tNdYkPZw11Q0*~ z0R#|0009ILKmdUh5r{meuudFdNKT=C;kYaPtuMXHc!3mo?b%HP5I_I{1Q0*~fn*n8 zya3|`SYLqk1yU-f&~iiLkJr5XjPwd~xvZCru@fAm+Uc4I+R50tg_000Ic~P65UX#DBbicxOeH zQ^@)Pu9 z6eed*;q0l$KCzc^vW1+&nD+-XhyVfzAbw{5*mvath~>Qy82ENKWC_ z3`FJ;L^+RO@v|e$pSw#8tUH+Oofi9t00IagfB*srAdn&gj2DRic!7v>3g?kiNKPR+ zh23%r-#hH$r!U)k*H&^0Q>2$+HxWPp0R#|0009ILKmY**5QsddaGt;m$tnD`-|cH4n z1Q0*~0R#|00D&YHV7x&5#|wy;KeC)c))yeBketHqIfZY0?0l|j%H(G10!iGnuxkh) zfB*srAb5vZC47)K**N%OI!FR#H@6Dma?AuiB7NQ`=Ho)6l5K z3z+3OblJ*Tb^cA&eRf)#c5ch6wBuNJFeW_00IagfB*srAbu96mDN~KydIxRlTpWq1E3te!*01?yyIZ zM_`g?zAbqKUtRL>ptaT_atdSKAJ8BI2q1s}0tg_0K(Y%kk09~$2%^X-oKH?+@Yluq z#>#46Q`c{cW70H3KnpX!E;#(p-(F@FO?bm>B6!b&o7!$mAmW_D`Q#LmQ%Fu>x17RrznFg6 z&lg+%kDS63>1EhW1Q0*~0R#|0009ILKmY**BF`zDFYrQg3SV9QX6bJqmDVs`fVUL_ z2q1s}0tg_000J=)V7vh11z2Bz^#xKYr|{143+Bzc(x#JB7?VDLMi4*%0R#|0009J2 zNr3eQ62HDc6gh>gFF;OV59J2d7l?9wfu_-go^$)3bt8EMsnmh7uLvN300IagfB*tX zEWmhy_>UJ5FMnh?g{&_?P9Zsk-E#`RD}SeT(#ntfQx{0$o`qdQ009ILKmY**5J)8f z>H^dSm`BjV5Bua4CTC8e_0MZB&pqYj+2jhrKx7_4l=BGe8!wyp%95(StUDN!o`psbKmY**5I_I{1Q1}nK>WuG zM4VIDKu#e!h2#`=%PG8b$b&VL=dSpfoI*M<1Q0*~0R#|0009ILKmY**QbZu~oWcfi zgdsVFjURk`(|%)SPG!76ioEvhCISc`fB*srAb>!!3ou@Q@dB(b!1@9yl~Z`&;|E`O zN@kjeoWf-9Uf4eb5I_I{1Q0*~ftU-hzChyF7lZN3y61CWI2VbFF;NqIfdPG3coZzam$*# zwQo=t=$)MwM~wgi2q1s}0tg@wa{=lC)CHJF(8CY=xZM9Xt3~~x>B}L_>f}?r+ zstp-6wJo(Z4UKBNfLWfNm#v&t=igM_=Y?H9D{j1_?hV!*O!iKT{X+l&1Q0*~0R#|8 z5dp>v#DBa%#5skHnAby;3ou?F{^JG2%O6=zA?pi}Q%Fu>_ng9^ z8&1-%d~4lE>H9~LfobnsE%kyDsTT@Cw+00IagfB*srAP^G)<`E=* z9zhg2g?@4hgTF4;H&#~rn!0{l9FwLQ0$P~)b;03({`NAfXu=z26Ty2H+}zeIK~)kc z)8f)L^9Z7xM{x3R-8<~xpLMYAU`%=z8bJU71Q0*~0R#|0fbjzHA1@GbPNAQiLUIbp zDeRV0_@4gBwNF>y*hWqv9T)-#Ab)aKmY**5I`X20<15P`1J*%$SGuf0dfj^C^xXaK$PnXJbuOD`@cWunE#MR5c6J! z1`$920R#|0009JgrvT#x;y+$Myt5+9DP(;Catg^Q?4DCN?fX|ADZ6F(-P8qoXQ#zc zBY*$`2q1s}0tm!hfVu#60p=0(@WVbig~^#y*zb!;f#t*YJ%^manD+-XhyVfzAbw{5*mvataraQy82ENKWC_3`FJ;L^+RO*n`LY=fIMm=d$i#vUghS9|8y< zfB*srAb>!M2rynC{^JEA&M90#P9Zsk

(xDO`DhyZ?0?PPl@c!W8Lc*i8fwKmY** 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 Irh3(X0fBK++W-In diff --git a/.vs/project-2-eda-sql/CopilotIndices/17.14.670.39694/SemanticSymbols.db b/.vs/project-2-eda-sql/CopilotIndices/17.14.670.39694/SemanticSymbols.db index 330f6d0d57e6ebf2865f55f4876407ffcbef73e6..b60a2102199812a681c1d46c69393498298bd6c4 100644 GIT binary patch literal 53248 zcmeI4TWlLy8Gy&J9Xr0ZLc$7F#GzFfo7zs&Hf?F?b{%_?oz%5kUwWb0wI=qdGp#-2 z&Ww|~Rd+QMSZP;+2PAmiU1`;q6>lH}4@gizyVAbEBJBzx#9PGz3la|?gv6O!GIrvo zQ@m1%{%MjK&z$)$-~az-&YbDEd@;`}7+n{oHm9JY)IMr#jCvj+ilPGKH%xx5McejR zAIREe+a9(Vpwid>6psFrih6!TMIJ?e75Q%Di@~o4{u6lB|9k(6@0Y&k#((Vnwbx4y z!vX|=01$X00_URRvFT~oHHBMkVfj{zbYeAG;gmW1b~syNG8G0@G7EVI*^k7P)mD;k z+)ireB-G`I@4(?n|JSZ565niMsUkJYz4ofuVg(sXim`18E3r#UObHFNL7Bx0*~=En zOsRs31!SBQ4lFQBY#|&#WHAr2g-X#poE6)h7FKvsh)d!I-$$6w-%~ha zD%tcdiH5k>?;YLHO{9}ZY&CR0we=7`T_IoW^l6tmspr6;##&tzuJdLXw=kQ#Lsl^L z%%F#yOvi7c3nlh^rgRmZW3DFAdIDW$D=!qQ6;vu-W^<}H=!=~><5H(~wxJ=`W&VzZ ze3M4a+#lS<3bPp<=Nlwo*N7 z_i4W`mP+}*>E02`pmI~~CAL(lX7XmQu`M@fR4ucGC3Ibp=i^5D(gPVvCyo6i1r;nP z=nSGsN~cmND`8H-GUAYVi1b}D(v3q%5s}QTW2Cva%E=hX9j=Z~p*2P6$fsszHa0fW zMjw_IrRI#LKfR{3TZiy%5*&eRX}PWGt8qfZ+SU}*bOo|ulOo>40?A2Y)IqI-khu0i z&9sFs-%?V%K+G^2NJv>DLqe|A5;tVDSSioz7Ir%wQBqJ_lrU;y0ZUv9$=y|%$P$`} z3?l1mWa9~}-qb@3ODH~H?Cc~-6<%oI+w7H^5u4foSYxl>3=~_)F;@^hv^A~uTxR@e z6yFx5gz6b5Wkb|14XDkD^=_MxWE+M?-!P3^4F{FkjwBJykPrzYswWP+&J zXjrBUYh^+j+DyAh?jlKRvYVI%vC-Q_jMii~G4?nQHQ8vin{3CyfW@~`Ac0EEB2!`tSu(1ycE{O9LaQ0`x=(_a&EyzT zo`Q$e$&^ctS#@HaQCs9&_yVV_Sv$OD!d46H#VSJ(SS4yT*gV517;CpypO!2-alt(v zJABx6)#$j)(H*|k#X@~^uxEbs^i_y8#xoDb1rqwCjBh2>6_+nIHRZY=)MZ*~t@T)+ zl+99k%1YaGWalD6{q_8E*@zqjN{nC%k-6F9$H;1S_NtomQtI^hD1C7K?!D@3e|_TzXVt8S zk{yaBNIE@D!u>CxpJdc49%{p(gf_CYac)Dsg*lB|R*>Pd&OORvi- z7mVvd87m5z+LY5bWKkeFwS0Mh(fg8{2%T{#)ZSxRb+>hG>GS2Kv60KyuU%SAJlLQA zP9XSz+821=6@3`I7HvmA8+kc$DExYOKJb3<50Q_;e+>OAh(h;6%i6zZf;5$ZQ3k2*b41=Pb+?hS_$%_$A) z!*d>W(&dcju)B=|p*iZLGg10vK=dLZ;?M^B%}L*!mwsOo3H_AX*{hRo*&!+2MC#|K z-FF?DxOrzEBANf?r{F?;{}tz2H}7QwRgao-XtJH^wn-|T?8K<0>i2p6j7Rl4w6%Y} z!uM5=dcvUuySH{}12?(jpNeSRZ|_&!_Z%8+-HCU4o=YBe#^Kp^mn}&H?z%@VR(Eym zwENzKvm)4f00e*l5C8%|00`_A0%4bXYRq~K zfcg-g|L>K+f*(Kt2mk>f00e*l5O7QYp8s!q!vmiG+g@{k=l}YYY z?~CcR^Q=DqCtvyp3lIPTKmZ5;0U!VbfB+Bx0zd!=00AJdhY4t3@(=g_dpN-08V~>i zKmZ5;0U!VbfB+Bx0zd!=00BY(?*AbTfB+Bx0zd!=00AHX1b_e#00KY&2<&|V+V}sB zML(gU|0aK60Rlh(2mk>f00e*l5C8%|00;m9AOHmR0)arlO?}RE#O-oZA$b137s3iY z00AHX1b_e#00KY&2mk>f00e*l5O_QR?fE~v|NnSKa1;mt0U!VbfB+Bx0zd!=00AHX z1c1Q*I|1$azbpC=iu}L=1b_e#00KY&2mk>f00e*l5C8%|00`_M0zvly*E*JDUKBj= j{C^Jx7F+=WKmZ5;0U!VbfB+Bx0zd!=00AH{gus6RtqHqy delta 76 zcmZozz}(QlJV9EJlYxPO2Z&*SXQGZV4=00O+ACiE9}Ik~tP`_kHyaAnvTSB${lm4H ZG2p-arUfhli&-WpY-S1gBfqG@0RT}H6K4Pb diff --git a/.vs/project-2-eda-sql/CopilotIndices/17.14.670.39694/SemanticSymbols.db-shm b/.vs/project-2-eda-sql/CopilotIndices/17.14.670.39694/SemanticSymbols.db-shm index d6dd49bf2d431b2d17bcb0289863e25c82accbe8..446fbba22509cf63e85cd750a85e2c45125241f3 100644 GIT binary patch delta 198 zcmZo@U}|V!s+V}A%K!qLK+MR%Aix8pd4bsB#3GHPA3x=`rIoeKGv)cQ;``Z}>?$h( zQq=>E0t1k_|B(Pxcw#;0WE&=hiFX7xr?Ad&*j&K6hJ~Gpft7)sfqQcz>vtwb4j}cH aiJOsunSq6Y4d_lDpulG)MlK-5X$Sx)!Z`{6 literal 32768 zcmeI)c~F*B6vy%J0R-6;kmUtMWK;It42#q>$tbg|tZ1>aRV&Mqth7u8%gQJ#O|w!< zS~P6mw8b_xEiKIot!Pujtv$-4uraEa5 zR^$vJ&b*?u+-FjCNpWq%gsOzN#(=!U%Ce}Mx_VC=zjtf9QRvid`cLeCdSLW%roK-4 zIoZKU_x@0_c`diDThG0E)4Qg3z2^Vu{r){Um``(4uWxH^-v3cP%{iRM zgDxf| zHt+C0AF!5>_=JsYrj9Lq#kYLNHX7K;9)96h{@`!+Iqhrwtb=v55DT?1i?k^7ST~Ee z9+qOMmS$O&ZF%PQw^2yI?FJM@0!j2DgIo&eLtpxFG^HHJiJZ&`&g5Lq=VC77TCQUf zld0rZ?xdRgn8SP?;V~X(Da&|)ms!D^yvr)qv7SwQ##X-Od$zNSz5K?X{DYal1zINy zw`hyC?v`jhE!}b~UuRMWvYiEdi6)k=bR(W*GAZN;22#dw%DI5iT)|kbVjL5=kz2Tp zyLo^GJi#-(!dt9n1D{jR4t}B$9}BVwi?bxlumYXscHT)X*LDFvV(38%X=IT{5r=am z{Talu9M3RL;dIVoB%`>5F^uPWZej{m%wQ(>a6fZ-h=nZXNuK6eUgT9?XC?2kh7b9e zPx*o``Gz0(k=^{v@BBp*z7}A?*4esPjCHjHOSWE?X}RY1#ZyQ?0uqpb1SB8<2}nQ! z5|DrdBp?9^NI(J-kbndvAOQ(TKmrnwfCMBU0SQPz0uqpb1SB8<2}nQ!5|DrdBp`v7 G1pWo~P^~%u diff --git a/.vs/project-2-eda-sql/CopilotIndices/17.14.670.39694/SemanticSymbols.db-wal b/.vs/project-2-eda-sql/CopilotIndices/17.14.670.39694/SemanticSymbols.db-wal index 3d9d36d6e4139bc8e50c2351eeb79ea5c643d547..6bd08db06fb2fc87f06c368499000727f85b29de 100644 GIT binary patch literal 49472 zcmeI*Z%i9y90%|RdS(4{ZHJ3fLNpVC8cj+ktJl_Pm4iS^c_glr}9k$GG zGDXA6rO(8Df$yg6rwxu`&~zOYwthlNm3 zbce#hF2NhImRSX#$13)AyW87CF|WsaTxf51_xWw!P%Lsh7_gQ*%53xpwlYVBz06)w z;i#&z+vyfM(!T|}qs(Ei*h&Ah+gl~4mPjRe>5L)g#?_WLe>?kWja0`Gk+Eq?5{k(! zj6SjB^IGW@j`TCO(Btt37TUNfUbxhzqXAkO+feVM?x4pfgct89+Qs67r}ll*p{31N z-beFvT(r~C6ZLzAWwudt;rF+9I&(NO#JCAtr$6HF38N~(#-I9iq6 z5hGg3$+7pr+bwtkeWCfCLHjUK(rQlUXe*bGnECJ~O88%iV~{1fI-VngjH=D`wa!EJ zwjN&`)igz(TmKj@+IhYq_QDowqGjxedekV#i^AKcPxn|?5uckePm*Ryt1_;!tp5O~ z9lmX?GqCT2h2v3)y7<5|4gQY24LJl;LZ@f6M}}09FTB&c3hAZ`826nmD!LEPpBG$0 zB;pTrincB>7@%XSVl2P$47Ezh z7a05GaDL6ldLH=#*>PQjC?Nm=2tWV=5P$##AOHafKp@KmQu76Vq|v9`7qI;NcjuWa z@Ac!pK$eXQgbM)(KmY;|fB*y_009U<00P+|ka}O>1`Rr89zpH%CEGr5w*8BF1lchh z5G4d4009U0Ij| zb-e~MNjKnGw1GpMRJiD+)z*ku@uLfwZRVsB#@5uO!I!Q$LB^{!{fsRxEU`eYALOKh z95&CDs-G9~4pPO|l(IO1rHP6#_F+X4C0EWjGIlYs(ty1D z`tEhOkdH>#x0FXPPfMSs zc)ozyH8taVa_%$a3uM}kM?4UK00bZa0SG`~%>u|5@Y|B#@F`!#Azwfxf_wpwPYByW zG2{!ZmeZsD@*MdB)^dk(>}=9}ft2+KX8-yydcyF}w)y%3EvwcS(6^wzz?#pn_(cdn z00Izz00cILzyqx>@Y4L;-aN+S&Xwl&%4-JvIr;8ntK_6phD#WmRbQho&6LM_1o!_L zN4bSSA&amc0oEgMhr+=w!5gubS?MQYtJvG^R(~>1mT%bj^$1=>eF6272d+Z;?peV2 z?zz&;9{GLqZf4XMkmnI3@&%qge`WvUb9Xwh9>J!#Y(Xa=009U<00Izz00bZa0SG_< M0_hb_?Ap_N`pv1QxRCQF*w>~42A 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 WF#%=6wz4ZcJC(fm5j?AX3jaUWUyQi` diff --git a/.vs/project-2-eda-sql/FileContentIndex/9c473a85-6ddd-456e-b741-cd14d5059323.vsidx b/.vs/project-2-eda-sql/FileContentIndex/9c473a85-6ddd-456e-b741-cd14d5059323.vsidx new file mode 100644 index 0000000000000000000000000000000000000000..079e43ad54d376d3305257857504426540b69d99 GIT binary patch literal 205 zcmZ>EaTnxZU|7ij0clV=2}nCz#e^2878S>2rIe*4#T4h47A2>~6r~pA7snJ7 literal 0 HcmV?d00001 diff --git a/.vs/project-2-eda-sql/FileContentIndex/a5a43584-1c94-46cc-9527-eb80ae44b133.vsidx b/.vs/project-2-eda-sql/FileContentIndex/a5a43584-1c94-46cc-9527-eb80ae44b133.vsidx new file mode 100644 index 0000000000000000000000000000000000000000..c4b0dce885a745e62863b75d9ca6b69428607ac9 GIT binary patch literal 51831 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 literal 0 HcmV?d00001 diff --git a/.vs/project-2-eda-sql/FileContentIndex/c3fbdd49-8acd-43ca-9996-522042b6817f.vsidx b/.vs/project-2-eda-sql/FileContentIndex/c3fbdd49-8acd-43ca-9996-522042b6817f.vsidx new file mode 100644 index 0000000000000000000000000000000000000000..fa9455828f1c72e46870a98f6c814fd307c25fdf GIT binary patch literal 205 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 diff --git a/.vs/slnx.sqlite b/.vs/slnx.sqlite index 9a0e1bbbe3bb34ff863463e095b557d8e99f16c6..f2cbf9fcff8068714d11a56a40df548faf104dcb 100644 GIT binary patch delta 1642 zcmaJ=ZD?Cn7(UnBoHR}Dd7H*2X`3!->OOQPP12>UMcp)=s55C9^e(w;?@Vvv z&COgH$*raMXP}j%GQ@o#qM%ir1(D%q!671uf+7f7o&B>v;_M$m2YPNkx>ni|$UVHz z$NO>KGqYr#Su)SJbEjYS#<|lM$KQe`YzG9_h4aD-LfYPMheb!zKQ?_Q=25UGu1caN zWrozze8xD0W5H-77!5~b{zzG)7U1*=*IMWPEDr;zd=J6s?}MYRcHB^eVTWXOkRtXhVit z{(vG*N$WL+8_Qej>S?lBUVZMB#umefWsm#G`IU^J7XzI>|E*qHSa2hkeU)1F?Z)<1}WGg{95{-m=_ppy4Fcc#X?D&aJCw%5gGI}=Qt(~qUw$)D865A{lbi0EFlWy9P zwAPT_$v_pk2k1=FOY>_;Ik~gOc{kZrST&^RuYwBejS^BHq?@-^wWGtRTr9& zwYtv1VdP|9p%aCA$k;y@8A3!O5*dRVa0$+lA@V1bVT>$89Cnd!$yM?iDUpxCLH;HS z@B=XuGuzRxg>leO+otQ{A!m?tV?&sHiL6E!X7U?qNoUCoRtrL{)h39kle^Upk4;W1 ztCC(zc}yNtj1HGwbau=|=Tb?N%M_u{m!0&3u`kA3O?}+v1%RoGTX&bXMwmk`&=K5( zzhD)9hwHEc%kU$758uF7@G8uM4p-p{d;%ZA0=x|u;B}Z=3=iK&E?#Kj=zNYBJgi>3 z&CUL?&BY?m_Q5Qho?sz!Y<^idMsAX2@-#Wfj6Wq0k|j7#x=8?rAV!+VJLE-p4%&nj zVTDcaJz+1%sC|p-NeKbBwkj6(#t832+}g5P*`3o@^v4@4yc1O>wXC<%Qu)z_%3HKG y2{fqR-`>XeS+~eQpD0JDtb2LZO$S{pciVcHXWHiICXKLNOd(S!VopayK&6{%brhKi? zbK27>^xW&e0h{O;Cs=k|ag5J68%G`0Zc!p_&i&D_K6)?_3+c&ZXKXl{+A(vvuA@p2 z*@w19C^kZfh*^SJyumjvoCcfS-6iw3;z%=dM+@)mb+EL*!K9@xusiIM-%~!#`RmK4 zC4arSh;DSUR@KewRBIV&QJYK1RO? z6+ECz^a*a^B0WJPn4r^i5-0gT?V@Zf(8m4*-d95O3TsAYXHx;SpNdVwKW|c@EZB$) zL}LkEw1`TvtdK>Qm0KxVK%QU)Kk)-!u#8Vw#5=sjOFY9_L$!cAPod2S&9 zmX96VR&?J>@RbXGA%Y&X;svMM>1W)f&*?O-;S4=OdvS`MqhmPEr5mVJBki=ZTwp!x z%evV_W*?i()|t2SIfm?&Y%yEQ*GFaxSub16w6|1BUh-c?o8%@!aT#n>Y9PYu3Rqcl a=0G!~CbBlKRZ>cIg;{cuLgMSWkADF&WDyYn diff --git a/__pycache__/ui.cpython-312.pyc b/__pycache__/ui.cpython-312.pyc index 4e6cd671c74b3213638d40cf916aced15fbbaffa..bf06615ac4458fb4d7b2e9e10b27c7e7783e9871 100644 GIT binary patch literal 7997 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 maybe when i know the reason for action 1 i will add them back -# # Define years to exclude -# years_to_exclude = [2021, 2022] +# Define years to exclude +years_to_exclude = [2021, 2022] -# # Filter items_without_date -# items_without_date = items_without_date[~items_without_date['Datum'].dt.year.isin(years_to_exclude)].copy() +# Filter items_without_date +items_without_date = items_without_date[~items_without_date['Datum'].dt.year.isin(years_to_exclude)].copy() -# # Filter items_with_date -# items_with_date = items_with_date[~items_with_date['Datum'].dt.year.isin(years_to_exclude)].copy() +# Filter items_with_date +items_with_date = items_with_date[~items_with_date['Datum'].dt.year.isin(years_to_exclude)].copy() # Now we will look into the supplier details and for now leave the items_without_date until these are fixed @@ -176,6 +176,8 @@ f"Items with expected delivery date: {total_items}, without actual delivery date: {missing_delivery_date_count} " f"({(missing_delivery_date_count / total_items) * 100:.2f}%)" ) + +print(items_with_date.columns) # with pd.option_context('display.max_rows', None, 'display.max_columns', None): @@ -183,7 +185,7 @@ # Create the UI instance -ui = UI(df_inkooporderregels_clean) +ui = UI(items_with_date) # Select year for analysis ui.year_selection() # Call the year selection method diff --git a/ui.py b/ui.py index 56e0caf..056dd44 100644 --- a/ui.py +++ b/ui.py @@ -4,121 +4,107 @@ import pandas as pd class UI: - def __init__(self, df_inkooporderregels): - self.df_inkooporderregels = df_inkooporderregels + def __init__(self, df): + self.original_df = df.copy() self.selected_year = None self.selected_suppliers = None - self.filtered_df = None + self.filtered_df = df.copy() def year_selection(self): - # Year input via Streamlit - self.selected_year = st.selectbox('Selecteer een jaar voor de analyse:', self.df_inkooporderregels['Datum'].dt.year.unique()) - - # Filter the data for the selected year - self.filtered_df = self.df_inkooporderregels[self.df_inkooporderregels['Datum'].dt.year == self.selected_year] + years = sorted(self.original_df['Datum'].dt.year.unique()) + self.selected_year = st.selectbox('Selecteer een jaar voor de analyse:', years) + self.filtered_df = self.original_df[self.original_df['Datum'].dt.year == self.selected_year] def supplier_selection(self): - # Multiselect filter for suppliers - supplier_options = self.df_inkooporderregels['Naam'].unique() - self.selected_suppliers = st.multiselect('Selecteer leveranciers voor de analyse:', supplier_options) + if self.filtered_df.empty: + st.warning("Geen data beschikbaar voor het geselecteerde jaar.") + return + + suppliers = sorted(self.filtered_df['Naam'].dropna().unique()) + self.selected_suppliers = st.multiselect('Selecteer leveranciers:', suppliers) - # Filter the data for the selected suppliers if self.selected_suppliers: self.filtered_df = self.filtered_df[self.filtered_df['Naam'].isin(self.selected_suppliers)] def show_date_analysis(self): - if self.selected_year is None or self.filtered_df is None: + if self.filtered_df.empty: + st.warning("Geen data beschikbaar na filtering.") return - # Date-related plots - st.subheader('Date Analysis for Troubleshooting Suppliers') + st.subheader(f"Analyse voor jaar {self.selected_year}") + tabs = st.tabs([ + "Geen Leverdatum", + "Volledig Geleverd", + "Aantal Leveringen", + "Tijdsprestatie" + ]) - # ** Missing Deliveries per Supplier ** - st.write(f""" - Deze grafiek toont het aantal bestellingen die niet geleverd zijn per leverancier voor het jaar {self.selected_year}. - Dit helpt bij het identificeren van leveranciers die niet voldoen aan de afgesproken leveringen. - """) + with tabs[0]: + self.plot_missing_delivery_date() - # Grouping by Supplier ('Naam') and counting missing deliveries (TotalDeliveries == 0) - missing_deliveries = self.filtered_df[self.filtered_df['TotalDeliveries'] == 0].groupby('Naam').size() + with tabs[1]: + self.plot_fully_delivered() - plt.figure(figsize=(12, 6)) - sns.barplot(x=missing_deliveries.index, y=missing_deliveries.values, color='salmon') - plt.title(f'Missing Deliveries per Supplier voor {self.selected_year}') - plt.xlabel('Leverancier') - plt.ylabel('Aantal Ontbrekende Leveringen') - plt.xticks(rotation=90) - st.pyplot(fig=plt.gcf()) + with tabs[2]: + self.plot_delivery_counts() - # ** Late Deliveries per Supplier ** - st.write(f""" - Deze grafiek toont het aantal vertraagde leveringen per leverancier voor het jaar {self.selected_year}. - Een vertraging in de levering wordt gedefinieerd als een afwijking van de afgesproken leverdatum. - """) + with tabs[3]: + self.plot_performance_over_time() - # Identifying late deliveries based on AfwijkendeAfleverdatum - late_deliveries = self.filtered_df[self.filtered_df['AfwijkendeAfleverdatum'].notna()] - late_deliveries_count = late_deliveries.groupby('Naam').size() + def plot_missing_delivery_date(self): + df = self.filtered_df[self.filtered_df['DeliveryDate'].isna()] + if df.empty: + st.info("Alle bestellingen zijn geleverd of hebben een leverdatum.") + return + counts = df['Naam'].value_counts() plt.figure(figsize=(12, 6)) - sns.barplot(x=late_deliveries_count.index, y=late_deliveries_count.values, color='orange') - plt.title(f'Vertraagde Leveringen per Supplier voor {self.selected_year}') - plt.xlabel('Leverancier') - plt.ylabel('Aantal Vertraagde Leveringen') + sns.barplot(x=counts.index, y=counts.values, color='salmon') plt.xticks(rotation=90) - st.pyplot(fig=plt.gcf()) - - # ** Deliveries per Supplier ** - st.write(f""" - Deze grafiek toont het aantal leveringen per leverancier voor het jaar {self.selected_year}. - Dit helpt bij het identificeren van leveranciers die mogelijk niet genoeg leveren. - """) - - deliveries_per_supplier = self.filtered_df.groupby('Naam')['TotalDeliveries'].sum() + plt.title("Bestellingen zonder daadwerkelijke leverdatum") + plt.xlabel("Leverancier") + plt.ylabel("Aantal") + st.pyplot(plt.gcf()) + + def plot_fully_delivered(self): + delivered = self.filtered_df[self.filtered_df['FullyDelivered'] == True] + if delivered.empty: + st.info("Geen volledig geleverde bestellingen gevonden.") + return + counts = delivered['Naam'].value_counts() plt.figure(figsize=(12, 6)) - sns.barplot(x=deliveries_per_supplier.index, y=deliveries_per_supplier.values, color='lightgreen') - plt.title(f'Aantal Leveringen per Leverancier voor {self.selected_year}') - plt.xlabel('Leverancier') - plt.ylabel('Aantal Leveringen') + sns.barplot(x=counts.index, y=counts.values, color='lightgreen') plt.xticks(rotation=90) - st.pyplot(fig=plt.gcf()) - - # ** Supplier Delivery Frequency vs Order Volume ** - st.write(f""" - Deze grafiek toont de verhouding tussen de frequentie van leveringen en het ordervolume per leverancier voor het jaar {self.selected_year}. - Leveranciers met een lage leverfrequentie kunnen mogelijk problemen hebben. - """) - - # Delivery frequency vs. order volume (TotalOrders per Supplier) - delivery_frequency = self.filtered_df.groupby('Naam').size() - order_volume = self.filtered_df.groupby('Naam')['GuLiIOR'].count() # Number of orders per supplier - - # Merging delivery frequency and order volume - delivery_data = pd.DataFrame({ - 'DeliveryFrequency': delivery_frequency, - 'OrderVolume': order_volume - }) + plt.title("Volledig Geleverde Bestellingen") + plt.xlabel("Leverancier") + plt.ylabel("Aantal") + st.pyplot(plt.gcf()) + + def plot_delivery_counts(self): + grouped = self.filtered_df.groupby('Naam')['DeliveryCount'].sum() + if grouped.empty: + st.info("Geen leveringen geregistreerd.") + return plt.figure(figsize=(12, 6)) - sns.scatterplot(x='OrderVolume', y='DeliveryFrequency', data=delivery_data, hue='DeliveryFrequency', palette='viridis') - plt.title(f'Leverancier Leverfrequentie vs Ordervolume voor {self.selected_year}') - plt.xlabel('Ordervolume') - plt.ylabel('Leverfrequentie') - st.pyplot(fig=plt.gcf()) - - # ** Performance Over Time ** - st.write(f""" - Deze grafiek toont de prestaties van de leveranciers over de tijd voor het jaar {self.selected_year}. - Door de prestaties over de tijd te bekijken, kunnen we zien of leveranciers steeds minder goed presteren. - """) - - # Group by Year and Month and calculate total deliveries over time for each supplier - self.filtered_df['YearMonth'] = self.filtered_df['Datum'].dt.to_period('M') - supplier_performance = self.filtered_df.groupby(['YearMonth', 'Naam'])['TotalDeliveries'].sum().unstack() - - supplier_performance.plot(figsize=(12, 6)) - plt.title(f'Leverancier Prestatie Over Tijd voor {self.selected_year}') - plt.xlabel('Maand') - plt.ylabel('Aantal Leveringen') - st.pyplot(fig=plt.gcf()) + sns.barplot(x=grouped.index, y=grouped.values, color='orange') + plt.xticks(rotation=90) + plt.title("Totaal aantal leveringen per leverancier") + plt.xlabel("Leverancier") + plt.ylabel("Aantal leveringen") + st.pyplot(plt.gcf()) + + def plot_performance_over_time(self): + df = self.filtered_df.copy() + df['YearMonth'] = df['Datum'].dt.to_period('M').astype(str) + timeseries = df.groupby(['YearMonth', 'Naam'])['DeliveryCount'].sum().unstack() + if timeseries.empty: + st.info("Geen tijdsgebonden leveringsdata beschikbaar.") + return + + timeseries.plot(figsize=(12, 6)) + plt.title("Leverfrequentie per maand") + plt.xlabel("Maand") + plt.ylabel("Aantal Leveringen") + st.pyplot(plt.gcf()) From 1438feff199f80cc7f1309515b57f461a82f235d Mon Sep 17 00:00:00 2001 From: Jan Dirk van de Bijl Date: Wed, 21 May 2025 15:50:59 +0200 Subject: [PATCH 15/31] very cool --- .gitignore | 39 +++++++++++++++++- .../17.14.670.39694/CodeChunks.db | Bin 73728 -> 73728 bytes .../17.14.670.39694/CodeChunks.db-shm | Bin 32768 -> 32768 bytes .../17.14.670.39694/CodeChunks.db-wal | Bin 37112 -> 123632 bytes .../17.14.670.39694/SemanticSymbols.db | Bin 53248 -> 53248 bytes .../17.14.670.39694/SemanticSymbols.db-shm | Bin 32768 -> 32768 bytes .../17.14.670.39694/SemanticSymbols.db-wal | Bin 49472 -> 201912 bytes ...9c473a85-6ddd-456e-b741-cd14d5059323.vsidx | Bin 205 -> 0 bytes ...a5a43584-1c94-46cc-9527-eb80ae44b133.vsidx | Bin 51831 -> 0 bytes ...c3fbdd49-8acd-43ca-9996-522042b6817f.vsidx | Bin 205 -> 0 bytes .vs/project-2-eda-sql/v17/.wsuo | Bin 31744 -> 35328 bytes .vs/slnx.sqlite | Bin 90112 -> 90112 bytes __pycache__/ui.cpython-312.pyc | Bin 7997 -> 8255 bytes ui.py | 25 +++++------ 14 files changed, 50 insertions(+), 14 deletions(-) delete mode 100644 .vs/project-2-eda-sql/FileContentIndex/9c473a85-6ddd-456e-b741-cd14d5059323.vsidx delete mode 100644 .vs/project-2-eda-sql/FileContentIndex/a5a43584-1c94-46cc-9527-eb80ae44b133.vsidx delete mode 100644 .vs/project-2-eda-sql/FileContentIndex/c3fbdd49-8acd-43ca-9996-522042b6817f.vsidx diff --git a/.gitignore b/.gitignore index 2994540..1c16435 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,37 @@ -# Ignore all .json files -*.json \ No newline at end of file +# Visual Studio cache en gebruikersinstellingen +.vs/ +*.suo +*.user +*.userosscache +*.sln.docstates +*.VC.db + +# Visual Studio .db & .wal bestanden +*.db +*.db-shm +*.db-wal +*.vsidx + +# Python __pycache__ directory en .pyc bestanden +__pycache__/ +*.py[cod] + +# SQLite databasebestanden (optioneel — als die lokaal zijn) +*.sqlite + +# JetBrains IDE's (optioneel) +.idea/ + +# VS Code settings (optioneel) +.vscode/ + +# Systeembestanden +.DS_Store +Thumbs.db + +# Logs en tijdelijke bestanden +*.log +*.tmp + +# JSON uitsluiten (alleen als je dit echt wilt) +*.json diff --git a/.vs/project-2-eda-sql/CopilotIndices/17.14.670.39694/CodeChunks.db b/.vs/project-2-eda-sql/CopilotIndices/17.14.670.39694/CodeChunks.db index 72242d52d7e3848d7bf8c4566b772832126406be..0ce1801b15f984af2d35f94f7b1768a461807c21 100644 GIT binary patch delta 537 zcmZoTz|wGlWdnEPmS%>A7Dgt4P1dXojjEFkWvwUcO9^del~!crVrx|OY0L$RO9RFA<@L&nW5R;N z^NX^J3lfu4gG&-iQuVTm^YbhlBUl*9L24%F%doSVH(9YT6oa^%U&=@`a|v?QGx8td zj^?VL%%h;d#N!2YsSePk%Ndm?U)1sy(KAAJE29tha)v_)3AmdXy@3*ma0!Il8NGa2 zfKI%qr7w-si41QipVbOvVzl0@pq=WWT!A(nJlLjEQIVBhRZ=L vK(`#!^krf=vROepk&%_*ur+h_B6q diff --git a/.vs/project-2-eda-sql/CopilotIndices/17.14.670.39694/CodeChunks.db-shm b/.vs/project-2-eda-sql/CopilotIndices/17.14.670.39694/CodeChunks.db-shm index c0435a17606a8693a2cca3d020c6f81ca4385433..abf701091bfa755c9b6173cf62176d4bf5a0aa9e 100644 GIT binary patch delta 284 zcmZo@U}|V!s+V}A%K!q>K+MR%ARq^%g@Aa&`mf<91s7VV$al}vF)p3IVWvLs3hDn7 zNL3Fs3JgHz{zn2(;feKxL4-k+L5xA1L4rY&K?>-183tJfxs4l7GBNUQ+{kGN E0AZ&$(tAagE4k7RDbglLZ(f7+E(nGX7;^WCK&&j0{W+%nU3H>S%M<@TKpYPld8@IsAMaOWZLX4UtgX)470NhMe=;-n#-yJ ze@{Sl_M=G3Y)z>;cDr{bRB{4P(oTj6IfO1(1oA&Q%B{@HJ)J>}Q+4uu2N}T%9!;Jt zTpPJ!xi~oYaOQHVZVdd$!S32D!^+UeJGszbUos`JBrzr^H7BtoGqqSRt2jT;r&$sx zD-DuW0L%L4m6Rpsr5BeJrKYFmKoog4ivbmhf)vSu75Su=r4}XTC1<7mYSN9l$e~2VQ65JHB9B? z4bgI&=X!5oWNNb7?C%@M>;jARv-MTQ+>syRxVV=yh;jU26O)eeI8=SqI_8dQWAM*U{%mNG*paMm(0^Fg(ICXMuv@s+Ka0UqD6rg+N zGcj6kz7UCDuha| zLy?R#I+3U(DsluWxgACFK8L%+W5$uHNu~D4zn3l@(GG$q>EGYq&Z2P zP|2q#k||k{8AlKI?1D-@Ly=V5m%r*1pE0c5evTsfxo$?*Klv8{P@P{?RB>H8f}$^R&l;a}HpuvjQ~5+cdO0hF``0O7k;nE(I) delta 666 zcmexxl>Ns-CJXa=wk8JMM-mJS0t_G^vsIU|B`E3qHIW_qv2l+gfI=)lECdrj%3}6B z%#P>x<^X}i{7eitC;#Pl7Jx~r{$Aq1KTli+DtQYQ6vKjg0AY$ zNv?oO-kH32g0l_GSUJ~S#&;&p|H#Wdok5UmBLn{-{w#hWzAJncd@{T@d7F5(dERjc zabMtO<=Miuk*9)3lk@Gyz=NFZK=nr$8XYG)&a<9uvPMW$&&bfsz{tSN%+SKZzyK(l zgd{7dXJlY#WN2V!0;CKK0vlZ>7tA)ETriIZq<6FEoDGbujm|6##X#fqH~*X~&nyme z;O3?IpPuK2t>WTd4s>AsWc`JbJiHHiesU}DH1l}zcx?>4&&djuJH#}(ae)=cI1N;% zFkAu3CNeo&#e^2878S>2rIe*4`LZ-hGfj4!>puDO>R>j8BUa4iAgr<&H?GlO zWMVixS#h1w=DTZync;CzxA)YdN5)dB(2#r!3}!nSR^%x3{a=~t`+E1Z0dg(xIV9KK Tn{Io_{GBj2)V2SBuC)dLi?HJ^ diff --git a/.vs/project-2-eda-sql/CopilotIndices/17.14.670.39694/SemanticSymbols.db b/.vs/project-2-eda-sql/CopilotIndices/17.14.670.39694/SemanticSymbols.db index b60a2102199812a681c1d46c69393498298bd6c4..42c6dd77d488b780386a9e9e63a6050cc0649601 100644 GIT binary patch delta 601 zcmZozz}&Eac>{}pjv!|!2X`R<0)7YXt6XpS3V8Lo`gp7Ow0V~ENb|ks^5P8T;^17v zp$~$a4F&$Qvv5ymRGaK486;q2W@&C_Zf6_YGP(!G1*Hp zOxVcG!otwf%+S!n$RwmOmzAMWdh$m(V}-Eb@cg3e;)2BF)ZmiDl2pB{;`}_u+owW5 zUzu?wvdMb#ddU#ZuuJ@IEA5-CSSEjvvE&ZBXn4QLu`z;$p?tEUjQ-|&saR$fe~^KJ zlKPVsO6+Glh0}eGBH|jR?tplWM#CnX0D!GsINcywhZUyeL4=p0*wA#K=TK`TYa3G0Xc`R A3jhEB delta 377 zcmZozz}&Eac>{}ph5+XpR_;Ll1^f=&SGnHu74YhF_3>8mY4a@Sk>-2N#lg9T%ZuX$ z$BWH|3VS#vPm~A~F*GwUGB7hUw6HKR;GWKq#L(!-F*#AwkKe%1$k4#d1V|YeL^iri zUN0HK8QS%3!B+c5XO_tyWURQF6%}?nHb$^8luuTa(cfGz70WCb)X2)=Y!wq)oLW>I zlV#5jQfbMhR9E>y*O`ljp&F!ea=hFfR2AK{Lk%%`BRSVz@F{PAgal*+mSOgIF3>Cm+=GWnwt8SwTCIk(J@FHFNdkLVf+ow`Djt W@6&M*=3}_Q#l4(?Mi%%uH3I+#8*MBA diff --git a/.vs/project-2-eda-sql/CopilotIndices/17.14.670.39694/SemanticSymbols.db-shm b/.vs/project-2-eda-sql/CopilotIndices/17.14.670.39694/SemanticSymbols.db-shm index 446fbba22509cf63e85cd750a85e2c45125241f3..4ae7df6d3ba6d189c7e82c4f371c49a0d13a8753 100644 GIT binary patch literal 32768 zcmeI)OHPwf6bJBsq16^e%exA`5P3f*%pAJ`HbTO7*n(pd2aX&$AOTjulo2a{`;pc( z4Vs!TY5bk!9~=wWNJe#>tYWKfcelE^iKh9beRc&VT*#?d<6K zbMxf9^N;6Csr#tv-u6Xz`}Z(bX7!T2ad2L(2luM8RgQPRHM;BGes6r}zdzOc+kRDV zuvY)Nd=>-<5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5Ex3JRywCV$+Nu3%gkgpbD7UVUS%oo zvYby@&t|r>KU6J;2#l6Md$g|WwgetgV61eqYUF8}X=NhMOV6*Vbn-fjd6Tz!pAY$% zm8@nh8`;WE=?}J-s)v^#F!}=1qyGdiAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly fK!5-N0t5&UAV7cs0RjXF5FkK+009C7{u_Zi?2Ij$ delta 197 zcmZo@U}|V!s+V}A%K!qLK+MR%Aix8pd4bsB#3GHPA3x=`rIoeKGv)cQ;``Z}>?$h( zQq=>E0t1k_|B(Pxcw#;0WD!Q0iAMxBdoXTsnVi5lg`J6km4TgsdvhS;cP2&-AoZ7t Zn~{N;frWt$=u94O3xp2D$>cUnNM?q) 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 diff --git a/.vs/project-2-eda-sql/FileContentIndex/a5a43584-1c94-46cc-9527-eb80ae44b133.vsidx b/.vs/project-2-eda-sql/FileContentIndex/a5a43584-1c94-46cc-9527-eb80ae44b133.vsidx deleted file mode 100644 index c4b0dce885a745e62863b75d9ca6b69428607ac9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51831 zcmbuo2cTY6wYIyyZ-0A>peRM`7(yTkl13*|(hH=KN;RP=Md=8Nfe=swSWuB7DghC@ zf`SzxfFfc+u%RHJAQq$uB7%tbdB%D-a?bt#bMHBa?7Z)qbImp8m}8DPW?5^8$y27U zw^q|ExVfqSPUvrWKWOs!eHR^j@G-~kd)Ps5Ip~0Wk3I7EV-7rc-(wCw>d0gFJ?fYv z4?Fn4<3?>Y>fnR+A9d`}Z`ybC8xKA1&^I1&;FY;o4wih{wKm|!BX1!mO~Fb_`j;)en!N>epa!d6?ciUq6 zrvGiTym|jakNE!--85hM#IZLo`fm%LKXu}i*;7Zq`Jn&OeCg7o-g@Bv2Oe_p(xv+jdd`7Iz4f?5jyz)2*5kIK<^yfh2WPGK$^X79{@22{ z9u)q-#s3pme6H~4y5)b;ew+6_{E7da=Kp8mrTzb2^Z5LKQo7veJG;DV_y4}1Ki4e( zFX7Lcy!qd2j$8hpv{v=2RzGy+|IQWvgYbWAt?Dx{Y|ISjO{ir?loPo zuh|J4XpS9dIs;92pjkn()2!8PR(HHRp-K+xHY@v@Asv%z^))ZTBNK*HC6cuer6anKaORqEBgSb(+3zb4;h{R7Ep-<_zg;&aNc2ynLXUFkmg+UNfOj zfhaH!>@;h-%`?4vkjML)d#SOf&Q!ftuelB3JlJbq)@kJJavI=60&CK79(Az2*u`O5y(IUESvLdiI!- zgT?3_`tD`b5jWF`C37!i4m6h`WS}{u)BLsD>^jh#TqdF-Tn=ZOS2m%g7+K+^Gi_gq zsyINu61M3zn@}E$mHgYP7$sNrnjh0@lGSUE)wA5iT&P5gCSfs>n6AoT4UDYmddL&o<+(2X2bqwS<`f}WPj7^Z!jiRBbi73#pq~%=&!n<069H6Xs~c{NaEhramNfa z-{YdLF*Rf1?N#q>*otoEdCc;xbd=DTGauGdCLYx(l|^?S{U48Vcrrwn0? zQ+kp-3ImpH`v;nx=;eWC#z6CF+>EMwUM%P||6u%<&URL5LcF30B%jTpA@mFVjx?@O z3BST0xVEm27dQjuS5mBO$WSFHDW`oFV{$?KA*a_|+H1Z|yXaXux-C|Zle7TCstO|t z=TQPb-DaTI{HiV7VhuNiluQirA9QY=xlD(D{=Vnf;YWe(PX$9-L8Yg*`KZ+1!kEt% z8!Q|>yG`peJT;-zh)k4u_L1rx3Q!k!qak+(hXx9eKY@-Ie1z(Hon}P0`8&-avh~+s zENi@rTKFkfUsIkl3^^S;ns7=l52;Yb1<}I-EeB;%S^0BtHtP*E=TgZDKD)(~6MbNcJmKqDGl-*ZyX2l^Twv0jWrLwe1! znzQ!lYc8pVY)6t?9Rm~vhIE^&d(960&FP(HR5f`5F^y4Kk8es&$AQKSJA~L+jyj~{ zfTDqve0!sZVB{Bcn^!WqGc(oNQXIHG6lPmy|J|MpX>b-)vXiaV#2^NvAMnSBUs|O&r+a6&+(W4d1h7XF}W|J&oB< zfs&vyRVguz@|Xof5iVvB-U+Y+n);L7W=_wht*CAS@d}!-c7O8>-BIBP{~X_KHt#v_ z8xv~uVO~uA?}*LhNPdOoefl*ED*>i}8NKFj#DRXF9a~mCt|k=5*V6uGVqf#6ZgWCu z{%xveHpHE3ne^#eON^s|bX+a2@M<(CNt2CH-R3;}ht&nhY=u6=*gk^~rfBCWhT9B0 z5Y1~sA+#>5PG@vr9G>El33xS`wLG}IOwE8A!sLa~stXWBZ?5b%XP5JTr<|Y1FJ?@2 znpgETyOl4|Wk_>S&;)MPQ!E?I@99zP7@^GA{$_jhFN3pGLkO9@j$?s#(H*N$qo%gi zbY)+K3kEouz2?Gha}EB_BZF&8pB-q{W^$?SW^f_IZYtvwOwb=kHHXQ4pt*u)u^7F~ z1v;=aC0^B%^$^OG9WdY!Jd+NpnEy<5I>uo-rhK=$9^L3-h6#(4C;OYv_nOoCoAo-b z8~3LzHDy28ZT9Ro*A6s0_nO1YK6Do9^_M`La7DG6#-hoDf##N8^8{7YgwDkGsR~do zMX0pfe26hlSnF@DB&WjKxEc{>v(8~Owf3a1asC?A|E!f2C5Mv4i%M-Kaoii@97WV6 zvN7sA&GXCt1PyeUz-r{VD-DK8mB(Bi>{j)n_Uh_c0hyI%Dv>TN>r)8s-r2q$D@VHT9f z>x?HjOtp>%QtTd-sZQkCVbt4>&|1qm^0l;H`kXZd}W}yn+F*J<>bFCQAgp!<;;_-_YdkcA0b(KGRwsM z@I7*vBHJD>^OD49Pt;C_IEitv)f56L7X!^N=??a8HBzv^kY2N}PqVW*qU7t*95ry) z+6f}|9~IA!DmlGQGf>t*+dmD)3flWrrS_xCkNcAKk^kMZ%$ z8Yx(EBy0F~HBQ4Bxi!-9F_he~Mi5F;{v_t&@>PN!b|Bhgc}4^Q#7PaU`d!`=j=0{T zx)=$Qn2CrO9hc}#I>Rae9!rj;^tx~>* z0SDE??e89F*6lPm^*5JR*kqW`L+$d()qTx&G`Yq*-o-G#x4QMlUh~_Es1vJ4UR{1N zw2cg9TiVFtfdGgOs5hhr9sSPr(Asw!7SIi?Y7Rxiq2-*o{RFD+W<4;m+iX41j4xNA zm+?2szoQmi+p`qGNxIFq=_C5O+*P%^j$d@9u;Z%&(W;6A*yrT_=H0cNJFe3Z!IeF2e$ZM1~v35rq8;eZv`6Or7oCwoX4T9ccbaE9hc;mAz;6HFBP2Ia+(qQMH|9 z6tjiI4H$zc%(zB36)T5ysf^QBsC0>ohv3P~N@YE+O=974?^o0!86k`{{FW`lsjPqM z5t`Pm9zVT$ikQPFxQ<($<`=cDM#)oHjnt55TTMP@`S)VJ~IkzFRF7BG#=lgswLpz5 zbY}IAGe2GqFpQ-OKFos%r(PC>cw-G=2V?an`Y?~L?lmuLh4eSy#@QHL7{5X*aiA@E zYAvxaCIJ?G*q-dos3(y2nxEJ95DT9?&`{~7EKqyRGJ<)}4fV~nCczZALHk3a#-lKj zt2bXk2pYU*?Bgmle@L%6zd{7c&uC{cW~Fj+Y_+CWF`u5rbV$a-F*`|mp}*OrM#m5q z05$t`@bLcTLl_Oo)X2arL-`0*R2Pu%E*P!Iq(GldAd}>Z+SjbWnM*5ze3uR_XQQL( z+*V;^q8P@HGW{+j4nacKPREVy({6K8?WFJxBz&OTY={r^JVnt}N*XqyE+Qne;h)Nx ziCQ-dG+VL5>ZmZa|Ey|98jmB{v$ASCBMbFb_ZnX5b?B7pCiqTX1r2Vbaw+ z!jwlz_OKQDm=;%1d(RD*$SK5b8^&M!CK zgvK&pTV=`!m-AG)5Y40`w(m7xqP;cYvWoa!?eZAuu2jqaH3;LquNhrA<4~hwql&TL z>2EHq15$Lp1K+OZlaG6!Q1SWETETvJE~4J7WhMawJ0e>)9JV z+sps)z>virg?XIdL%-PSidQQT*m?!_Ve?gsE7a5GcrO;CF3vGjad)x8q0J;Fzhy8?YT9;T+D8i#~GN*Se6hUa1|Cm?iYOgll&Ni*vY>65b2bT3* z4-cyc&*$w-b?%QTT)P-_pxDdmxD0=0X8CNLJY)P5TRWpCieb`DZM5qe^>9n7p2Bp` zNmK>lyW7(w)>QRg0~hLcn~QqQ2zWYQMR#iFZ(469CDQH`>h zToB=Vj{Qt_tuxnyOx#BJnzL5X^;o0R{HEJnNT{cEwIm?tH4LkYAxD?m=tJ8nzYN2+ z=L~3AO46ZERbU^|@h)@Sh z=e2h&TyMgMX*+k>ba$JFJ5Hbs1cv-tASbJ37JP4Fy{DeiX;#-!bGzuGqbYe>l}8^2 z<8|fFD31^(8h0hk$Q8Bdjw{Qr(2BO>s~Gd_T9&VF`Y{w*&zD;Vu1B&;(4qrqlec+py}xbB31Fc8G82TvPD&ZNK+w zA%UKFZv}bA%f;=HLJb+VpoIteU5zdy&F$lSI3hUwB2bv>!7J=14sLI8=OGAz$@Y@OKKhS)I*gMdi z$nv#(8{?x!x2M=$(V@Z=jbdKLX&7Gk9wwKybjx&%hMO=hbJ~wPu z8G3dpzEO2C46mpu?*r{&NR65qRncP|;{(${U$A>0`Rh+K2e7qB*BC*r6Gsi@1i=J<T=Pm>y0OM;c4L6^mUn$8TkyR%Q|5jM#!qeif7QLjs+;Zid78}o-X4&xi*z| zW0P87aG*g;DctT3{!ne_*z?mBlZoxao_pHa-&|Mmy!^+ojxi?-Cl0_JUWzC6Gm_|M6oYs*V%2JH_*JW*PtH9V%()(LJd>u zAssVcjgc$TQv0NCGopHS29~K-=;6Fv>)IVyj0M$@vOF!~hZsAyuQ{>AzMyoV;T;-6 zJ}a&P`|Dj8tkUdEJ9O3F++%`u^Hg5z3w+zcj?K z%SwnFB?3-`potu7SEb)C$73v`!!@-zUD<2iQidXjR`7y*2zQ@zJVkXI_q*0*(~ZDk z75SOdQT2Xg))2$bFXTa-4JE5z2m-hhW}H;g+^J!!`gRB}T7#YI0K`f=S_xO7$tbgo z@r8u`h7Sogtg0teKzO!l2Ho=*~Z&jyk)>o zo}Q=|bFZ)dy^h*3X1hwK>*@CjN`I~I1L*?fvvIRK*lyRnMh+uoy)ruit?f1ThV(mH z5kqiA9O?XiznWWC?`STsl`XR*OCUXgi#n~PFL1&`m`duyIcjGhqxOup#`fs4<0k#| z|8z)L57K=9Xp|B)t~Xgi|)qT+Y@_wVenNZmgm(xZcJ>UM{pAQh@I3; zgx>-8FO2%JGzU+pO6hUpAyX=dOEA7@>B|s^S*jzb1!-6kFB)2zb`U*CZ}Q;;*EKuv zc8O3-i-rt-Fvjr5VlIB z^g5N@TxrfS17%i}N~`J%0a`k(obAL4S*<=)P5-h%JB5<%+0nCmCE`D76FSfhPvCfj z&yQ=b|dkMVU7;yTs|;>ed;(D!(xF; zp1ZbT89)!B2IlQ=zKU1y2vsv+>o5)V(2agaF?xi4A6k>ePV94^?R4Cu8iI)~C~NPF zc`I77*yCB8VO%*XZa_)2q8ENf@3*6@Hj>mhg^d`GS0Bxz_PT3yDtpdAF>=Z!#?p6K z5BrlWLs2zq^TW}~3ObGrOMi1&Cq2HVJr6IHn0nZVtwL-~OzUAQ{H;2DC6(fJWmrNM z!s!T(H|c2Fes;Yrq9UAgYz2R7uPTON8PwoZ6APEOb4tI8x3_$-TKe$K51wOa7X=AC<$IKYobQB8LKai$RGVq2p@epm%5>JNMNC ze&51w6rWdtI>(+>jhex9gD0@E;&an>x}?cSE2A;=dY$GA_5HvUY*H=7>u8r=RBgY! z>j>>Klh&c)CKO{F@kSVHa9#7}1oW(Vki%ZPjQPFSJlt*GInex}6!57E*YwURb}{9F zvHsI7ZldNZ!RT*3z9Xg$w**m@|V4x8#AHZU@fMgX!5Mw-Ys6vN6 zS-TJX>f6N8U{j{Pir<*Ns~7it z8p?zB*4m8bQ%e`57#&oaui%)79_ef5SL?J7{)y8PPP^{cSTx?w3ZGEVz_07~SKIM( zwkquj3^qqB{rFA}qv{cAClvEO@nzM<8+hG}-}NTg+AI-7oE z%R>P?hYq4l&$CJtUQtM~W#wsW>P0^aP(Wv6UtBTd$-d@-Zu3+Hd_2m&=52WO{w50- zH1!|9YFPhuz`?)WT>DEe=Jmq*wPnAd)lzkkvP zgbxh+i;R}{7gT-zjY%I8J~Vt-`0((XV9Oto^pWAC!bgXXfh~7j(#MD25*4u_!QW3rzX8Jd|LSQ@H@iq48IH3{%0nAR?_cf?RQS{3&xAi4{#^L;;V;0( ziZ3U9W%w#sy}p|C*TP>9ey<`yKxJ+;{n_U)>b`Uijwl z_rpJceeRZ|e;mFwd>icjpC$csSoyan{mZ29NczsC?@Ida@IB$*gnt{pH+*0Ccj5cP zzlW{wk4gUtR-XrxeklBK_>u5m!jHl}|JU%}lK(`~PbU3T_#fe?Ve9!<(i&5HcEa6o zU$__Mz@^F!gr65?&06`-53@n3^g3Z)|5f^hVZMN@^oznQOe)Pfvf8sj(yT)(|0Us# z!Y>W8BCPwoovAtO)k(8BC^KMB_UQ~j|;{gLoT!ygM@6kZ*^IDAR?h;B>FArZ4{!;kM;VZ*eg})O1Dy*EZC(VZ})$iX7UmgBd_!`*qYm&Y$e0}(a z@VCR?3Evq0Zuq9~_rf=azaRcV_=n*ig>MP}IDBjPw(w8FKZW(+z1sE5@UOym zgzpUhI(%37?(jX~--Le~zBhbd_;=y^!@m#zA^gYipTZA>{~UfW{80Ge@FU^BgdYt* z7XEAa@$lcmPlW#-elpC!cT|)8Ga_ro~O#$>0G*NDQ0I<+!tmOR_XpQrz@3y zUYLzdrFp|%%s#AmoiM+bSLqjq*A4S}xANKO6thDs=2cGd2H_3EFA4K4Ox=HJm`!)3 zUmku%_?6*TgJ zapA4P{Blm+-zL0mm}C8_XNNHFF{<3_!aF5@m!x+MPk@bgQ<9z zvy5u1?|`lUPT1$}PWqnkZ^FNY`SEwvs{HT5_lJKE`~07hejxm3n4jjMq#sWDFG)X| z^k0*HJp8xt6XCzZ{P;Si>iEu5XR*8z2Fj@W^0+r^Ns?vN9TJ7icYvr#K<^@cp zUkK|j>%-bz>8-=t zgtvwH@#DjKju+P@_jO6{l=Lp)3CW)ro)qR3ub!V0o*JGOo*teNo(XHW-IJb`^qi#U zhUbNOd0g`6hZltTy|v0;6kZJT<3H|D%$v2kzhC(E;icha;r+u0!2C1^C;bLkJr7C# z;mLnf_|4%XV9Onq^wHsC!pDY>3m+fmU3KYqLioh+Tf_YJP~GQbz4YR}MWs&(uLz$S zUK!?mwDfsL((erOI~nynC$@F}%%sms`aMa%H)+mm%RkRa{)fWnhR=g-_XXh#VSbvA zCA}JUoLn5fB>9(yFH8O>!=DO&I`==D^yk8#4}SsX$IqflzpIk|TKJo=^HR?X&*2Bd4}~8NKLV@gqe(v&{%i987XEwkpA0{hd|rE1 zeg6zU6aH7&Mpit8$@297(OI?C~UdIVf8yA`Mlby@<)Y_4j&WdONhFET=;lcIVZr%d0X;% zi&Ev@9$pSxju*m}zao5UcxCvs@aeGSc{x+ODtu<{pOy4`!tYD|*|2(iFzIu`eBDrT zcmY}WKb-sv!yifhMMs-&&#cn^X>3=!Z*U&?|Vt#9R7az z2f2R>%un-^dHBlh21SRql`B2f`1+ z>ibC2k0$+i(oevStG_4zA4xwQ{wK_jFJVhQAFft;UV>IWuV^cum*G8u%*Y4>@V!jsk5B$i$=@~UiQ&m%e#O6@aq~N%Kj5ulfD5~pBuy9gZXKG1Ss#8<^I=_{(90^C;hGPHL(42efUP$`fkeo?0wU`c_!Iewy^p!as+VdwbHq4F4*8NBGY0ufuo2%KJ^yzYX6Tz7JOJ{Yn2m z{D<%#!+#1t09*dSq#p|N*=Duxk?>!_kA@!$|26!0_;2AS!ha7x8Gb6vr*ZvCV;Ncts7ZxnuM@?W0xE0TUy z(ytD09DYsiZ<6%T@TRc(Z=Uq<@QCn8Sbbib^p@dK;nCqS;j!Uy;jO}3hqnoD8{RIw zeRzlPj^Xj)*M)Zq?;PGGyeq7p6JgskCFyD58Oh%rwm)WtXNTv&j-&ZWF9&z+Y1)5Gsb{=1T16+Q#jPVY(jy)Z+dIR{qW15rH|JLOHBT!GWe-*wnd{^%O7Pg+>!Rm8=?*9Q+&j(@U{3Z7v4L=6^+}~jJ zeHvD;XLA2v;byH?ZU?q}FX?_*xzA5}?eIFVa$cD9y0GQePkMv!hOp%}O8TWqzZ|xn zS0%l1?!P8HB)my@Xn51`u<&N#&0*^qk@U#$7U9?C{;2Sn0hn2f9=|$ni z$=@^SyxC7d}6HLHNVr3t{DbH0h6pFAA>? zUkqE{rQuH||5M>l!|MO}q`v?=9>1LQmEo&k>-#FKyl*6Zb@&=sdtICKb>SPr-wA&= z{5@DXKY)Gihv6S3|JI~$3;!hiQ&>HIp7bxmx5LW216KcglD;?h?+gDfe1G`&u=4(x z^q*kmJQ#i?`F{yNn*7I;{#*D7SUFE7{Z#lL;iq%|nWX;}_Cssi-wAiaeX#QSVf9%n z`Ogop9bPB=g76DrpL@yXvg`MV^40<7FANl(lD>9BHkOL}+M za&uw*Vqx+Zg%^jHz}B}{(tC&Z3GW-;FZ}xOQrP+qNczC=L9p`P5I!XNhlUReA0B>F z_|35M+_6a?2P^-Cq)&vE`?m1glfOKCa`=?+itwr7m9X;O0W0TS$zK&dBYbA~EZFkz zP5OPX&%HnC4tW@7JA7mKCRjiI9&9~7NcxB2 zABArT{}|Q}e-{1~tlT?u|JUKW!gs^U{cY0shVO%Y?*62IpY$JL~ovK>bV(geVd1ehew1*!j>NeTYe0zUfbmUw#nZ<=^es5CjWIw?-brS`MV}P zAv`fWDfg!&JvHg+;hD+bExdbp7Hm7`COt2_M|ggCL3m+!5p27bz_xQASUIoH{iWe$ z$v-gZgJ8=a0{i@7$v-^#M<)O19;4nJn2(l^;ntw)552R-w}Q% zZ2hZ}J|lc)_^j}|VavTY>Gy@t4!=MAf$#^z=Y&5LJ{MN63t;74nEa1~KN|j6_@eOY z@WrsteLU$)!=DIW7XD=TQ{hjCKNJ3J_;caUhra+T|MH}-2!AR3@OP7cQ_?rX+UY)(Wqk{B^=FNdCG>zbNVTl3qW&L3qR5-w3wemnZ)fNxwQg zB>9^pJuKf5?IpMjm&(DV~zcBfW!i&R8!h44Ig4O@^u+Q(G`~zU+90XT9OZu?f zKODCF5y?Law%l>Ke|+*!2){M?ZwsFketUR%_+;36S0sIEcxCvs@aeGS-kJ2f!mGk( zgwG706@GX4J+STm0IZyIlK&ytcAXE~o{uE|qe)*3TmIw8zcl;_*ylbK{%rUQuyVcx z``neu|7y}-hxLxsL((_G%Dp-H--ng|!|*N1|8e-%@NKaEb~|kO zUxn|4t?%yeZ(;SiH+&y#eSd(p+k>#>AIbf{gdYt*23zj$u=P9@emeL63HyBWg0`Mc zxEt<+eXc+0f$;OfYlWW=ThF>lzbO3T@Ot6(!yAM*48J72QTV0dmxW&*ent3|;a7!U z9o{(nn(&bDCgGvsO~b>&n}s(I4~K2fmaz62ll-x;_Sg!xAGS++huq&WJU;xo@J_ID zc7>HYCHYgs)56nX%k2hR&#dsA@Vwk#5MB)HA4|e}!s@keco}Sc2Pb_fZ27~&hlk$; zTi+2$9~nL>e02Dj@UgJvk5Bq7u=TzTR{!P6KN;4~Plql4&g8!_eX#Q0pY#WkJ}2o9h0hJ27d}6HLHNV4`hFBv-bJwO_;~U!gSFQulmA)Ra-R=> zG50SIUlINitlX=T{z}qcPx>3-Z^Fv^R?^pmuTB1SNnZ~u?>kA~82)bfrriI2(mx3Q z5LW&zxqln1Kl~#1Z%_UmN#7a%b@(n=d;Atw&VAwgbN~0@KZO67`wt}j=kSB!hr$oT zw&&5L9}E9A{5WiVPbB^K@RQ-E!vBD6PxHdWuW&cq7w(1o!vnDOKR@ZU!|Q}!5Po5J zUD)#LCB1%lgYbsomxMQh)&FI%&%H9~SLgo5;nyU8lca}+H%(C>C3}cgufL2GOQj~CH$_PK|XekA;t@T1|!!ha1v4y)%AN&h|k zWcaD@Kf+Ik{~3M;_Idvy68)eP?uPqd@AoG?5Pn{Gt=wNb>2;ERVbbfu+GqXbZy4SP zw!JTht@jnMc#H6B!&`<&!RkFG>9I*~mGst0Z=3XXu>QYO z(mRKD3GWK4?<82cQ^M1dKQlZlJU93EfNkIWv1L&ArK4}+ESCRjN~CjY4L(cxoY`{ON1p8#v0<*?765~rTQeF5xqA4&ell7CV1FG>ET z$^Qgwdp-;6UzfwS_sZPAD*Tn?e_{HL!YYlKf#wZyp|z{MW*^XUpV|PX0Jpx!dOc zcH!;AJLLXOu=VZ=Ti?W_r@+dcn)Hm^-z_{V`Ey~*%}f4#SU+2m{5`{a!RoVL(ytFM zg{^o0@PWxcD131E4Y_|v(ual*3m+bSQ~1rW^&Jf>|JdXo7d}4xmfSxv>9@j;$5WDC zk^3vdr-$E}`|k>`3ZD@^Gkg|o{qIToz2WzT&knyo{DJTX!{>xQ6h1e6Uikd*1>q0F z_UA{F{#f`TSUoOI`jYU+lmCgNFN1CW=aT+>_zSRduSoh!;V*};3||%gO8BecuZ6!3 ztH(E!zB>G^@HOFU!)sv6U!U|1;cth(6TUJ0-SADY{r`ice+Vn*mhi2~zb*WeC(T={>^pVe4HOUL4*tyf>`B?F0M#>%;qp4}yLE4Y1|j z7(OKVhr#;e5#eK!e_YZh!any_Sov>HdU^O{Sotf$E0cd(`1J5QVCSPVlRhi_?(loU z?+w2%d^T*o9}J(H{PV)+hc5_!7*?N;gg=)2i(utklKe}tq2FDL)1q`#K?Uk`sH{7qPWzLoSfNw0yGb3^#X-2ZO)rttT|H^a*LLHI|>za{Bg zlfEtdlkiV-|K~~nB7A%Jm*HQ9?+D)+{xz(g_ayzB@NdKShVKji4z{2Fl=K6zdOw)- zL*W&>kja0}aho*zG_#ta&;A+7)d>ED!J*Aa{)k(Gqnq8piTn{QKe3quPHLutlPiC6 zGneZrbv>n-R@XBN+x+=;y$GDjzvwuW5=xs^5~dfsggQt0d2^@^k8X z4*v$^P_8Bws>!@6IX`HP3#$BrW_PX^B2_ehQORG#eXp%?apf=JYG|`>-QBO+zF)Qd zB-%F=i|pBK29E@_%W!aX;Xa`D8QzTH?{I3JSU3%wgk*6(sC|Z)eZ;ACJrkUY@BtY`bXAf|6s~htpCu*{kwx<8b~> z%qxosbemerYSaK39&IKn| z8GYDmbM#?xYT>j(+cgDCjv!a9?6nc)<)S+4&*IEN>#|QrG&3q+-yXp|+iTB`KpV^J z+as`r*R!iedwB%q%(s6>ly8g5)Wb#Z+P|WGv7nyP+r3u)!jfsfd%YK^=Zm&waot@~ zclYF9cpXt*F@k8|_}8aJHPODJwV#9*ZB!VE{kPzHG;&0(IJzt`8hyN;SvbFNLE$2B zJn~1De9^o5p*R{`UU!$%`%0fzxBzr~+20c@cS_-2pluiTX!L_wcy9Y=Tr-ZVtUNpFn8niIhV$VG~0vQR{pm9tGlB~x40eG`k^?lZ~>?{YQYw*%a)4znz2-zU%0Sv5jd4RadzRJ zpuRVn=%H@YktZr)dh(SpqjF}}-I=9{K51{MiJqyg)nT{F(E_6>XO3PfTFY$wXf#in zqpynQ%&m4Akw$anUHw+HmU&fjUhZ1gJp67nX-n$cqSB0DqB-`m*yit1*FL+TYShn1 zqqkb=?W4)H?Rxv@^7GNnk}9)jX|iXv(HJbmvoc_q8m#rl*dZU+uNF_o*W7|Wu%sKYq^n!jU7b##rxZpxfW zE5scN9jViZ2jfZyFPAB(iMHOljPEAA_I>%#589qW1;_Z^MPL0hpkHBAKDvAA`W z(iU5nEw)B)rA(z2TUYtEcSS8^i`w>WQ|t)ejH~f=cPdYBi+-kzI$C!mIF2%+GHjW# zz#JuQS1mF&d9Bv=fzfJfEU+Cmu@37Mr&a{n4BQS0Z9i>~o+Bu0JT;yf)wHKLk(3c= z$I?VwPU3oNWbRn<+Olmd9*^g5iS9;R`+i*ER-k@to6K?S?_70>Q|fvV=(VA8iD3t{WSxX`9wUZOs$W#XKYK#ESREXRmFst6b6e z{x2$LVOe8g)xN0o*PACYuUY%zddijP#2QPYdOD|y+G?-rFJr|-?rHy}NS;KAd7$yk z`0GkYx#Hx)`GuC$^C#7lUb$|biie6b3TGD1Dx6d3vs0^8Bqo{TuOp;aeyr3CFMTCZzCBbR%7_Y&gB!ZC%D3N5eSinc|M6_u&SPUgyb_u}tldSWc7 z2a1+oTAJvMQ!1W|TXOB*T5PY!*Y$qj;NH=ln2}%Hs&I1Qv_hr13Qj|W%N)9ZR>p|Q&KtT?|=$*wWQ#h@#=cHR)Z>v(NP*c7}>`NnzwwtIec z)^o(23oT;_QT?aVU!t{pP9iGVaU|{uwmVXHor8OWX(e+SHa15a+bg279dV*EXO>Lo z3$GV}_JnB3x#WpUKu6XT%4w?wC1C;mc2*N@ z>C&oYDWl(OpITbFwVtrFTDr6>yp&ozVH#PuC8%$R?e&{Oy7+g2E9#5TJ4tfSdpRZqv6sFfTOqE>PQh-x@E0+gm-i0W^j zTaP}i&x>lS&pQ%qi~Cto-SlA567FY3^Np*-nyNj7PTJIaeH6xMiXK?A#%$gF69H9c;5`yB5%H(Rz(4 zqW4`jiMGqRTeL>!Akh}JanN#J&nUDl&OV~gF09z&95j`*`HL#YwbRsUmFQER{Z8ec z@|RTkC1qRJR7P9dwP!uGXSHI_dTP(o*^>lUHcHr=zf;jzf7quv8Fat& z^b@s%(NEMG&WWPdSXzByJoH+BUS2j|j#WKb_iWK~TG4UuJS`gi?HkcCLdMb$M1K&Mur&IJeN+jfbN0 zokK;f;z^091kXrBpYlY+o&46IyBx6{yXvFG#U-FT7%!afytbr~K~&C6dU9}QrS-kG z7Eee;%eyWTwanbo&2i*T%<_&DPjxN11bNQ5p55 zt;=5aoMJPycK#B#D4bSkYwQux9e}fsXMC0%jem+pLr?ESOL`V1&I6r6M5VdIZugF^ z!F@_QigQ7uy0NOo5p_MXaD1UMwYlgX)JQ4LE^OnRH5w;GHE}G8iwpM#jozZq&Y(4- z@>~gfZ*rm1T&0NS+h5abv`nW*)z+R8mxA_@Xc_xxI!|gDS2?0J8e4p`;hCH-&r>&70-|@#6_x4iFDld7UsR^EfBS|^ z^r_a%z2~)7a=$71l(W1$8Li?>DO%DQTr_9zvW#=|Zd^^Q9$Empp0%IMw_kkoVV|kn zZpdukr;X&EadmgBybv_jh_gUX!>>&^r1+1*Lc1s!qj+ed)D?Q-|-2yk~J z?gtuG#PNl$m7Ebo%lOVsTn_rS%6AvLfzFt&ah2Ad1*oCd?a7>S+?k5L@t9JzI8wa! z?v#@0?njN)!TpWseD01!w8ewF0c$t%i*pLw6>Gb`TU7ifUrdik>NYS|u(49TCb^AJ@s^mW68KxDeYieuc51e83g2 z*Y>g}hoa>j3;&J?YUS=-G++N0)xobCX4P1*Jv(#lUR|`+dm&r27X8rH+AgEIXc=cc zQEAS7p8whk-^_}>572MLEkSqXVtegfXGY)fo9|jhoD7bs9N(dNJppt)ir&?4#oY_r z^XWNtJ+H7muU$~r3k&xw+za%CQq(J*Z`uxsuA0_>}sW-i>_7Ok&9~X4qH?o z$F-;q&b*?vJM)U|`h7Xq`l@J2JyTRSebSy$A6q7>p?5@2<~%JI)n`uW;11DiZRoB* zRI)xMdUq~8>>OZ=+%t+=%sr!M8KbnQclf5&y{qN*Mp6CswAqyNDc41_$(=%N_OG}l zX#a}s^?qC%mqhbDV-bC71lo$z3TG5*6>AlZ{jOuhy$bgMJ!zT4D4hiAEuzv!V^z^{ z=n09q1?Zb4amT`)3w=A}8zE6WeXAt8@-jAx%F$Bd9R9ev7@RL1172%sPa;L7xvmgL z75bjrlRr@zMp4l=dcNU|>$Ccs=(Bp7IKI$!IbucMJm^v4lEOU;U3Ei}sWrYbkU5 zE2_T{PqgjEJ<+;+Un8oCCm5n~jEefVR$5S2(kH#Pjh-He+RD=du`NHNuKkX{b%JP( z3#vxX3cTL0(AxEC*EIHmrw5|)7nc7RSG~3_-^+;hrZHBuu68}-xbRy2U2lks3$0~g z)nWv8u17>$;a{s@J!o)}c&K1x020 zW?i(6o(hWA;`&}x+jfp=$F`?}=BTHqf}(YK5~%jdbcBjZa3wEV(s3tRmm^D@QE0EW zQNz`{vBNgD5yVmBwe`A^ah~(pc2D9CZ7|9#sk%J1n_H`W-ZXc>pU6_y>?yiSoN%S4CuN=G{=*6(Pw?f=$nwyh0{RS z9^%NtEeqAem4>J$Mh8(jjzqCN5nRr-vAsP%&>MWpQD%hoUAQY-Q4O`Ps3xxU^c&0Q z$y(PkdZTDv_L#O&f>K3o;vHkRn(HT`ckLTj7`Dz>truzyW2R`0_MoT^zHb$kxL4&E z@$^(%VefdNJ(T&!nBckg#KNhC?LJd^u1WOlEeppN?gttVMc-fAr=q8I#(i-?pUld(OyP^<1 z0d?gdTGG{m*nZh*>)dCF?HgJ3^vq3cPq^BBg|+J~V%s-+)U_=&dW*KglQ&T-=}YbD zrs&AlqwG;@bT1~h?|`k>6@qBJ?!QE9Y$HYM2kyVju@+angKreotmt*4}!gmi5}&2cv~L7#s9Et<-wA{Xh6_LmmGe(X_m4 z4^eI1or!9qSBpCrT8pb?BcLT0)?H(o*UEHlAX=teIJ!`oz7G|bgRb61ixK*!_YTP4r5y;e7Oj-r}7Hbo^k9>p1j)~l`CclFL&w#Yr8Xp0n0Q{pKE4 zv^Sj3L|g8DR`h+KUk->$c3imM*aCFMalheRPeMc`J0e8oJNt-AZmmC>E3cOn4t}}p zTsxASF|^m+%Qm22M2hCS{}o3SD#Kl{IH}OueWxW_yQjvY(i}UYZ8TDgw$bNBZRHna z?KfF|yX2Xuppd@CcdTgU4W_-9+1BT2vp`o9${&RKDvV zQ9HY?5$*TEm56mY--+!!Y3tg##fa{h@F`=qsFjSh;_C{vu(b_-gXqZhy3J9;HiEdf z9em^NjMlFIj0j%4(la91@2<>6ZRnU4mFbujm27K8?Y6X1&S>tm_oY5Pzx_J3{Yq3+ zkM`|U8*BW^&pFr?kncj;@6kLhHAl}BmE*~bIHquXVOz$1dpm!(k;@g7IZHv`iiw_= z`36jM)|yFsMbCjeMHO8E*yEx(dW?4T-Mgoxq7pnG71iC{tLRhiVMX;BJjrV%sEPYo zu|0XRyz_x*8F!%emNK0eM0Ic#F1GR46N16jq7q!GiPqSz;Pn=JS_#e_ZLf>Ucl3+i zbu5bJTmQemx^NsAVFu4Zj4kf#Mix5T8xz{|5wX3i7dZMv@46xt-C;Y{#08*pV!P)S z&DZn&jlL~GS39CJjqhE=d7x2IoKrZza4*m|u%c&j#wF3aMi0?^qlajDqk(8ibrT&A zo)w7BJdSARpW%fg3f0OH=Wlu#QBSln#Gn!wh46PmS@WPRW3qZf$ z_nZ33h0_cD%|)a7;P)$@bNW_n3aItOg`jJX!S7o16QgW9r@5{-a`(I) z`ul`hSo9lq?JODvTsQhH@@!D8#Oa0J^{n2tud&d*k}F`}P&rOr2YanOeJA6!s~vF> zs6UH7t7nQcK_j>8W>1&ZR-97r{}zIt?Tgb3=NB#o?ZLfEzN-+w-te8VIIGapI?s>9 z`Ji8%i<1i5ZyejNf7&lXJacW&_&kO2dXGY5qV{r?vmfYhx9r2akg6ax+@XH=?5vU*fyLsOARLyrsmT_+-s=2!=(ekbX{argX)K-3hHVmT-TEe zrxwmGoKrZz@T9Wo4AAwzxDV(GUz}VxrEprIC0*5svkTi(PS0pZqm{UrzR_Fsc;7SG z-oaI!XPEY1i_U@ihG-1__gAi78*f}Qhm8i`^ diff --git a/.vs/project-2-eda-sql/FileContentIndex/c3fbdd49-8acd-43ca-9996-522042b6817f.vsidx b/.vs/project-2-eda-sql/FileContentIndex/c3fbdd49-8acd-43ca-9996-522042b6817f.vsidx deleted file mode 100644 index fa9455828f1c72e46870a98f6c814fd307c25fdf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 205 zcmZ>EaTnxZU|7ij0clV=2}nCz#e^2878S>2rIe*4#T4h47A2>~6r~pA7snJ7=yAIh(V(w$IxDwGBQY*QiRl4#Dk5byM6jvA@P};5yf7(h0ZK(wYT{|r!ON>zG5aNQU1qaRq zjT&P306mK_&IH$)MU6(YhtUtlkW3R}rechrOk9Y5^#fT=tck;O-h0K8jY!Py%P;rd zbI!fzyz}oa{K*zB@XNjip3{cJaTU0v{jKfoZKCSrEuosNjJ=cN&mM67*!0KAZ+>Q8 znBl)OarYp<5rLxHaKhFMS=|yd02AsX#HvP!8oL%}x{`(!*L8?0jYqTt+PVd28{*c= ziC$I-TY?QfGrKwhND3lCh%N*jIjYUwIQJmJhzKHz=tW3)`X*WJ`|Cffu6R2^w$i17 zHq)BytGnr#*3wRkOI}mV%kvBtPl!fO4Mnp z|CKVOMA}qp43d-!CXolhYyrtE$ab^)uHLSH5>*LMv?UFWGNq8UCryfb4wg~nf?Z$+ zN&*@==^WdHIcZQNch@6!{-Yoz;TrFUY)#U{h}u-f)qjecRVWUBZ#Yy&hQdkZP;N|s zb0dp6sTX>6e*JqWa^rt!5fv?Xm_{yoO|_#GY&8VYl;}e4VZ@H<*}fEf$@^TCw*~|a z`eRBpJz{3kJ3W`+TEP-_n{H?fhQ&7liLeh+9To6<_~9IB)A0sdAkq1{Hq6hT)+a-e>4p9Te-1?L*nA+m*RW ztqIlb?a)nRlBaKTs6Y;dk75B>oz%li;g-rkz}?=ax>#7TeH`|qTDX`z1L0(Y+z|hj z<>P$5UD_j@X~RB4nU4#5WMy1QK+qCVE(|7xGM5i3>w;A+Fdr{y;e8nv1|*RB*F^Fk zHM&whL7^XS93Fz@f$4l&$l3dM*Im}0Hr%^Q9&4Xb-P_8k*@H;km0L;*5tTHRo&_~k z9Vw+L>~elVN{oQ}O$Su4((K_1~ zegE6kWqkLn74jwLX!Q|2He2fW%|YLIC>Zp&d4m2-(9`Y7%j;f;lQk)-JaW*19Jk+WibH&%CM}9D!_)lg*L}$xR{t0jrGf>Hq)$ delta 1491 zcmb_cT}TvB6rMXfrn}CzTk2|M{;J7DJU%{f}p%YFF_0W5dG0x4@LCcYd$EHc8<<28VCuV;mmyZ+wT0}&yeA+CFQQH9f4wr35 zyb&G7ml)_issJOVG;X!3Ynob82qQ}{yX}aXnGwJ>iaPuaA@z^BtC1~aFRg2z@0183@1SAe920>Eq&WIX-oduaJ6 z+L9xOs{Yg-oBiT_(z%O|HMdw4Bi1|}N$rkcAn0;AoW&g-ZEJ?=#zQ7K6s6n*gutpA@;I{7=-O6B1TUUP&at;@OmKz(dk;WBqqRu0&y10e4FqQ8{2J<)Mw4gG) zxdEuxnoJ3ve`&K1+qsr2G4A!hGDPj3RkQA>mFcpkq3U~Wm+1EJnfkZP`eRGzRpX?# zDciku*W>iUIXc>@bk6;#D9{#Y;mw^@21!r^1;%XI28JzWL(6`Rt_jJ1Z4VPhnYTj0 z=W3<1rrM=eJ3#9?55ua>M0AZp6TV?gEn^Jw#Wd(scY}5z1id*K*xlfH&jBTA?azbB zDpZx6@K-pTdto?S!f*9QMDdz;@$?K{e4VAxA1+8yj9S}4eZ<+oH)emNkFYnzIO2F? krdCRQh6F~+_i?Q(W`x@}Y}^+4$;KlhwBB@c_mwI37bbD}xc~qF diff --git a/.vs/slnx.sqlite b/.vs/slnx.sqlite index f2cbf9fcff8068714d11a56a40df548faf104dcb..acea059b5be31ef0fe6c58e499b19a0229e438c3 100644 GIT binary patch delta 1758 zcmZ`(Urbw77(a*hUMRQse1&ocEoDGiGY8Vr0xeypgyA&973TIfV@uawp073$pwM5v2zNev#Lt2kXr7v*hluSV_QnR7@Gu9D&pviAIP%(KfqqFm?u=(5ke0I%}`4Ed`=r24i5YC zrIe9^=KcHe2&%ZMDtvXi&Gs)w9`eAn!n>wzHRLNq_R8k{2b1WQ-zj@4X;&SQR}4^1 zClf`ru#`!un19LR6UlyrPpH|Xo>Bjk33l(9QM{ee^rfUWSJbP;*`6*cc>}1lYeCAD z+PNf=^pPepk-*%Nsd+V#Fx%m57D+p)v?E_K!FHQSx)D5aWa6pV5&uHkyil4%(uo%f z$&7||GU4{ds(v)8xxr}bwwNQ~b(U*UzXhO|c8U_Od4#EKZ2^Zj3_z~{H2Hb=tcmdvr zE6DRLxd$~tZr_k;jvtS;wbWC)6Fp9uXe1noM25nVkQ-5-fsTj5V`IT+I2arYjkwq& z0$W*F;U4)AgTv2zM%Emu%2=CQ%p@RhhyhWq5Re3iO`p+PL%VDY7F8{j|AZDWZK zk?d~F*oPM?Vs+IX1W~5x%$F&R>lO9AN3A zbrh5MNAYPs6W=2=!+FBEFx#Wt0#h!7Atghw+T-vX>WEUO)ncO^aGBTzFRr4{YXFL| zv|)rpk`vc{sTJ3KQi~C@MJ5VARAe7zGf8KK^Ac5@im;m}~(bC?K;->@W5^ z`<{KxzF;eCj@@K8*fDmYCY+%_#1ITBE(@?m7OBx%XFUz1PQ<5cc#Q~>8}a=W++R-x z$%PLK1jr$pw>4Uw#Afi|K6zLzA-*x9QNt!S zHlOn4_?|LuuF#!qLHPA;tw2Dh_~hnG#!zJH9OLm6HRl-*FUuaup6#s7TyOg{js;laoYvBAtS-BE0F*M+aJvusm z{(vl##B$ht<7ja0rO-j4*C$G3*!65NXPiAgU&Tl{z^^#h1+_Qdbu6;KgwuqmSxZO_8 z7wX!g?U##leQ$4EV;oivdC>iKuLn- zG;*1A#h5>n&l>mlVLS4mO34KC%@&MIaiQGix0B?cV=upUri&ZbdKF3{#75I;R%0eR zYoyc7LOnf{_y`|Mxz<$r?3DB|<1nvIemGt6c3Mb@vT+SlFiFO)Jl zW4_H0qLe)IFaxxg-NLzLN;JkRm#Jo&vHTJx{S478zU6J+N@+RXOm|lU7d@S?HgPV2 z5)X?NJyU6_de{niAw{4H22A5!yn&Y?1%G25r(u(A^8xrCZo|894!%Se+v}_NBgi1L zE&fiGuu1}KgT2#mk$86Ur|=E2Tcl<9ooLwt+-0c=>1}WZv0rGhm#FBmGg6k;;+sER zEX^CDP1N{jm-%vf*nB^oob`&ju;X&@VS9F|`E1<*@rbb1?$&kU2v+e%gkYXb z22Y`NYA>o4gnL3zoY*d+W#b9d&Nhy7^onuwc-^O=7!lgmP3gg9;x*-&eV*HR6Tiai zcojd!EBGER<1%ab)A*bu+66yrqeJmANfoc9&@AzQEDD0+;nK~ei%Tb$$R%*8a_KO? zEyd$_o=sovhGjPY0=^3W!X})8Dcr=b;c-~URTzf-n8HzT!Y6P6U&nxYN4>+ye8#4q zCqb)_hu|E+W~a-wZuV$_)JKHvt6^vBZf?{Ii+)KLIt)

^AULDejPTL}-R?^|)bl zs$pqD*lPsJZmZh%qACva`TFcp*2VDd_>DKj)j9c=v0q9E)}n+W$dCWCDGGeJ^y`1( Czu(IM diff --git a/__pycache__/ui.cpython-312.pyc b/__pycache__/ui.cpython-312.pyc index bf06615ac4458fb4d7b2e9e10b27c7e7783e9871..ba4bb0a39de1567c6aeda3619523728c82e2f8e6 100644 GIT binary patch delta 1686 zcma)7UuYaf9NyWx+xx%wXZMmza!D@L<~**sMjA~mCAMCQ)uy2}X~8Ouo9uYE?cMG& zyJxwAM9`OlQo{JB_)rxDIg$tE5L6JMPeLhJXsmARqYr%%jYy#n>iqU{No)kYhi`r} z^V^x<_sutRUr&5+@#9G4{rHlYM)OO#0*?_@lJY^7U-2v>nCCde@!Zp# z>V1P#ean1%>`bVE^1@x{Ogr8Snu_zt5voeVsN0|EGaeMA*F3wkumg!O$nzx18pqeb z3b8C$C7UHN>i2$v67-{`y zy=rR~uHprogki+1S(@J2DQMMAv#R0kyM_HXQKEInf1A(3PGkT8_927tJ^N(7f)y1L z5~8<4W)ey!dl+mM+&Ue80ij8HHPzR;5t%}Q8e9o2^YpiS7l?!&*^_(2L># z-Ot*O#ZpogS7IIQ5ZB=Har%dNEYQ!^Zt{0!dNfw(8-W^pL@QV9Chr7@VJo&~=nh{| z=ZNOcR(Ef~73XgVfyOnAGJPr4EVeWp#D6J3j$f?K{wPsU{-224ii`FIX} zMQMD|_u=?zpg>cJG5@FX_kqVrf=(xTP!WjH8<9-wgG4VQ7g`B3a!W~xewPGNUGzR{ zfmE+FfJFL)G@WEtd63#WQmFvc$QZyl@CsFdSD9d}lLIh10q`WiA^NAZJ5z#i65t4f ze8T0_Ve@9XFiB3pJY0ZuWt2NjjM>q7prv?#j)! zDQ_I3zf6p}Ip1(RR=u{(qDSew>7oBpVdI*$*TCwgZ-M<@1{b?eJyWEKuq=RbR+HXK z*EXam_dK@g1$H4(g?V8weaRPSt@nJ6P#=A(JF{PntVFlo1v|wSaewC??nGOy-PeiF z4bxH7JMwRGNi4@f$DQEw>|r?0j9nqFb6%uUW}ncOkxpfX7l&D*YnnVFhgrNKn%wqD z0A`^YCukdUCMKGpI)Y-^4HGjVZ9>jM#vEk$>$+tt3+K0M3*%n1YS`pi$a}zL%z5%o zuMv^{l1aC()+mki=g=)W*8gQTd^vO}bmghlz~E1T(Bp9DrNV< zd08tHcYhs+iLlwVgOwe+0EjjGI(#iBwf-+LDwC(OO6qA1&fzlO5SB*1N0O zb&*j~EL=7G2SEf@O>OM zufKmjM56F#Xn!rnZHDo6ktO-hkMyX-ovePv^!=)x&_E;Qe!iH;DTbbf+*KtgP?#^~9`Yp-y zmDoM8hMAa(fO%LM<9WzZn`$~`ECz|BGlZ1cqa3yg_uo#wK*V|RoyaImNyG55DD`XU zgCu+{zDD4c;YoNfmV!6s3S5?pa8u61lS&G{lNaPQ!uR1H5qd&B4TmyM#m2a~D&9}Q zl}sah5e?$UnC)qvVOwx3vzV_B1*eC~xayar4`dCvm7OG?!bWx_ zbT?LoOS#7)cVjBc!1Y{7oZ8~se~_yZ`C4L!jF*H%a+$MD!81yQvn|3~N*?ZTdsW%P zT84+p!UVErhY@Bu_zBZ!wY?Uj)M7_*b`IeMh*mdBKJFkg5h5dCFgw`i4%9)smk z1)7mWzgbNEPmz8eUdZj73l^!##^A)rk@AjM$!40>qW=>5?#Rqp6#9DZlxBIFSu-go z%zKtvTjh(knB8@jdVa|5cJ>~^f9bDmb@3pQ>e~&7x~JjA(m445R!W^f_iv@y&0_P5 zBpyZG{pHa+gcRU!S%u4L5)4&=U&QQq(0!>U%kh1Da?X!m;P>&IZFy}L)b&~TMm-`8 z1VgMm@!US{SXTzslQ6l0k#Wy{+2JB>-Ip}i>p7H5^B8*`JuaX}v}?JZw*2ZIwSL$! zZI3O&&Ab}lEHX>MSLKmGAJ4!K`X*9hl>&Hstn2cMO5FSA|h|oYdfG~|P z!(mlm85{=<62?&&PFJT^${Uq*ghMJ){$1rT@Ir@rf?s@(QLSSd-r&{Abu Date: Wed, 21 May 2025 16:36:07 +0200 Subject: [PATCH 16/31] merge --- .vs/project-2-eda-sql/v17/.wsuo | Bin 35328 -> 35328 bytes main.py | 47 ++++++++++++++++++++++++++++++-- 2 files changed, 44 insertions(+), 3 deletions(-) diff --git a/.vs/project-2-eda-sql/v17/.wsuo b/.vs/project-2-eda-sql/v17/.wsuo index 15ce7500db26ac3a23eb80ff03a162f934d76c84..0535072731b39d013c035b1d837de6e3ec32d865 100644 GIT binary patch delta 1319 zcmcJOOK1~e5XX1EX3e9Ux~4X*w($|G_=-(xlBOjfBoV8PcGW0aT5W4v6`{Uj2tF_# zL=+DuBjU+N1gU}`eu5VTF&;!wy!*I$Q4rBwaM?RT}-nTM>4-fzqfwphayh{Cao zV3B8%Fqz%>DaYbqD>Hj<^_7{Mi20Qr1kO}e^R@Lhy^KlsqGTIX0Qz>%_KaCXKSZu*5-%#6tcX);s#HuWy>u`O_513IxI4+`$!O(5@v1nTvfloy+jPkdB*K3BieF>J0d>7XwRcuENTbQ^%gRN z50mqVL`34YhRTZx1#*kJEn;}T#N;*&lm(=?s#JM`f(Bk%Yi7A_m8<=PvZ(-AU_MzO zC$O|&ogGAVOVw-m*lprztq1JjCRtz^=g6Yx5|*}~#I#eh%&XeMqVqMzqF(s{iC3|- zutyQYGlo-c_&+I^5M^Kb4|V$zmgee%l8u@&pM>fLR8Hk34;5*8suXNG&oX{}$40T>+ zGvW`>IuZGgzyqq{t#?SbKupwB-R@C`BP5_-q?pcXLWo&9;< zHeLtVd!P=c$Tn4qv~5mw`Pw`2RI-hqJDg(dM68m1{Ll+Uqw~aPBOVUvx8QnJ3Ch18 zs@7s2HGFa>WBH&BpA7qPd`RW7;fJ;V1Dx+W_!i_c9giQr&$!9|4rctu#=i#YSU$xt zw`wcj8oCV_S>@*LqwfK8p)g*{%;9}qH)TA3+R2@%kAQ<`!aRKRDd73D4(@P&hP;>k E1o!dBxBvhE delta 1849 zcmbVMZ%kWN6u zo_pRszjGH>goPF1^In0AU@0+6-&%h=b@MxJhgT1Lqh|*gV-}SAIH13}3PPIorwGhN zkyC~OocG8BhXL0`C^;z`VcDs5EzZSoNbKSV;fi!d>_9ya0@8`_@J2-Fr33_1w&Ra~ z$w2!-ADvE-vr;pyDT6~PolYW5k8>ePK8h}dQHEqINzHrV{u7T#D5kqENa;QF>q=bq ziqI*)`7kQ;h_OS@=r7AsF_Twi^yt--N;A>8(F0o=Cxj~0SzJeB5hSX6l4y-jD&OZ` zvn^A$)(lYm5|uSbm~Km^3>f0(+j?G^LTD4EA!-mP!~;BVU9gFtptb{ZHJ-;kMoCok za6LEUzQZW#un;O;j?}sN4z$(H@)78(bHJKMgrDnb4?1j)i_ZkkUKl%j0W9@95ksd; zg~;2t-QbmpH&O;Dx=|4!QRb1-g-u>$@p5j6oyO13&a*jmDo}D4@A62?mY!2W#Th{$ zUggnqqF}`Xw5b-{O<8d9XtzwfG(IpOq2uK~>Hn9l`R0Gip!)9_h(uhbB%aU;vC2*^ zn=!kGZ#rrhz};A(R4o0-qf0_;`UhV52KpsO&E_gDCQ}++vxX`6pXWLgT@3Y#7G*LJ zoU)&vyNpXV#YWi}8-=$^E&5&5$%iw6jb+wRb~+t4SF(~pGz4@Go6~Vz1*opEk`4}A zN07>;c;fXj+a^vjZ@Myr>MB0Why zq^eekE($UG8E%>0?Ui6+^UibQH%i0To_zY3rr8`>_sZ(tt>#8vfnQ;BHm{yw^Au zYq`p0YA>Q=n%+wM=r*Uw*=l68Fy&rR7l+RBuOcP+kZ=A%`ioygBQv(MfOlcRyZEOb zEbmD^6PaDBgp6J;@8>IaEjDwkvYxXa~iZg4pRu7(zeYqTNI zG9G9cZ#gy+c)7JT(Ci!$n9}xa4(F?2IXMB|el4tZN5RvRqr%F$$va%^!(jD__uPgM zoe?yzb?)~q>Azvk-!lu89zl5tUh`wNipZqg?g?tsmfK3A%gA>p`I1TSyT2wdsAv9#< wGvokMGq?Dly3smc#@|&j!$28)Hf!h0s0HEU`O6S{YdE=6N3T#2`zOf$1kHVrtN;K2 diff --git a/main.py b/main.py index 42e4a97..ee2270e 100644 --- a/main.py +++ b/main.py @@ -20,7 +20,7 @@ # Relevant Columns and Type Mappings # ----------------------------- # Specify relevant columns for analysis and expected data types -relevant_columns_inkoop = ['GuLiIOR', 'Datum', 'DatumToegezegd', 'AfwijkendeAfleverdatum', 'Naam', 'BronRegelGUID', 'QuUn'] +relevant_columns_inkoop = ['GuLiIOR', 'Datum', 'DatumToegezegd', 'AfwijkendeAfleverdatum', 'Naam', 'BronRegelGUID', 'QuUn', 'OrNu'] relevant_columns_ontvangst = ['BronregelGuid', 'Datum', 'AantalOntvangen', 'Status_regel', 'Itemcode', 'Naam'] inkoop_columns_to_convert = { 'Datum': 'datetime', @@ -30,6 +30,38 @@ 'getDate': 'datetime', 'Naam': 'str' } +# regels_per_order = df_inkooporderregels['OrNu'].value_counts() +# print(f"Aantal unieke orders: {regels_per_order.count()}") +# print(f"Totaal aantal regels: {len(df_inkooporderregels)}") +# print(f"Gemiddeld aantal regels per order: {regels_per_order.mean():.2f}") +# print(f"Mediaan aantal regels per order: {regels_per_order.median()}") +# print(f"Aantal orders met precies 1 regel: {(regels_per_order == 1).sum()}") +# print(f"Aantal orders met 5 regels: {(regels_per_order >= 5).sum()}") + +# print() + +# regels_per_bron = df_inkooporderregels['BronRegelGUID'].value_counts() + +# print(f"Aantal unieke BronRegelGUIDs: {regels_per_bron.count()}") +# print(f"Totaal aantal regels met niet-lege BronRegelGUID: {regels_per_bron.sum()}") +# print(f"Gemiddeld aantal regels per BronRegelGUID: {regels_per_bron.mean():.2f}") +# print(f"Mediaan aantal regels per BronRegelGUID: {regels_per_bron.median()}") +# print(f"Aantal BronRegelGUIDs die slechts 1 regel hebben: {(regels_per_bron == 1).sum()}") +# print(f"Aantal BronRegelGUIDs met 5 gekoppelde regels: {(regels_per_bron >= 5).sum()}") +# print() + + +# regels_per_guliior = df_inkooporderregels['GuLiIOR'].value_counts() + +# print(f"Aantal unieke GuLiIORs: {regels_per_guliior.count()}") +# print(f"Totaal aantal regels met niet-lege GuLiIOR: {regels_per_guliior.sum()}") +# print(f"Gemiddeld aantal regels per GuLiIOR: {regels_per_guliior.mean():.2f}") +# print(f"Mediaan aantal regels per GuLiIOR: {regels_per_guliior.median()}") +# print(f"Aantal GuLiIORs die slechts 1 regel hebben: {(regels_per_guliior == 1).sum()}") +# print(f"Aantal GuLiIORs met 5 gekoppelde regels: {(regels_per_guliior >= 5).sum()}") +# print() +# print() +# print() # ----------------------------- # Cleaning and Preparation @@ -42,6 +74,7 @@ # Clean delivery receipt lines cleaner_ontvangst = DataFrameCleaner(df_ontvangstregels, name="df_ontvangstregels") df_ontvangstregels_clean = cleaner_ontvangst.get_cleaned_df()[relevant_columns_ontvangst].copy() +print("Aantal rijen met lege BronRegelGUID:", df_inkooporderregels_clean['BronRegelGUID'].isna().sum()) # ----------------------------- # Deriving Expected Delivery Dates @@ -57,7 +90,9 @@ # ----------------------------- # Subset lines without expected delivery date items_without_date = df_inkooporderregels_clean[df_inkooporderregels_clean['ExpectedDeliveryDate'].isna()].copy() - +unique_orders3 = items_without_date['BronRegelGUID'].unique() +print(len(items_without_date)) +print(len(unique_orders3)) # Map number of deliveries per BronregelGuid to GuLiIOR delivery_counts = df_ontvangstregels_clean['BronregelGuid'].value_counts() items_without_date['DeliveryCount'] = items_without_date['GuLiIOR'].map(delivery_counts).fillna(0).astype(int) @@ -92,6 +127,9 @@ # ----------------------------- # Subset lines with expected delivery date items_with_date = df_inkooporderregels_clean[df_inkooporderregels_clean['ExpectedDeliveryDate'].notna()].copy() +unique_orders2 = items_with_date['BronRegelGUID'].unique() +print(len(items_with_date)) +print(len(unique_orders2)) # Map delivery counts again (already computed above) items_with_date['DeliveryCount'] = items_with_date['GuLiIOR'].map(delivery_counts).fillna(0).astype(int) @@ -149,6 +187,10 @@ # Actions # 1 I will try to hunt down the reason why it still happens sometimes and try to fill them later # 2 I will remove the years 2021 and 2022 from this evaluation to minimize the impact of that since its older data this is fine for now -> maybe when i know the reason for action 1 i will add them back +# Filter regels waar BronRegelGUID niet leeg is +# Aantal unieke orders + + # Define years to exclude years_to_exclude = [2021, 2022] @@ -183,7 +225,6 @@ - # Create the UI instance ui = UI(items_with_date) From 145462dc4100ced9c502d81aeb33e7486a670e01 Mon Sep 17 00:00:00 2001 From: Jan Dirk van de Bijl Date: Wed, 21 May 2025 16:38:48 +0200 Subject: [PATCH 17/31] merge --- .../17.14.670.39694/CodeChunks.db | Bin 73728 -> 73728 bytes .../17.14.670.39694/CodeChunks.db-shm | Bin 32768 -> 32768 bytes .../17.14.670.39694/CodeChunks.db-wal | Bin 123632 -> 28872 bytes .../17.14.670.39694/SemanticSymbols.db | Bin 53248 -> 53248 bytes .../17.14.670.39694/SemanticSymbols.db-shm | Bin 32768 -> 32768 bytes .../17.14.670.39694/SemanticSymbols.db-wal | Bin 201912 -> 41232 bytes .vs/project-2-eda-sql/v17/.wsuo | Bin 35328 -> 31744 bytes .vs/slnx.sqlite | Bin 90112 -> 90112 bytes 8 files changed, 0 insertions(+), 0 deletions(-) diff --git a/.vs/project-2-eda-sql/CopilotIndices/17.14.670.39694/CodeChunks.db b/.vs/project-2-eda-sql/CopilotIndices/17.14.670.39694/CodeChunks.db index 0ce1801b15f984af2d35f94f7b1768a461807c21..a88c3105b6e1f980be23ba2b7eb1382fd4fc64bd 100644 GIT binary patch delta 781 zcmZoTz|wGlWdnltbblfSz=y#aY<2XdTI_tk!Q0QP?0D|kt|q|Pik3eQDRx$60I`NjC^_>_6Oc}=;_a^L5>$)&@2gR_^@p5q7a zL!O`93Ovm`Ucf*&!olLk0t|tJn))JO8&N`lan9s=En|7G1UAnz&h%md`W>iQ2CN3d znT*qdS%6*#Do_P0!0mO$sX;72p957w!WyT~8K(fD2%A2K8a&n=*{^mYyQxPU6 QtI0?0?MG}7co$s(0Ktd}B>(^b delta 478 zcmZoTz|wGlWdn2QtCJ!qC#p(9pujWb;O;6O62l5iAVlKx_0juayaB2D-GKk^cyH zG*>-;F25LG9iK99H?JwzS?>FMH+diO{Nz^PY3A{QK%h%?I9a%tGb&HMsO2ky>OMvv z?&S=J5E5{AF?s_f5E^& H7hM4WsM38W diff --git a/.vs/project-2-eda-sql/CopilotIndices/17.14.670.39694/CodeChunks.db-shm b/.vs/project-2-eda-sql/CopilotIndices/17.14.670.39694/CodeChunks.db-shm index abf701091bfa755c9b6173cf62176d4bf5a0aa9e..a2b5300db341ec50380dad49dea0671b4d7b8065 100644 GIT binary patch delta 155 zcmZo@U}|V!s+V}A%K!rGK+MR%AONC;fH;KV>$(FzpS6C?H1d(298b1sEgPCjao}+swrH%NPKfVlU1B delta 265 zcmZo@U}|V!s+V}A%K!q>K+MR%ARq^%g@Aa&`mf<91s7VV$al}vF)p3IVWvLs3hDn7 zNL3Fs3JgHz{zn2(;feLC6Bn=m5ib)^gc*ogfS7gSL}7?9esbXgS4OUl3;!}Pa)Zdp zKfL+WIT$z@co_H?_!$Hk1c6==W)NWzWe{T!XOLi!WRL=SRE9y8L2l#1lT3`f8y9jK F0sz|zNW%aC diff --git a/.vs/project-2-eda-sql/CopilotIndices/17.14.670.39694/CodeChunks.db-wal b/.vs/project-2-eda-sql/CopilotIndices/17.14.670.39694/CodeChunks.db-wal index fb523ef5381ae985e590bf59521189880ca9ddaf..271bd0eb05d602deedf014fd62f2000cbe65b006 100644 GIT binary patch delta 247 zcmexxl>Nj*Mho+Lwk8JMM-mJS0t_JVYo?Kp^z@L`ijs4ATf(@{0)<$BSO_M*HDkl{ z6^B=PZ2xeH@d!Vo_2j?&&H^yWJe%HMxAw^eLM3fbB=@#3ba|M6e*u+rMUmXJ@u;<$ zq2pPoq#KH)lUQ%%*^{yxppxz=k}73{D5X$TdRv?Kvas7GY%YvRPQjqQX4 zL?S0!rHS>2P}x95p#IZI+h{>!lvY)%4Z;8kK}CmJ^^a;4MyF}r)G8|dqwO9W!hGOp zI&+n-ySF9&z~FDb-`Dfl$@Afk+TrpMsp|3rl60?>dptO6*MWsKeFxL2IkjicS2@K~ zviLP+;(70sqt9Onq~G)@pG&fGOj3?1mzDRFvD|BUAbzI0c|eO zVqh+?clnNMZFBcI$OVeI^Be*QAb)&;4@iv%A*J zCKoWnI@1FJ2q1s}0tg_000IagfB*u;1hlz8*uY%i+pa1S+ z;NGuKbG?8m7MdmyKmY**5I_I{1Q0*~0R#{zBB0F$UNA5hnE8ju_ER4{w~t()2s=+9 zfB*srAbny&6nC*o^Hr;9o>N~!Z?JkuYFccwEbwNs7VD7R{Kswh`cO1U*^ zznTig!%;C!zO~lT3Q=obDYaI`dlHFcA{9|nH=65ch{f_nTSo5}MFXW2U8$;(EunDF z9gVh()R$1Rqa!&O4u!kaj*ehov^ty|%ycEA#G@TDv|0*CqrSiEfdP9d8Osqjk2^&=Y+kXXk2tuJ5nc0CF#_= z#oFlnqOn9s>}>I6*SiEjmCjceZoHe7{=50|yz8Atm(B0#hI>R=ht6)rM^}gVfa{Nj zRWb0Ua#5mIXNkgr3(MU$^(M!6QaeBTBeE>*)Y*18riS8uNip>XyXb6@&X*TXJyGhm zi8quPUiZedHvQ99cSbYO&UhlFiZ{1C_w9Qk7dSV(J?&}#_hz@}*V0tyb(?b1^R#Z?&AQD5csRhiBU_+vM!LQc6vJ$hYljm9v3T zYEF8_x4l$?-=s%P>7OMuSoj0|oq>U^zRtc)=g2n?uhIvP%h~BReOqj@tYLs@cs%7@HPN{s0wz_)z4xKIDic!4cV`q5@F4Akm`oHR} zfWW<8&Q|GcxlpxuKHxICYW~#dY>=}KoxK(w=aYl?Y?8CJIx7@TTUhP3qjLFoQaV4k z;}QE#olQ@i=aYl-206P(=c@}xo~U%&xOT(K=0`27x9@c6dlP7K0Xg@*dmgAHnzSCmQ-i009ILKmY**5I_I{1Q4)}fc8Fu19x{HfkU`WnaBm&PrJI5CweY% zy?}Lg6O$r<00IagV08hm7bt$;1J?@_-eAD>0tL5RaJ|6I8w$8y;D6mhRrrtRTrVJQ zSIWP4Onkk-tz4jf{N+c_&sN5{Ucl-Cl{t`%jV!n0NK*3;_fX zKmY**5I_I{1Q0;L>H^wa;0*(FfsdV!J@83G@+!H2)%O_lBY*$`2q1s}0tg_000Ib@ zS3sK!95*l*7#wOlv;DVMe?%@|-qoiw1Q0*~0R#|0009ILKmY-&3utqJQwHV&hli$J zYkp>LfLy@pdyM%JKmY**5I_I{1Q0*~0R+q|pv?vTY+x?1pkZ@cT~kGbT)@1mPiF`q zfB*srAb}+SFc)}g{Pn}jUb*iKxq#L881o~500IagfB*sr UAb|+>F^4FF7<(!=cOd@)eh2QWTyOabc=fsZc&qrdd6x4?^S$N_<>KI6 z!@iT_2YV{VLXJQ#ug!)6hV1Nt&0?$!jiQqkW%LzO5=#ei&%I@1N1GIw| zVMkDEPGU)BD#HB4QqS)p&5}S>(jZkDU_1QtO3D)R(u+%qQqxm&5Q-D_apWA9S6$SQx6ohQ`a?VGUAb-R_jN=C*{}JwJu6q7lelfl}K4so+UQ@2K z-1qrza_Mm1;OynJ=lH?@j9{Q<8L%46D4Q0{0t`x^0#!mmIW>r-Q5B?80jv^tDwqOv(=9e8D{q!Y$;pNK c`jZvpB{nb9ju0_pvf|=i&M=Zg!8@u20C{Ic+W-In delta 579 zcmZozz}&Eac>|+>KKFD6LC#PP?m+$p{0`h#x!&>>@al8*@mBF^^DO6)=6lWM#Tm-Q z!MTP*9|Si$D*R{X;GWK?#?a` zMzAoHPga!CpIk4+#Tt65cFPXX3|0)q9Fq@<>uo+GEx^R;4>SeL zova|w0yIjLqw<5UGZza(HQ0=JxjU?(f2zc6COgO<(GldTXXHP^9nDqGpUW@CSI4K! z+s$jrb(Z@+-%Z|!JU_V=c$#^0suMc#u#O7t%5h6y6{#-y!gU@Z=Q7r&$5}q&s diff --git a/.vs/project-2-eda-sql/CopilotIndices/17.14.670.39694/SemanticSymbols.db-shm b/.vs/project-2-eda-sql/CopilotIndices/17.14.670.39694/SemanticSymbols.db-shm index 4ae7df6d3ba6d189c7e82c4f371c49a0d13a8753..37928029c2edd2a8bdc72916c13ad988d8c687c4 100644 GIT binary patch delta 187 zcmZo@U}|V!s+V}A%K!pgK+MR%AONCyf%tWXQW)p`pOZzNcieh)xQ3f;!Tkl97B;U) zRSz@@3_#}oM*>jciS@FR9T<5geqaGoESp0ZSGY`0U|hn=$iU3NzB!QbJ1Z{}0}BHy Q0~-Se11AF)Q0TWY01%Bg9{>OV literal 32768 zcmeI)OHPwf6bJBsq16^e%exA`5P3f*%pAJ`HbTO7*n(pd2aX&$AOTjulo2a{`;pc( z4Vs!TY5bk!9~=wWNJe#>tYWKfcelE^iKh9beRc&VT*#?d<6K zbMxf9^N;6Csr#tv-u6Xz`}Z(bX7!T2ad2L(2luM8RgQPRHM;BGes6r}zdzOc+kRDV zuvY)Nd=>-<5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5Ex3JRywCV$+Nu3%gkgpbD7UVUS%oo zvYby@&t|r>KU6J;2#l6Md$g|WwgetgV61eqYUF8}X=NhMOV6*Vbn-fjd6Tz!pAY$% zm8@nh8`;WE=?}J-s)v^#F!}=1qyGdiAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly fK!5-N0t5&UAV7cs0RjXF5FkK+009C7{u_Zi?2Ij$ diff --git a/.vs/project-2-eda-sql/CopilotIndices/17.14.670.39694/SemanticSymbols.db-wal b/.vs/project-2-eda-sql/CopilotIndices/17.14.670.39694/SemanticSymbols.db-wal index 17f27ba748bc581336615df098b8301261fe559a..6cbf3ad30ef7595d93d8c89cb03ffd9f42a11560 100644 GIT binary patch delta 580 zcmdn7l4rspCJXa=wk8JMM-mJS0t_G^^1S2LtHU+i>+@f!7hP%H1{7ifVqTayzvjuM z+qCXTO+T=SQAvn1l#7FN4f{@xAMB|d3poP0yfzjZvQJ-|$+(rNoMSR$wCQ%i-Hc(3 ztg&0Fp6X1FiJH&aV#UHxKKWvd{$%}VF4owp>iYlN_5L$eu?oPfXqprDdy_@u-pv65 z|M;bttkInime(1WdZx^c+D=%@!W#S2=eYLd5Ai49j>*-CnZD=Mxt~zS*Z>{Ff*c-p z_8)jTlh@sV%DbY=ThEvx?Cb9q43&37_l)%0Pc!42qD5%pnT&^QD4w~t@>9Q7so{O7 jW8Bdldv2Y#_P#H?{k9XnV2F01KZTB literal 201912 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 delta 585 zcmZoTz}j$tb%HeGxrs8)jOR8ctd(XmHlEBcqr`7&Wny7vXwsy?%F5u}B0IU!UV3x1 z%yt9TyoMc%7$=MSHbPl*ePtl5&HH?V80*2(!dz?&;tZT@rI~sKl^l0xfCa@l*%;)3 zfRyGDv1`f8A#F9jq6%s6L42nQ4$vLTsd8Gw#Da3t=F~mk}PW>_Dy^BWh@}0mZZ!K|u&| bg{%T2BIH%PWTxlk7o{>UYIpzu_K&JF From 2bfbb93ac67f500857c5e7745e00b7b182b6f8b0 Mon Sep 17 00:00:00 2001 From: Jan Dirk van de Bijl Date: Wed, 21 May 2025 17:23:22 +0200 Subject: [PATCH 18/31] mooi man --- .vs/project-2-eda-sql/v17/.wsuo | Bin 31744 -> 39936 bytes __pycache__/cleanup.cpython-312.pyc | Bin 6439 -> 8647 bytes __pycache__/ui.cpython-312.pyc | Bin 8255 -> 9702 bytes cleanup.py | 105 ++++++++++----- main.py | 202 +++++++++------------------- ui.py | 154 ++++++++++++++------- 6 files changed, 237 insertions(+), 224 deletions(-) diff --git a/.vs/project-2-eda-sql/v17/.wsuo b/.vs/project-2-eda-sql/v17/.wsuo index 1a075ad62cfe203e8a085ff6acce4d593c70dc92..43950a24dc96f8be1729a1bd7b760813b98ed9fe 100644 GIT binary patch delta 3782 zcmeHJdrXs86#s5%p~V(Up_I}x9%4~}($aRc#yJ#&Je0=-aSD?1Fg_3w3rcnRsms(v z7wuUV-P6Z(k8FvqTQts15Voo4P`1TC7UDE6x<9sTi7w)l?VOLc*4Lb7B>u6J{Ce*F zefM$Bz2}@;{yO6iiMCE)BMv;1DT>(X9e_$~j$MIHhiwdAiV`gXJnrMbJ63M?% zpe!jR^b~f|7`Q`TVqw6QF?uudniHS|I`vjZh;7akXivHHcV*4gvLI zyCMx6wADD&)8T#bv#bby7w5{Nus;?txUH7to?4 zwDU+@NQ@vW$ttpvJWwELj0`ndN$tC>9E1jO_8n$wZ<{F*%tV8GJ>eUbdvJ+&5PK1a z5wJbH)cF}Ujv_use1RZ)I#72ajv=}b-H0y{Um?Cm97mi$oJ8~>XwGTW-ynJsXM9{A z>Tlsf_(6|6UrN_N4hWa##?HP7aLbFO{;MILwZk=ei97_qih_o-70{|Ek<)BCCjTn( z<=7#D84xTB=@&y;X=85UUYu z5Io${<|zb6{P`*bK`XSz6)PC!AmyT9G-Y}Yb_@!*5mzh?3*y10+w9TmL7$kaV3aas zuzwPC7{tu#ZMPONc?$BB5dLp+id*ap;!#eK2j`h!NgK2((UN2w@f5;85w0pr6ikZ@ z)r$b@ibPhAOk5Bvd5?zSefBWu)|e#1eZqjIM^2@U=918Ea5c7un)kV}6o|?Eq8${II&l24_=iGxQgwu~lHscR*%QWH9S3DNJPHk=*3W z8Rg^6Sq|u&p6Pvg`ig(OfFj(thq1Yx*@yg<;8g3F-5HNtQmsYHVS6AvmWq2{!6!=EfYCf0C zjpwSk3apy+@X@0NNo7yNlvLHwu?KE-QmUF|(?x_fE^*d3v;YwnB;tUdGXc)bjAP{L z0_dnr5nP>$e(K>;WgB~iEbzuWpB}H*4-AXXjh=r$PKgwr(?Jw_gWYb#_`NZPOt;u~wZ zH@MCF|GarF>rnRjIl78p5BC@C*cUdk@04OGUv9ZYy3B_F delta 2292 zcmcgtUrbw77{BNC7J8vTEv1FFK*t1%K%rRvI8jRm1(~5GBfyXi*b0h6)KNeX-PH%h zWDjt^YKSlD)XcpY%q4L#Bx2@^nrw@&i)1dE_+)$lGfV)#@Alq;G2+akC;9c9?|063 zzQ5;Iy249$*g_){KYgT%&s>hjR!)9%lesvKTl2we$}IaFHu>X%6AAbsPzcq$nDPM% zZ*wqfc%7Mm39hzGB+Q5u#4e63oGsdV2jx^;+ceps&FMJX5wxG9aS#<6GRidJ0i4U> zvhbMLs4-UXi`N$igEBvsdE@rK@ig^fTbg!>fHT=7A2Sg5X*~Ie^e*|8jnI9{)p*(? zy}R`>ZQer1KScG95UT1@S_GQ2Ru>2RWpkTgKsuSzaTM$sFl+7*$P=As&%&lTY$B)m z{qz`2W`s=?6Xje#Z9aYTBa&B(Rb7<&!#0!XXhzUdtF^QN$Oe0=I%phhFFCpd-FC$(-oJUBo zT^ve;QPL%NklBl`Bx0hTr5Y#6SZM^l;;Yj?L-Jh&4%qGdS}3H2*7~qfblu1bi1|Kn zm>z>jRixhLU^_1)GHM++Nty;5g-NHDV`?{@PYI$Rror#d4*e>Kxh{Z|Z2^m25gGLx z^`5Q(8}^8an)UF0GUmVv@qS|ik|x+HZl{2amr+`WnUe5bg{{{3&tadOVP2SVwO9I?+9}`&-lKFcZ84&adFjw40IfPiY`){KNi|pVql&!*VnTb9@;@dHW-+HAAX&;8R?BY2%SAXumv2fR$Z;Pq{5>;RwxhTz+g@eNFZJG z^0M`+$k8|85JC?QHas`}V%Vq}R<_Dhc?eeKLw@{><(BL0>XR$MJa=P$`6XNN4lLML zOdh;xf9WCSh?vMD3RgFwSE{s?twWPH22XhXu-;;VU%aL1)fLrqp`o#f;jszul--i! z(mhy8S9=0Yll5Jys4{cv4VLII>lMLDe6p`GaH{D3jGOmoT=q$#7Y{H54{!QhaENy+ zYtdjl*5ZqJjF#hCuyDWuWGv>dJg0A?#}=^OdIxzt#Eo*}$$p_HI}eM~Wgvy45TA0(kqTHiVS`}A3vwivx#88w zCfx2U0I9zb8hf2=1dsQ?wN4u&#UA*iw+%0< z*b4lVN4w|<{JiL9QbIj!H4b1GkHVKVwJ`3tD9ul=rvJa0^d6W=Oc5pSUbA@KF^;K^ zVW{dvQ7Q&`x*NJX_2eB?1vgl`ir~Aqoa}<0 ZT==bPDVg?Ax106hPHRdJ7vhd{e*koPfsX(H diff --git a/__pycache__/cleanup.cpython-312.pyc b/__pycache__/cleanup.cpython-312.pyc index 0969f0c527619111f3de9a05c0d1fb4515f1f3a8..639986fb6aab9df234d9c2a7e87d0896e674e464 100644 GIT binary patch literal 8647 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 delta 2741 zcma)8TTC0-89p0_ntE`&aG^Rhi>%q7Xb z^ho~C?fcLFpELjW|Niso`DW)|9S$qN?Sr2;-TIw#(OE&6ui)t<$WrJj>p?SC^Jo@C zDS{y_OXC@x9|O<_@XWM3%bM_v*_{nhAzE}}MXRvWek6*w1xb z(S+QqL}N-)MUUxPDu%wK#p*h|`##t#0`B6;+KE~e8e{J9IZr9>EV;_S7_)9JN0&`v z2n>M-R3t=0o}9-THu20xOcY?Dl20TE(2iOe;h>wWc(HgNj)5&zJH zzOh$%|ArA}1JSHGuvw$^yU>c=jXt&eOzcM%^p(BF_8W||8n`3qORKkrEyKuua>3V{ zMs8`ehZM13yMZ-r|CeUTE1DgY8@=H;LD{e`p3*GWOYdKMoVs_8!5o9lXu{&HuaQ@a{Wa@FA+CZg z+*|QGz2!srt*d}my6a;#fW;KZGR9+9IscUbcT877h6)u$U?lJCJRsH;1 zb8pR`TCoSlI>*oD3W}#L&Gbz7%tWW7D+P@?mv_=R;hY*=cLj5<(oNdo2~mM^W&l(l-3kJGanA0#-+i}x zxukyG-tZ59?SysQH2zM`<(afhSf;|W?pb#B!U8*+SuQ{Pnd=D7U4gnS4q!_EyV#HO ziLIpO>VN;^1)j?1fWi;vDw%XlIHr0xTs4~}yzoLL#D3Zy_I8!fOC{x9E$q@!3QOGz zaehxp(Uh2u?Nv97CFzyax9tdRq^VCV0kr7-J@r%cjm?YH(i1OJltGF;VA~}rH^LJF zR&rSmlawb^eVwFoAwi%(Ssi6Xk4io0-Lf+OZW1<)m|jc6Hp0O6@~TmiOov?;443yw z2J6W(BQ%{9hD#%aR0jEkj07bif4}%4SdKvk|3dse)nEfzH42oG%(*-~PZx8ZEypoL zr*7-iV54r9?j%$VS4*8wB~+CROiD7Yn`9}YnlW&f6u1DbRkQ>ncu8e-JF2S3MJ%j(qNGoG{}ExcF)WTw17FD9%T~ zmI+igZF0a-i2mYhuEt;fC)Brk(HW!IeJq51+*1!rq)-_?$UHsCgbyO2@(Bk*JbBC0 z{_bNW@qMqP={%IuNiinDCcLfFk&XwH@d_%bP^7GW;y>n$;<0)Hi#)+CfmX_iIs&a_ zun;fe%xFAl7eVc+6$mYjF|t4^HC8Kd-_P95j5(o`XwbT4@4ru{aR^d`+EL;I{2>v0 zISrDUW_&-LN#aid1w6+!I1$s}n`G;4BD#qQ`~qyzcD8n^ zd8U23eG}l}f@*Y2+BUFXWotKmG+QxsdK=(w)9hfosoC&0ApMp<$aYW*E!%+fn?I%s z*f6!=*#@M4evoEQZJR09n>SAk;=e;&{(l~9Lhl{$lwZJ$``*1Ux2Kf&KvFshFQb_Q PWd%1V%KID;X@LF*T7%id diff --git a/__pycache__/ui.cpython-312.pyc b/__pycache__/ui.cpython-312.pyc index ba4bb0a39de1567c6aeda3619523728c82e2f8e6..d8aa87af6a67dd92e65645a829ce20ea5d9ed341 100644 GIT binary patch literal 9702 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 OcWrdMfd2)ZI25e_ literal 8255 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 UH@7{YHhu5nX?o}}g;F#3Z*m(ucK`qY diff --git a/cleanup.py b/cleanup.py index 96b66dc..aa3b4b9 100644 --- a/cleanup.py +++ b/cleanup.py @@ -4,25 +4,32 @@ class DataFrameCleaner: def __init__(self, df: pd.DataFrame, name: str = "DataFrame", log_enabled: bool = False): """ - Maak een nieuwe cleaner voor een pandas DataFrame. + Initialize the cleaner using the input DataFrame directly (no copy). Parameters: - - df: De originele DataFrame die schoongemaakt moet worden. - - name: Een optionele naam voor logging/prints. - - log_enabled: Als True, worden logberichten geprint. + - df: The input pandas DataFrame to clean (modified in-place). + - name: Optional name used in logs to identify this cleaner instance. + - log_enabled: If True, log messages will be printed to stdout. """ - self.df = df.copy() + self.df = df # Direct use, no .copy() self.name = name - self.low_info_cols = [] self.log_enabled = log_enabled def _log(self, message: str): + """ + Internal helper to print log messages only when logging is enabled. + """ if self.log_enabled: print(message) def drop_columns(self, columns: list): - self._log(f"\n=== {self.name} — Dropping Specified Columns ===") + """ + Drop specified columns from the DataFrame if they exist. + Parameters: + - columns: List of column names to drop. + """ + self._log(f"\n=== {self.name} — Dropping Specified Columns ===") existing_cols = [col for col in columns if col in self.df.columns] missing_cols = [col for col in columns if col not in self.df.columns] @@ -36,56 +43,81 @@ def drop_columns(self, columns: list): self._log(f"Skipped (not found): {', '.join(missing_cols)}") def apply_dtype_mapping(self, mapping: dict = None): + """ + Apply data type conversions to columns as specified in the mapping. + + Parameters: + - mapping: Dictionary where keys are column names and values are target data types. + Supported types: 'datetime', 'numeric', 'str', 'bool', or any valid numpy/pandas dtype. + """ self._log(f"\n=== {self.name} — Applying Type Mappings ===") if mapping is None: self._log("No mapping provided.") return converted = [] - skipped = [] failed = [] + skipped = [] + + # Only keep columns that exist in the DataFrame + valid_mapping = {col: typ for col, typ in mapping.items() if col in self.df.columns} + skipped = [col for col in mapping if col not in self.df.columns] + + # Convert all datetime columns in bulk + datetime_cols = [col for col, typ in valid_mapping.items() if typ == 'datetime'] + if datetime_cols: + try: + self.df[datetime_cols] = self.df[datetime_cols].apply( + pd.to_datetime, errors='coerce', utc=True + ) + converted.extend([(col, 'datetime') for col in datetime_cols]) + except Exception: + failed.extend(datetime_cols) + + # Convert all 'str' and 'bool' columns using bulk astype + astype_map = {col: typ for col, typ in valid_mapping.items() if typ in ['str', 'bool']} + if astype_map: + try: + self.df = self.df.astype(astype_map) + converted.extend(astype_map.items()) + except Exception: + failed.extend(astype_map.keys()) - for column, target_type in mapping.items(): - if column not in self.df.columns: - skipped.append(column) - continue + # Handle other types individually (e.g. 'numeric', custom dtypes) + for col, typ in valid_mapping.items(): + if typ in ['datetime', 'str', 'bool']: + continue # Already handled try: - if target_type == 'datetime': - self.df[column] = pd.to_datetime(self.df[column], errors='coerce', utc=True) - elif target_type == 'numeric': - self.df[column] = pd.to_numeric(self.df[column], errors='coerce') - elif target_type == 'str': - self.df[column] = self.df[column].astype(str) - elif target_type == 'bool': - self.df[column] = self.df[column].astype(bool) + if typ == 'numeric': + self.df[col] = pd.to_numeric(self.df[col], errors='coerce') else: - self.df[column] = self.df[column].astype(target_type) - converted.append((column, target_type)) + self.df[col] = self.df[col].astype(typ) + converted.append((col, typ)) except Exception: - failed.append(column) + failed.append(col) + # Logging results if converted: - self._log("Converted columns:") - for col, dtype in converted: - self._log(f" - {col}: {dtype}") - + self._log("Converted columns: " + ", ".join(f"{col}: {typ}" for col, typ in converted)) if skipped: self._log(f"Skipped (not in DataFrame): {', '.join(skipped)}") - if failed: self._log(f"Failed to convert: {', '.join(failed)}") def rename_columns(self, rename_map: dict): - self._log(f"\n=== {self.name} — Renaming Columns ===") + """ + Rename columns in the DataFrame using a provided mapping. + Parameters: + - rename_map: Dictionary mapping old column names to new names. + """ + self._log(f"\n=== {self.name} — Renaming Columns ===") existing = {k: v for k, v in rename_map.items() if k in self.df.columns} missing = [k for k in rename_map if k not in self.df.columns] if existing: self.df.rename(columns=existing, inplace=True) - self._log("Renamed columns:") - for old, new in existing.items(): - self._log(f" - {old} -> {new}") + self._log("Renamed columns: " + ", ".join(f"{k} -> {v}" for k, v in existing.items())) else: self._log("No columns were renamed.") @@ -93,8 +125,17 @@ def rename_columns(self, rename_map: dict): self._log(f"Skipped (not found): {', '.join(missing)}") def normalize_nones(self): + """ + Replace string values 'None' and 'null' (as text) with pandas NA (missing values). + """ self._log(f"\n=== {self.name} — Replacing 'None'/'null' strings with NaN ===") self.df.replace(["None", "null"], pd.NA, inplace=True) def get_cleaned_df(self): + """ + Return the cleaned DataFrame. + + Returns: + - pandas DataFrame after all applied transformations. + """ return self.df diff --git a/main.py b/main.py index ee2270e..8278b23 100644 --- a/main.py +++ b/main.py @@ -1,27 +1,26 @@ # ----------------------------- # Imports and Initial Setup # ----------------------------- +import pandas as pd from eda_service import EDAService from cleanup import DataFrameCleaner from loader import load_all_datasets -import pandas as pd from ui import UI # Assuming UI is in a file named ui.py # ----------------------------- # Loading Datasets # ----------------------------- -# Load all required datasets; exit on failure try: df_inkooporderregels, df_ontvangstregels, df_relaties, df_feedback, df_suppliers = load_all_datasets() except Exception: exit(1) # ----------------------------- -# Relevant Columns and Type Mappings +# Constants and Configurations # ----------------------------- -# Specify relevant columns for analysis and expected data types relevant_columns_inkoop = ['GuLiIOR', 'Datum', 'DatumToegezegd', 'AfwijkendeAfleverdatum', 'Naam', 'BronRegelGUID', 'QuUn', 'OrNu'] relevant_columns_ontvangst = ['BronregelGuid', 'Datum', 'AantalOntvangen', 'Status_regel', 'Itemcode', 'Naam'] + inkoop_columns_to_convert = { 'Datum': 'datetime', 'DatumToegezegd': 'datetime', @@ -30,188 +29,107 @@ 'getDate': 'datetime', 'Naam': 'str' } -# regels_per_order = df_inkooporderregels['OrNu'].value_counts() -# print(f"Aantal unieke orders: {regels_per_order.count()}") -# print(f"Totaal aantal regels: {len(df_inkooporderregels)}") -# print(f"Gemiddeld aantal regels per order: {regels_per_order.mean():.2f}") -# print(f"Mediaan aantal regels per order: {regels_per_order.median()}") -# print(f"Aantal orders met precies 1 regel: {(regels_per_order == 1).sum()}") -# print(f"Aantal orders met 5 regels: {(regels_per_order >= 5).sum()}") - -# print() - -# regels_per_bron = df_inkooporderregels['BronRegelGUID'].value_counts() - -# print(f"Aantal unieke BronRegelGUIDs: {regels_per_bron.count()}") -# print(f"Totaal aantal regels met niet-lege BronRegelGUID: {regels_per_bron.sum()}") -# print(f"Gemiddeld aantal regels per BronRegelGUID: {regels_per_bron.mean():.2f}") -# print(f"Mediaan aantal regels per BronRegelGUID: {regels_per_bron.median()}") -# print(f"Aantal BronRegelGUIDs die slechts 1 regel hebben: {(regels_per_bron == 1).sum()}") -# print(f"Aantal BronRegelGUIDs met 5 gekoppelde regels: {(regels_per_bron >= 5).sum()}") -# print() - -# regels_per_guliior = df_inkooporderregels['GuLiIOR'].value_counts() +ontvangst_columns_to_convert = { + 'Datum': 'datetime' +} -# print(f"Aantal unieke GuLiIORs: {regels_per_guliior.count()}") -# print(f"Totaal aantal regels met niet-lege GuLiIOR: {regels_per_guliior.sum()}") -# print(f"Gemiddeld aantal regels per GuLiIOR: {regels_per_guliior.mean():.2f}") -# print(f"Mediaan aantal regels per GuLiIOR: {regels_per_guliior.median()}") -# print(f"Aantal GuLiIORs die slechts 1 regel hebben: {(regels_per_guliior == 1).sum()}") -# print(f"Aantal GuLiIORs met 5 gekoppelde regels: {(regels_per_guliior >= 5).sum()}") -# print() -# print() -# print() +years_to_exclude = [2021, 2022] # ----------------------------- # Cleaning and Preparation # ----------------------------- -# Clean purchase order lines cleaner_inkoop = DataFrameCleaner(df_inkooporderregels, name="df_inkooporderregels") cleaner_inkoop.apply_dtype_mapping(inkoop_columns_to_convert) df_inkooporderregels_clean = cleaner_inkoop.get_cleaned_df()[relevant_columns_inkoop].copy() -# Clean delivery receipt lines cleaner_ontvangst = DataFrameCleaner(df_ontvangstregels, name="df_ontvangstregels") +cleaner_ontvangst.apply_dtype_mapping(ontvangst_columns_to_convert) df_ontvangstregels_clean = cleaner_ontvangst.get_cleaned_df()[relevant_columns_ontvangst].copy() -print("Aantal rijen met lege BronRegelGUID:", df_inkooporderregels_clean['BronRegelGUID'].isna().sum()) + +print("Number of rows with empty BronRegelGUID:", df_inkooporderregels_clean['BronRegelGUID'].isna().sum()) # ----------------------------- # Deriving Expected Delivery Dates # ----------------------------- -# Resolve expected delivery date from override or original date df_inkooporderregels_clean['ExpectedDeliveryDate'] = df_inkooporderregels_clean['AfwijkendeAfleverdatum'].combine_first( df_inkooporderregels_clean['DatumToegezegd'] ) df_inkooporderregels_clean.drop(columns=['AfwijkendeAfleverdatum', 'DatumToegezegd'], inplace=True) # ----------------------------- -# Analysis: Missing Delivery Dates +# Helper: Delivery Analysis # ----------------------------- -# Subset lines without expected delivery date -items_without_date = df_inkooporderregels_clean[df_inkooporderregels_clean['ExpectedDeliveryDate'].isna()].copy() -unique_orders3 = items_without_date['BronRegelGUID'].unique() -print(len(items_without_date)) -print(len(unique_orders3)) -# Map number of deliveries per BronregelGuid to GuLiIOR -delivery_counts = df_ontvangstregels_clean['BronregelGuid'].value_counts() -items_without_date['DeliveryCount'] = items_without_date['GuLiIOR'].map(delivery_counts).fillna(0).astype(int) - -# Logging stats -missing_total = len(items_without_date) - -print(f"Percentage that doesnt have a delivery date: {(missing_total/len(df_inkooporderregels_clean) * 100)}") - -missing_no_delivery = (items_without_date['DeliveryCount'] == 0).sum() -print(f"Items without expected delivery date: {missing_total}, of which have no deliveries: {missing_no_delivery} ({(missing_no_delivery / missing_total) * 100:.2f}%)") +def analyse_leveringen(df_subset, delivery_counts, total_received): + df_subset = df_subset.copy() + df_subset['DeliveryCount'] = df_subset['GuLiIOR'].map(delivery_counts).fillna(0).astype(int) + df_subset['TotalReceived'] = df_subset['GuLiIOR'].map(total_received).fillna(0).astype(float) + df_subset['QuUn'] = df_subset['QuUn'].fillna(0).astype(float) + df_subset['FullyDelivered'] = df_subset['TotalReceived'] >= df_subset['QuUn'] + return df_subset # ----------------------------- -# Analysis: Fully Delivered without Expected Date +# Delivery Stats Preparation # ----------------------------- -# Sum all received quantities per BronregelGuid +delivery_counts = df_ontvangstregels_clean['BronregelGuid'].value_counts() total_received = df_ontvangstregels_clean.groupby('BronregelGuid')['AantalOntvangen'].sum() -# Map to items_without_date -items_without_date['TotalReceived'] = items_without_date['GuLiIOR'].map(total_received).fillna(0).astype(float) -items_without_date['QuUn'] = items_without_date['QuUn'].fillna(0).astype(float) - -# Flag as fully delivered -items_without_date['FullyDelivered'] = items_without_date['TotalReceived'] >= items_without_date['QuUn'] +# ----------------------------- +# Items Without Expected Delivery Date +# ----------------------------- +items_without_date = df_inkooporderregels_clean[df_inkooporderregels_clean['ExpectedDeliveryDate'].isna()].copy() +items_without_date = analyse_leveringen(items_without_date, delivery_counts, total_received) -# Report +missing_total = len(items_without_date) +missing_no_delivery = (items_without_date['DeliveryCount'] == 0).sum() fully_delivered_missing = items_without_date['FullyDelivered'].sum() -print(f"Items without expected delivery date: {missing_total}, fully delivered: {fully_delivered_missing} ({(fully_delivered_missing / missing_total) * 100:.2f}%)") + +print(f"Percentage without expected delivery date: {(missing_total/len(df_inkooporderregels_clean) * 100):.2f}%") +print(f"Without delivery: {missing_no_delivery} ({(missing_no_delivery / missing_total) * 100:.2f}%)") +print(f"Fully delivered without delivery date: {fully_delivered_missing} ({(fully_delivered_missing / missing_total) * 100:.2f}%)") # ----------------------------- -# Analysis: Valid Delivery Dates +# Items With Expected Delivery Date # ----------------------------- -# Subset lines with expected delivery date items_with_date = df_inkooporderregels_clean[df_inkooporderregels_clean['ExpectedDeliveryDate'].notna()].copy() -unique_orders2 = items_with_date['BronRegelGUID'].unique() -print(len(items_with_date)) -print(len(unique_orders2)) +items_with_date = analyse_leveringen(items_with_date, delivery_counts, total_received) -# Map delivery counts again (already computed above) -items_with_date['DeliveryCount'] = items_with_date['GuLiIOR'].map(delivery_counts).fillna(0).astype(int) - -# Logging stats valid_total = len(items_with_date) valid_no_delivery = (items_with_date['DeliveryCount'] == 0).sum() -print(f"Items with expected delivery date: {valid_total}, of which have no deliveries: {valid_no_delivery} ({(valid_no_delivery / valid_total) * 100:.2f}%)") - -# ----------------------------- -# Analysis: Fully Delivered with Expected Date -# ----------------------------- -# Reuse total_received from above -items_with_date['TotalReceived'] = items_with_date['GuLiIOR'].map(total_received).fillna(0).astype(float) -items_with_date['QuUn'] = items_with_date['QuUn'].fillna(0).astype(float) - -# Flag as fully delivered -items_with_date['FullyDelivered'] = items_with_date['TotalReceived'] >= items_with_date['QuUn'] - -# Report fully_delivered_valid = items_with_date['FullyDelivered'].sum() -print(f"Items with expected delivery date: {valid_total}, fully delivered: {fully_delivered_valid} ({(fully_delivered_valid / valid_total) * 100:.2f}%)") +print(f"With expected delivery date: {valid_total}, without deliveries: {valid_no_delivery} ({(valid_no_delivery / valid_total) * 100:.2f}%)") +print(f"Fully delivered with expected date: {fully_delivered_valid} ({(fully_delivered_valid / valid_total) * 100:.2f}%)") # ----------------------------- -# Missing Delivery Dates by Year +# Analysis: Missing Delivery Dates by Year # ----------------------------- -# Extract year from original order date items_without_date['OrderYear'] = items_without_date['Datum'].dt.year - -# Count and percentage of missing delivery dates per year missing_per_year = items_without_date['OrderYear'].value_counts().sort_index() missing_perc_per_year = (missing_per_year / missing_total * 100).round(2) -# Combine into one DataFrame missing_summary = pd.DataFrame({ 'MissingCount': missing_per_year, 'Percentage': missing_perc_per_year.map(lambda x: f"{x:.2f}%") }) -# Print the combined result print("\nMissing delivery dates per year:") print(missing_summary) -# Missing delivery dates per year: -# MissingCount Percentage -# OrderYear -# 2021 2339 71.53% -# 2022 638 19.51% -# 2023 122 3.73% -# 2024 123 3.76% -# 2025 48 1.47% - - -# we can see that this issue is happening mostly in older data -# Actions -# 1 I will try to hunt down the reason why it still happens sometimes and try to fill them later -# 2 I will remove the years 2021 and 2022 from this evaluation to minimize the impact of that since its older data this is fine for now -> maybe when i know the reason for action 1 i will add them back -# Filter regels waar BronRegelGUID niet leeg is -# Aantal unieke orders - - -# Define years to exclude -years_to_exclude = [2021, 2022] - -# Filter items_without_date +# ----------------------------- +# Exclude Older Years +# ----------------------------- items_without_date = items_without_date[~items_without_date['Datum'].dt.year.isin(years_to_exclude)].copy() - -# Filter items_with_date items_with_date = items_with_date[~items_with_date['Datum'].dt.year.isin(years_to_exclude)].copy() - -# Now we will look into the supplier details and for now leave the items_without_date until these are fixed - -unique_suppliers = items_with_date['Naam'].unique() -print(f"Unique suppliers {len(unique_suppliers)}") -# Result is: Unique suppliers 350 - -# Add latest delivery date per GuLiIOR (matching on BronregelGuid) +# ----------------------------- +# Final Enrichment for UI +# ----------------------------- +print(df_ontvangstregels_clean.info()) items_with_date['DeliveryDate'] = items_with_date['GuLiIOR'].map( df_ontvangstregels_clean.groupby('BronregelGuid')['Datum'].max() ) + missing_delivery_date_count = items_with_date['DeliveryDate'].isna().sum() total_items = len(items_with_date) print( @@ -219,23 +137,23 @@ f"({(missing_delivery_date_count / total_items) * 100:.2f}%)" ) -print(items_with_date.columns) -# with pd.option_context('display.max_rows', None, 'display.max_columns', None): - +# 2. Filter only rows with valid dates +mask = items_with_date['DeliveryDate'].notna() & items_with_date['ExpectedDeliveryDate'].notna() +# 3. Calculate delay where possible +items_with_date.loc[mask, 'DeliveryDelay'] = ( + items_with_date.loc[mask, 'DeliveryDate'] - items_with_date.loc[mask, 'ExpectedDeliveryDate'] +).dt.days +print("Number of early deliveries:", (items_with_date['DeliveryDelay'] < 0).sum()) +print("Number of on-time deliveries:", (items_with_date['DeliveryDelay'] == 0).sum()) +print("Number of late deliveries:", (items_with_date['DeliveryDelay'] > 0).sum()) +print(items_with_date.info()) -# Create the UI instance +# ----------------------------- +# Interactive UI +# ----------------------------- ui = UI(items_with_date) - -# Select year for analysis -ui.year_selection() # Call the year selection method - -# Select suppliers for analysis -ui.supplier_selection() # Call the supplier selection method - -# Display the analysis and plot based on the selected year and suppliers -ui.show_date_analysis() # Display the analysis and plot based on selected year and suppliers - - - +ui.year_selection() +ui.supplier_selection() +ui.show_date_analysis() diff --git a/ui.py b/ui.py index 77878fe..ff1fa8e 100644 --- a/ui.py +++ b/ui.py @@ -2,7 +2,10 @@ import matplotlib.pyplot as plt import seaborn as sns import pandas as pd +import plotly.express as px + st.set_page_config(layout="wide") + class UI: def __init__(self, df): self.original_df = df.copy() @@ -12,100 +15,151 @@ def __init__(self, df): def year_selection(self): years = sorted(self.original_df['Datum'].dt.year.unique()) - self.selected_year = st.selectbox('Selecteer een jaar voor de analyse:', years) + self.selected_year = st.selectbox('Select a year for analysis:', years) self.filtered_df = self.original_df[self.original_df['Datum'].dt.year == self.selected_year] def supplier_selection(self): if self.filtered_df.empty: - st.warning("Geen data beschikbaar voor het geselecteerde jaar.") + st.warning("No data available for the selected year.") return suppliers = sorted(self.filtered_df['Naam'].dropna().unique()) - self.selected_suppliers = st.multiselect('Selecteer leveranciers:', suppliers) + self.selected_suppliers = st.multiselect('Select suppliers:', suppliers) if self.selected_suppliers: self.filtered_df = self.filtered_df[self.filtered_df['Naam'].isin(self.selected_suppliers)] def show_date_analysis(self): if self.filtered_df.empty: - st.warning("Geen data beschikbaar na filtering.") + st.warning("No data available after filtering.") return - st.subheader(f"Analyse voor jaar {self.selected_year}") + st.subheader(f"Analysis for year {self.selected_year}") tabs = st.tabs([ - "Geen Leverdatum", - "Volledig Geleverd", - "Aantal Leveringen", - "Tijdsprestatie" + "Number of Deliveries", + "No Delivery Date", + "Fully Delivered", + "Delivery Performance Over Time", + "Delivery Delay by Supplier" ]) with tabs[0]: - self.plot_missing_delivery_date() - + self.plot_delivery_counts() with tabs[1]: - self.plot_fully_delivered() - + self.plot_missing_delivery_date() with tabs[2]: - self.plot_delivery_counts() - + self.plot_fully_delivered() with tabs[3]: self.plot_performance_over_time() + + with tabs[4]: + self.plot_delivery_delay_categories() def plot_missing_delivery_date(self): df = self.filtered_df[self.filtered_df['DeliveryDate'].isna()] if df.empty: - st.info("Alle bestellingen zijn geleverd of hebben een leverdatum.") + st.info("All orders are delivered or have a delivery date.") return - counts = df['Naam'].value_counts() - plt.figure(figsize=(20, 6)) # Verbreden - sns.barplot(x=counts.index, y=counts.values, color='salmon') - plt.xticks(rotation=45, ha='right') - plt.title("Bestellingen zonder daadwerkelijke leverdatum") - plt.xlabel("Leverancier") - plt.ylabel("Aantal") - st.pyplot(plt.gcf(), use_container_width=True) + counts = df['Naam'].value_counts().reset_index() + counts.columns = ['Supplier', 'Count'] + + fig = px.bar(counts, x='Supplier', y='Count', + title="Orders without actual delivery date", + hover_data=['Supplier', 'Count'], + labels={'Count': 'Number of Orders'}, + height=400) + fig.update_layout(xaxis_tickangle=-45) + st.plotly_chart(fig, use_container_width=True) def plot_fully_delivered(self): delivered = self.filtered_df[self.filtered_df['FullyDelivered'] == True] if delivered.empty: - st.info("Geen volledig geleverde bestellingen gevonden.") + st.info("No fully delivered orders found.") return - counts = delivered['Naam'].value_counts() - plt.figure(figsize=(20, 6)) # Verbreden - sns.barplot(x=counts.index, y=counts.values, color='lightgreen') - plt.xticks(rotation=45, ha='right') - plt.title("Volledig Geleverde Bestellingen") - plt.xlabel("Leverancier") - plt.ylabel("Aantal") - st.pyplot(plt.gcf(), use_container_width=True) + counts = delivered['Naam'].value_counts().reset_index() + counts.columns = ['Supplier', 'Count'] + + fig = px.bar(counts, x='Supplier', y='Count', + title="Fully Delivered Orders", + hover_data=['Supplier', 'Count'], + color_discrete_sequence=['lightgreen']) + fig.update_layout(xaxis_tickangle=-45) + st.plotly_chart(fig, use_container_width=True) def plot_delivery_counts(self): - grouped = self.filtered_df.groupby('Naam')['DeliveryCount'].sum() + grouped = self.filtered_df.groupby('Naam')['DeliveryCount'].sum().reset_index() if grouped.empty: - st.info("Geen leveringen geregistreerd.") + st.info("No deliveries registered.") return - plt.figure(figsize=(20, 6)) # Verbreden - sns.barplot(x=grouped.index, y=grouped.values, color='orange') - plt.xticks(rotation=45, ha='right') - plt.title("Totaal aantal leveringen per leverancier") - plt.xlabel("Leverancier") - plt.ylabel("Aantal leveringen") - st.pyplot(plt.gcf(), use_container_width=True) + fig = px.bar(grouped, x='Naam', y='DeliveryCount', + title="Total Deliveries per Supplier", + hover_data=['Naam', 'DeliveryCount'], + color_discrete_sequence=['orange']) + fig.update_layout(xaxis_tickangle=-45) + st.plotly_chart(fig, use_container_width=True) def plot_performance_over_time(self): df = self.filtered_df.copy() df['YearMonth'] = df['Datum'].dt.to_period('M').astype(str) - timeseries = df.groupby(['YearMonth', 'Naam'])['DeliveryCount'].sum().unstack() + timeseries = df.groupby(['YearMonth', 'Naam'])['DeliveryCount'].sum().reset_index() if timeseries.empty: - st.info("Geen tijdsgebonden leveringsdata beschikbaar.") + st.info("No time-based delivery data available.") + return + + fig = px.line(timeseries, x='YearMonth', y='DeliveryCount', color='Naam', + title="Monthly Delivery Frequency", + hover_data=['Naam', 'DeliveryCount'], + markers=True) + fig.update_layout(xaxis_tickangle=-45) + st.plotly_chart(fig, use_container_width=True) + + def plot_delivery_delay_categories(self): + df = self.filtered_df.copy() + + # Ensure datetime conversion + df['DeliveryDate'] = pd.to_datetime(df['DeliveryDate'], errors='coerce') + df['ExpectedDeliveryDate'] = pd.to_datetime(df['ExpectedDeliveryDate'], errors='coerce') + + # Filter valid date pairs + df = df.dropna(subset=['DeliveryDate', 'ExpectedDeliveryDate']) + if df.empty: + st.info("No orders with both delivery and expected date.") return - timeseries.plot(figsize=(20, 6)) # Verbreden - plt.title("Leverfrequentie per maand") - plt.xlabel("Maand") - plt.ylabel("Aantal Leveringen") - plt.xticks(rotation=45) - st.pyplot(plt.gcf(), use_container_width=True) + # Calculate delay + df['DeliveryDelay'] = (df['DeliveryDate'] - df['ExpectedDeliveryDate']).dt.days + + # Categorize delay + def categorize(row): + if row < 0: + return "Early" + elif row == 0: + return "On Time" + else: + return "Late" + + df['Category'] = df['DeliveryDelay'].apply(categorize) + + # Group by supplier and category + summary = df.groupby(['Naam', 'Category']).size().reset_index(name='Count') + + # Pivot to wide format + pivot_df = summary.pivot(index='Naam', columns='Category', values='Count').fillna(0) + + # Ensure column order + pivot_df = pivot_df[['Early', 'On Time', 'Late']] if all(c in pivot_df.columns for c in ['Early', 'On Time', 'Late']) else pivot_df + + # Reset index for plotting + pivot_df = pivot_df.reset_index() + + # Stacked bar plot + fig = px.bar(pivot_df, x='Naam', y=['Early', 'On Time', 'Late'], + title="Delivery Timeliness per Supplier (Early / On Time / Late)", + labels={'value': 'Number of Orders', 'variable': 'Category'}, + hover_name='Naam') + + fig.update_layout(barmode='stack', xaxis_tickangle=-45) + st.plotly_chart(fig, use_container_width=True) From 53f780d1ebb25f586565ef78f5c6c53135aadc9c Mon Sep 17 00:00:00 2001 From: Jan Dirk van de Bijl Date: Wed, 21 May 2025 17:34:12 +0200 Subject: [PATCH 19/31] merge --- __pycache__/ui.cpython-312.pyc | Bin 9702 -> 9793 bytes main.py | 14 ++++++++------ ui.py | 3 +-- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/__pycache__/ui.cpython-312.pyc b/__pycache__/ui.cpython-312.pyc index d8aa87af6a67dd92e65645a829ce20ea5d9ed341..c1e734b1f2a7698a7fcd78ae2dc5b1b124d187a1 100644 GIT binary patch delta 1702 zcmZ`)QA`|F6rHy_vkNS{z_JvUD$J6CS+Phf?OG&l)ut6GCe>oCRyV`WD@>W48Sl&j z%MX6|(a+YWru}S8OiYc6XrezRe&~2C>HZk&5u+{dwT1N| zO{^ixE&gqJb|6gCLJSfWx8?-CjGwk~=ROuNP4-M|!^?)XvvY)l1v+s~>j$!tyzEmuyltp2Sg|be&)pLZPR`JNb#_ z4UMH1D!WDMWYvHwZ)gbjaPg(yi-E4`huB3i zSQtsoQ5`lxRh%gtST2!cOltFnUE{K0-T=#(ws}#54M`&{$IwwW&AK>fWy&ZuKQJnD zp{f`lIc-4I#d~@X{niJlV^d)n^GumSflVxd^ne2TLGLnQc-_NE3j3g%M%|a1f!~UH zD85vEYl(;IOU<+9-9RQzTej^OGH%%RUFRd$=_8P4APj={&;h~Pa0{RF!Sh6w0N0nIQB6YL^z2&h$2IE=4A zLj1a;u%}Dgy*ARKmDc()2zm;kJFS)e?itcb(Ft-cX7Ga-05__(6+m9>>mNNu3dxLT zyMbLF;)@<|-XIGqPxh_B2+b(~2 zE{R4Ed?Bbfb=%Ju`d)k^Y#s59AcAjvBZw14y)qF5WhhMQi-K?TdG2ac#e;nE`~Q7@ z-{-me^wFOew9hqdkA%-B_lMW=*R=#Yef@z#a!xAxUY3gT2R@pUq>G^@%PaS&dG7Z5 z<1z~fpOVu%u@6B+-UlK4bJQj`z_w|Zu0vSNDetq0c*&P&`PFaOv$WJvd8t}!LY&(E z=L{&DI6%5t7h8V;+JYbAv%g_o8^C$I_-M3YMFeu+NA#ui?l+4 zXJnm}AVnY@*iZX$%gP!ziX5O*ycWE+mqLaCL_6TY&^Y^5EQdZ!{-{N-WnN$UE)@AT zGj;zDkhm4evZLaw$VV9J)#%48n56M>!h|><8;Cqa%>v$@&EO;abuXR*vsUh#6#S>%@4;J}M;hGrKKwt~>{0XLdqk?KyeGh(uP9n*9*nrJCK zPcXdDQt#sAW3*{U_sQMDj(-&@_3BE~k?nd3W@u&G>}m03EPgOAdtrD>F$h;*_VhjZ zL6M0k*+nrGe;egD`V+0+;yj_vrgwzSWIUt<=Ps!9-S9IB^FNX*yE^|Dpm!y zU7|hyk^xt+BHB@VK}S5d{1j%lDEB3o7pZxH@ZZ>JY!=}tmRaU-n)>sIZC62~xji+r z#BB~HxBt)95pl0C%T`6G{|ij=M*qCb#zZdtJqwG!(zEOpF{@_>BXm&Uq*3Fm6=-@l zoFF0QC}pF>^RlCw ziwaZObiIWJ4%u{js$2bpS30BOe)bS+w0aM`%dmFV4-QUu(W!le1B3?&Lxf?%AYp_s zO0Wo&0`E9_EkF^eT;@nz9oro1QVW~eFhUO^`ZTrh$Nmwu;O(Hrc?~}&HQ+|cGHVbQ zc5afrC~oFbi|!5G^Zu>zXW$qbT(|fX+`t1E{%jrbyUZBdkb3V*=?$r8LyFy%`nLj4 M`&eO9BD$J?0~xzY!T due to curruption in data # ----------------------------- +years_to_exclude = [2021, 2022] items_without_date = items_without_date[~items_without_date['Datum'].dt.year.isin(years_to_exclude)].copy() items_with_date = items_with_date[~items_with_date['Datum'].dt.year.isin(years_to_exclude)].copy() diff --git a/ui.py b/ui.py index ff1fa8e..a9a1a6c 100644 --- a/ui.py +++ b/ui.py @@ -51,14 +51,13 @@ def show_date_analysis(self): self.plot_fully_delivered() with tabs[3]: self.plot_performance_over_time() - with tabs[4]: self.plot_delivery_delay_categories() def plot_missing_delivery_date(self): df = self.filtered_df[self.filtered_df['DeliveryDate'].isna()] if df.empty: - st.info("All orders are delivered or have a delivery date.") + st.info("All orders are delivered.") return counts = df['Naam'].value_counts().reset_index() From 0b0d28e727e9d2b1112a669150fd50dc446eccec Mon Sep 17 00:00:00 2001 From: Jan Dirk van de Bijl Date: Thu, 22 May 2025 15:27:40 +0200 Subject: [PATCH 20/31] merge --- __pycache__/cleanup.cpython-313.pyc | Bin 6586 -> 8665 bytes __pycache__/eda_service.cpython-313.pyc | Bin 11345 -> 11345 bytes __pycache__/loader.cpython-313.pyc | Bin 3968 -> 3978 bytes __pycache__/ui.cpython-313.pyc | Bin 8496 -> 9932 bytes main.py | 56 ++++++++++++++++++++++-- 5 files changed, 52 insertions(+), 4 deletions(-) diff --git a/__pycache__/cleanup.cpython-313.pyc b/__pycache__/cleanup.cpython-313.pyc index a390269d1b5fae5980e9a902e5a7245a678a4e5c..e95074c8915e4e5cc0618b323a36e6f34447f585 100644 GIT binary patch literal 8665 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 delta 2623 zcma)8Z%iA>6`x)2uD$-pf-wdI_VCZd1QG%yIS7GEWBy6Sq<}B9oJ2Nwah%w@)~*Q& zI*EL$NOgA!H>v=sD&*QKMCym5_u-=Iq$>TCemE5bI-KpPN?NIZzEmbhPS;3PJF^Q% zF88G)`^}p-zxU?NoA+k+$@$;5y1#U}>;O0ZcH@;_x!2vNDBCC={uIP0Byh#(=XTp% z45TQ6A#Dt%Xp;lrIKVTOgV9)XiaFpDRG6Oqt9?)uuR%$Yp`4VaXCye8l0;cj;dMn( z4S7bCDG6*caXh0Y<*Y{VSTZ5W z;^mYS?||o08XQ%prAF9oS|rn#B{eyDC5tU4Bt!3*JsM_pW>U%AR5`qR)ryJkN+~lF zNqI_{m{d|4`Wd}aU5n+nK)wigyo>b<^(Z{gylc%Bm%hvADueUPw#|1pm525NpAqG}^h{T7^REt?+a()-TL>Uc?)n>sKUor znR42Xt!gyHf0>?og$wghBv@N1ABtFqj)pnai%l6jF!w?%>r7l#GCFfrNy=f?bi{{# zXKkijC~s|c6O8sp(*>IoHQRjDGt_VU7rn%w_n8QKhc9SAk3RvUe|_daUy`v5oq1Tp%^zLwYu&;nCh<~)SOXb;@T#rvvUF{>MlxMMaqXk`wOgMoc>7F6M`VGBlt;c~R(Za{vw1D)agY@s3f z5qGo<2fhl7mmc_P1tRtvJHqV8T@d~Qz!W%Z34$pqTohHy&`Y5nRTsX|u3P2lG|Brg zrG~Kq-J)exow=+isoA3QihNyCvr-)5OrK86TE|NU!X`LNcR=)$qCh~!I{~wvUNMQQ z3T73IGc-D2*sXfeqayE|k!GBj$w+csr!#TgkyR$*Vphr~(~@q-gM9~dPSmnDGm_ef zZK_Sg7ry7lq+}Gg8pPu;Z)RwnF}J^z6xXfVwIsG5*SRUf5uG#L#Y>5GYC_6R7FR?atPuU4|ZiYHP9oY(<`!=q3%iHi>+~`*5dxyBEuiJSzz7-lc zm|qym2^Y$C1h^@{)zC)OsU6|;ZV=SAeiZ^vZ_X*)8Mr;LQPQyOJo=|V{eu0jB_|Xw z@(cV@WYx3Et`4uUt1}z^l+>O6dd~-nE58I34wg`| z=vr_sP3;JE8$w;)f@Lo?QpS(EA|?G{`f<2?fM@?;qXu}??en81o~LB=9@B%?e9!2& z0V;5oqFDc3N~-NUb%vVCqLdxIQ`Tf5x7e@CN-d;H zF8FJz{Me6KVHiIh=~oItJx0U~Z0dsOYI*rwB_0~p5VpQ@(HY7en*KN{`q?X06mTpZaHH|P9B^B2#vNWTSC*v?-iIUs2MqZ(5^mTb{D2k;T zu5>ej@9?+zyS+;cm6214vPYOU=B zAbtJd9on>QsK-mF4YJzi|^IUO`VoArekjt??_M# dXLVa=T8U4mq%QRmTCXZAxI|ID=YUWH^gjf4ti=ET diff --git a/__pycache__/eda_service.cpython-313.pyc b/__pycache__/eda_service.cpython-313.pyc index 19083952bf0e85fd16af6c24c247fc968a947606..da48ce76d9136ca8ff624b536420138aff22e8f5 100644 GIT binary patch delta 20 acmcZ@aWR7XGcPX}0}%YVthbTdO$Pu>mj<8! delta 20 acmcZ@aWR7XGcPX}0}woI(%H!ErUL*<1_m|& diff --git a/__pycache__/loader.cpython-313.pyc b/__pycache__/loader.cpython-313.pyc index 50a89e5b5a2d3e02dedc6a7d6dc40bf9731fe78e..eb7204bb17d1b83663e682c634ce46f0ae4ae370 100644 GIT binary patch delta 165 zcmZpW?~>>J%*)Hg00e(7>t)=U$a`JHG^3=Xz)D}=&_K`7P!B{Jm`wcUD58%=e6lB_ wsfY$Pi3yDAA|}`*PBPky=wOl9EX5?u%U8&FLpr`DU^wxIqmV9!=wx3; wQz11>;c1NOLPnUv7a8q^v@nD>t1t=k^5rw$5Kp)v;C(|T|At8TWLJJy03;1D#sB~S diff --git a/__pycache__/ui.cpython-313.pyc b/__pycache__/ui.cpython-313.pyc index 6c3c1d5e77f047a142d167e90f1df79b7b5f0757..b403324c62fa9ab0ebc48a1f1cbd989cd8801233 100644 GIT binary patch literal 9932 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 Zl!1Jt literal 8496 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 Ke9O_A4gUuhRNEQ= diff --git a/main.py b/main.py index d335f88..eb9cad7 100644 --- a/main.py +++ b/main.py @@ -14,7 +14,23 @@ df_inkooporderregels, df_ontvangstregels, df_relaties, df_feedback, df_suppliers = load_all_datasets() except Exception: exit(1) + +# print(df_inkooporderregels.columns) +# totaal = len(df_inkooporderregels) +# uniek = df_inkooporderregels['ItCd'].nunique(dropna=True) +# leeg = df_inkooporderregels['ItCd'].isna().sum() +# print(f"{'ItCd'}:") +# print(f" Unieke waarden: {uniek}") +# print(f" Lege (NaN) waarden: {leeg}") +# print(f" Gevulde waarden: {totaal - leeg}\n") + +# item_counts = df_inkooporderregels['ItCd'].value_counts() +# # Filter op alleen items die meer dan 5 keer voorkomen +# items_meer_dan_5 = item_counts[item_counts > 5] + +# print(f"Aantal unieke ItCd's die meer dan 5 keer voorkomen: {len(items_meer_dan_5)}") +# print(items_meer_dan_5) # ----------------------------- # Constants and Configurations # ----------------------------- @@ -47,6 +63,38 @@ cleaner_ontvangst.apply_dtype_mapping(ontvangst_columns_to_convert) df_ontvangstregels_clean = cleaner_ontvangst.get_cleaned_df()[relevant_columns_ontvangst].copy() + + +all_orders = df_inkooporderregels_clean.groupby("OrNu") +all_articles = df_inkooporderregels_clean.groupby("ItCd") +# We hebben 13741 unieke orders + +# Gemiddelde aantal items per order +# + +# Per leverancier +# Aantal leveringen +# aantal leveringen te vroeg, op tijd en te laat, niet geleverd +# Performance over time adhv degene hier net boven + + + +# Per medewerker (later niet in presentatie) +# Aantal orders per maand +# Order waarde per maand + + + +# TODO: Kijken of datum toegezegd nu wel altijd gevuld is maar misschien onder een ander item + + +all_orders_list = list(all_orders) +print(len(all_orders_list)) +# Eerste groep: tuple van (OrNu-waarde, DataFrame) +first_order_id, first_order_df = all_orders_list[0] +print(f"Ordernummer: {first_order_id}") +print(first_order_df) + # ----------------------------- # Deriving Expected Delivery Dates # ----------------------------- @@ -155,7 +203,7 @@ def analyse_leveringen(df_subset, delivery_counts, total_received): # ----------------------------- # Interactive UI # ----------------------------- -ui = UI(items_with_date) -ui.year_selection() -ui.supplier_selection() -ui.show_date_analysis() +# ui = UI(items_with_date) +# ui.year_selection() +# ui.supplier_selection() +# ui.show_date_analysis() From 85f8386fa12a16bdd0826e812bd5544cdd9e989d Mon Sep 17 00:00:00 2001 From: Jan Dirk van de Bijl Date: Thu, 22 May 2025 16:26:44 +0200 Subject: [PATCH 21/31] merge --- main.py | 135 +++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 104 insertions(+), 31 deletions(-) diff --git a/main.py b/main.py index eb9cad7..a04afc9 100644 --- a/main.py +++ b/main.py @@ -35,7 +35,7 @@ # Constants and Configurations # ----------------------------- # This are the columns that I want to keep for the analysis -relevant_columns_inkoop = ['GuLiIOR', 'Datum', 'DatumToegezegd', 'AfwijkendeAfleverdatum', 'Naam', 'BronRegelGUID', 'QuUn', 'OrNu'] +relevant_columns_inkoop = ['GuLiIOR', 'Datum', 'DatumToegezegd', 'AfwijkendeAfleverdatum', 'Naam', 'BronRegelGUID', 'QuUn', 'OrNu', 'DsEx'] relevant_columns_ontvangst = ['BronregelGuid', 'Datum', 'AantalOntvangen', 'Status_regel', 'Itemcode', 'Naam'] # These are the columns that I want to convert to their valid types @@ -63,10 +63,14 @@ cleaner_ontvangst.apply_dtype_mapping(ontvangst_columns_to_convert) df_ontvangstregels_clean = cleaner_ontvangst.get_cleaned_df()[relevant_columns_ontvangst].copy() +df_inkooporderregels_clean = df_inkooporderregels_clean[df_inkooporderregels_clean['DsEx'] != 'KVERZEND'].copy() + + +# df_inkooporderregels_clean['Datum'] = df_inkooporderregels_clean['Datum'].dt.tz_localize(None) +# df_inkooporderregels_clean = df_inkooporderregels_clean[df_inkooporderregels_clean['Datum'] >= pd.Timestamp('2023-01-01')].copy() + -all_orders = df_inkooporderregels_clean.groupby("OrNu") -all_articles = df_inkooporderregels_clean.groupby("ItCd") # We hebben 13741 unieke orders # Gemiddelde aantal items per order @@ -86,23 +90,67 @@ # TODO: Kijken of datum toegezegd nu wel altijd gevuld is maar misschien onder een ander item - - +all_orders = df_inkooporderregels_clean.groupby("OrNu") all_orders_list = list(all_orders) -print(len(all_orders_list)) +print(f"Complete order amount: {len(all_orders_list)}") # Eerste groep: tuple van (OrNu-waarde, DataFrame) first_order_id, first_order_df = all_orders_list[0] -print(f"Ordernummer: {first_order_id}") -print(first_order_df) +# print(f"Ordernummer: {first_order_id}") +# print(first_order_df) # ----------------------------- # Deriving Expected Delivery Dates # ----------------------------- -# AfwijkendeAfleverdatum is the mainly used field for this sometimes DatumToegezegd is used so AfwijkendeAfleverdatum has precendence over DatumToegezegd +# Determine the expected delivery date per order line: +# Use 'AfwijkendeAfleverdatum' as the primary field; fall back to 'DatumToegezegd' if it's missing. df_inkooporderregels_clean['ExpectedDeliveryDate'] = df_inkooporderregels_clean['AfwijkendeAfleverdatum'].combine_first( df_inkooporderregels_clean['DatumToegezegd'] ) + +df_inkooporderregels_clean = df_inkooporderregels_clean[ + (df_inkooporderregels_clean['ExpectedDeliveryDate'].notna()) & + (df_inkooporderregels_clean['Datum'].notna()) & + ((df_inkooporderregels_clean['ExpectedDeliveryDate'] - df_inkooporderregels_clean['Datum']).dt.days <= 1) +].copy() + +# Compute the latest expected delivery date per order (OrNu). +# This represents the overall delivery deadline for the full order across all its lines. +latest_expected_per_order = ( + df_inkooporderregels_clean + .groupby('OrNu')['ExpectedDeliveryDate'] + .max() +) + +# Add a new column to each line with the latest expected delivery date for its full order. +df_inkooporderregels_clean['OrderDeliveryDate'] = df_inkooporderregels_clean['OrNu'].map(latest_expected_per_order) +df_inkooporderregels_clean['OrderDeliveryDate'] = df_inkooporderregels_clean['OrderDeliveryDate'].dt.tz_localize(None) +df_inkooporderregels_clean['Datum'] = df_inkooporderregels_clean['Datum'].dt.tz_localize(None) + +mask = ( + df_inkooporderregels_clean['OrderDeliveryDate'].notna() & + df_inkooporderregels_clean['Datum'].notna() & + (df_inkooporderregels_clean['OrderDeliveryDate'] < df_inkooporderregels_clean['Datum']) +) + +# Bekijk aantal en toon eventueel voorbeeldregels +aantal_fout = mask.sum() +print(f"Aantal regels waarbij OrderDeliveryDate vóór de orderdatum ligt: {aantal_fout}") + +if aantal_fout > 0: + print(df_inkooporderregels_clean.loc[mask, ['OrNu', 'Datum', 'OrderDeliveryDate', 'ExpectedDeliveryDate']].head(10)) + + +# Nieuw: toon regels zonder ExpectedDeliveryDate +missing_expected_mask = df_inkooporderregels_clean['ExpectedDeliveryDate'].isna() +aantal_missing = missing_expected_mask.sum() +print(f"\nAantal regels zonder ExpectedDeliveryDate: {aantal_missing}") + +# if aantal_missing > 0: +# print("\nVoorbeeldregels zonder ExpectedDeliveryDate:") +# print(df_inkooporderregels_clean.loc[missing_expected_mask, ['OrNu', 'Datum', 'AfwijkendeAfleverdatum', 'DatumToegezegd']].head(10)) + + # Get rid of the columns that are not needed anymore df_inkooporderregels_clean.drop(columns=['AfwijkendeAfleverdatum', 'DatumToegezegd'], inplace=True) @@ -133,9 +181,9 @@ def analyse_leveringen(df_subset, delivery_counts, total_received): missing_no_delivery = (items_without_date['DeliveryCount'] == 0).sum() fully_delivered_missing = items_without_date['FullyDelivered'].sum() -print(f"Percentage without expected delivery date: {(missing_total/len(df_inkooporderregels_clean) * 100):.2f}%") -print(f"Without delivery: {missing_no_delivery} ({(missing_no_delivery / missing_total) * 100:.2f}%)") -print(f"Fully delivered without delivery date: {fully_delivered_missing} ({(fully_delivered_missing / missing_total) * 100:.2f}%)") +# print(f"Percentage without expected delivery date: {(missing_total/len(df_inkooporderregels_clean) * 100):.2f}%") +# print(f"Without delivery: {missing_no_delivery} ({(missing_no_delivery / missing_total) * 100:.2f}%)") +# print(f"Fully delivered without delivery date: {fully_delivered_missing} ({(fully_delivered_missing / missing_total) * 100:.2f}%)") # ----------------------------- # Items With Expected Delivery Date @@ -147,8 +195,8 @@ def analyse_leveringen(df_subset, delivery_counts, total_received): valid_no_delivery = (items_with_date['DeliveryCount'] == 0).sum() fully_delivered_valid = items_with_date['FullyDelivered'].sum() -print(f"With expected delivery date: {valid_total}, without deliveries: {valid_no_delivery} ({(valid_no_delivery / valid_total) * 100:.2f}%)") -print(f"Fully delivered with expected date: {fully_delivered_valid} ({(fully_delivered_valid / valid_total) * 100:.2f}%)") +# print(f"With expected delivery date: {valid_total}, without deliveries: {valid_no_delivery} ({(valid_no_delivery / valid_total) * 100:.2f}%)") +# print(f"Fully delivered with expected date: {fully_delivered_valid} ({(fully_delivered_valid / valid_total) * 100:.2f}%)") # ----------------------------- # Analysis: Missing Delivery Dates by Year @@ -162,30 +210,56 @@ def analyse_leveringen(df_subset, delivery_counts, total_received): 'Percentage': missing_perc_per_year.map(lambda x: f"{x:.2f}%") }) -print("\nMissing delivery dates per year:") -print(missing_summary) +# print("\nMissing delivery dates per year:") +# print(missing_summary) -# ----------------------------- -# Exclude Older Years -> due to curruption in data -# ----------------------------- -years_to_exclude = [2021, 2022] -items_without_date = items_without_date[~items_without_date['Datum'].dt.year.isin(years_to_exclude)].copy() -items_with_date = items_with_date[~items_with_date['Datum'].dt.year.isin(years_to_exclude)].copy() +def analyse_expected_delivery_date_consistency(df): + grouped = df.groupby('OrNu')['ExpectedDeliveryDate'] + + def classify(series): + unique = series.dropna().unique() + return 'all_missing' if len(unique) == 0 else ('consistent' if len(unique) == 1 else 'inconsistent') + + classifications = grouped.apply(classify) + print("Consistency per order:\n", classifications.value_counts()) + inconsistent = classifications[classifications == 'inconsistent'].index + if inconsistent.empty: + print("Geen inconsistenties gevonden.") + return + + verschil = ( + df[df['OrNu'].isin(inconsistent)] + .groupby('OrNu')['ExpectedDeliveryDate'] + .agg(lambda x: (x.max() - x.min()).days if x.notna().all() else None) + .dropna() + .rename('VerschilInDagen') + .sort_values(ascending=False) + ) + + print(f"\nAantal inconsistente orders: {len(verschil)}") + print("\nTop 10 grootste verschillen in dagen:") + print(verschil.head(10)) + + +analyse_expected_delivery_date_consistency(items_with_date) # ----------------------------- # Final Enrichment for UI # ----------------------------- -print(df_ontvangstregels_clean.info()) +# print(df_ontvangstregels_clean.info()) items_with_date['DeliveryDate'] = items_with_date['GuLiIOR'].map( df_ontvangstregels_clean.groupby('BronregelGuid')['Datum'].max() ) + + + missing_delivery_date_count = items_with_date['DeliveryDate'].isna().sum() total_items = len(items_with_date) -print( - f"Items with expected delivery date: {total_items}, without actual delivery date: {missing_delivery_date_count} " - f"({(missing_delivery_date_count / total_items) * 100:.2f}%)" -) +# print( +# f"Items with expected delivery date: {total_items}, without actual delivery date: {missing_delivery_date_count} " +# f"({(missing_delivery_date_count / total_items) * 100:.2f}%)" +# ) # 2. Filter only rows with valid dates mask = items_with_date['DeliveryDate'].notna() & items_with_date['ExpectedDeliveryDate'].notna() @@ -194,11 +268,10 @@ def analyse_leveringen(df_subset, delivery_counts, total_received): items_with_date.loc[mask, 'DeliveryDelay'] = ( items_with_date.loc[mask, 'DeliveryDate'] - items_with_date.loc[mask, 'ExpectedDeliveryDate'] ).dt.days -print("Number of early deliveries:", (items_with_date['DeliveryDelay'] < 0).sum()) -print("Number of on-time deliveries:", (items_with_date['DeliveryDelay'] == 0).sum()) -print("Number of late deliveries:", (items_with_date['DeliveryDelay'] > 0).sum()) +# print("Number of early deliveries:", (items_with_date['DeliveryDelay'] < 0).sum()) +# print("Number of on-time deliveries:", (items_with_date['DeliveryDelay'] == 0).sum()) +# print("Number of late deliveries:", (items_with_date['DeliveryDelay'] > 0).sum()) -print(items_with_date.info()) # ----------------------------- # Interactive UI From d16dfb012c19368329b0c5e15566bbfd61c8b12d Mon Sep 17 00:00:00 2001 From: Jan Dirk van de Bijl Date: Thu, 22 May 2025 16:50:11 +0200 Subject: [PATCH 22/31] merge --- main.py | 266 ++++++++++++++------------------------------------------ 1 file changed, 64 insertions(+), 202 deletions(-) diff --git a/main.py b/main.py index a04afc9..723512e 100644 --- a/main.py +++ b/main.py @@ -5,40 +5,27 @@ from eda_service import EDAService from cleanup import DataFrameCleaner from loader import load_all_datasets -from ui import UI +from ui import UI # ----------------------------- -# Loading Datasets +# Load Datasets # ----------------------------- try: df_inkooporderregels, df_ontvangstregels, df_relaties, df_feedback, df_suppliers = load_all_datasets() except Exception: exit(1) - -# print(df_inkooporderregels.columns) -# totaal = len(df_inkooporderregels) -# uniek = df_inkooporderregels['ItCd'].nunique(dropna=True) -# leeg = df_inkooporderregels['ItCd'].isna().sum() -# print(f"{'ItCd'}:") -# print(f" Unieke waarden: {uniek}") -# print(f" Lege (NaN) waarden: {leeg}") -# print(f" Gevulde waarden: {totaal - leeg}\n") - -# item_counts = df_inkooporderregels['ItCd'].value_counts() -# # Filter op alleen items die meer dan 5 keer voorkomen -# items_meer_dan_5 = item_counts[item_counts > 5] - -# print(f"Aantal unieke ItCd's die meer dan 5 keer voorkomen: {len(items_meer_dan_5)}") -# print(items_meer_dan_5) # ----------------------------- -# Constants and Configurations +# Configuration # ----------------------------- -# This are the columns that I want to keep for the analysis -relevant_columns_inkoop = ['GuLiIOR', 'Datum', 'DatumToegezegd', 'AfwijkendeAfleverdatum', 'Naam', 'BronRegelGUID', 'QuUn', 'OrNu', 'DsEx'] -relevant_columns_ontvangst = ['BronregelGuid', 'Datum', 'AantalOntvangen', 'Status_regel', 'Itemcode', 'Naam'] +relevant_columns_inkoop = [ + 'GuLiIOR', 'Datum', 'DatumToegezegd', 'AfwijkendeAfleverdatum', + 'Naam', 'BronRegelGUID', 'QuUn', 'OrNu', 'DsEx' +] +relevant_columns_ontvangst = [ + 'BronregelGuid', 'Datum', 'AantalOntvangen', 'Status_regel', 'Itemcode', 'Naam' +] -# These are the columns that I want to convert to their valid types inkoop_columns_to_convert = { 'Datum': 'datetime', 'DatumToegezegd': 'datetime', @@ -47,13 +34,12 @@ 'getDate': 'datetime', 'Naam': 'str' } - ontvangst_columns_to_convert = { 'Datum': 'datetime' } # ----------------------------- -# Cleaning and Preparation +# Cleaning # ----------------------------- cleaner_inkoop = DataFrameCleaner(df_inkooporderregels, name="df_inkooporderregels") cleaner_inkoop.apply_dtype_mapping(inkoop_columns_to_convert) @@ -63,220 +49,96 @@ cleaner_ontvangst.apply_dtype_mapping(ontvangst_columns_to_convert) df_ontvangstregels_clean = cleaner_ontvangst.get_cleaned_df()[relevant_columns_ontvangst].copy() +# ----------------------------- +# Filter: remove irrelevant rows +# ----------------------------- +# Hier verwijderen we de order regels waarvan standaard geen verzending wordt ingvuld of deze toch niet relevant is df_inkooporderregels_clean = df_inkooporderregels_clean[df_inkooporderregels_clean['DsEx'] != 'KVERZEND'].copy() - -# df_inkooporderregels_clean['Datum'] = df_inkooporderregels_clean['Datum'].dt.tz_localize(None) -# df_inkooporderregels_clean = df_inkooporderregels_clean[df_inkooporderregels_clean['Datum'] >= pd.Timestamp('2023-01-01')].copy() - - - -# We hebben 13741 unieke orders - -# Gemiddelde aantal items per order -# - -# Per leverancier -# Aantal leveringen -# aantal leveringen te vroeg, op tijd en te laat, niet geleverd -# Performance over time adhv degene hier net boven - - - -# Per medewerker (later niet in presentatie) -# Aantal orders per maand -# Order waarde per maand - - - -# TODO: Kijken of datum toegezegd nu wel altijd gevuld is maar misschien onder een ander item -all_orders = df_inkooporderregels_clean.groupby("OrNu") -all_orders_list = list(all_orders) -print(f"Complete order amount: {len(all_orders_list)}") -# Eerste groep: tuple van (OrNu-waarde, DataFrame) -first_order_id, first_order_df = all_orders_list[0] -# print(f"Ordernummer: {first_order_id}") -# print(first_order_df) - # ----------------------------- -# Deriving Expected Delivery Dates +# Determine Expected Delivery Date # ----------------------------- -# Determine the expected delivery date per order line: -# Use 'AfwijkendeAfleverdatum' as the primary field; fall back to 'DatumToegezegd' if it's missing. +# Bepaal de verwachte leverdatum per regel: +# Gebruik 'AfwijkendeAfleverdatum' als primaire bron, en val terug op 'DatumToegezegd' indien nodig. +# Voor de duidelijkheid dit is de datum waarop een order geleverd zou moeten zijn df_inkooporderregels_clean['ExpectedDeliveryDate'] = df_inkooporderregels_clean['AfwijkendeAfleverdatum'].combine_first( df_inkooporderregels_clean['DatumToegezegd'] ) +# Verwijder de kollommen die we nu niet meer nodig hebben +df_inkooporderregels_clean.drop(columns=['AfwijkendeAfleverdatum', 'DatumToegezegd'], inplace=True) - +# Filter regels: +# - Alleen regels behouden waar zowel 'Datum' (orderdatum) als 'ExpectedDeliveryDate' gevuld is +# - Alleen regels behouden waar de verwachte leverdatum op of ná de orderdatum ligt +# (levering vóór bestelling is niet logisch, dus die regels worden verwijderd) df_inkooporderregels_clean = df_inkooporderregels_clean[ - (df_inkooporderregels_clean['ExpectedDeliveryDate'].notna()) & - (df_inkooporderregels_clean['Datum'].notna()) & - ((df_inkooporderregels_clean['ExpectedDeliveryDate'] - df_inkooporderregels_clean['Datum']).dt.days <= 1) + df_inkooporderregels_clean['ExpectedDeliveryDate'].notna() & # ExpectedDeliveryDate moet ingevuld zijn + df_inkooporderregels_clean['Datum'].notna() & # Orderdatum moet ingevuld zijn + (df_inkooporderregels_clean['ExpectedDeliveryDate'] >= df_inkooporderregels_clean['Datum']) # Geen leverdatum vóór orderdatum ].copy() -# Compute the latest expected delivery date per order (OrNu). -# This represents the overall delivery deadline for the full order across all its lines. -latest_expected_per_order = ( - df_inkooporderregels_clean - .groupby('OrNu')['ExpectedDeliveryDate'] - .max() -) +# Determine max expected date per order +# Dit is de datum waarop de laatste order regel binnen zou moeten zijn en dus de uiteindelijke leverdatum +latest_expected_per_order = df_inkooporderregels_clean.groupby('OrNu')['ExpectedDeliveryDate'].max() -# Add a new column to each line with the latest expected delivery date for its full order. +# Add to dataframe df_inkooporderregels_clean['OrderDeliveryDate'] = df_inkooporderregels_clean['OrNu'].map(latest_expected_per_order) df_inkooporderregels_clean['OrderDeliveryDate'] = df_inkooporderregels_clean['OrderDeliveryDate'].dt.tz_localize(None) df_inkooporderregels_clean['Datum'] = df_inkooporderregels_clean['Datum'].dt.tz_localize(None) -mask = ( - df_inkooporderregels_clean['OrderDeliveryDate'].notna() & - df_inkooporderregels_clean['Datum'].notna() & - (df_inkooporderregels_clean['OrderDeliveryDate'] < df_inkooporderregels_clean['Datum']) -) - -# Bekijk aantal en toon eventueel voorbeeldregels -aantal_fout = mask.sum() -print(f"Aantal regels waarbij OrderDeliveryDate vóór de orderdatum ligt: {aantal_fout}") - -if aantal_fout > 0: - print(df_inkooporderregels_clean.loc[mask, ['OrNu', 'Datum', 'OrderDeliveryDate', 'ExpectedDeliveryDate']].head(10)) - - -# Nieuw: toon regels zonder ExpectedDeliveryDate -missing_expected_mask = df_inkooporderregels_clean['ExpectedDeliveryDate'].isna() -aantal_missing = missing_expected_mask.sum() -print(f"\nAantal regels zonder ExpectedDeliveryDate: {aantal_missing}") - -# if aantal_missing > 0: -# print("\nVoorbeeldregels zonder ExpectedDeliveryDate:") -# print(df_inkooporderregels_clean.loc[missing_expected_mask, ['OrNu', 'Datum', 'AfwijkendeAfleverdatum', 'DatumToegezegd']].head(10)) - - -# Get rid of the columns that are not needed anymore -df_inkooporderregels_clean.drop(columns=['AfwijkendeAfleverdatum', 'DatumToegezegd'], inplace=True) - # ----------------------------- -# Helper: Delivery Analysis +# Delivery Data Preparation # ----------------------------- -def analyse_leveringen(df_subset, delivery_counts, total_received): - df_subset = df_subset.copy() - df_subset['DeliveryCount'] = df_subset['GuLiIOR'].map(delivery_counts).fillna(0).astype(int) - df_subset['TotalReceived'] = df_subset['GuLiIOR'].map(total_received).fillna(0).astype(float) - df_subset['QuUn'] = df_subset['QuUn'].fillna(0).astype(float) - df_subset['FullyDelivered'] = df_subset['TotalReceived'] >= df_subset['QuUn'] - return df_subset -# ----------------------------- -# Delivery Stats Preparation -# ----------------------------- +# Tel per regel-GUID hoe vaak er een levering op plaatsvond (meerdere leveringen mogelijk) delivery_counts = df_ontvangstregels_clean['BronregelGuid'].value_counts() + +# Bepaal het totaal aantal ontvangen stuks per regel-GUID total_received = df_ontvangstregels_clean.groupby('BronregelGuid')['AantalOntvangen'].sum() -# ----------------------------- -# Items Without Expected Delivery Date -# ----------------------------- -items_without_date = df_inkooporderregels_clean[df_inkooporderregels_clean['ExpectedDeliveryDate'].isna()].copy() -items_without_date = analyse_leveringen(items_without_date, delivery_counts, total_received) +# Analyseer per inkoopregel of en hoeveel er geleverd is +def analyse_leveringen(df_subset, delivery_counts, total_received): + df_subset = df_subset.copy() -missing_total = len(items_without_date) -missing_no_delivery = (items_without_date['DeliveryCount'] == 0).sum() -fully_delivered_missing = items_without_date['FullyDelivered'].sum() + # Aantal keer dat er op deze regel iets is geleverd + df_subset['DeliveryCount'] = df_subset['GuLiIOR'].map(delivery_counts).fillna(0).astype(int) -# print(f"Percentage without expected delivery date: {(missing_total/len(df_inkooporderregels_clean) * 100):.2f}%") -# print(f"Without delivery: {missing_no_delivery} ({(missing_no_delivery / missing_total) * 100:.2f}%)") -# print(f"Fully delivered without delivery date: {fully_delivered_missing} ({(fully_delivered_missing / missing_total) * 100:.2f}%)") + # Totaal aantal ontvangen eenheden voor deze regel + df_subset['TotalReceived'] = df_subset['GuLiIOR'].map(total_received).fillna(0).astype(float) -# ----------------------------- -# Items With Expected Delivery Date -# ----------------------------- -items_with_date = df_inkooporderregels_clean[df_inkooporderregels_clean['ExpectedDeliveryDate'].notna()].copy() -items_with_date = analyse_leveringen(items_with_date, delivery_counts, total_received) + # Zorg dat QuUn (besteld aantal) niet NaN is + df_subset['QuUn'] = df_subset['QuUn'].fillna(0).astype(float) -valid_total = len(items_with_date) -valid_no_delivery = (items_with_date['DeliveryCount'] == 0).sum() -fully_delivered_valid = items_with_date['FullyDelivered'].sum() + # Markeer of alles volledig is geleverd + df_subset['FullyDelivered'] = df_subset['TotalReceived'] >= df_subset['QuUn'] -# print(f"With expected delivery date: {valid_total}, without deliveries: {valid_no_delivery} ({(valid_no_delivery / valid_total) * 100:.2f}%)") -# print(f"Fully delivered with expected date: {fully_delivered_valid} ({(fully_delivered_valid / valid_total) * 100:.2f}%)") + return df_subset # ----------------------------- -# Analysis: Missing Delivery Dates by Year +# Delivery Analysis # ----------------------------- -items_without_date['OrderYear'] = items_without_date['Datum'].dt.year -missing_per_year = items_without_date['OrderYear'].value_counts().sort_index() -missing_perc_per_year = (missing_per_year / missing_total * 100).round(2) - -missing_summary = pd.DataFrame({ - 'MissingCount': missing_per_year, - 'Percentage': missing_perc_per_year.map(lambda x: f"{x:.2f}%") -}) - -# print("\nMissing delivery dates per year:") -# print(missing_summary) - -def analyse_expected_delivery_date_consistency(df): - grouped = df.groupby('OrNu')['ExpectedDeliveryDate'] - - def classify(series): - unique = series.dropna().unique() - return 'all_missing' if len(unique) == 0 else ('consistent' if len(unique) == 1 else 'inconsistent') - - classifications = grouped.apply(classify) - print("Consistency per order:\n", classifications.value_counts()) - - inconsistent = classifications[classifications == 'inconsistent'].index - if inconsistent.empty: - print("Geen inconsistenties gevonden.") - return - - verschil = ( - df[df['OrNu'].isin(inconsistent)] - .groupby('OrNu')['ExpectedDeliveryDate'] - .agg(lambda x: (x.max() - x.min()).days if x.notna().all() else None) - .dropna() - .rename('VerschilInDagen') - .sort_values(ascending=False) - ) - - print(f"\nAantal inconsistente orders: {len(verschil)}") - print("\nTop 10 grootste verschillen in dagen:") - print(verschil.head(10)) +# Pas leveringsanalyse toe op alle regels met verwachte leverdatum +df_inkooporderregels_clean = analyse_leveringen(df_inkooporderregels_clean, delivery_counts, total_received) -analyse_expected_delivery_date_consistency(items_with_date) # ----------------------------- -# Final Enrichment for UI +# Calculate Delivery Delay # ----------------------------- -# print(df_ontvangstregels_clean.info()) -items_with_date['DeliveryDate'] = items_with_date['GuLiIOR'].map( + +# Bepaal per regel de laatste bekende leverdatum op basis van ontvangstregels +df_inkooporderregels_clean['DeliveryDate'] = df_inkooporderregels_clean['GuLiIOR'].map( df_ontvangstregels_clean.groupby('BronregelGuid')['Datum'].max() ) - - - -missing_delivery_date_count = items_with_date['DeliveryDate'].isna().sum() -total_items = len(items_with_date) -# print( -# f"Items with expected delivery date: {total_items}, without actual delivery date: {missing_delivery_date_count} " -# f"({(missing_delivery_date_count / total_items) * 100:.2f}%)" -# ) - -# 2. Filter only rows with valid dates -mask = items_with_date['DeliveryDate'].notna() & items_with_date['ExpectedDeliveryDate'].notna() - -# 3. Calculate delay where possible -items_with_date.loc[mask, 'DeliveryDelay'] = ( - items_with_date.loc[mask, 'DeliveryDate'] - items_with_date.loc[mask, 'ExpectedDeliveryDate'] +# Bereken afwijking tussen werkelijke en verwachte leverdatum (alleen waar beide datums beschikbaar zijn) +mask = df_inkooporderregels_clean['DeliveryDate'].notna() & df_inkooporderregels_clean['ExpectedDeliveryDate'].notna() +df_inkooporderregels_clean.loc[mask, 'DeliveryDelay'] = ( + df_inkooporderregels_clean.loc[mask, 'DeliveryDate'] - df_inkooporderregels_clean.loc[mask, 'ExpectedDeliveryDate'] ).dt.days -# print("Number of early deliveries:", (items_with_date['DeliveryDelay'] < 0).sum()) -# print("Number of on-time deliveries:", (items_with_date['DeliveryDelay'] == 0).sum()) -# print("Number of late deliveries:", (items_with_date['DeliveryDelay'] > 0).sum()) - - # ----------------------------- -# Interactive UI +# Optional: Hook up to UI # ----------------------------- -# ui = UI(items_with_date) -# ui.year_selection() -# ui.supplier_selection() -# ui.show_date_analysis() +ui = UI(df_inkooporderregels_clean) +ui.year_selection() +ui.supplier_selection() +ui.show_date_analysis() From 46eebfe0c9707bce65faccad64f5925566660b97 Mon Sep 17 00:00:00 2001 From: Jan Dirk van de Bijl Date: Thu, 22 May 2025 17:05:41 +0200 Subject: [PATCH 23/31] ui improved --- __pycache__/ui.cpython-313.pyc | Bin 9932 -> 12751 bytes ui.py | 142 ++++++++++++++++++++++----------- 2 files changed, 94 insertions(+), 48 deletions(-) diff --git a/__pycache__/ui.cpython-313.pyc b/__pycache__/ui.cpython-313.pyc index b403324c62fa9ab0ebc48a1f1cbd989cd8801233..b40779946fc2d44ca57ee445473c7d5bb5ce242e 100644 GIT binary patch literal 12751 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 F{tx6Wiw^(* diff --git a/ui.py b/ui.py index a9a1a6c..076d354 100644 --- a/ui.py +++ b/ui.py @@ -34,39 +34,107 @@ def show_date_analysis(self): st.warning("No data available after filtering.") return - st.subheader(f"Analysis for year {self.selected_year}") - tabs = st.tabs([ - "Number of Deliveries", - "No Delivery Date", - "Fully Delivered", - "Delivery Performance Over Time", - "Delivery Delay by Supplier" + st.subheader(f"Delivery Analysis for year {self.selected_year}") + + # General summary metrics + total_orders = self.filtered_df['OrNu'].nunique() if 'OrNu' in self.filtered_df.columns else 0 + total_order_lines = len(self.filtered_df) + total_suppliers = self.filtered_df['Naam'].nunique() + fully_delivered = self.filtered_df[self.filtered_df['FullyDelivered'] == True].shape[0] + + col1, col2, col3, col4 = st.columns(4) + col1.metric("Total Orders", total_orders) + col2.metric("Total Order Lines", total_order_lines) + col3.metric("Total Suppliers", total_suppliers) + col4.metric("Fully Delivered Lines", fully_delivered) + + tab_groups = st.tabs([ + "Per Order", + "Per Order Line", + "Timeliness & Trends" ]) - with tabs[0]: + with tab_groups[0]: + self.plot_order_delivery_summary() + + with tab_groups[1]: self.plot_delivery_counts() - with tabs[1]: self.plot_missing_delivery_date() - with tabs[2]: self.plot_fully_delivered() - with tabs[3]: + + with tab_groups[2]: self.plot_performance_over_time() - with tabs[4]: self.plot_delivery_delay_categories() + def plot_order_delivery_summary(self): + df = self.filtered_df.copy() + + if 'OrNu' not in df.columns: + st.warning("Order number (OrNu) not found in data.") + return + + grouped = df.groupby('OrNu').agg({ + 'ExpectedDeliveryDate': 'max', + 'DeliveryDate': 'max', + 'FullyDelivered': 'all', + 'Naam': 'first' + }).reset_index() + + grouped['DeliveryDelay'] = (grouped['DeliveryDate'] - grouped['ExpectedDeliveryDate']).dt.days + grouped['Category'] = grouped['DeliveryDelay'].apply( + lambda x: 'Early' if x < 0 else 'On Time' if x == 0 else 'Late' + ) + + summary = grouped.groupby(['Naam', 'Category']).size().reset_index(name='Count') + pivot_df = summary.pivot(index='Naam', columns='Category', values='Count').fillna(0) + + if not pivot_df.empty: + pivot_df['Total'] = pivot_df.sum(axis=1) + pivot_df = pivot_df.sort_values(by='Total', ascending=False) + pivot_df = pivot_df.drop(columns='Total') + + pivot_df = pivot_df.reset_index() + + fig = px.bar( + pivot_df, + x='Naam', + y=['Early', 'On Time', 'Late'], + title="Order-level Delivery Timeliness per Supplier", + labels={'value': 'Number of Orders', 'variable': 'Category'}, + hover_name='Naam' + ) + fig.update_layout(barmode='stack', xaxis_tickangle=-45) + st.plotly_chart(fig, use_container_width=True) + + def plot_delivery_counts(self): + grouped = self.filtered_df.groupby('Naam')['DeliveryCount'].sum().reset_index() + if grouped.empty: + st.info("No deliveries registered.") + return + + grouped = grouped.sort_values(by='DeliveryCount', ascending=False) + + fig = px.bar(grouped, x='Naam', y='DeliveryCount', + title="Total Deliveries per Supplier (Order Line Level)", + hover_data=['Naam', 'DeliveryCount'], + color_discrete_sequence=['orange']) + fig.update_layout(xaxis_tickangle=-45) + st.plotly_chart(fig, use_container_width=True) + def plot_missing_delivery_date(self): df = self.filtered_df[self.filtered_df['DeliveryDate'].isna()] if df.empty: - st.info("All orders are delivered.") + st.info("All order lines are delivered.") return counts = df['Naam'].value_counts().reset_index() counts.columns = ['Supplier', 'Count'] + counts = counts.sort_values(by='Count', ascending=False) fig = px.bar(counts, x='Supplier', y='Count', - title="Orders without actual delivery date", + title="Order Lines without Actual Delivery Date", hover_data=['Supplier', 'Count'], - labels={'Count': 'Number of Orders'}, + labels={'Count': 'Number of Order Lines'}, height=400) fig.update_layout(xaxis_tickangle=-45) st.plotly_chart(fig, use_container_width=True) @@ -74,32 +142,20 @@ def plot_missing_delivery_date(self): def plot_fully_delivered(self): delivered = self.filtered_df[self.filtered_df['FullyDelivered'] == True] if delivered.empty: - st.info("No fully delivered orders found.") + st.info("No fully delivered order lines found.") return counts = delivered['Naam'].value_counts().reset_index() counts.columns = ['Supplier', 'Count'] + counts = counts.sort_values(by='Count', ascending=False) fig = px.bar(counts, x='Supplier', y='Count', - title="Fully Delivered Orders", + title="Fully Delivered Order Lines", hover_data=['Supplier', 'Count'], color_discrete_sequence=['lightgreen']) fig.update_layout(xaxis_tickangle=-45) st.plotly_chart(fig, use_container_width=True) - def plot_delivery_counts(self): - grouped = self.filtered_df.groupby('Naam')['DeliveryCount'].sum().reset_index() - if grouped.empty: - st.info("No deliveries registered.") - return - - fig = px.bar(grouped, x='Naam', y='DeliveryCount', - title="Total Deliveries per Supplier", - hover_data=['Naam', 'DeliveryCount'], - color_discrete_sequence=['orange']) - fig.update_layout(xaxis_tickangle=-45) - st.plotly_chart(fig, use_container_width=True) - def plot_performance_over_time(self): df = self.filtered_df.copy() df['YearMonth'] = df['Datum'].dt.to_period('M').astype(str) @@ -117,21 +173,15 @@ def plot_performance_over_time(self): def plot_delivery_delay_categories(self): df = self.filtered_df.copy() - - # Ensure datetime conversion df['DeliveryDate'] = pd.to_datetime(df['DeliveryDate'], errors='coerce') df['ExpectedDeliveryDate'] = pd.to_datetime(df['ExpectedDeliveryDate'], errors='coerce') - - # Filter valid date pairs df = df.dropna(subset=['DeliveryDate', 'ExpectedDeliveryDate']) if df.empty: - st.info("No orders with both delivery and expected date.") + st.info("No order lines with both delivery and expected date.") return - # Calculate delay df['DeliveryDelay'] = (df['DeliveryDate'] - df['ExpectedDeliveryDate']).dt.days - # Categorize delay def categorize(row): if row < 0: return "Early" @@ -142,23 +192,19 @@ def categorize(row): df['Category'] = df['DeliveryDelay'].apply(categorize) - # Group by supplier and category summary = df.groupby(['Naam', 'Category']).size().reset_index(name='Count') - - # Pivot to wide format pivot_df = summary.pivot(index='Naam', columns='Category', values='Count').fillna(0) - # Ensure column order - pivot_df = pivot_df[['Early', 'On Time', 'Late']] if all(c in pivot_df.columns for c in ['Early', 'On Time', 'Late']) else pivot_df + if not pivot_df.empty: + pivot_df['Total'] = pivot_df.sum(axis=1) + pivot_df = pivot_df.sort_values(by='Total', ascending=False) + pivot_df = pivot_df.drop(columns='Total') - # Reset index for plotting pivot_df = pivot_df.reset_index() - # Stacked bar plot fig = px.bar(pivot_df, x='Naam', y=['Early', 'On Time', 'Late'], - title="Delivery Timeliness per Supplier (Early / On Time / Late)", - labels={'value': 'Number of Orders', 'variable': 'Category'}, - hover_name='Naam') - + title="Delivery Timeliness per Supplier (Order Line Level)", + labels={'value': 'Number of Order Lines', 'variable': 'Category'}, + hover_name='Naam') fig.update_layout(barmode='stack', xaxis_tickangle=-45) st.plotly_chart(fig, use_container_width=True) From 684d59efd7c55a873dd25548ca2b2e5737c30c0c Mon Sep 17 00:00:00 2001 From: Jan Dirk van de Bijl Date: Thu, 22 May 2025 17:18:49 +0200 Subject: [PATCH 24/31] nog beterr --- __pycache__/ui.cpython-313.pyc | Bin 12751 -> 11796 bytes ui.py | 74 ++++++++++++--------------------- 2 files changed, 26 insertions(+), 48 deletions(-) diff --git a/__pycache__/ui.cpython-313.pyc b/__pycache__/ui.cpython-313.pyc index b40779946fc2d44ca57ee445473c7d5bb5ce242e..98868d52d3a815eb191c0ed6d8c5b9a149bef820 100644 GIT binary patch delta 4316 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 delta 4662 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 Jn?uwc>wh)PR7C&) diff --git a/ui.py b/ui.py index 076d354..743f2d7 100644 --- a/ui.py +++ b/ui.py @@ -9,18 +9,26 @@ class UI: def __init__(self, df): self.original_df = df.copy() - self.selected_year = None - self.selected_suppliers = None + self.selected_years = [] + self.selected_suppliers = [] self.filtered_df = df.copy() def year_selection(self): - years = sorted(self.original_df['Datum'].dt.year.unique()) - self.selected_year = st.selectbox('Select a year for analysis:', years) - self.filtered_df = self.original_df[self.original_df['Datum'].dt.year == self.selected_year] + all_years = sorted(self.original_df['Datum'].dt.year.unique()) + self.selected_years = st.multiselect( + 'Select one or more years (leave empty to include all):', + options=all_years, + default=[] + ) + + if self.selected_years: + self.filtered_df = self.original_df[self.original_df['Datum'].dt.year.isin(self.selected_years)] + else: + self.filtered_df = self.original_df.copy() def supplier_selection(self): if self.filtered_df.empty: - st.warning("No data available for the selected year.") + st.warning("No data available.") return suppliers = sorted(self.filtered_df['Naam'].dropna().unique()) @@ -34,9 +42,9 @@ def show_date_analysis(self): st.warning("No data available after filtering.") return - st.subheader(f"Delivery Analysis for year {self.selected_year}") + year_label = ", ".join(map(str, self.selected_years)) if self.selected_years else "all years" + st.subheader(f"Delivery Analysis for {year_label}") - # General summary metrics total_orders = self.filtered_df['OrNu'].nunique() if 'OrNu' in self.filtered_df.columns else 0 total_order_lines = len(self.filtered_df) total_suppliers = self.filtered_df['Naam'].nunique() @@ -64,11 +72,11 @@ def show_date_analysis(self): with tab_groups[2]: self.plot_performance_over_time() - self.plot_delivery_delay_categories() def plot_order_delivery_summary(self): - df = self.filtered_df.copy() + st.info("Toont per leverancier hoeveel volledige orders te vroeg, op tijd of te laat zijn geleverd. Een order bestaat uit meerdere regels.") + df = self.filtered_df.copy() if 'OrNu' not in df.columns: st.warning("Order number (OrNu) not found in data.") return @@ -107,6 +115,8 @@ def plot_order_delivery_summary(self): st.plotly_chart(fig, use_container_width=True) def plot_delivery_counts(self): + st.info("Toont het totaal aantal levermomenten per leverancier, gemeten op regelniveau.") + grouped = self.filtered_df.groupby('Naam')['DeliveryCount'].sum().reset_index() if grouped.empty: st.info("No deliveries registered.") @@ -122,6 +132,8 @@ def plot_delivery_counts(self): st.plotly_chart(fig, use_container_width=True) def plot_missing_delivery_date(self): + st.info("Geeft per leverancier aan hoeveel orderregels nog geen leverdatum hebben.") + df = self.filtered_df[self.filtered_df['DeliveryDate'].isna()] if df.empty: st.info("All order lines are delivered.") @@ -140,6 +152,8 @@ def plot_missing_delivery_date(self): st.plotly_chart(fig, use_container_width=True) def plot_fully_delivered(self): + st.info("Laat per leverancier het aantal orderregels zien die volledig geleverd zijn.") + delivered = self.filtered_df[self.filtered_df['FullyDelivered'] == True] if delivered.empty: st.info("No fully delivered order lines found.") @@ -157,6 +171,8 @@ def plot_fully_delivered(self): st.plotly_chart(fig, use_container_width=True) def plot_performance_over_time(self): + st.info("Visualiseert de maandelijkse frequentie van leveringen per leverancier.") + df = self.filtered_df.copy() df['YearMonth'] = df['Datum'].dt.to_period('M').astype(str) timeseries = df.groupby(['YearMonth', 'Naam'])['DeliveryCount'].sum().reset_index() @@ -170,41 +186,3 @@ def plot_performance_over_time(self): markers=True) fig.update_layout(xaxis_tickangle=-45) st.plotly_chart(fig, use_container_width=True) - - def plot_delivery_delay_categories(self): - df = self.filtered_df.copy() - df['DeliveryDate'] = pd.to_datetime(df['DeliveryDate'], errors='coerce') - df['ExpectedDeliveryDate'] = pd.to_datetime(df['ExpectedDeliveryDate'], errors='coerce') - df = df.dropna(subset=['DeliveryDate', 'ExpectedDeliveryDate']) - if df.empty: - st.info("No order lines with both delivery and expected date.") - return - - df['DeliveryDelay'] = (df['DeliveryDate'] - df['ExpectedDeliveryDate']).dt.days - - def categorize(row): - if row < 0: - return "Early" - elif row == 0: - return "On Time" - else: - return "Late" - - df['Category'] = df['DeliveryDelay'].apply(categorize) - - summary = df.groupby(['Naam', 'Category']).size().reset_index(name='Count') - pivot_df = summary.pivot(index='Naam', columns='Category', values='Count').fillna(0) - - if not pivot_df.empty: - pivot_df['Total'] = pivot_df.sum(axis=1) - pivot_df = pivot_df.sort_values(by='Total', ascending=False) - pivot_df = pivot_df.drop(columns='Total') - - pivot_df = pivot_df.reset_index() - - fig = px.bar(pivot_df, x='Naam', y=['Early', 'On Time', 'Late'], - title="Delivery Timeliness per Supplier (Order Line Level)", - labels={'value': 'Number of Order Lines', 'variable': 'Category'}, - hover_name='Naam') - fig.update_layout(barmode='stack', xaxis_tickangle=-45) - st.plotly_chart(fig, use_container_width=True) From 0c90edebffb5a0816b5a817e93a99b6c98089eda Mon Sep 17 00:00:00 2001 From: Jan Dirk van de Bijl Date: Thu, 22 May 2025 17:48:11 +0200 Subject: [PATCH 25/31] merge --- __pycache__/ui.cpython-313.pyc | Bin 11796 -> 14868 bytes main.py | 3 ++ ui.py | 51 ++++++++++++++++++++++++++++++--- 3 files changed, 50 insertions(+), 4 deletions(-) diff --git a/__pycache__/ui.cpython-313.pyc b/__pycache__/ui.cpython-313.pyc index 98868d52d3a815eb191c0ed6d8c5b9a149bef820..c49391a631fa108656ba72f91269851cff393dd0 100644 GIT binary patch delta 5583 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 E0KR1UdjJ3c delta 3023 zcmai0Yit}>6`nhfoqa#N&#c$$_1a#0YkO^%r0FJ39Mn=8NYd0dOGw;i+1Q))5_{IY zvzy>3Bt<|9sYFta5h{P`3jRb;l&1Vd3K0?l#1Go00*w$Dfz-#Z)}aCcKR9RBZXA=s zto_ZMd(VB$`ObIFEH{^*^560K+!9{yeWP<9cD?HFVXO&btfkkaJUf)v;3j(%g7P_5 zfam4HYq#W4nYrNubs*uvS(aKi>xS@QQ@9ZFvhc&07Gpv9w3b6Ov{$;rI55KyHZBz# z3jW_&!QSt{ia!n`zC-YmV+Ho>F}OPHV!Pobe*&&Kx>y+Y4M*XC-U)kDJ+QHaRKs6h zg-KW8^Le*@086VbEH;-!3T-U?Y(*G#qb3sc z^}@eH%h`A7UEifu@{zV{`mk-EOY~FA12;OxG)tMU8t`_rxLjgWPOxJAaBDo=k(IczW8K3UbWDlC zpB)jI%kbWK%F9*!Y23l}f(pChDd-M4qlR3Pxl_a4@b04fh+BfmktjT;M>??2Jw*h6H!-$M|rF$8!G%U z5yz)EE>Dv)I2qr|Z>ZBbJg|LD4FYpUGPr_oRN{#z8Q;c}c!JJ?j3-GI9fnrYriScS z>*8tNU6eD@^u}yyYM7?`OB&Dc9vZ@k%fgA|*JLpS9i215VKf!J1cwQpfUkF6KpNH5 zBzqbjP33|V7?$&qO0!yPh$Ybr=TfQgcItGTsm!;krl2Sh1-O>#i{_c2p}ZnEbsixo z!P}`%MJ>&?wwz}wqFy;UU(IXcC`@*p+!Jp{yIMC+HSVg=UdIkKORtGWYw_fgrBrG) z%Ok30wOOtkv(+z&ZSa?_T#Q1~Qq0zZ3Z)dtH67``#eW+ zWpRq220Qxljnmk?#>4{NjtB!W?`k=L}oLwg;W)!O75;biq})<(NP(kyjx&((l1+!JX(|dAb8G>gf#niBgD*5Z&tF z?lHza+*{O1-FAM6fUh^i5^d2aJb*fvZPA3_XM+c1aTqfBzF055hvnq!*;bI;9upOq z%^$e9$=BE`zDY1g=8m~)y*AerD$hy;MN0Y;q1`C{}Jdn?#GkE z&y`(|OA=*U;t5uAlnqCqdmskel}?fX%nx`xq(S>aX&oMjgo!7NaAIn!5{M?9y9tpp z4=TZnN+7yO2{v8u6FurLDJYo0I$1$DUU)(l!|>C>aEQnf-y+!HNf{lv_zmj#h>MR= z0g)hHAh1>Ne|*1QglDVs^)ppbofY4vnfLMj9u)eUqshegaNPVA!Y2Qpxa}-M$5;z~ zF}AJ=Cc&SE#_y?~Uh*!N?W*R49wiKK4u|1%j~l+*6G=^z8trSNG@-F-*B^#8CK|;` zx?bndiaYFO!c>)^s-{#*GjKg_GZ)Y|mLL&KC*bdTI*Bq;kq-?yYYWN6-E9d`Ma0yE z6frwF-OP6T6x7?@+_b#?Gf5G}Z7p`taviHy#KDHqoNHI0OOW0%1k*b*cU5F*GmZI% z5H*})i^ z>qd1`hEq4m%H6ClUX4Nd0#plR?HfbjSQlKE9(q)o2E=g;$s`amVJ=)H-q)VG)Yq6|W zSbLm}4`9y}3m|4Y5C%iq&JT0=*j|rT$@}r+vni^Th533@q+oyXC_4`?7n8|*_qCi8 a3ys;#h_ diff --git a/main.py b/main.py index 723512e..7b0a0b7 100644 --- a/main.py +++ b/main.py @@ -135,6 +135,9 @@ def analyse_leveringen(df_subset, delivery_counts, total_received): df_inkooporderregels_clean.loc[mask, 'DeliveryDelay'] = ( df_inkooporderregels_clean.loc[mask, 'DeliveryDate'] - df_inkooporderregels_clean.loc[mask, 'ExpectedDeliveryDate'] ).dt.days + + + # ----------------------------- # Optional: Hook up to UI # ----------------------------- diff --git a/ui.py b/ui.py index 743f2d7..8673d3b 100644 --- a/ui.py +++ b/ui.py @@ -12,7 +12,11 @@ def __init__(self, df): self.selected_years = [] self.selected_suppliers = [] self.filtered_df = df.copy() - + self.top_percent = 10 # default top 10% + # st.write("Totaal orderregels:", len(self.filtered_df)) + # st.write("Totaal DeliveryCount-som:", self.filtered_df['DeliveryCount'].sum()) + # st.write("Totaal zonder DeliveryDate:", self.filtered_df['DeliveryDate'].isna().sum()) + # st.write("Totaal FullyDelivered == True:", (self.filtered_df['FullyDelivered'] == True).sum()) def year_selection(self): all_years = sorted(self.original_df['Datum'].dt.year.unique()) self.selected_years = st.multiselect( @@ -34,8 +38,23 @@ def supplier_selection(self): suppliers = sorted(self.filtered_df['Naam'].dropna().unique()) self.selected_suppliers = st.multiselect('Select suppliers:', suppliers) - if self.selected_suppliers: + use_percentage = len(self.selected_suppliers) == 0 + + if use_percentage: + with st.expander("Advanced filter (top % of suppliers)", expanded=False): + self.top_percent = st.slider( + label="Top % leveranciers (alleen actief als geen leverancier handmatig is gekozen):", + min_value=1, + max_value=100, + value=10, + format="%d%%", + label_visibility="collapsed" + ) + st.caption(f"Geen leverancier geselecteerd. Filter toont top {self.top_percent}% leveranciers gesorteerd op relevantie.") + else: self.filtered_df = self.filtered_df[self.filtered_df['Naam'].isin(self.selected_suppliers)] + self.top_percent = None + st.caption(f"{len(self.selected_suppliers)} leverancier(s) geselecteerd. Top-% filter is gedeactiveerd.") def show_date_analysis(self): if self.filtered_df.empty: @@ -75,6 +94,7 @@ def show_date_analysis(self): def plot_order_delivery_summary(self): st.info("Toont per leverancier hoeveel volledige orders te vroeg, op tijd of te laat zijn geleverd. Een order bestaat uit meerdere regels.") + st.caption("More on-time and early deliveries is better.") df = self.filtered_df.copy() if 'OrNu' not in df.columns: @@ -95,10 +115,12 @@ def plot_order_delivery_summary(self): summary = grouped.groupby(['Naam', 'Category']).size().reset_index(name='Count') pivot_df = summary.pivot(index='Naam', columns='Category', values='Count').fillna(0) - if not pivot_df.empty: pivot_df['Total'] = pivot_df.sum(axis=1) pivot_df = pivot_df.sort_values(by='Total', ascending=False) + if self.top_percent is not None: + top_x = max(1, int(len(pivot_df) * self.top_percent / 100)) + pivot_df = pivot_df.head(top_x) pivot_df = pivot_df.drop(columns='Total') pivot_df = pivot_df.reset_index() @@ -116,6 +138,7 @@ def plot_order_delivery_summary(self): def plot_delivery_counts(self): st.info("Toont het totaal aantal levermomenten per leverancier, gemeten op regelniveau.") + st.caption("More deliveries is better.") grouped = self.filtered_df.groupby('Naam')['DeliveryCount'].sum().reset_index() if grouped.empty: @@ -123,6 +146,9 @@ def plot_delivery_counts(self): return grouped = grouped.sort_values(by='DeliveryCount', ascending=False) + if self.top_percent is not None: + top_x = max(1, int(len(grouped) * self.top_percent / 100)) + grouped = grouped.head(top_x) fig = px.bar(grouped, x='Naam', y='DeliveryCount', title="Total Deliveries per Supplier (Order Line Level)", @@ -133,6 +159,7 @@ def plot_delivery_counts(self): def plot_missing_delivery_date(self): st.info("Geeft per leverancier aan hoeveel orderregels nog geen leverdatum hebben.") + st.caption("Lower is better.") df = self.filtered_df[self.filtered_df['DeliveryDate'].isna()] if df.empty: @@ -142,6 +169,9 @@ def plot_missing_delivery_date(self): counts = df['Naam'].value_counts().reset_index() counts.columns = ['Supplier', 'Count'] counts = counts.sort_values(by='Count', ascending=False) + if self.top_percent is not None: + top_x = max(1, int(len(counts) * self.top_percent / 100)) + counts = counts.head(top_x) fig = px.bar(counts, x='Supplier', y='Count', title="Order Lines without Actual Delivery Date", @@ -153,6 +183,7 @@ def plot_missing_delivery_date(self): def plot_fully_delivered(self): st.info("Laat per leverancier het aantal orderregels zien die volledig geleverd zijn.") + st.caption("More is better.") delivered = self.filtered_df[self.filtered_df['FullyDelivered'] == True] if delivered.empty: @@ -162,6 +193,9 @@ def plot_fully_delivered(self): counts = delivered['Naam'].value_counts().reset_index() counts.columns = ['Supplier', 'Count'] counts = counts.sort_values(by='Count', ascending=False) + if self.top_percent is not None: + top_x = max(1, int(len(counts) * self.top_percent / 100)) + counts = counts.head(top_x) fig = px.bar(counts, x='Supplier', y='Count', title="Fully Delivered Order Lines", @@ -172,6 +206,7 @@ def plot_fully_delivered(self): def plot_performance_over_time(self): st.info("Visualiseert de maandelijkse frequentie van leveringen per leverancier.") + st.caption("More deliveries per month is better.") df = self.filtered_df.copy() df['YearMonth'] = df['Datum'].dt.to_period('M').astype(str) @@ -180,7 +215,15 @@ def plot_performance_over_time(self): st.info("No time-based delivery data available.") return - fig = px.line(timeseries, x='YearMonth', y='DeliveryCount', color='Naam', + supplier_totals = timeseries.groupby('Naam')['DeliveryCount'].sum() + if self.top_percent is not None: + top_x = max(1, int(len(supplier_totals) * self.top_percent / 100)) + top_suppliers = supplier_totals.sort_values(ascending=False).head(top_x).index + filtered_timeseries = timeseries[timeseries['Naam'].isin(top_suppliers)] + else: + filtered_timeseries = timeseries + + fig = px.line(filtered_timeseries, x='YearMonth', y='DeliveryCount', color='Naam', title="Monthly Delivery Frequency", hover_data=['Naam', 'DeliveryCount'], markers=True) From 24ed5716a18cf5386a5b3bc0b68de330f9de7acd Mon Sep 17 00:00:00 2001 From: Jan Dirk van de Bijl Date: Thu, 22 May 2025 21:13:53 +0200 Subject: [PATCH 26/31] merge --- __pycache__/ui.cpython-312.pyc | Bin 9793 -> 17887 bytes main.py | 63 +++++++++++++++++++++++++++++++-- ui.py | 55 +++++++++++++++++++++++++--- 3 files changed, 112 insertions(+), 6 deletions(-) diff --git a/__pycache__/ui.cpython-312.pyc b/__pycache__/ui.cpython-312.pyc index c1e734b1f2a7698a7fcd78ae2dc5b1b124d187a1..a9263b961f5c364d84164fa569d2da2c645bee21 100644 GIT binary patch literal 17887 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 literal 9793 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 SRL8fjX$Rf=n8K9o@P7dIgDaH) diff --git a/main.py b/main.py index 7b0a0b7..2ca4023 100644 --- a/main.py +++ b/main.py @@ -6,6 +6,7 @@ from cleanup import DataFrameCleaner from loader import load_all_datasets from ui import UI +from scipy.stats import chi2_contingency # ----------------------------- # Load Datasets @@ -20,7 +21,7 @@ # ----------------------------- relevant_columns_inkoop = [ 'GuLiIOR', 'Datum', 'DatumToegezegd', 'AfwijkendeAfleverdatum', - 'Naam', 'BronRegelGUID', 'QuUn', 'OrNu', 'DsEx' + 'Naam', 'BronRegelGUID', 'QuUn', 'OrNu', 'DsEx', 'StatusOrder', 'Verantwoordelijke' ] relevant_columns_ontvangst = [ 'BronregelGuid', 'Datum', 'AantalOntvangen', 'Status_regel', 'Itemcode', 'Naam' @@ -136,12 +137,70 @@ def analyse_leveringen(df_subset, delivery_counts, total_received): df_inkooporderregels_clean.loc[mask, 'DeliveryDate'] - df_inkooporderregels_clean.loc[mask, 'ExpectedDeliveryDate'] ).dt.days +# ----------------------------- +# Chi-square voorbereiding +# ----------------------------- +# ----------------------------- +# Analyse: StatusOrder vs Verantwoordelijke op orderniveau +# ----------------------------- +# 1. Selecteer kolommen nodig voor analyse op orderniveau +orders_group = df_inkooporderregels_clean[['OrNu', 'StatusOrder', 'Verantwoordelijke']].copy() + +# 2. Filter rijen zonder status of verantwoordelijke +orders_group = orders_group[ + orders_group['StatusOrder'].notna() & + orders_group['Verantwoordelijke'].notna() +] + +# 3. Bepaal per order (OrNu): +# - eerste niet-lege StatusOrder (meestal zijn die gelijk) +# - eerste Verantwoordelijke (de persoon die 'm heeft ingevoerd) +orders_per_order = orders_group.groupby('OrNu').agg({ + 'StatusOrder': 'first', + 'Verantwoordelijke': 'first' +}).reset_index() + +# 4. Bepaal de top 5 verantwoordelijken +top5_orders = orders_per_order['Verantwoordelijke'].value_counts().nlargest(5).index +orders_per_order['VerantwoordelijkeTop5'] = orders_per_order['Verantwoordelijke'].apply( + lambda x: x if x in top5_orders else 'Overig' +) + +# 5. Alleen top 5 analyseren +orders_top5 = orders_per_order[orders_per_order['VerantwoordelijkeTop5'] != 'Overig'] + +# 6. Maak de kruistabel +orderlevel_table = pd.crosstab( + orders_top5['VerantwoordelijkeTop5'], + orders_top5['StatusOrder'] +) + +# 7. Chi-square test +chi2_orders, p_orders, dof_orders, expected_orders = chi2_contingency(orderlevel_table) + +# 8. Cramér's V berekenen +n_orders = orderlevel_table.to_numpy().sum() +phi2_orders = chi2_orders / n_orders +r_orders, k_orders = orderlevel_table.shape +cramers_v_orders = (phi2_orders / min(k_orders - 1, r_orders - 1)) ** 0.5 + # ----------------------------- # Optional: Hook up to UI # ----------------------------- -ui = UI(df_inkooporderregels_clean) +ui = UI( + df=df_inkooporderregels_clean, + chi_data={ + "observed": orderlevel_table, + "expected": expected_orders, + "chi2_stat": chi2_orders, + "p_value": p_orders, + "cramers_v": cramers_v_orders + } +) + ui.year_selection() ui.supplier_selection() ui.show_date_analysis() + diff --git a/ui.py b/ui.py index 8673d3b..dde5bf5 100644 --- a/ui.py +++ b/ui.py @@ -7,12 +7,13 @@ st.set_page_config(layout="wide") class UI: - def __init__(self, df): + def __init__(self, df, chi_data=None): self.original_df = df.copy() self.selected_years = [] self.selected_suppliers = [] self.filtered_df = df.copy() self.top_percent = 10 # default top 10% + self.chi_data = chi_data or {} # st.write("Totaal orderregels:", len(self.filtered_df)) # st.write("Totaal DeliveryCount-som:", self.filtered_df['DeliveryCount'].sum()) # st.write("Totaal zonder DeliveryDate:", self.filtered_df['DeliveryDate'].isna().sum()) @@ -78,19 +79,26 @@ def show_date_analysis(self): tab_groups = st.tabs([ "Per Order", "Per Order Line", - "Timeliness & Trends" + "Timeliness & Trends", + "Responsibility" ]) with tab_groups[0]: self.plot_order_delivery_summary() - with tab_groups[1]: self.plot_delivery_counts() self.plot_missing_delivery_date() self.plot_fully_delivered() - with tab_groups[2]: self.plot_performance_over_time() + with tab_groups[3]: + self.show_orderlevel_chi_square( + observed=self.chi_data.get("observed"), + expected=self.chi_data.get("expected"), + chi2_stat=self.chi_data.get("chi2_stat"), + p_value=self.chi_data.get("p_value"), + cramers_v=self.chi_data.get("cramers_v") + ) def plot_order_delivery_summary(self): st.info("Toont per leverancier hoeveel volledige orders te vroeg, op tijd of te laat zijn geleverd. Een order bestaat uit meerdere regels.") @@ -229,3 +237,42 @@ def plot_performance_over_time(self): markers=True) fig.update_layout(xaxis_tickangle=-45) st.plotly_chart(fig, use_container_width=True) + def show_orderlevel_chi_square(self, observed, expected, chi2_stat, p_value, cramers_v): + st.info("Toont de verdeling van orderstatussen per verantwoordelijke (top 5).") + st.caption("Toetst of de orderstatus (zoals 'Geleverd' of 'Deellevering') afhankelijk is van wie de order heeft aangemaakt.") + + if observed is None or expected is None: + st.warning("Geen data beschikbaar voor chi-square analyse.") + return + + # Tabel tonen + st.markdown("#### Werkelijke frequenties") + st.dataframe(observed, use_container_width=True) + + # Statistieken tonen + col1, col2, col3 = st.columns(3) + col1.metric("Chi²", f"{chi2_stat:.2f}") + col2.metric("p-waarde", f"{p_value:.4f}") + col3.metric("Cramér's V", f"{cramers_v:.3f}") + + if p_value < 0.05: + st.success("Er is een statistisch significant verband (p < 0.05).") + else: + st.info("Geen statistisch significant verband (p ≥ 0.05).") + + # Heatmap werkelijke waarden + fig1, ax1 = plt.subplots(figsize=(5, 3)) + sns.heatmap(observed, annot=True, fmt="d", cmap="Greens", ax=ax1) + ax1.set_title("Werkelijke frequenties per verantwoordelijke") + st.pyplot(fig1, use_container_width=True) + + # Verwachte waarden + expected_df = pd.DataFrame(expected, index=observed.index, columns=observed.columns) + st.markdown("#### Verwachte frequenties (als er geen verband is)") + st.dataframe(expected_df.style.format("{:.1f}"), use_container_width=True) + + fig2, ax2 = plt.subplots(figsize=(5, 3)) + sns.heatmap(expected_df, annot=True, fmt=".1f", cmap="YlOrBr", ax=ax2) + ax2.set_title("Verwachte frequenties onder H₀") + st.pyplot(fig2, use_container_width=True) + From 6663085bbb05f85bf5a56ad03b6bd4b398a7a01a Mon Sep 17 00:00:00 2001 From: Jan Dirk van de Bijl Date: Thu, 22 May 2025 21:17:52 +0200 Subject: [PATCH 27/31] merge --- __pycache__/ui.cpython-312.pyc | Bin 17887 -> 17643 bytes ui.py | 47 ++++++++++++++++++++------------- 2 files changed, 28 insertions(+), 19 deletions(-) diff --git a/__pycache__/ui.cpython-312.pyc b/__pycache__/ui.cpython-312.pyc index a9263b961f5c364d84164fa569d2da2c645bee21..e78c6a24269b296d25356798320fb52e75e03db0 100644 GIT binary patch delta 1699 zcmbW1Urbw79LMkN|9`ZsxBO|xM)^-2j4_eotPm;~6Cw~LMqkFRy|-{n>8Rz>bR$b-_7Z7OI(&7~+$OZ~7pWW!&5>(O2VxMDRr)^!(bgEpsu^oAh(fJ-^@i z{l5ME&N)B6MgNke?cbG^St#;cnCY18==|LN({cL7=C8-QjC2AwHjfzQhz+IiT(d9p z8X4Z8(RuP3LkomHCpt!6=ygCBpbYQ^;BCO0fRlg=06X9u;3A+Cumo5ETmoRgI|M!* zDu?l9z$$=V+pKSy*AZRoCx-ifUZ#nY0ZoCaC=y0j0Iw3LhDlzSn3NHyM(YG6%}hx% z?r3Z2DF}Q9JpP+Ne6g+CP*AnDnQP1HY*!&hjNoaM!2O;6%m*-WH}}7lt5Ba$!2SQK zA!~j5Lb+5k$47-EkL)~$u0za{Nd0L}PrrvF{>SMVe9hn54JA|cAu%cB#0_3Xp?`>@s)N?Pb|91_$5pwp@@D#Z9wt8u2MonFPC_Oz1z-tPI9 zw!(JQlHdM|S{!eEX;b&aWm=P_@v_^cOVg1G%r-E1wAWhAF*)akhIo>PbEWhYHE&Lv zBUN~T_EbjPMZ^6}oAI{Eg}>=_RnO9rhNid*u9BoRCJyBvLJ-JPPqKnVsN$TGc3U<4G1ts)=ws#!mC9 zg(OPwg>fqITt4LfQxR+ENCxqnU?PMz)H~bgl#@)g48dI@_NnSN_;qiD>l+hXqAlV48 z7(C-mliTV%b;o2`GG>k2<>zjhSopAHE!zxy;O~PUXZ8$~tLELnN?_e|-S(mFX5G4N z$J@2lxg6MGp8Q&yXP#O#DNfI>vpMf<-f_0>I@|Nkc7?1NUK!qXwd7qbKe&S1CxS{v zy;9Y%XQY^u`;?BcEE*4Nl;g-!I2%@MjACz6>>kBgt2jrM`cvCOXYGiCN1Payoj<*mHRz|e2omTp-MTQ zCUOBOY= zy6Q;G7PuQM{+mE{vbxM;t2#G5Rb6luy#qdUj%GqxQ?w!fCQRHp``^-K=jS|_|6etH zuk5zdW%*RBrTZ}{#wxi0J{Lv0>s2>;gLOA-NB!)4L)9aYGRxg*Xa*reU%LQ1&j`gUFebpFd+Ky0ZpnKD;mAly;Vampm^77jXm!9x|2#RvSB@qO8 z1gq6G!@(sH1R(;4x)uc73ZSBBsrw;8uGp7Nv>Ap@C6%p-$MZ&;fvHI)BPpp^GKk6x zOBLE@N>y1y(M&1Qf;G%9iy8r&NCIQc9;fxLh%70|l%n_W>(t#NrA?_{(WQYjzT-+t zVVtCrqUc??S5bOsZML=rV_i}esz@E!WFN+Nq7n8-{DZvg_z|i>;v6!vyvcNzna*Mh zsg|dO@J*)dvfPTU8`N?pd#UB>>{T+BLmA9gAH@7df(R@n34XB;>oko`DT9f`r7Joe zFd#JBLUs`Qs= zY+5e6cuJ#|QyGj}0X&$&ofNA_)T9OT^)O#=!V{GwcBZMZ@+^NtBf>S&f680%URi!% zPCN($f5Cr45JI~gHwD4h>|nn%UC7_`2;s7^*3+#MtL8#m3ch2mW1ZK;z^OnXFuHp@ zG0}Nh{N&kranCn=E?5X&S(TU*cY!ls!8f{TA~7#Uxr@^BG3~TA9=jO(IDRQU6I^9v|JUVto6x{oSWVC%$=y)Og`r+A)i8-ye3vU45E|I nVC2d0>!6rqh7VYKVl^6N{fVu}V(%sDm$kZ3{ci%0g!ua3Ih6nn diff --git a/ui.py b/ui.py index dde5bf5..176d6ee 100644 --- a/ui.py +++ b/ui.py @@ -238,18 +238,18 @@ def plot_performance_over_time(self): fig.update_layout(xaxis_tickangle=-45) st.plotly_chart(fig, use_container_width=True) def show_orderlevel_chi_square(self, observed, expected, chi2_stat, p_value, cramers_v): - st.info("Toont de verdeling van orderstatussen per verantwoordelijke (top 5).") - st.caption("Toetst of de orderstatus (zoals 'Geleverd' of 'Deellevering') afhankelijk is van wie de order heeft aangemaakt.") + st.info("Toont de relatieve verdeling van orderstatussen per verantwoordelijke (top 5).") + st.caption("De chi-square test toetst of deze verdeling significant afwijkt van toeval.") if observed is None or expected is None: st.warning("Geen data beschikbaar voor chi-square analyse.") return - # Tabel tonen + # Tabel met werkelijke frequenties st.markdown("#### Werkelijke frequenties") st.dataframe(observed, use_container_width=True) - # Statistieken tonen + # Statistieken col1, col2, col3 = st.columns(3) col1.metric("Chi²", f"{chi2_stat:.2f}") col2.metric("p-waarde", f"{p_value:.4f}") @@ -260,19 +260,28 @@ def show_orderlevel_chi_square(self, observed, expected, chi2_stat, p_value, cra else: st.info("Geen statistisch significant verband (p ≥ 0.05).") - # Heatmap werkelijke waarden - fig1, ax1 = plt.subplots(figsize=(5, 3)) - sns.heatmap(observed, annot=True, fmt="d", cmap="Greens", ax=ax1) - ax1.set_title("Werkelijke frequenties per verantwoordelijke") - st.pyplot(fig1, use_container_width=True) - - # Verwachte waarden - expected_df = pd.DataFrame(expected, index=observed.index, columns=observed.columns) - st.markdown("#### Verwachte frequenties (als er geen verband is)") - st.dataframe(expected_df.style.format("{:.1f}"), use_container_width=True) - - fig2, ax2 = plt.subplots(figsize=(5, 3)) - sns.heatmap(expected_df, annot=True, fmt=".1f", cmap="YlOrBr", ax=ax2) - ax2.set_title("Verwachte frequenties onder H₀") - st.pyplot(fig2, use_container_width=True) + # Percentage-stacked bar chart + relative = observed.div(observed.sum(axis=1), axis=0) * 100 + df_plot = relative.reset_index().melt( + id_vars=relative.index.name or "VerantwoordelijkeTop5", + var_name='StatusOrder', + value_name='Percentage' + ) + + fig = px.bar( + df_plot, + x='VerantwoordelijkeTop5', + y='Percentage', + color='StatusOrder', + title="Relatieve verdeling van orderstatussen per verantwoordelijke", + labels={'Percentage': '% van orders', 'VerantwoordelijkeTop5': 'Verantwoordelijke'} + ) + fig.update_layout( + barmode='stack', + yaxis=dict(title="% van orders", ticksuffix='%'), + xaxis_tickangle=-45, + height=400 + ) + st.plotly_chart(fig, use_container_width=True) + From 4e182d62467d2e627d3ff49f08b810cd025b51fb Mon Sep 17 00:00:00 2001 From: Jan Dirk van de Bijl Date: Thu, 22 May 2025 21:27:59 +0200 Subject: [PATCH 28/31] betere chi square and cramer v --- __pycache__/ui.cpython-312.pyc | Bin 17643 -> 18997 bytes main.py | 59 +----------------------- ui.py | 81 +++++++++++++++++++-------------- 3 files changed, 49 insertions(+), 91 deletions(-) diff --git a/__pycache__/ui.cpython-312.pyc b/__pycache__/ui.cpython-312.pyc index e78c6a24269b296d25356798320fb52e75e03db0..dddad58a3adb01b5796cd48c9340f79754cca511 100644 GIT binary patch delta 4985 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 Date: Thu, 22 May 2025 21:45:16 +0200 Subject: [PATCH 29/31] mooi man --- __pycache__/ui.cpython-312.pyc | Bin 18997 -> 21246 bytes main.py | 3 +-- ui.py | 41 +++++++++++++++++++++++++++++++++ 3 files changed, 42 insertions(+), 2 deletions(-) diff --git a/__pycache__/ui.cpython-312.pyc b/__pycache__/ui.cpython-312.pyc index dddad58a3adb01b5796cd48c9340f79754cca511..0768b28519fe7b62b647ab4e37a721a953d01e3e 100644 GIT binary patch delta 2885 zcmbuBdrVu`8Nhvfef_raihV$B*Hr>*$VTNnKj*Y!@FKJ)~ zk}R!~wGClk(llGzRn=C_f~{$+RavD;>AEGP)g%y+Qe9PA`o~nY(_VDigGtlQca4({ zp-I#3A3uNRJKuSHkMqG#&y#=skXYZhSd1$6xxd*o@=nLB^%~hfdoyelOs7;&SjNo( zOU^}pVd8ISRH} z?a(cB@nOC0mWdC$bhk?RurK$Gl3#1cDs)v`*7mdY^e}u>@is}r<;reDmdKjXNHUs* z-&Tf-vxN3Ai!4V6(NI7{q094daaK+1*+|wOjnG(RAQ8>-bObJX8b}s?<+(X^A;nzz8UGS3$4y?HLf#m(%zb)WbQ(^um z&TxWVIhu>tpz@$yaLhaB)cIAD94m)S>vmwn6J64lf>tP!0tH!mpde+q!bNZgI9pyy zT(IOX<~8j22B_|I7HJ9=>=Z8Eq&R4wFa8g01(u?9l9RAzlrP?bi)%T-III#%UL!)O zP{#Z(zpNIF^X@rq-fEK1@bPvfIu%0Yyk|}gks2r2hHFcBp=#b+a1pZ>@a>;C2tRjM zK~-1KO`l+U(8CCP;s__=2*Qs@Ad-j_0wYc_)RZD5hF&^`VlCnrVw_=O>zAkyrM|tf(I|vH zTiBcUL!hLNPM|>saRPA?@hyhO=(CK0N?M7U)A09)J=2XSVtLZ%5icOlAkHG5L(Cw~ zA!ZTZL0Az_A^_2hIFGo1P#nF8(o2X-3;``ILfMA+9^x{>_cHPo1`*TcQ@(ug`q+5F zkHPbbW65NMj^n+=cUXLnt3K2lXLM(Di?-q0`Vk0u{Y{plnL}p|EqdFpOf6RRo<6i} z`QmByU6Wu2j<8hSOp=-ImL zXu0DEE;)kBj*dHy(2^sx5L|SGmK~2mozGA1!XDrE4WSP_ZP)9UocnU0`Fc4r2HQ97 zHjS{G(MiM<%xnrwW5`+Wd4~P01>Lb0bhK$jSP)92m8dF_Zb03CkMBmI)#O9_U0kii z)1?Gd!^RlTd^p3fr?!$@&5hJLHKZRhfmR)s9V;w&D-i6ZKVXAT&avRKOnuHB+%t=q zW{|Zb(b({alrO0{rdjjOStzMc{g!FPl^$I4zq`WUuM$~1m>L_E#Jo$2M?BjUJz8^V zHyciP4u%`kiImizjEQ1wbhsaWS8pLVbN{G6pfUd#Z&7gbD^0=aAE82d5P19id)PQN zN-o|+qyOI@*&sv{v7=Gyj|%iE?s>oL*ZH&unwl%gZ*qH^TY2(29B=O+Ps7{oHJ$fz zBJ+c(M2gZW+y_%5>)7Ks5~bpL$I1&?Dcjb(Z=+J%=oKqDQ=W1f52!+5(aD+wYcp#P z8ZK;WATPta+v>`c#ORrUl9+qB*$Z6IPyU+Q9DH5hau_$k1}fVhkJ8Af^mHo4I#(hV zXV-oeCtoXAhAI4qJUbdV_74m((R&}X?(}m z+A^+I*AS3)c9NTLW#Xp;&oyDZ`R%@|8i z){iD4bT}$X6q6#W(}JuYq$yF9A_KBX9E_#M8=1@=%X^Bsl8uA|eb5~d0qiFRQ;vg>7(`X_hu>zKL!cafHHl=0L z1sDj`X!kLbi2!TV0kw_f-U@xJCRTW*uZ?^amizpBa5|qw<*%L{huG^CpwHq%45w5p zYM!rJv6}ecio1+IN>(&JN nB3uu<-Ad8iJ8o6KBbgG$648g~D*PqfQna5Z!4(x!`Aht7ZmY1I delta 1804 zcmbu9Uu;u#6vz8(?`=D}ZY^a~MmOr3G48Y*u8?iaY|B*Ac5J!{3URaEwzu77ZEyMA z+rlci1@|y83dfbe1>%&0Lj@#Sh_d?H34W)oxF1Mzq6#zF}3LHqFO zx#xF&=XcLN-}AfkG5Ktf)O_uBZ?Lf6Tjh?)A37Imu8_#WttdC`5~}qE@`cNKk%NGJ zT;J_Z*dXBX!FQf&(h8)x0h&B@;PO_(kDd@b<@J#{D0m;z74IHG>frLmSM~kA7$Lvt z7d90L`0E39hoxrAvJ(dD!_Rt|IX|&-+ugwUm-F5ybq9N$o3-9Z&~`KQc%;L2>rro{ z*S1vUjXG>gK|b=BW2u9WbUT)M`6%c3%E3oH4iG!)^`Gi5bEFKg<(z$j<)GuR%YTh1 zuL!eH1ZB{?&xQLLDrV_2)#w^lD~3%Aag#o;Ia55@7T#d*xbl1eeJsjEer zHS)}jHLevIWsl{?{n7S9R?*@)SyknHCJx_(-Q>J(gvYq*^Y|8b3-9jknt2Bu>u>*W z%`&_50fztodW@=+l$A>oZI)8>L(FM5?m;!hz|-R=m-SFjm?v+8*w;f;c&{(myWSIn zPbyi3(h}yu))FOnq7T z(3Hf6)~*&4s-%_SkCvcob*gd0OYn1KV9U#BrVtW?%7kiJlR*ZSqXTt+;?g9-hmaAU z!s+PXR@}r!9Y3JKX-Z+2YGr0%c6CzB-PRQgbjEtgRmjKAlHC#Te6IxQbvZOQx0%jWhKT;!+4qq1sV7W4x8 zTON2t17w=KFha@$JWFh07IyZ{TM%_Id^ zNBzNW7Bpw6Sb4swQsd&gDh&_wB~sZLVWaz@5=7`4Xna8h4oztYzwm7sQMd rPb&GeoS}9+(-ei-biDdjoKNJGR52^{(cj_5SZA%ok* Date: Fri, 23 May 2025 11:54:00 +0200 Subject: [PATCH 30/31] added readme --- Presentation Text.docx | Bin 0 -> 17385 bytes README.md | 74 ++++++++++++++++++++------------- __pycache__/ui.cpython-313.pyc | Bin 14868 -> 21190 bytes main.py | 4 +- ui.py | 58 ++++++++++++-------------- 5 files changed, 71 insertions(+), 65 deletions(-) create mode 100644 Presentation Text.docx diff --git a/Presentation Text.docx b/Presentation Text.docx new file mode 100644 index 0000000000000000000000000000000000000000..f36edc2b993f42c65d358aad347fd6cc56dc4a85 GIT binary patch literal 17385 zcmeIaWmF|g(k{GlXrOU-ZM1QBcc*b_+}&y18X9+ZcXxMpcXxM(%Q+)wrf2T=t#$vt zZ^hcRYFFkHnY$`7G9oi#%SwQNA_KqykN^OH06-sUrECZU0OW!J07w8xV08g2OM3%L zdu>G*YXdvYug(_c_*tO9WElY9kNW?6{11KtH8I1c-L&vR_x^9blXVN?O=P(}gIVDQ zSjJC4zZj(jZ~3!Z-rBZV>2itb7zg|C$5(!gL(=(9E+v^mA=EmN9HVi?c}HuRuuv|} z?@)W{V~}pf(5~?fGJBabwzOhMG6T^P)pkdXDtwYj$xiV_QF#D_QN)HT5wrJU!0~$o zV_ZCIoqJ21BR0h3FZsek(8vb)i!B}}d9V;8z*L=ksbs=(+%u+|`UIJfoCa=6&58f}5_-ol5@XxyWdtHr8Bm4YnV?GN&9y0V z`v?ag#ZYQsq4%&}&0H#c&>Vnq{cRCjJy{`ghAoU6zcltCyz>4>w$eVMwO7K;q4GRw z)a~LmUuzU{0m!0Tv;I$>56OCe2LZ_b+wjDV#H>I6D3Sgceb67nQ`^?S+>Yk!ALsua zmj8pt;=la#lBmv)VF|-~?)&OH*($fxiJmP@qc^dPz6b%SE+&bzykI*2_R6`i0IYea zBQiWS9X;V{mm=)25u2bBi+|*1si}&Uwyy3nqE*&hT}JNQ`{Q zH&_+r*ElA4Xa~|Rh2Y(8KC}rT`S^?;admc@&A0jc1P_LcM7r5IQ&IIF5Jg-< zZ2>q!QX+LrK4D(8Odh#rx99f; z`BOn4 zne%#q5eyHNw+U;P%S?fZ9`O%;Dh*DJCgqX*M2s5Ty15LNpzYy47If$5l1S&e%)o=m z1v?$si;=p1=kboc2IHzm4j+o3gS>vH)Nu03{&t=2p&F)(N^L9Y4^C{%riMCcL4%To ze&~vk%PO+l&l${0sY=K#Of|0>rH?QdAJX4skPy&B$r@~}+U3lhB~x%RyOXtVIinjE zH=&AXe?umuv9S*edp#@o^dyUSf>b4q56Vz8;x2zzEY{exV;UY|he)tt8ZQ6NC=Nlo zpC&xGl)sZIJh+z6$QnA8#V*04D@Bkj!WcaII97u3k-3QiYQS9NUGan zAS1+s&70_;HZNlNvY6c2bxc?Cq#?7*@&~lEh{JobgXiE=!I8H192e~&GZhTW%w;ux zuJO~=*Q(+s2#4=-^3!aj_#(o?jFfYe1U#{roRV0CGX0Fqa9y@3?&*2`!}ZHEAAj05Y8G@7#YEt zV7Zo@>vN(V?27}Wb5X>;EJMznpo1)rm?H$Dl@sbL!s1;KHd{?n=pp2n6U`rp#=A%I zl2gn}E67Q*gZl(zRSQ+p({^P!a7Hs;9{bH{BWdiavs3NuvmJdIL+uSvbHuHEmKx9! zzqt9NR@-d_k$J^wh^wH;OFW)E`IW(dj(d_UU(!jud2hz6soHAC&8bUNj6lWN4kzY`}~VwOoe{ema38>LqzpEKQ7qDuQWnW3bgHZ5M$4wi>hfa z1Q(FW*MysXw98jDdDt^C}A1Mu0S~` z;I!3#sbp2V<}+(v^kD=(`?Z^no4xz~CS~=>d<18?*?YB=-kbLKx9|!18$YJVT@@n9 z7)*&GJRcK;e$nsL+9pLrC@2Aw;(4oP!y)ieURpIM>NQe(Qzv820Z3I%ceEtFLE0`M zYF}RIEH-y}r4+cCsP4vp>E!Qxu=`a@IzS^= zn2Dk8g}B5#_02M$fgeHDy*0rktP^zI?K91TKqJ|wD4jCCq@>O(@Jb{*e^e7cGbqe^lZ@V*RT%J`kTg$NJh=1vTOFr=|C>A{PaLWe{0U6FnJGW34)&UFuI zO!X-z+Rxu!GmDFt2KsT1o;t~_9?FiTyPH?Z&Lv4Vdh*O$zruUwlX-3iJ_ixlN=D!M zIGJEY6^A&}!Duic8qsw`P^nt@lxzUFhTs6)qNE6Y>?#7w%frHb?|Rwnar@E%Mg?wR z{(_gKUJ(i`@6Y zH;P|1wQJqGuktM`wu{et9ANgbwO6Nx;dYCGD5fz4ILo3+FbY2VrYW(`(Ra*5s_?$a ziWr3gwG~`deLkXVEi_Uq1Fc)PklJ?L4R~(BSBaa9ZBc7;syVQJ%Af(w&k!GPDi~=^ z_Ve((lBPI5k(;|ek!zI%pkPDr|daNK-NMw#Yq2%=2g%Ai;~_g zdHaH|+-?gxPhm!wYl3lZ_0wS;c3m72O_NSuX6u4-9={+v?Zeb#-@A3Ixu&t7_A*e6 zN;0`>+!MPkdgg}a>WFKe1;q+1m!f3%BXqSHb2L<%kTMYuG181;hQ!ZWsjLUSSD|q` zVt1pnM+dnJn+Mtu!;xpDP#be_Yq&-o<8%;bUqR+3+1h!Dp~A(XPd5cf(f^`6D4~G# zS|j@o(g?hzfn*-G`|C?Ed{LUUq+p&I>%O9Nf7I|Va@9M89|ptF5{JHhWU7OOVswS_ zL27sP%u3->^Yzc((>!`j_)BKX-Z2II*2<}(nz2m_`f4P*sLe>@wE<4~)yuGkj{TqG zH%wBt?49awurl~~8qm?xST4^semK!xV9(R$ml7f8SuI%JPpx{RWaVWvJm{6d>%AwW z`n!)`joAcK#IiE?#6gxD522;bN+g5Qe{+Q>A5~RFYbXYx%@tnM!gmFUEcPerGw7-2 z=Ph#!0qZ}7P}oszU#=`0{{ywa9yb z^^>5?uv?W}Zh~XMGV1cG$npoad`hsFR>G{HT0sG+a%?2Mi&A*M*+}DC!3HbuwdOFV z-nIOxf@Q!^!CaB-0mP)Af#hqDMJ+S1<~r?epcyZc)__VpXS zEsPvSDOA)-Fq%v4ns&NOguWS_EVpmEQKGGiR*K|U(-%m7bzp=L(o&YtJdCTE?w4fh zspJL`c%S%=rgNdTe+k_x+3{BNE**PaH@0X)vT}5rY=FHoTfce3{qi(4e>Xn7y|W+y zZWWe@Pb$(c|ha{}<7E#Z2An$$khaYe5N@K>1g-^Q|FKr<08xg9namid8tbVH-6(k_6x8 zj?d5C#Sj7am0{`6q#O&#RBW3epF~-2x|7L%TJ&QzY0*Ne{lsl=&j!;p-(M20LXw0; z%F%prU*64{-iS}2M4x}}7i74=3(Eqjjl{F>I?8@^ygdgsHVw$!XHDxt@O&V%rQl}! z;e9!MvUjNs-9r%BnY*&8>&3T&My2vrPbg-aJ*DSDc-X;$hojqi7(k%UP>Lizh7XA? zaB5;zv$Mh%%?aJW)$M%i3zsbj(HQ+Y;J_+r6wa zQ39gKmJU}>yKbUwt`FMSalyV-tpmA7_n5&ebpjyQue#*3hEk71@^sy9Ky=TRcI<2M9I z2-YUeMbT>`>Z?lHM90bR$%Zfg-NCDF3&sKaFm3BV003+NB+#D*?BBe+e>G$O;qd`| zEW~`&{-1r6M34Tl5aD<3-{!mUgPOxa04mas+*?Ea9!USktH7;Zj+9!vyO22IPw;8q zFa}+tHvd`I>rxbsjO$h=;3{IUfV?UPD>Wdz-n&h(gfAwhg(ZAIM6L@v_fE$wicwt= z=TDv05xOm2Va6&pXT_guZ-Q_p{NnrAsmVp>ulSVGtAyG_r%9ZqVFt?S7t2sL9B+v# zbg?gZ7VAu&K51Lj&Kn;HgWZcFGhY)ZG@*)h42toiUMxcf7eF#nqyS^zYPh3Tubnsq zeKmI@U{$w+A5MTrHoOG3j%hb!?!Ul}&a4dhq*?^kznJ9f{0r*RfA={(Iwj!?yvObG z72e0Y|4%>25gzt&6&wKQ#|HpVK5G0aM)t-A76vqbp6UMdg;Ym_u~?AX(Vln$8#&T2 ze!L)T!M;f*osbeViw(+|4Kw^=%I1r5(&Nt{&e!_nUvo3TYsD2a#R~%4dJ_&sTyuyg zC&q9WV&3?;AO&SGUx6#uet$FlLq=vi2^#IZ7ZjVIk4}m`%xTO4Al_&16J4>r!jAq; z?ehjODUztM5BnIf&HmO{e!7O&zL1|TXpURgcy|~QRAgGY(xZx_fJay!S)`uAkS>{i zwErxWZ@;{iWKr8Oa}ixn5C|f=M6I$8A(??ViM?ao&`-fP2~cGmy{@}h(-;Yjbm>cU zlN0^DLYlS>_pS~EVjPh%hRlA5gEVV^x5j{X*!B@mev@5h6C$B*u(_CJ&bw`+#&`Pb zT5M=IWuLPNtJ&6A4_JI%Bo_0+aq)EUj!Ts?#%=jNSH5nGN47f9AzbRFWvOz*Er}w48-&gGe-0H+#c*1$c4LJF*L4VDyS z5FjH8z-XUEb@&@k9NovGy_KC_XGPSp(?lwWQyoGdh2ytC9uhVc?Ncb_ixqrY+}>V# zyNzgY-|n_1v(ex@ftp!E{DjWvCA+Ftj`7;xo(Iu3%C$Y6UmvhI(&8`6J>ITn&pls~ zU3Dg&?hcEMWVAi*XVZDO>N=WXaN{;1ScS1Q1o}5fLwA9xkun7CED<3PdJKXr5p5HA zN%Z*Og!D7Ysqwv0HQ*8*TSoPpDu8H4&oTY(iI~wAfLkzo!L7sPr?N+y@`_E%s!;aC zjMGy_hZ~aNaToW_%3WMoWeisIl7~F}V3Jq@?b%@Dd_ZOO>;oc%PCoYqXx?8W$Vuk| zuXJWWRL&AZJWK@U@gLBKR5lx$rlhLLzjl%XHGme*O_SjWUyA%gt(wlKvDe(h*W*m9gC=Y)oN|IULUgxA`ml?VL6U> zW+fb&-hUvkWmuP}*Ab&mSi}k!GqW`q-n-x02fpDp5mrW_dk^f8GIE3>K5~>1}<>#HSISnmqtqC4^wwc8!4S&$J>Gk|)MWMDyuCc?6_+Mos^yk-n{#GK z+y+Q5m+_1stTLAPF27VVj8H~Zg|6Gnjq6VLtJ(KT!q|%SP6+Wb!pOzZ+<|IZ_9oS~ zN}aeBBnR45;A@5*CcAgn(nIv~EsZm0Q4}x-``y?<(C7=&fwH&ksIp!m^K3C?#^J9t z90vHr8>v$4>%Y}w;$J(5OJ8Aee$zQrmm&uUO`d}nd#L6FmDEpCmGLScIZ)2bmq-AM z-)V}*kTQtPP!T5$kFi8dP;#K4T0jTK$+yS)zYVn#!hHeE`a8>xqYqj~6L86S4DH0P zaXH9XG2}IxuUECyZMm|iF^k4@jS|a!>K4VtJzmW}Id&FOQnK+MDmGA2XT#@-6W}3g!p#}o^ z=wTciutel+>^(}=_Jzl2EWbWb<+l$>3r~|{22*nhDTEn_mt=ndEe21On0lVvLC20_ zYlh0r^vTPIVeQl?DPij@L0<7knV1Rfja5V>Bs$=ohCFfEpxbvX_ya7`OY0!Da-Evg$ z=V7!cRnm#p;S*aKFSc%+{WdK7V|ShdiqtH$;6~*S^zYf_dal#y2!A!&0njm1>*R z1aNuoz#fAr`&{cg)5zd8QpbU>K0^Gr`LH>|*HipsODhfjU)BZf4D9VqERF2`mEh@Nqc2kZWlEqp7|SZJ+@HaHSnKO&TU|JP;a9kUc{d7p=`lvGEl0_ z;`1^4A=;#H#Gyz+U^+6KI^)10SN}pzsWqp}5gVyfm*3bFP``+OIF+JTvPUWNzhd1_ z;D;%(yw5RVQon6A2b?htZr3wks>qc(Rg|Kc-*-5>R5^<|Pi1VDbXY(`D9YjB7mD<+ zF=R!bD{uT*$jSn?Tb3`r9(X;5OfdrG^G+|@4g?QlQ%SpyxMEM+=n?4aS?at8vlEte zRF-2c3ls1Vy=Ew@L*9L3XLlF2GYJM=%Dz*KOV-Oy8{zey|f++Dwjy|B;-`u z#;6BLp(1BD&68cCIw-DWkE&IG z*Wel3%6d}wTm|a&3f?KD<)tIX`^xedKQs)T6E7v^L2J*GIt+Oq{w2w+ zQ%uw2K#k8!?)1e|@S+reU%v5(q&V_g*~uoH<;(brZ*)X#E1tyB#kPHZj7YKjlZ|MZ zdT+yvcXyS~1!3$n#rQcb#pdiApGPz5JJgW1&gu`c;h!W(KHtv!FyB1dkN8K&htUkf zt7e18LxQ4 zKtWpDKoT2QziL=oYKopcmQnVVhs!oLpN{LN3a_3r+!M7toZnRG;mNi|`iaj~t@+!- zXC|rl0CUH?(U_=Jt%a&n=m({)aqe4#YCG@|xrAxGBWQ}9G2S04A@m}{V>cSqb|Q)S z25V&3wIg^2-f>{^;MEv=v=dw%c6ssgZ3Zz_AYa!*9~k7){T#zFQ*M#)W6+Mlxl2hIg|CIO=vFFPyBr+EStr;Y?yBEbbcGnHU-A=1S^7f6&mYy0i zX8TFSqR;y(p4(bn&G`i@feUOK^ZA=j9a?;eGaL()lK2^@3-S}6=dii3lCAUZ^ zmib#bU5Fm?_X&XG)UbOZH$R@4b|wP|L!CefVBbe{UCN8?Wq+HeKfUB)_gDfu^e#}J zK>Dn2sgxZzv!|agfpazV-Bn|~VOuWlhuDS?E1%Q0a!hFZ+WXURd^aQc7A#@SMxZJ2 z;!VVp)3#<>zJk!;3(l|B6XwtEJ`63RR_@r8&dspyIoPyN$eOc?9`T4L*;Lu=&@_ub z78|0jwU-LPdN?MABqtPKQblZUY-c9egH?tEZI1a};Rv1rnv~+{*(DY~1s9R(-yvqn z&Bl~?h@ZEltjdU$Q?k9rgfvAh%M>!FY&`+`$;FNLP@@-y4~bmlb;CK)4q;KGTRB(! zs_vfZQRz_0=5jsuE z9hE}9i4sx$dKAUH7CRfiK%*P8v%=(`5%?4sZH|^_>k#-{G&zzAzsQ175l$p`7GX-A zzm%J6q3YNzS0VNAZM|0x!=*YaukJvKl)$V8YO_TOK}=HQqHRHDOAD#O zea5yL9@8>6^Pzun)V?cjTKpiUwadOMyHahK>B55c3ozfL7(a_3_DNS!y0HNt?n%>N z5VyRFCe6L07U>tM!Ul^*cu1jZ!Ak7!2zR@#eT;G}(^TXSnCUkoOk(fGEk&zq*(})ha6c9);&MGUUNYbH6N&5 zHxJEU6j_!7S3!FNse`tExPH1}R+Z-Dc~|PmuFi*Gk3BGn`XvLEB_i5|I1I9Fo=iml zW#EUQP=a_=rD6V$@XwSEhg2zv2B9c%NN94nZ{Bxgu5MD1WZeoxacXfx+l+`V(Y1|g zNT;g8qBL35xWQy4vAGATjyS_TQV2q1@wa$~!lYFmZx1qg?`Od?kQT*Thv|O( z0-*(ESuhqpO>|Opr@|u2sy4eSw2}+Y45{?-+$SwNL3rJ;>M>+mZNbsX zGmMgcadE_>L~Fn&Ak4Npu-@8Vo-vb}$FNQk0O&wlUgT?5>%?Ey|5sY7n|S(NQ~s znUl}A`SIs%oTA*i#Rjg+lT4MO6dUm3Nl1c|gCz`p#$}t^#NOp|5Q5>@&9A6^l8&L+ zz#pMTA4F{q1_=Zi83*hK_$RpuL+a$0jKS-c>`}T~lnwdj8q5z60N{Z? zXsS!e3*HOfgq#=hpEO|P2k%IH07Jm6d6@Fpaujj~pH&Vsn?}76|54Q|!lUkwRzxL$ z_yPYUZX&;m*J2L85u>ES(jNkWrlrb#BWeR>kpcjG&=1P-Fa4vNQ}Tbb_IHXHha@ns zJcS_$GecjJWcs6jfriw|b;k)+W;^g7OLiY*qC@%7ufQ7QKe_zD2^3#H13t?7K~(w; zA=Ul687A_}wL0hIjD@;`V*MRkDa2h|3)34pmH+XK;3H353yOnO|0L6V%~vzqUyT`q zV-!qM!?iFDSxM2uNnJ7bjF02oR!lh4%nq6itHVidGnx}S$jS_gOxOa+3zohGYxqNR z$4Lcja;bxYP7<;|l%w@hC#cFv6xZJ2{+oSlG6GX5{$U%F<^up975=tfWM}VUZt$md ze4@E*yUdE{zFzbS5trtO$5}_E>L|aR_$yUE3Ui-c&uAZmkN}!a$ke5B`|+ta6fu{S zjCoLJ>eQ!|FtN7pxH(HusyTjexoGI5}!=9q?oRJVl zCUxKaS4J%1(5RXz;~{jKRI2zTg{Xe@cW-BB4|a6vYsyY7O8UJxV8%hGAuqkrZdVFQ zM!S8DbMe2M06QfZ%`%7!;2hr-qS5uO|4yjd3DXZSCg`FXomRc{Z9!Kjf+ZRKDe^Q= zs0EU;0SE)?Al_NGMmIv;mQ|ax5%lX$EU^|;?7l3PgvFjpzeJDZ9PJ8WnxMcDLD=q6uiVt7wFXz5?I2aK;f`9?}K_c$k~7 zc$7K%X453T6^6RgNmv%Ui@9A~7HKtJ1Ic`D(bC?9$zYIAUMMJoDb4PR*AC)2yH$Cke zR(t#}2_@7*YC({McFF~TjszG-`Www;NUHFw#n>ArTurpAjz`{j5+@IrcQzyw((IGR zjb7;H>m-^U4g?|2!qkKjp`Q1I>m7-)?Ay2XHB*r~j;#nlp(Up127>w&SXb>j1}8<;6oTBLf4-9t^Aw3TaC%_}dV$Q~llkp{^jZ0fD; zX^iyCkS_%J_U7!eu~6V*jR}Ykdr_-VI+w(RmTjLRiOEW^)%M2iND%opW}s0GP2P)g zL#Vhlf?7P)$s;zhLiD8lZX^488I|5wc)M?8U>POfNB+2gF-?(UiWDL;B@Y&!`HmV| zuo~hiUz_}KgXQCfC2FZ>^J*aB96=lR5xQe~b90D-16-~XS6Qz`mXW~^qD8jp4Tj+b zi@vyP-ceJQ?zwUd^)Vq#E^roP_oYukrW)m%f};k(IVbBGSjLK5YMTgyX8t0?6)0Ms zLGBUV`b@k(M54zv;-|CZYA_3DCx5$!X)WHaXw^Yj#03a z6RtPKy;9co9nln@76__wL5s;sICRI7!nFU;xRT5>aB7WQ%d<)0z6kt$*)$-(ZRRkD zXC}@r_BN`^X4E**I0Y_vU)JXOMEKAV*Gh9>HzLU2y`1a|hGfIb;^XXey-Cp^7Edv% z2rB^M9EmE_gx_7m;QjvOEAuX;(5XxhC5;+pE<_ zHST|nTEv1oyQ}0pGr!F9SnX_*VpvU|XV&p4q6CbRw~AD9+ct71M!Dn?l161)PMaok z*qGCYoGtWTf|QV+o)H}d2{YsuIIM85H#iYV#yb)_Q^i~O;Y`O9PqAJ{U;u!LmV$@q z^eyP@YNn&$MbcO9F%dlbiUC%5*C=})D1CGXKcOtRkWc)@ z&r2MFWCUi-xGKAXRaZ`sOJFiUepIgC&({J(MCc07ORB>p`WSI!l2E~LTh-TtgTEq-(;N9hJ(iE_|dek{WAmG zl8GwG36^0qw7KbZkh@Ucw>m8<4A<`j4X&fG`G_m$YjSo59cvcU2BjA7&+gc#Q{}aIk|0$jP z$EDw=kygJ?aufXi@Wz?^kTtTK0GKa|#^Fd5HTMV%GlVC%>{C%*0ApG2uv_8=)kxWN=#dMdDAI;h)mT0eDWepmr47%<<*wKEzfldxs7Z zv`5(WLhDT=2jKk{e9FgFu4F=vA{`CXBQqgCKVR1wYcl+lT0zY=3#jm4CbS!cXSP=V zQ2S}16s%V2>GtONgGZ0@UK4v^OnwS1{K@M4WkuF7{*$qcEd0uME0CHd_Cy&E_FWr6 z4g#4NjslNzum%CSOWFmNpj5N)ox!GnZ5bxNt2|8pj}j1~IMYC{+$A2?W`vdkaN0LT z0Wzy1f*8En3d(MIScD2ife#cHhyIrko>};zWK+mp5hm;vox%V}l_CP*5AcQ%lhP(IZ-q00|Ive7xG6z+H{c`J&MLx;XRQ^ExN+#Y_iaDzsE~aVxAAPRJNa^1 zWtWGF%9q%#ISGWJYv@J8Bj|(L`B=hhFcs(m88^H_tAj$JwwW(=F|9?C-_hW!p;Zpq zmpSV4WG$MrYf#?G4{aec=FQYiZpfq2ZpD}axSPtNxRVNGh?w!@wd8Q*!8FHI4Z}*@ zYuPPl8``3N#;bnKI=YygT-3K`ud(Sa({k*8yvnB1I#Xr!F2T^tC$Sc5u_nY=j-Y<+n4v?={VAlpS>Y zR$jk79pw1gz3Ma2K1d!&hiknng%Gf23lrqA!(mbL=&i%yNZZmc8p@d zl}?AbBF23S+)VDVd+>e}PK{)o#`5L@P<>_=4Y4p2I|M>Hz5>$c0B6na71yf;(lrQuYqg9s zqbp%%)PP`$u&$g`iQ8s ze2SM|kl%~Rp77~Dg=cKRA;sLwF-74f+&h#~K5B2G_B1o#l{ zgP-0d2}H7^Jj}#?nPsM-MYH0!v;jTY*3k3jW{r~SaFpqV2rADOnV4X%1%q=bgKVo2 z-ofp7&M+QYJI5ybbj<6-sUS{v&Z+dZ6?Sf>Vo}yp2KVMpDC-7QjOxWR0z*x)XWWqN zMbAynpx*fwV`H0FEv5Covx5$u#NoL{r7z~nHcTc>ngTBP=-|g0+rRWC9+R__cc;n* zcEg0;({Y3%P4eiH2RKQIrlorwP6OIJEuST&2^*NI1Ep5N1{!LS(r;GYzOi|v=5yQm zLZ*!nYaz+#(WjlXY+rAhtlQZ^a*q(JA>n<|cUy32KNn%ifk_Z6Aq6MZhgoo`Z}%rW z$o~SbpP-sUN-sS)P$BgwxqA`M+@9EHV*18VwO9YTvd#}JlhRTjtz-BtX~3CJIKblC zsL0=aG4GWN?ayc~X)ecaiDq-x`NUDB%VbBh@+vgh)(ifN8k{;^9xQozofPI zg^75f!B{+1t}8kP$5^na;N>A$jBYz#ypQ~hmXXx1)}j&WL{AB14u+h7nnj)_ozmkt zxjgYc4lg-mXbXtV9WreEigr+I@WRF||K3y~l8QdRWSWd>7bwgU_lRSEGBcu;T(S7G ze5MuIt~aCiW*Pc;myO+-(L6XZ^_xIr-b8)F3@pVh8`p7+1yOrgSap->btqfs`D4r% zs-dA~4u@rvW}ps;E4P=tP99nJBTMbYZ9TPe34}`(w^rz6z4bkQ3LMTnJ(v}WdTR7A zx2ecop`7<5j=ZN94Oc(S$!xfWgN{i;pqm+&m!D%z|V56TPJk1dmlyPgF8;1+wf+2Fs4aXjEY|i&1$foxC-!l6J)w#oCWDADJxwB~0aWCB6j3M=DD) zEC7J~k7WlZ16_rG*_k_u*R)!qMGiRsa>^svNb`sf1%yJ8Su~wvk~DV)fxb+jWRX6= z4El6z^aZHvKxjJIrc=tzHsyY>Qkw(s9*(24mHJzfcgpi5*$o#39X#p0-TV0PwC355 zC44b>2(kUQG}CvT%iCdhuHwU^L`=Q%nY3I{E+pr(_&&vI{E3Df;6nsO#icRe7~a0L zA_x2k*HuL)bU}X@b-J+;?!a!^YmSg7NU&c%I!}S?@^xO8&1K!`Au6S4`BIFib8zExLb=7gOxUiRqtZ22{k^f7}aW& zJ*ub0a)_hIK#WS;rt_3QeA^j$4&4q~XrC?rL~J@#f9UC9fYw{EG-HDV+oW0Dn8TuK z%6JG+VMtDqMy!!aJD33$m4XS&Ue869H#U$>%Nf*4(u+ZR0xqiVg<$Y(86q|sNLw|y zsmd~T(6g!Pd;MdO5wMttM0kpKZS4zfRe@ivItlA^BDbR(L;~i$6_pTd*~90nVnLgE zXcj%#6vWI41UGg2v5*#DI~7m@8fC2v-cSh)=h(i0$Ko7)+PXd{kJV@mUQ|~gV_A_* zPKa>xim$BZ>?sxl9=9Qvk8gGb0nI1+85Hm=6 zpyOeD%FWT-t`oHtdQMa1Rzyg^AEYKRHI#dJ4#!bk`ckI%cdtqYh+O-kH}~TRr|*$3 z>&1E-H6uk@=~6KA2eC{;ib5XaSWcSRcd6xxE(wNhqA&H6m1XlRBEEbb~Mpe)U!O1LH;-FwREMBhjaMWE7 z=2K06E-x zPaaRl&}VioB^;<{7BSPym&tEkSenD#;3x!Rpxy*bFB%0+*r_1RMZ!c&kAr|0k>VhF ztuqYXf#HovOm;4cnZJ{B`#txWAv5SjR($gw{4EC8H}z>cNLuCFHw{=UlLH=-@_VQ7 zQDvgcBUQQ%p)u7xf11pJ!9kd~XXkam^{L%HXtHXC*78;y1tXGUuw&XN_q5q{$tHt1&fNcEC<8#G%E`WRWz4+<81XEw< z%Mm3-fO2Tg^>w%OQk-`-?Qluz3*8lcOCt4N13IykE=B zF8jlmOLhsG=N_UA9F6z1V5^UJ@Sj>$B%z4Z?L&MgJ~Znen;riYUma`fKXmH$3VFn~#u3&6!Gd4$^wfu6B<%}Z# zlIsd9rSvgNq5YEIkfGmb)@>6542xfG5fv;{P4~Z($+7tc?@Cx!0_;P)005W|0{W29Dc(Q6{U5iuokIWs literal 0 HcmV?d00001 diff --git a/README.md b/README.md index 740c67f..5f9e3ea 100644 --- a/README.md +++ b/README.md @@ -1,45 +1,59 @@ -![logo_ironhack_blue 7](https://user-images.githubusercontent.com/23629340/40541063-a07a0a8a-601a-11e8-91b5-2f13e4e6b441.png) +# Delivery Insights Dashboard -# Business Challenge: EDA and SQL +## Overview -## Introduction +**Delivery Insights Dashboard** is a modular data analytics application focused on the procurement process and supplier performance. It transforms raw JSON datasets from internal APIs into insightful, interactive visualizations. The tool is intended to help supply chain analysts, procurement teams, and operational managers understand where deliveries deviate from planning and identify improvement opportunities. -A data project lifecycle has many phases, rather than being just an isolated analysis in a single tool. -In this project you will experience doing an analysis using both Python and SQL to obtain the final result, by exploring each tool's behavior. +The application is built using: -## Project Overview +- **Python** for backend data transformation and analytics +- **Pandas & NumPy** for data manipulation +- **Streamlit** for the interactive frontend UI +- **Plotly** for visually rich, customizable charts +- **Scipy** for statistical testing and significance analysis -Pick up a dataset in our common datasets repos and break your work into big steps: - 1. Pick a topic and choose a dataset on that topic. Build around 10 Business questions to answer about this topic. - - Try to build the questions before knowing everything about the data - - If not possible, do step 2. first - 2. Data Analysis: Understand your dataset and create a report (word document) about it - 3. Data Exploration and Business Understanding: - - Import your dataset into SQL - - Answer your Business questions with SQL Queries +All data transformations and visual outputs are dynamically generated based on user input, allowing deep dive exploration without needing to code. +--- -## Dataset repos +## Features - - [Kaggle](https://www.kaggle.com/) - - [Machine Learning Repository](https://archive.ics.uci.edu/) - - [PorData](https://www.pordata.pt/) - - [And many more](https://medium.com/@LearnPythonProgramming/best-data-sources-for-datasets-beyond-kaggle-98aac51e971e) +### ✅ Automated Data Ingestion +- Downloads and caches procurement and delivery datasets from local JSON endpoints +- Ensures repeatable and fail-safe fetching using fallback and logging logic +### 🧼 Robust Data Cleaning +- Utilizes a reusable `DataFrameCleaner` utility to standardize column types and formats +- Handles datetime conversion, missing values, string normalization, and invalid data filtering -## Bonus +### 📦 Delivery Performance Tracking +- Calculates **expected vs. actual delivery dates** per order line +- Derives key indicators such as: + - Whether a line was **fully delivered** + - Number of deliveries per order line + - Delay in days (positive or negative) relative to expected delivery - - Bonus points if you augment your data with data your obtain through WebScrapping - - Bonus points if you include visualizations from Python and/or Tableau in the final presentation +### 📊 Advanced Visualizations +- Uses **Plotly** for bar, line, and stacked visualizations +- Includes supplier filtering, top-X percent segmentation, and missing value detection +- Shows both **order-level** and **order-line-level** analyses -## Deliverables +### 📈 Timeliness & Trends +- Tracks monthly delivery frequency per supplier +- Visualizes how suppliers perform over time +- Automatically highlights most active suppliers -1. **Python Code:** Provide well-documented Python code that conducts the analysis and SQL upload. -2. **SQL text file (.sql)** well commented document with all the queries answering the Business questions -3. **Short Presentation:** Structure the presentation in the following way: - - Intro Slides: introduce the problem and the datasets - - Data cleaning and assumptions - - Business questions and SQL query (1 slide per question with a print screen of the query and the answer is enough) -4. **PDF Document** with notes you might want to share +### 📉 Statistical Insights +- Performs chi-squared tests for independence between delivery categories and responsible staff +- Calculates **Cramér’s V** to evaluate effect strength +- Flags statistically significant results and displays contingency tables interactively +### 🧭 Interactive Filtering +- Year selector: isolate one or multiple years of delivery data +- Supplier selector: choose specific suppliers or rely on automatic relevance filtering (top %) +- Modular layout in Streamlit tabs for clarity and drilldown + +--- + +## Project Structure diff --git a/__pycache__/ui.cpython-313.pyc b/__pycache__/ui.cpython-313.pyc index c49391a631fa108656ba72f91269851cff393dd0..7c8189176c932f50d8d68e0f6a25198e7a0fd18f 100644 GIT binary patch delta 7921 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 R(zYjovwkwNDj|yf{TrS&cUu4e diff --git a/main.py b/main.py index 3f37412..5b42453 100644 --- a/main.py +++ b/main.py @@ -1,12 +1,10 @@ # ----------------------------- # Imports and Initial Setup # ----------------------------- -import pandas as pd -from eda_service import EDAService from cleanup import DataFrameCleaner from loader import load_all_datasets from ui import UI -from scipy.stats import chi2_contingency + # ----------------------------- # Load Datasets diff --git a/ui.py b/ui.py index 0197e80..33fc175 100644 --- a/ui.py +++ b/ui.py @@ -1,8 +1,7 @@ import streamlit as st -import matplotlib.pyplot as plt -import seaborn as sns import pandas as pd import plotly.express as px +from scipy.stats import chi2_contingency st.set_page_config(layout="wide") @@ -40,18 +39,18 @@ def supplier_selection(self): if use_percentage: with st.expander("Advanced filter (top % of suppliers)", expanded=False): self.top_percent = st.slider( - label="Top % leveranciers (alleen actief als geen leverancier handmatig is gekozen):", + label="Top % suppliers (only active if no supplier is manually selected):", min_value=1, max_value=100, value=10, format="%d%%", label_visibility="collapsed" ) - st.caption(f"Geen leverancier geselecteerd. Filter toont top {self.top_percent}% leveranciers gesorteerd op relevantie.") + st.caption(f"No supplier selected. Filter shows top {self.top_percent}% suppliers sorted by relevance.") else: self.filtered_df = self.filtered_df[self.filtered_df['Naam'].isin(self.selected_suppliers)] self.top_percent = None - st.caption(f"{len(self.selected_suppliers)} leverancier(s) geselecteerd. Top-% filter is gedeactiveerd.") + st.caption(f"{len(self.selected_suppliers)} supplier(s) selected. Top-% filter is deactivated.") def show_date_analysis(self): if self.filtered_df.empty: @@ -92,7 +91,7 @@ def show_date_analysis(self): self.plot_orderline_delivery_by_responsible() def plot_order_delivery_summary(self): - st.info("Toont per leverancier hoeveel volledige orders te vroeg, op tijd of te laat zijn geleverd. Een order bestaat uit meerdere regels.") + st.info("Shows how many full orders were delivered early, on time, or late per supplier. An order consists of multiple lines.") st.caption("More on-time and early deliveries is better.") df = self.filtered_df.copy() @@ -134,15 +133,16 @@ def plot_order_delivery_summary(self): ) fig.update_layout(barmode='stack', xaxis_tickangle=-45) st.plotly_chart(fig, use_container_width=True) + def plot_orderline_delivery_summary(self): - st.info("Toont per leverancier hoeveel orderregels te vroeg, op tijd of te laat zijn geleverd.") + st.info("Shows how many order lines were delivered early, on time, or late per supplier.") st.caption("More on-time and early deliveries is better.") df = self.filtered_df.copy() df = df.dropna(subset=['ExpectedDeliveryDate', 'DeliveryDate']) if df.empty: - st.warning("Geen bruikbare data voor analyse.") + st.warning("No usable data for analysis.") return df['DeliveryDelay'] = (df['DeliveryDate'] - df['ExpectedDeliveryDate']).dt.days @@ -174,9 +174,8 @@ def plot_orderline_delivery_summary(self): fig.update_layout(barmode='stack', xaxis_tickangle=-45) st.plotly_chart(fig, use_container_width=True) - def plot_delivery_counts(self): - st.info("Toont het totaal aantal levermomenten per leverancier, gemeten op regelniveau.") + st.info("Shows the total number of delivery moments per supplier, measured at the line level.") st.caption("More deliveries is better.") grouped = self.filtered_df.groupby('Naam')['DeliveryCount'].sum().reset_index() @@ -197,7 +196,7 @@ def plot_delivery_counts(self): st.plotly_chart(fig, use_container_width=True) def plot_missing_delivery_date(self): - st.info("Geeft per leverancier aan hoeveel orderregels nog geen leverdatum hebben.") + st.info("Indicates how many order lines per supplier do not have a delivery date yet.") st.caption("Lower is better.") df = self.filtered_df[self.filtered_df['DeliveryDate'].isna()] @@ -221,7 +220,7 @@ def plot_missing_delivery_date(self): st.plotly_chart(fig, use_container_width=True) def plot_fully_delivered(self): - st.info("Laat per leverancier het aantal orderregels zien die volledig geleverd zijn.") + st.info("Shows per supplier the number of order lines that were fully delivered.") st.caption("More is better.") delivered = self.filtered_df[self.filtered_df['FullyDelivered'] == True] @@ -244,7 +243,7 @@ def plot_fully_delivered(self): st.plotly_chart(fig, use_container_width=True) def plot_performance_over_time(self): - st.info("Visualiseert de maandelijkse frequentie van leveringen per leverancier.") + st.info("Visualizes the monthly frequency of deliveries per supplier.") st.caption("More deliveries per month is better.") df = self.filtered_df.copy() @@ -270,35 +269,30 @@ def plot_performance_over_time(self): st.plotly_chart(fig, use_container_width=True) def plot_orderline_delivery_by_responsible(self): - st.info("Toont per verantwoordelijke hoeveel orderregels te vroeg, op tijd of te laat zijn geleverd.") - st.caption("Analyse is gebaseerd op orderregel-niveau. Alleen top 5 verantwoordelijken worden meegenomen in chi-kwadraattoets.") + st.info("Shows how many order lines were delivered early, on time, or late per responsible person.") + st.caption("Analysis is based on order line level. Only top 5 responsible persons are included in chi-square test.") df = self.filtered_df.copy() df = df.dropna(subset=['ExpectedDeliveryDate', 'DeliveryDate', 'Verantwoordelijke']) if df.empty: - st.info("Geen bruikbare data voor analyse.") + st.info("No usable data for analysis.") return - # Bepaal levercategorie df['DeliveryDelay'] = (df['DeliveryDate'] - df['ExpectedDeliveryDate']).dt.days df['Category'] = df['DeliveryDelay'].apply( lambda x: 'Early' if x < 0 else 'On Time' if x == 0 else 'Late' ) - # Bepaal top 5 verantwoordelijken top5 = df['Verantwoordelijke'].value_counts().nlargest(5).index - df['VerantwoordelijkeTop5'] = df['Verantwoordelijke'].apply(lambda x: x if x in top5 else 'Overig') - df_top5 = df[df['VerantwoordelijkeTop5'] != 'Overig'] + df['VerantwoordelijkeTop5'] = df['Verantwoordelijke'].apply(lambda x: x if x in top5 else 'Other') + df_top5 = df[df['VerantwoordelijkeTop5'] != 'Other'] if df_top5.empty: - st.info("Geen data beschikbaar voor top 5 verantwoordelijken.") + st.info("No data available for top 5 responsible persons.") return - # Chi-kwadraattoets observed = pd.crosstab(df_top5['VerantwoordelijkeTop5'], df_top5['Category']) - - from scipy.stats import chi2_contingency chi2_stat, p_val, dof, expected = chi2_contingency(observed) n = observed.to_numpy().sum() @@ -306,18 +300,18 @@ def plot_orderline_delivery_by_responsible(self): r, k = observed.shape cramers_v = (phi2 / min(k - 1, r - 1)) ** 0.5 - st.markdown("#### Werkelijke frequenties per verantwoordelijke") + st.markdown("#### Actual frequencies per responsible person") st.dataframe(observed, use_container_width=True) col1, col2, col3 = st.columns(3) col1.metric("Chi²", f"{chi2_stat:.2f}") - col2.metric("p-waarde", f"{p_val:.4f}") + col2.metric("p-value", f"{p_val:.4f}") col3.metric("Cramér's V", f"{cramers_v:.3f}") if isinstance(p_val, float) and p_val < 0.05: - st.success("Er is een statistisch significant verband (p < 0.05).") + st.success("There is a statistically significant association (p < 0.05).") else: - st.info("Geen statistisch significant verband (p ≥ 0.05).") + st.info("No statistically significant association (p ≥ 0.05).") relative = observed.div(observed.sum(axis=1), axis=0) * 100 df_plot = relative.reset_index().melt( @@ -331,13 +325,13 @@ def plot_orderline_delivery_by_responsible(self): x='VerantwoordelijkeTop5', y='Percentage', color='Category', - title="Relatieve verdeling levercategorie per verantwoordelijke (Order Line Niveau)", - labels={'Percentage': '% van regels', 'VerantwoordelijkeTop5': 'Verantwoordelijke'} + title="Relative distribution of delivery categories per responsible person (Order Line Level)", + labels={'Percentage': '% of lines', 'VerantwoordelijkeTop5': 'Responsible'} ) fig.update_layout( barmode='stack', - yaxis=dict(title="% van regels", ticksuffix='%'), + yaxis=dict(title="% of lines", ticksuffix='%'), xaxis_tickangle=-45, height=400 ) - st.plotly_chart(fig, use_container_width=True) \ No newline at end of file + st.plotly_chart(fig, use_container_width=True) From 30ee828d08ee5dbeb63fc19a4dfb39cc4b8a6572 Mon Sep 17 00:00:00 2001 From: Jan Dirk van de Bijl Date: Fri, 23 May 2025 11:57:30 +0200 Subject: [PATCH 31/31] merge --- Naamloze presentatie.pptx | Bin 0 -> 11629221 bytes Presentation Text.docx | Bin 17385 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 Naamloze presentatie.pptx delete mode 100644 Presentation Text.docx diff --git a/Naamloze presentatie.pptx b/Naamloze presentatie.pptx new file mode 100644 index 0000000000000000000000000000000000000000..3ba46ea841683cfd0105036c8420ce10409d5442 GIT binary patch literal 11629221 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 &y~S10 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

  • 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

    e`%8Uv+Ng{4{(n?0_{++ z)E2(w&71VY+K7l=7k`i)*$&dJa)Mhqh~CLR0+l}8+#?ta%-wgBBu(tf=+%ihtq7(C z{T!m|06z9XjoE0U6-kVLM*(W%{_20Kz}zRLSiFh|O_?5p>nb7nndc%-PKw#x#v@G0 zgDAwfwl57sn*|(DgDd$+&c75xW|Wo7B$RwuFcd8V$*QS8cNQGyUg%&tZvG^9XM~On z8%*k+kXgHg3PLAq2W^f3o+yk41Z>gd{0^^_ku%B4^_nwONVXibqo|%DM{u3IQ-45q zTd6pJon&A;(0}@bBH!_y*7z@yMd$(Njrg-`U)=F0JW#}L^%qVi8fGE7hD!Ucb#~$M z@|aG&UH+x+Zo9hfD=oX?sLA8SYZv<#0y*GI-68~LsFF<>l3y-}PW0e#sV0EEhoRpi z7gRd*!@v=rbE#N=N|UhCDHUf0P>z8E2nxs;)vG`YFzv6UHs-37dYMvd@kg3?_YI_N zV#3zKI}G=R4N?hmruzCKrCZ8v$<4{$DNcG z#@8f@^;su6g;|Z`RpA^ZWJKB(CiW=e{@cQli4ns!doIh4lHL-1LPs6!?w(@2>9{gr zYj_}w(BHoF%7*w*xI)A&3)La(<6P!BvGFdyhlj-Cgos^(^t_ZSA$&UC#?% zdSp2CRQ$KH1~=^OKa*YIE3nv^f0^ws6g)(ts%FxY8sh(xBCFc;c7SS@tEN!_vkxsh z`eaAAYgY07Zck%oOhMM=XH&vOrV�t0B{!Fd|To1h=U#=JGDPpgPXlk2zbz+Eb=E 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 z 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�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%0AdvkS>n`x0zdm-7nL|vi>!I)8+m*E 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

    U*Wx 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

    KMhlc=7$mF^b`|V-%D?eLSFT}|(Db}bQqy^ao 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