File size: 2,520 Bytes
02fd3ca
c9c4af4
02fd3ca
 
8504f5a
 
 
 
 
 
 
 
02fd3ca
 
 
 
 
 
 
 
 
 
 
11f91a6
8504f5a
 
29608b7
8504f5a
 
 
11f91a6
29608b7
 
 
11f91a6
29608b7
 
 
 
 
8504f5a
29608b7
 
8504f5a
29608b7
11f91a6
29608b7
 
 
 
 
 
 
 
 
 
 
 
 
 
8504f5a
29608b7
8504f5a
29608b7
11f91a6
29608b7
 
 
 
 
 
 
 
 
8504f5a
29608b7
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
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