| import pandas as pd | |
| import src.preprocess.extract as ex | |
| def get_product_list(start_date=None): | |
| """ | |
| Get unique product list from demand data | |
| Args: | |
| start_date: start date to filter data. Required. | |
| """ | |
| demand = ex.read_orders_data(start_date=start_date) | |
| print(demand["Material Number"].unique()) | |
| return demand["Material Number"].unique() | |
| def get_employee_list(): | |
| employee = ex.read_employee_data() | |
| employee = employee["Description"] | |
| return employee["Employee_Type"].unique() | |
| def get_released_product_list(start_date=None): | |
| """ | |
| get released product list from COOIS_Released_Prod_Orders.csv | |
| Args: | |
| start_date: start date to filter data. Required. | |
| """ | |
| released_orders = ex.read_orders_data( | |
| start_date=start_date, | |
| ) | |
| product_list = released_orders["Material Number"].unique().tolist() | |
| print(f"Released products for date range {start_date}: {len(product_list)} products") | |
| return product_list | |
| def get_available_dates(): | |
| """ | |
| get available all dates from COOIS_Released_Prod_Orders.csv | |
| Returns: | |
| tuple: (start_dates, end_dates) - unique start dates and end dates list | |
| """ | |
| released_orders = ex.read_orders_data() | |
| released_orders["Basic start date"] = pd.to_datetime(released_orders["Basic start date"]) | |
| released_orders["Basic finish date"] = pd.to_datetime(released_orders["Basic finish date"]) | |
| start_dates = sorted(released_orders["Basic start date"].dt.date.unique()) | |
| end_dates = sorted(released_orders["Basic finish date"].dt.date.unique()) | |
| all_dates = sorted(set(start_dates + end_dates)) | |
| return all_dates, start_dates, end_dates | |
| def get_date_ranges(): | |
| """ | |
| get available (start_date, end_date) combinations | |
| Returns: | |
| list : available (start_date, end_date) combinations | |
| """ | |
| released_orders = ex.read_orders_data() | |
| released_orders["Basic start date"] = pd.to_datetime(released_orders["Basic start date"]) | |
| released_orders["Basic finish date"] = pd.to_datetime(released_orders["Basic finish date"]) | |
| date_ranges = released_orders[["Basic start date", "Basic finish date"]].drop_duplicates() | |
| date_ranges["start_date"] = date_ranges["Basic start date"].dt.date | |
| date_ranges["end_date"] = date_ranges["Basic finish date"].dt.date | |
| ranges = [(row["start_date"], row["end_date"]) for _, row in date_ranges.iterrows()] | |
| ranges = sorted(set(ranges)) | |
| return ranges | |