def set_tracker_tab(self,
                        order_book_list=c.ORDERBOOK_LIST,
                        partner_list=c.PARTNERS_LIST,
                        size_range_list=c.SIZE_RANGE_LIST):

        xw.apps.active.api.EnableEvents = False
        xwu.unhide_tab(self.order_sheet, c.PT_TRACKER_TAB_NAME)
        tracker_sheet = self.order_sheet.sheets[c.PT_TRACKER_TAB_NAME]
        tracker_sheet.activate()
        first_data_row_tracker_tab = xwu.find_first_data_row_tracker_partner_tracker(
            tracker_sheet)

        #clear data from config tab
        xwu.clear_config_cells(tracker_sheet)

        for metakey in c.PT_TRACKER_COL_NO_DICT:
            current_row = first_data_row_tracker_tab
            metakey_col_number = c.PT_TRACKER_COL_NO_DICT[metakey]
            if metakey == c.PT_TRACKER_ORDER_BOOK_NAMES:
                for book in order_book_list:
                    tracker_sheet.range(current_row,
                                        metakey_col_number).value = book
                    current_row += 1
            if metakey == c.PT_TRACKER_PARTNERS:
                for partner in partner_list:
                    tracker_sheet.range(current_row,
                                        metakey_col_number).value = partner
                    current_row += 1
            if metakey == c.PT_TRACKER_SIZE_RANGE:
                for size_range in size_range_list:
                    tracker_sheet.range(current_row,
                                        metakey_col_number).value = size_range
                    current_row += 1
        xw.apps.active.api.EnableEvents = True
 def set_os_default_config(
         self,
         os_config_sheet=None,
         order_book_names: list = ["TinyBook1", "TinyBook1"],
         order_book_tab_names: list = ["TB1 Tab1", "TB1 Tab1"],
         department_names: list = []):
     '''Sets the default values for new rows upon rebuilding an ordersheet inside the Ordersheet tab config '''
     if os_config_sheet is None:
         os_config_sheet = self.order_sheet.sheets[c.OS_CFG_TAB_NAME]
     first_data_row = xwu.find_first_data_row_tracker_partner_tracker(
         os_config_sheet)
     current_row = first_data_row
     xw.apps.active.api.EnableEvents = False
     for order_book_name in order_book_names:
         os_config_sheet.range(
             current_row,
             c.OS_TAB_DEFAULT_ORDER_BOOK_NAME_COL).value = order_book_name
         current_row += 1
     current_row = first_data_row
     for order_book_tab_name in order_book_tab_names:
         os_config_sheet.range(current_row,
                               c.OS_DEFAULT_ORDER_BOOK_TAB_NAME_COL
                               ).value = order_book_tab_name
         current_row += 1
     current_row = first_data_row
     for department_name in department_names:
         os_config_sheet.range(
             current_row,
             c.OS_DEFAULT_DEPARTMENT_NAME_COL).value = department_name
         current_row += 1
     xw.apps.active.api.EnableEvents = True
Example #3
0
def get_budget_row_no_from_pk_brand_level(sheet, budget_metakey_col_dict,
                                          arcadia_season_value,
                                          arcadia_department_value,
                                          arcadia_budget_month):
    current_row = xwu.find_first_data_row_tracker_partner_tracker(sheet)
    while sheet.range(current_row, budget_metakey_col_dict[(c.BRAND_LEVEL_BUDGET_VALUE_GBP_METAKEY, None, None)]).value != None or \
          sheet.range(current_row, budget_metakey_col_dict[(c.BRAND_LEVEL_LY_ACTUAL_GBP_METAKEY, None, None)]).value != None:

        if sheet.range(current_row, budget_metakey_col_dict[(c.BRAND_LEVEL_ARCADIA_SEASON_METAKEY, None, None)]).value == arcadia_season_value and \
            sheet.range(current_row, budget_metakey_col_dict[(c.BRAND_LEVEL_DEPARTMENT_METAKEY, None, None)]).value == arcadia_department_value and \
            sheet.range(current_row, budget_metakey_col_dict[(c.BRAND_LEVEL_BUDGET_MONTH_METAKEY, None, None)]).value == arcadia_budget_month:
            return current_row
        current_row += 1
    return None
