Exemplo n.º 1
0
# read in uom and LOV files
uom_df = pd.DataFrame()

#uom_groups_url = 'https://raw.githubusercontent.com/gamut-code/attribute_mapping/master/UOM_data_sheet.csv'
# create df of the uom groupings (ID and UOMs for each group)
#data_file = requests.get(uom_groups_url).content
#uom_df = pd.read_csv(io.StringIO(data_file.decode('utf-8')))

# get uom list
filename = 'C:/Users/xcxg109/NonDriveFiles/reference/UOM_data_sheet.csv'
uom_df = pd.read_csv(filename)
# create df of the lovs and their concat values
lov_df, lov_list = q.get_LOVs()

data_type = fd.search_type()

print('working...')

if data_type == 'grainger_query':
    search_level = fd.blue_search_level()

    search_data = fd.data_in(data_type, settings.directory_name)

    if search_level == 'cat.CATEGORY_ID':
        for level_1 in search_data:
            grainger_df = q.gcom.grainger_q(grainger_attr_ETL_query,
                                            search_level, level_1)
            print('k = ', level_1)
            if grainger_df.empty == False:
                df_upload, gamut_dict = attribute_process(
def generate_data():
    gcom = GraingerQuery()

    #request the type of data to pull: blue or yellow, SKUs or node, single entry or read from file
    data_type = fd.search_type()
    search_level = 'cat.CATEGORY_ID'
    #if Blue is chosen, determine the level to pull L1 (segment), L2 (family), or L1 (category)
    if data_type == 'node':
        search_level = fd.blue_search_level()

    #ask user for node number/SKU or pull from file if desired
    search_data = fd.data_in(data_type, settings.directory_name)

    sku_status = skus_to_pull(
    )  #determine whether or not to include discontinued items in the data pull

    grainger_df = pd.DataFrame()

    if data_type == 'node':
        for k in search_data:
            if sku_status == 'filtered':
                temp_df = gcom.grainger_q(grainger_basic_query, search_level,
                                          k)
                temp_df = gcom.grainger_q(grainger_basic_query, search_level,
                                          k)

            elif sku_status == 'all':
                temp_df = gcom.grainger_q(grainger_discontinued_query,
                                          search_level, k)

            grainger_df = pd.concat([grainger_df, temp_df], axis=0)
            print(k)

    elif data_type == 'yellow':
        for k in search_data:
            if isinstance(k, int):  #k.isdigit() == True:
                pass
            else:
                k = "'" + str(k) + "'"

            if sku_status == 'filtered':
                temp_df = gcom.grainger_q(grainger_basic_query,
                                          'yellow.PROD_CLASS_ID', k)
            elif sku_status == 'all':
                temp_df = gcom.grainger_q(grainger_discontinued_query,
                                          'yellow.PROD_CLASS_ID', k)

            grainger_df = pd.concat([grainger_df, temp_df], axis=0)
            print(k)

    elif data_type == 'sku':
        sku_str = ", ".join("'" + str(i) + "'" for i in search_data)

        if sku_status == 'filtered':
            grainger_df = gcom.grainger_q(grainger_basic_query,
                                          'item.MATERIAL_NO', sku_str)
        elif sku_status == 'all':
            grainger_df = gcom.grainger_q(grainger_discontinued_query,
                                          'item.MATERIAL_NO', sku_str)

    elif data_type == 'supplier':
        for k in search_data:
            if sku_status == 'filtered':
                temp_df = gcom.grainger_q(grainger_basic_query,
                                          'supplier.SUPPLIER_NO', k)
            elif sku_status == 'all':
                temp_df = gcom.grainger_q(grainger_discontinued_query,
                                          'supplier.SUPPLIER_NO', k)

            grainger_df = pd.concat([grainger_df, temp_df], axis=0)
            print(k)

    return [grainger_df, search_level]