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