Example #4
0
def get_pk_budget_row_count_hub_level(sheet, budget_metakey_col_dict,
                                      partner_name_value, partner_season_value,
                                      partner_business_unit_value,
                                      partner_sub_category_value,
                                      partner_budget_month_value):
    current_row = xwu.find_first_data_row_tracker_partner_tracker(sheet)
    number_of_budgets = 0
    while sheet.range(current_row, budget_metakey_col_dict[(c.HUB_LEVEL_BUDGET_VALUE_GBP_METAKEY, None, None)]).value != None or \
       sheet.range(current_row, budget_metakey_col_dict[(c.HUB_LEVEL_LY_ACTUAL_GBP_METAKEY, None, None)]).value != None:

        if sheet.range(current_row, budget_metakey_col_dict[(c.HUB_LEVEL_PARTNER_NAME_METAKEY, None, None)]).value == partner_name_value and \
         sheet.range(current_row, budget_metakey_col_dict[(c.HUB_LEVEL_PARTNER_SEASON_METAKEY, None, None)]).value == partner_season_value and \
         sheet.range(current_row, budget_metakey_col_dict[(c.HUB_LEVEL_PARTNER_BUSINESS_UNIT_METAKEY, None, None)]).value == partner_business_unit_value and \
                  sheet.range(current_row, budget_metakey_col_dict[(c.HUB_LEVEL_SUB_CATEGORY_METAKEY, None, None)]).value == partner_sub_category_value and \
                  sheet.range(current_row, budget_metakey_col_dict[(c.HUB_LEVEL_BUDGET_MONTH_METAKEY, None, None)]).value == partner_budget_month_value:
            number_of_budgets += 1
        current_row += 1
    return number_of_budgets
Example #5
0
def get_sub_category_list_from_category_group(book, category_group):
    category_group_sheet = book.sheets[c.CATEGORY_GROUP_CFG_TAB]
    current_row = xwu.find_first_data_row_tracker_partner_tracker(
        category_group_sheet)
    metakey_col_dict_cat_grp_tab = xwu.get_metakey_dict_from_sheet(
        category_group_sheet)
    while category_group_sheet.range(
            current_row,
            metakey_col_dict_cat_grp_tab[c.CATEGORY_GROUP_CFG_TAB_METAKY, None,
                                         None]
    ).value != category_group and category_group_sheet.range(
            current_row,
            metakey_col_dict_cat_grp_tab[c.CATEGORY_GROUP_CFG_TAB_METAKY, None,
                                         None]).value != None:
        current_row += 1
    sub_category_string = category_group_sheet.range(
        current_row,
        metakey_col_dict_cat_grp_tab[c.SUB_CATEGORY_GROUP_CFG_TAB_METAKY, None,
                                     None]).value
    sub_category_value_list = sub_category_string.split(";")
    return sub_category_value_list
    def set_partner_tab(self,
                        partner_list=c.PARTNERS_LIST,
                        currency_list=c.CURRENCY_LIST,
                        cp_factor_list=c.CP_FACTOR_LIST,
                        partner_seasons_list=c.PARTNER_SEASONS_LIST):
        xw.apps.active.api.EnableEvents = False
        xwu.unhide_tab(self.order_sheet, c.PT_TRACKER_PARTNERS)
        partner_sheet = self.order_sheet.sheets[c.PT_TRACKER_PARTNERS]
        first_data_row_partner_tab = xwu.find_first_data_row_tracker_partner_tracker(
            partner_sheet)

        # clear data from config partner tab
        xwu.clear_config_cells(partner_sheet)

        #populate partners tab
        for metakey in c.PT_PARTNERS_COL_NO_DICT:
            current_row = first_data_row_partner_tab
            metakey_col_no = c.PT_PARTNERS_COL_NO_DICT[metakey]
            if metakey == c.PT_PARTNERS_PARTNER_NAME or metakey == c.PT_PARTNERS_CALENDAR_TAB:
                for partner in partner_list:
                    partner_sheet.range(current_row,
                                        metakey_col_no).value = partner
                    current_row += 1
            if metakey == c.PT_PARTNERS_CURRENCY:
                for currency in currency_list:
                    partner_sheet.range(current_row,
                                        metakey_col_no).value = currency
                    current_row += 1
            if metakey == c.PT_PARTNERS_CP_FACTOR:
                for cp_factor in cp_factor_list:
                    partner_sheet.range(current_row,
                                        metakey_col_no).value = cp_factor
                    current_row += 1
            if metakey == c.PT_PARTNERS_PARTNER_SEASONS:
                for partner_season in partner_seasons_list:
                    partner_sheet.range(current_row,
                                        metakey_col_no).value = partner_season
                    current_row += 1
        xw.apps.active.api.EnableEvents = True