Beispiel #1
0
 def __init__(self, data_provider, output):
     self.output = output
     self.data_provider = data_provider
     self.common_v2 = CommonV2(self.data_provider)
     self.common_v1 = CommonV1(self.data_provider)
     self.data_provider.common_v2 = self.common_v2
     self.data_provider.common_v1 = self.common_v1
     self.project_name = self.data_provider.project_name
     self.session_uid = self.data_provider.session_uid
     self.products = self.data_provider[Data.PRODUCTS]
     self.all_products = self.data_provider[Data.ALL_PRODUCTS]
     self.match_product_in_scene = self.data_provider[Data.MATCHES]
     self.visit_date = self.data_provider[Data.VISIT_DATE]
     self.session_info = self.data_provider[Data.SESSION_INFO]
     self.scene_info = self.data_provider[Data.SCENES_INFO]
     self.store_id = self.data_provider[Data.STORE_FK]
     self.scif = self.data_provider[Data.SCENE_ITEM_FACTS]
     self.rds_conn = PSProjectConnector(self.project_name,
                                        DbUsers.CalculationEng)
     self.channel = self.get_store_channel(self.store_id)
     self.kpi_static_data = self.common_v2.get_kpi_static_data()
     self.data_provider.kpi_sheets = {}
     self.kpi_sheets = self.data_provider.kpi_sheets
     self.old_kpi_static_data = self.common_v1.get_kpi_static_data()
     for name in SHEETS_NAME:
         parsed_template = ParseTemplates.parse_template(TEMPLATE_PATH,
                                                         sheet_name=name)
         self.kpi_sheets[name] = parsed_template[parsed_template['Channel']
                                                 == self.channel]
     self.data_provider.sos = SOS(self.data_provider, output=None)
     self.data_provider.assortment = Assortment(self.data_provider,
                                                output=None)
 def __init__(self, data_provider, output):
     self.k_engine = BaseCalculationsScript(data_provider, output)
     self.output = output
     self.data_provider = data_provider
     self.project_name = self.data_provider.project_name
     self.session_uid = self.data_provider.session_uid
     self.products = self.data_provider[Data.PRODUCTS]
     self.all_products = self.data_provider[Data.ALL_PRODUCTS]
     self.match_product_in_scene = self.data_provider[Data.MATCHES]
     self.visit_date = self.data_provider[Data.VISIT_DATE]
     self.session_info = self.data_provider[Data.SESSION_INFO]
     self.scene_info = self.data_provider[Data.SCENES_INFO]
     self.store_id = self.data_provider[Data.STORE_FK]
     self.scif = self.data_provider[Data.SCENE_ITEM_FACTS]
     self.rds_conn = PSProjectConnector(self.project_name,
                                        DbUsers.CalculationEng)
     self.tools = CCUS_SANDNEW_OBBOGENERALCCUS_SANDToolBox(
         self.data_provider, self.output, rds_conn=self.rds_conn)
     self.kpi_static_data = self.get_kpi_static_data()
     self.kpi_results_queries = []
     self.pop_data = parse_template(TEMPLATE_PATH, 'POP')
     self.adj_data = parse_template(TEMPLATE_PATH, 'Adjacency')
     self.pathway_data = parse_template(TEMPLATE_PATH, 'Pathway')
     self.store_types = parse_template(TEMPLATE_PATH, 'store types')
     self.store_info = self.data_provider[Data.STORE_INFO]
     self.store_type = self.store_info['store_type'].iloc[0]
     self.ps_data_provider = PsDataProvider(self.data_provider, self.output)
     self.store_areas = self.ps_data_provider.get_store_area_df()
 def __init__(self, data_provider, output, common):
     self.output = output
     self.data_provider = data_provider
     self.common = common
     self.project_name = self.data_provider.project_name
     self.session_uid = self.data_provider.session_uid
     self.templates_path = os.path.join(
         os.path.dirname(os.path.realpath(__file__)), '..', 'Data')
     self.excel_file_path = os.path.join(self.templates_path,
                                         'Template.xlsx')
     self.kpi_sheet = pd.read_excel(self.excel_file_path,
                                    sheetname=KPI_SHEET)
     self.products = self.data_provider[Data.PRODUCTS]
     self.templates = self.data_provider[Data.TEMPLATES]
     self.all_products = self.data_provider[Data.ALL_PRODUCTS]
     self.match_product_in_scene = self.data_provider[Data.MATCHES]
     self.visit_date = self.data_provider[Data.VISIT_DATE]
     self.session_info = self.data_provider[Data.SESSION_INFO]
     self.scene_info = self.data_provider[Data.SCENES_INFO]
     self.store_id = self.data_provider[Data.STORE_FK]
     self.store_type = self.data_provider.store_type
     self.rds_conn = PSProjectConnector(self.project_name,
                                        DbUsers.CalculationEng)
     self.kpi_static_data = self.common.get_kpi_static_data()
     self.kpi_results_queries = []
Beispiel #4
0
 def __init__(self, data_provider, output):
     self.k_engine = BaseCalculationsScript(data_provider, output)
     self.output = output
     self.data_provider = data_provider
     self.project_name = self.data_provider.project_name
     self.session_uid = self.data_provider.session_uid
     self.products = self.data_provider[Data.PRODUCTS]
     self.all_products = self.data_provider[Data.ALL_PRODUCTS]
     self.match_product_in_scene = self.data_provider[Data.MATCHES]
     self.visit_date = self.data_provider[Data.VISIT_DATE]
     self.session_info = self.data_provider[Data.SESSION_INFO]
     self.scene_info = self.data_provider[Data.SCENES_INFO]
     self.store_id = self.data_provider[Data.STORE_FK]
     self.scif = self.data_provider[Data.SCENE_ITEM_FACTS]
     self.rds_conn = PSProjectConnector(self.project_name,
                                        DbUsers.CalculationEng)
     self.tools = HEINEKENPILOTCNGENERALToolBox(self.data_provider,
                                                self.output,
                                                rds_conn=self.rds_conn)
     self.kpi_static_data = self.get_kpi_static_data()
     self.tamplate_tools = HEINEKENPILOTCNHandleTemplate(
         self.data_provider, output, kpi_static_data=self.kpi_static_data)
     self.kpi_results_queries = []
     self.store_info = self.data_provider[Data.STORE_INFO]
     self.store_type = self.store_info['store_type'].iloc[0]
     self.custom_templates = {}
     self.set_templates_data = {}
     self.scif_filters = {
         'Brand pk': 'brand_fk',
         'Category pk': 'category_fk'
     }
 def __init__(self, data_provider, output):
     self.output = output
     self.common = Common(data_provider)
     self.data_provider = data_provider
     self.project_name = self.data_provider.project_name
     self.session_uid = self.data_provider.session_uid
     self.manufacturer_fk = None if self.data_provider[Data.OWN_MANUFACTURER]['param_value'].iloc[0] is None else \
         int(self.data_provider[Data.OWN_MANUFACTURER]['param_value'].iloc[0])
     self.products = self.data_provider[Data.PRODUCTS]
     self.all_products = self.data_provider[Data.ALL_PRODUCTS]
     self.match_product_in_scene = self.data_provider[Data.MATCHES]
     self.visit_date = self.data_provider[Data.VISIT_DATE]
     self.session_info = self.data_provider[Data.SESSION_INFO]
     self.scene_info = self.data_provider[Data.SCENES_INFO].merge(
         self.data_provider[Data.ALL_TEMPLATES][[
             'template_fk', 'template_name'
         ]],
         on='template_fk',
         how='left')
     self.store_id = self.data_provider[Data.STORE_FK]
     self.store_info = self.data_provider[Data.STORE_INFO]
     self.store_type = self.store_info['store_type'].iloc[0]
     self.segmentation = self.store_info['additional_attribute_2'].iloc[0]
     self.scif = self.data_provider[Data.SCENE_ITEM_FACTS]
     self.rds_conn = PSProjectConnector(self.project_name,
                                        DbUsers.CalculationEng)
     self.tools = CCMYGENERALToolBox(self.data_provider,
                                     self.output,
                                     rds_conn=self.rds_conn)
     self.kpi_static_data = self.get_kpi_static_data()
     self.kpi_static_data_new = self.common.get_new_kpi_static_data()
     self.template_data = pd.read_excel(TEMPLATE_PATH, 'KPIs').fillna('')
     self.kpi_results_queries = []
 def __init__(self, data_provider, output, common=None):
     self.output = output
     self.data_provider = data_provider
     # self.common = common
     self.common = Common(self.data_provider)
     self.project_name = self.data_provider.project_name
     self.session_uid = self.data_provider.session_uid
     self.products = self.data_provider[Data.PRODUCTS]
     self.templates = self.data_provider[Data.TEMPLATES]
     self.all_products = self.data_provider[Data.ALL_PRODUCTS]
     self.match_product_in_scene = self.data_provider[Data.MATCHES]
     self.visit_date = self.data_provider[Data.VISIT_DATE]
     self.session_info = self.data_provider[Data.SESSION_INFO]
     self.scene_info = self.data_provider[Data.SCENES_INFO]
     self.store_id = self.data_provider[Data.STORE_FK] if self.data_provider[Data.STORE_FK] is not None \
                                                         else self.session_info['store_fk'].values[0]
     self.all_templates = self.data_provider[Data.ALL_TEMPLATES]
     self.store_type = self.data_provider.store_type
     self.rds_conn = PSProjectConnector(self.project_name,
                                        DbUsers.CalculationEng)
     self.kpi_static_data = self.common.get_kpi_static_data()
     self.kpi_results_queries = []
     self.scif = self.data_provider[Data.SCENE_ITEM_FACTS]
     self.kpi_results = pd.DataFrame(
         columns=['kpi_fk', 'numerator', 'denominator', 'result', 'score'])
 def __init__(self, data_provider, output):
     self.output = output
     self.data_provider = data_provider
     self.project_name = self.data_provider.project_name
     self.session_uid = self.data_provider.session_uid
     self.products = self.data_provider[Data.PRODUCTS]
     self.all_products = self.data_provider[Data.ALL_PRODUCTS]
     self.match_product_in_scene = self.data_provider[Data.MATCHES]
     self.visit_date = self.data_provider[Data.VISIT_DATE]
     self.session_info = self.data_provider[Data.SESSION_INFO]
     self.scene_info = self.data_provider[Data.SCENES_INFO]
     self.store_id = self.data_provider[Data.STORE_FK]
     self.rds_conn = PSProjectConnector(self.project_name, DbUsers.CalculationEng)
     # self.store_type = self.data_provider[Data.STORE_INFO]['store_type'].iloc[0]
     query_store_type = CCZAQueries.get_attr3(self.session_uid)
     store_type = pd.read_sql_query(query_store_type, self.rds_conn.db)
     self.store_type = store_type[Const.ATTR3].iloc[0]
     self.scif = self.data_provider[Data.SCENE_ITEM_FACTS]
     self.tools = GENERALToolBox(self.data_provider, self.output, rds_conn=self.rds_conn)
     self.survey_response = self.data_provider[Data.SURVEY_RESPONSES]
     self.tool_box_for_flow = ToolBox
     # create data-frames from template
     self.kpi_sheets = {}
     for name in Const.sheet_names_and_rows:
         self.kpi_sheets[name] = parse_template(TEMPLATE_PATH, sheet_name=name,
                                                lower_headers_row_index=Const.sheet_names_and_rows[name])
     self.common = Common(self.data_provider, Const.RED_SCORE)
     self.survey_handler = Survey(self.data_provider, self.output, self.kpi_sheets[Const.SURVEY_QUESTIONS])
     self.kpi_static_data = self.common.kpi_static_data
     self.kpi_results_queries = []
     self.common_v2 = CommonV2(self.data_provider)
     self.own_manuf_fk = self.get_own_manufacturer_fk()
     self.scif_match_react = self.scif[self.scif[ScifConsts.RLV_SOS_SC] == 1]
Beispiel #8
0
 def __init__(self, data_provider, output):
     self.output = output
     self.data_provider = data_provider
     self.project_name = self.data_provider.project_name
     self.session_uid = self.data_provider.session_uid
     self.products = self.data_provider[Data.PRODUCTS]
     self.all_products = self.data_provider[Data.ALL_PRODUCTS]
     self.match_product_in_scene = self.data_provider[Data.MATCHES]
     self.visit_date = self.data_provider[Data.VISIT_DATE]
     self.session_info = self.data_provider[Data.SESSION_INFO]
     self.scene_info = self.data_provider[Data.SCENES_INFO]
     self.store_id = self.data_provider[Data.STORE_FK]
     self.scif = self.data_provider[Data.SCENE_ITEM_FACTS]
     self.rds_conn = PSProjectConnector(self.project_name,
                                        DbUsers.CalculationEng)
     self.tools = CUBAUCUBAUGENERALToolBox(self.data_provider,
                                           self.output,
                                           rds_conn=self.rds_conn)
     self.common = Common(self.data_provider)
     self.common_sos = SOS(self.data_provider, self.output)
     self.kpi_results_queries = []
     self.k_engine = BaseCalculationsGroup(data_provider, output)
     self.store_type = data_provider.store_type
     self.matches_with_direction = self.get_match_product_in_scene_with_direction(
     )
 def __init__(self, data_provider, output):
     self.k_engine = BaseCalculationsScript(data_provider, output)
     self.output = output
     self.data_provider = data_provider
     self.project_name = self.data_provider.project_name
     self.session_uid = self.data_provider.session_uid
     self.products = self.data_provider[Data.PRODUCTS]
     self.all_products = self.data_provider[Data.ALL_PRODUCTS]
     self.match_product_in_scene = self.data_provider[Data.MATCHES]
     self.visit_date = self.data_provider[Data.VISIT_DATE]
     self.session_info = self.data_provider[Data.SESSION_INFO]
     self.scene_info = self.data_provider[Data.SCENES_INFO]
     self.store_id = self.data_provider[Data.STORE_FK]
     self.scif = self.data_provider[Data.SCENE_ITEM_FACTS]
     self.rds_conn = PSProjectConnector(self.project_name,
                                        DbUsers.CalculationEng)
     self.tools = MJNCN_SANDGENERALToolBox(self.data_provider,
                                           self.output,
                                           rds_conn=self.rds_conn)
     self.kpi_static_data = self.get_kpi_static_data()
     self.kpi_results_queries = []
     self.custom_templates = {}
     self.store_info = self.data_provider[Data.STORE_INFO]
     self.store_type = self.store_info['store_type'].iloc[0]
     self.scif_filters = {
         'Product EAN': 'product_ean_code',
         'Template Name': 'template_name',
         'att1': 'att1'
     }
 def __init__(self, data_provider, output):
     self.k_engine = BaseCalculationsScript(data_provider, output)
     self.output = output
     self.data_provider = data_provider
     self.project_name = self.data_provider.project_name
     self.session_uid = self.data_provider.session_uid
     self.products = self.data_provider[Data.PRODUCTS]
     self.all_products = self.data_provider[Data.ALL_PRODUCTS]
     self.match_product_in_scene = self.data_provider[Data.MATCHES]
     self.visit_date = self.data_provider[Data.VISIT_DATE]
     self.session_info = self.data_provider[Data.SESSION_INFO]
     self.scenes_info = self.data_provider[Data.SCENES_INFO].merge(
         self.data_provider[Data.ALL_TEMPLATES],
         how='left',
         on='template_fk',
         suffixes=['', '_y'])
     self.store_id = self.data_provider[Data.STORE_FK]
     self.store_type = self.data_provider[
         Data.STORE_INFO]['store_type'].iloc[0]
     self.rds_conn = PSProjectConnector(self.project_name,
                                        DbUsers.CalculationEng)
     self.scif = self.get_missing_attributes(
         self.data_provider[Data.SCENE_ITEM_FACTS])
     self.display_matches = self.get_match_display()
     self.custom_templates = {}
     self.sr_to_templates = self.get_sr_to_templates()
     self.tools = OBBOGENERALToolBox(self.data_provider,
                                     self.output,
                                     rds_conn=self.rds_conn,
                                     scif=self.scif)
     self.kpi_static_data = self.get_kpi_static_data()
     self.kpi_results_queries = []
Beispiel #11
0
 def __init__(self, project_name, scif, matches, set_name):
     self.rds_conn = PSProjectConnector(project_name,
                                        DbUsers.CalculationEng)
     self.scif = scif
     self.matches = matches
     self.set_name = set_name
     self.kpi_static_data = self.get_static_kpi_data()
Beispiel #12
0
 def __init__(self, data_provider, output, common):
     self.output = output
     self.data_provider = data_provider
     self.common = common
     self.project_name = self.data_provider.project_name
     self.session_uid = self.data_provider.session_uid
     self.products = self.data_provider[Data.PRODUCTS]
     self.all_products = self.data_provider[Data.ALL_PRODUCTS]
     self.match_product_in_scene = self.data_provider[Data.MATCHES]
     self.visit_date = self.data_provider[Data.VISIT_DATE]
     self.session_info = self.data_provider[Data.SESSION_INFO]
     self.scene_info = self.data_provider[Data.SCENES_INFO]
     self.store_id = self.data_provider[Data.STORE_FK]
     self.scif = self.data_provider[Data.SCENE_ITEM_FACTS]
     self.rds_conn = PSProjectConnector(self.project_name,
                                        DbUsers.CalculationEng)
     self.kpi_static_data = self.common.get_kpi_static_data()
     self.kpi_results_queries = []
     self.manufacturer_fk = self.products['manufacturer_fk'][
         self.products['manufacturer_name'] ==
         'MONDELEZ INTERNATIONAL INC'].iloc[0]
     self.store_assortment = pd.DataFrame()
     self.assortment = Assortment(self.data_provider, common=self.common)
     self.store_number = self.get_store_number()
     self.ps_data_provider = PsDataProvider(self.data_provider, self.output)
     self.custom_entities = self.ps_data_provider.get_custom_entities(
         Const.PPG_ENTITY_TYPE_FK)
 def __init__(self, data_provider, output):
     self.output = output
     self.data_provider = data_provider
     self.project_name = self.data_provider.project_name
     self.session_uid = self.data_provider.session_uid
     self.session_id = self.data_provider.session_id
     self.products = self.data_provider[Data.PRODUCTS]
     self.all_products = self.data_provider[Data.ALL_PRODUCTS]
     self.match_product_in_scene = self.data_provider[Data.MATCHES]
     self.visit_date = self.data_provider[Data.VISIT_DATE]
     self.session_info = self.data_provider[Data.SESSION_INFO]
     self.scene_info = self.data_provider[Data.SCENES_INFO]
     self.store_id = self.data_provider[Data.STORE_FK]
     self.scif = self.data_provider[Data.SCENE_ITEM_FACTS]
     self.rds_conn = PSProjectConnector(self.project_name,
                                        DbUsers.CalculationEng)
     # self.tools = RISPARKWINEDEGENERALToolBox(
     #     self.data_provider, self.output, rds_conn=self.rds_conn)
     # self.New_kpi_static_data = self.get_new_kpi_static_data()
     self.kpi_results_new_tables_queries = []
     # self.store_assortment = PSAssortmentDataProvider(self.data_provider).execute()
     self.store_info = self.data_provider[Data.STORE_INFO]
     self.current_date = datetime.now()
     self.assortment = Assortment(self.data_provider, self.output)
     self.store_assortment = self.assortment.store_assortment
     self.common = Common(self.data_provider)
 def __init__(self, data_provider, output):
     self.k_engine = BaseCalculationsScript(data_provider, output)
     self.output = output
     self.data_provider = data_provider
     self.project_name = self.data_provider.project_name
     self.session_uid = self.data_provider.session_uid
     self.products = self.data_provider[Data.PRODUCTS]
     self.match_product_in_scene = self.data_provider[Data.MATCHES]
     self.visit_date = self.data_provider[Data.VISIT_DATE]
     self.session_info = self.data_provider[Data.SESSION_INFO]
     self.scene_info = self.data_provider[Data.SCENES_INFO]
     self.store_id = self.data_provider[Data.STORE_FK]
     self.scif = self.data_provider[Data.SCENE_ITEM_FACTS]
     self.rds_conn = PSProjectConnector(self.project_name,
                                        DbUsers.CalculationEng)
     self.all_products = self.data_provider[Data.ALL_PRODUCTS]
     # self.all_products = self.all_products.merge(self.get_additional_attributes(), on='product_fk', how='left')
     self.match_display_in_scene = self.get_match_display()
     self.tools = CCBOTTLERSUSDISPLAYSGENERALToolBox(self.data_provider,
                                                     self.output,
                                                     rds_conn=self.rds_conn,
                                                     scif=self.scif)
     self.template_data = parse_template(TEMPLATE_PATH)
     self.kpi_static_data = self.get_kpi_static_data()
     self.kpi_results_queries = []
Beispiel #15
0
 def __init__(self, data_provider, output):
     self.output = output
     self.data_provider = data_provider
     self.project_name = self.data_provider.project_name
     self.session_uid = self.data_provider.session_uid
     self.products = self.data_provider[Data.PRODUCTS]
     self.all_products = self.data_provider[Data.ALL_PRODUCTS]
     self.match_product_in_scene = self.data_provider[Data.MATCHES]
     self.visit_date = self.data_provider[Data.VISIT_DATE]
     self.session_info = self.data_provider[Data.SESSION_INFO]
     self.scene_info = self.data_provider[Data.SCENES_INFO]
     self.store_id = self.data_provider[Data.STORE_FK]
     self.scif = self.data_provider[Data.SCENE_ITEM_FACTS]
     self.rds_conn = PSProjectConnector(self.project_name, DbUsers.CalculationEng)
     self.tools = RBUSGENERALToolBox(self.data_provider, self.output, rds_conn=self.rds_conn)
     self.old_common = common_old(data_provider)
     self.kpi_static_data = self.old_common.get_kpi_static_data()
     # self.kpi_results_queries = []
     self.templates_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), '..', 'Data')
     self.template_dict = self.get_df_from_excel_path()
     self.template_dict = self.template_dict[self.template_dict['Template for KPI'] != 'none']\
                                             .set_index('Template for KPI')['KPI Level 3 Name'].to_dict()
     self.excluded_sub_categories = self.get_excluded_sub_categories(self.get_df_from_excel_path())
     self.common_new = Common(data_provider)
     self.manufacturer_fk = self.data_provider[Data.OWN_MANUFACTURER]['param_value'].iloc[0]
     self.ps_data = PsDataProvider(self.data_provider, self.output)
     self.templates = self.data_provider[Data.TEMPLATES]
     self.sub_brands = self.ps_data.get_custom_entities(1001)
Beispiel #16
0
    def __init__(self, data_provider, output, common):
        self.output = output
        self.data_provider = data_provider
        self.common = common
        self.project_name = self.data_provider.project_name
        self.session_uid = self.data_provider.session_uid
        self.products = self.data_provider[Data.PRODUCTS]
        self.templates = self.data_provider[Data.TEMPLATES]
        self.all_products = self.data_provider[Data.ALL_PRODUCTS]
        self.match_product_in_scene = self.data_provider[Data.MATCHES]
        self.visit_date = self.data_provider[Data.VISIT_DATE]
        self.session_info = self.data_provider[Data.SESSION_INFO]
        self.scene_info = self.data_provider[Data.SCENES_INFO]
        self.store_id = self.data_provider[Data.STORE_FK]
        self.store_type = self.data_provider.store_type
        self.rds_conn = PSProjectConnector(self.project_name,
                                           DbUsers.CalculationEng)
        self.kpi_static_data = self.common.get_kpi_static_data()
        self.kpi_results_queries = []

        self.tools = CCBZA_SAND_GENERALToolBox(self.data_provider, self.output)
        self.scif = self.data_provider[
            Data.SCENE_ITEM_FACTS]  # do we have it for scene??? debug CCIT
        self.store_data = self.get_store_data_by_store_id()
        self.template_path = self.get_template_path()
        self.template_data = self.get_template_data()
        self.session_kpis = self.template_data[KPI_TAB][KPI_NAME].unique(
        ).tolist()
        self.kpi_score_values = self.get_kpi_score_values_df()
        self.kpi_result_values = self.get_kpi_result_values_df(
        )  # maybe for ps data provider, create mock
Beispiel #17
0
 def __init__(self, data_provider, output):
     self.output = output
     self.data_provider = data_provider
     self.ps_data_provider = PsDataProvider(data_provider)
     self.kpi_result_values = self.ps_data_provider.get_result_values()
     self.common_v2 = Common(self.data_provider)
     self.store_id = self.data_provider[Data.STORE_FK]
     self.scif = self.data_provider[Data.SCENE_ITEM_FACTS]
     self.assortment = Assortment(self.data_provider)
     self.own_manufacturer_fk = int(
         self.data_provider.own_manufacturer.param_value.values[0])
     self.kpi_static_data = self.common_v2.kpi_static_data[[
         'pk', StaticKpis.TYPE
     ]]
     # self.custom_entity = self.ps_data_provider.get_custom_entities(Consts.PRODUCT_GROUP)
     self.visit_date = self.data_provider[Data.VISIT_DATE]
     self.project_name = self.data_provider.project_name
     self.rds_conn = PSProjectConnector(self.project_name,
                                        DbUsers.CalculationEng)
     self.external_targets = self._retrieve_completeness_external_targets()
     self.products_trax_cat = self._get_products_with_trax_categories()
     self.ass_groups_present = {
         Consts.DISTR_SNACKS: 0,
         Consts.DISTR_SABRA: 0
     }
 def __init__(self, data_provider, output):
     self.output = output
     self.data_provider = data_provider
     self.project_name = self.data_provider.project_name
     self.session_uid = self.data_provider.session_uid
     self.products = self.data_provider[Data.PRODUCTS]
     self.all_products = self.data_provider[Data.ALL_PRODUCTS]
     self.match_product_in_scene = self.data_provider[Data.MATCHES]
     self.visit_date = self.data_provider[Data.VISIT_DATE]
     self.session_info = self.data_provider[Data.SESSION_INFO]
     self.scene_info = self.data_provider[Data.SCENES_INFO]
     self.store_id = self.data_provider[Data.STORE_FK]
     self.store_info = self.data_provider[Data.STORE_INFO]
     self.store_channel = self.store_info['store_type'].values[0]
     if self.store_channel:
         self.store_channel = self.store_channel.upper()
     self.store_type = self.store_info['additional_attribute_1'].values[0]
     self.scif = self.data_provider[Data.SCENE_ITEM_FACTS]
     self.rds_conn = PSProjectConnector(self.project_name,
                                        DbUsers.CalculationEng)
     self.tools = INBEVCO_SANDGENERALToolBox(self.data_provider,
                                             self.output,
                                             rds_conn=self.rds_conn)
     self.kpi_static_data = self.get_kpi_static_data()
     self.kpi_results_queries = []
     self.relative_positioning = parse_template(TEMPLATE_PATH,
                                                'Relative Positioning',
                                                lower_headers_row_index=2)
     self.brand_blocking = parse_template(TEMPLATE_PATH,
                                          'Brand Blocking',
                                          lower_headers_row_index=6)
     self.purity = parse_template(TEMPLATE_PATH,
                                  'Purity',
                                  lower_headers_row_index=3)
Beispiel #19
0
 def __init__(self, data_provider, output):
     self.output = output
     self.data_provider = data_provider
     self.common = Common(self.data_provider)
     self.project_name = self.data_provider.project_name
     self.session_uid = self.data_provider.session_uid
     self.products = self.data_provider[Data.PRODUCTS]
     self.all_products = self.data_provider[Data.ALL_PRODUCTS]
     self.match_product_in_scene = self.data_provider[Data.MATCHES]
     self.visit_date = self.data_provider[Data.VISIT_DATE]
     self.session_info = self.data_provider[Data.SESSION_INFO]
     self.scene_info = self.data_provider[Data.SCENES_INFO]
     self.store_info = self.data_provider[Data.STORE_INFO]
     self.store_id = self.data_provider[Data.STORE_FK]
     self.scif = self.data_provider[Data.SCENE_ITEM_FACTS]
     self.rds_conn = PSProjectConnector(self.project_name,
                                        DbUsers.CalculationEng)
     self.match_probe_in_scene = self.get_product_special_attribute_data(
         self.session_uid)
     self.kpi_static_data = self.common.get_kpi_static_data()
     self.kpi_results_queries = []
     self.kpis_sheet = pd.read_excel(PATH, Const.KPIS).fillna("")
     self.osd_rules_sheet = pd.read_excel(PATH, Const.OSD_RULES).fillna("")
     self.kpi_excluding = pd.DataFrame()
     self.df = pd.DataFrame()
     self.tools = GENERALToolBox(self.data_provider)
     self.templates = self.data_provider[Data.ALL_TEMPLATES]
     self.psdataprovider = PsDataProvider(self.data_provider)
Beispiel #20
0
    def __init__(self, data_provider, output, common):
        self.output = output
        self.data_provider = data_provider
        self.common = common
        self.project_name = self.data_provider.project_name

        self.rds_conn = PSProjectConnector(self.project_name,
                                           DbUsers.CalculationEng)

        self.session_uid = self.data_provider.session_uid
        self.products = self.data_provider[Data.PRODUCTS]
        self.templates = self.data_provider[Data.TEMPLATES]
        self.all_products = self.data_provider[Data.ALL_PRODUCTS]
        self.match_product_in_scene = self.data_provider[Data.MATCHES]
        empties = self.all_products[self.all_products['product_type'] ==
                                    'Empty']['product_fk'].unique().tolist()
        self.match_product_in_scene = self.match_product_in_scene[~(
            self.match_product_in_scene['product_fk'].isin(empties))]
        self.visit_date = self.data_provider[Data.VISIT_DATE]
        self.scene_info = self.data_provider[Data.SCENES_INFO]
        self.template_group = self.templates['template_group'].iloc[0]
        self.template_fk = self.templates['template_fk'].iloc[0]
        self.scene_id = self.scene_info['scene_fk'][0]
        self.kpi_fk = self.common.get_kpi_fk_by_kpi_name(Const.POC)
        self.poc_number = 1
 def __init__(self, data_provider, output):
     self.k_engine = BaseCalculationsScript(data_provider, output)
     self.data_provider = data_provider
     self.project_name = self.data_provider.project_name
     self.session_uid = self.data_provider.session_uid
     self.products = self.data_provider[Data.PRODUCTS]
     self.all_products = self.data_provider[Data.ALL_PRODUCTS]
     self.match_product_in_scene = self.data_provider[Data.MATCHES]
     self.visit_date = self.data_provider[Data.VISIT_DATE]
     self.session_info = self.data_provider[Data.SESSION_INFO]
     self.rds_conn = PSProjectConnector(self.project_name, DbUsers.CalculationEng)
     self.store_info = self.data_provider[Data.STORE_INFO]
     self.store_channel = self.store_info['store_type'].values[0]
     if self.store_channel:
         self.store_channel = self.store_channel.upper()
     self.store_type = self.store_info['additional_attribute_1'].values[0]
     self.scene_info = self.data_provider[Data.SCENES_INFO]
     self.store_id = self.data_provider[Data.STORE_FK]
     self.scif = self.data_provider[Data.SCENE_ITEM_FACTS]
     self.match_display_in_scene = self.get_match_display()
     self.set_templates_data = {}
     self.kpi_static_data = self.get_kpi_static_data()
     self.scores = {self.LEVEL1: {},
                    self.LEVEL2: {},
                    self.LEVEL3: {}}
     self.kpi_results_queries = []
     self.output = output
     self.common = Common(self.data_provider)
     self.commonV2 = CommonV2(self.data_provider)
     self.tools = DIAGEOToolBox(self.data_provider, output,
                                match_display_in_scene=self.match_display_in_scene)  # replace the old one
     self.diageo_generator = DIAGEOGenerator(self.data_provider, self.output, self.common)
 def __init__(self, data_provider, common, output):
     self.output = output
     self.data_provider = data_provider
     self.common = common
     self.project_name = self.data_provider.project_name
     self.session_uid = self.data_provider.session_uid
     self.session_info = self.data_provider[Data.SESSION_INFO]
     self.scene_info = self.data_provider[Data.SCENES_INFO]
     self.scene = self.scene_info.loc[0, 'scene_fk']
     self.templates = self.data_provider[Data.TEMPLATES]
     self.products = self.data_provider[Data.PRODUCTS]
     self.all_products = self.data_provider[Data.ALL_PRODUCTS]
     self.match_product_in_scene = self.data_provider[Data.MATCHES]
     self.mpis = self.make_mpis()
     self.visit_date = self.data_provider[Data.VISIT_DATE]
     self.store_id = self.data_provider[Data.STORE_FK]
     self.scif = self.data_provider[Data.SCENE_ITEM_FACTS]
     self.scif = self.scif[~(self.scif['product_type'] == 'Irrelevant')]
     self.rds_conn = PSProjectConnector(self.project_name,
                                        DbUsers.CalculationEng)
     self.kpi_static_data = self.common.get_kpi_static_data()
     self.manufacturer_fk = int(
         self.data_provider[Data.OWN_MANUFACTURER].iloc[0, 1])
     self.gp_manufacturer = self.get_gp_manufacturer()
     self.gp_categories = self.get_gp_categories()
     self.brands = self.get_brands()
     self.gp_brands = self.get_gp_brands()
     self.man_fk_filter = {
         'manufacturer_name': list(self.gp_manufacturer.keys())
     }
     self.cat_filter = {'category': list(self.gp_categories.keys())}
     self.brand_filter = {'brand_name': list(self.gp_brands.keys())}
     self.kpi_results = []
     self.dedupe = set()
Beispiel #23
0
 def __init__(self, data_provider, output):
     self.output = output
     self.data_provider = data_provider
     self.common_v2 = CommonV2(self.data_provider)
     self.project_name = self.data_provider.project_name
     self.session_uid = self.data_provider.session_uid
     self.products = self.data_provider[Data.PRODUCTS]
     self.all_products = self.data_provider[Data.ALL_PRODUCTS]
     self.match_product_in_scene = self.data_provider[Data.MATCHES]
     self.visit_date = self.data_provider[Data.VISIT_DATE]
     self.session_info = self.data_provider[Data.SESSION_INFO]
     self.templates = self.data_provider[Data.TEMPLATES]
     self.scene_info = self.data_provider[Data.SCENES_INFO]
     self.store_info = self.data_provider[Data.STORE_INFO]
     self.store_id = self.data_provider[Data.STORE_FK]
     self.scif = self.data_provider[Data.SCENE_ITEM_FACTS]
     self.own_manufacturer_fk = int(self.data_provider.own_manufacturer.param_value.values[0])
     self.rds_conn = PSProjectConnector(self.project_name, DbUsers.CalculationEng)
     self.kpi_static_data = self.common_v2.get_kpi_static_data()
     self.kpi_results_queries = []
     self.template = self.data_provider.all_templates  # templates
     self.toolbox = GENERALToolBox(data_provider)
     kpi_path = os.path.dirname(os.path.realpath(__file__))
     base_file = os.path.basename(kpi_path)
     self.exclude_filters = pd.read_excel(os.path.join(kpi_path[:- len(base_file)], 'Data', 'template.xlsx'),
                                          sheetname="Exclude")
     self.Include_filters = pd.read_excel(os.path.join(kpi_path[:- len(base_file)], 'Data', 'template.xlsx'),
                                          sheetname="Include")
     self.bay_count_kpi = pd.read_excel(os.path.join(kpi_path[:- len(base_file)], 'Data', 'template.xlsx'),
                                        sheetname="BayCountKPI")
     self.assortment_data = pd.read_excel(os.path.join(kpi_path[:- len(base_file)], 'Data', 'template.xlsx'),
                                          sheetname="Assortment")
 def __init__(self, data_provider, output):
     self.output = output
     self.data_provider = data_provider
     self.project_name = self.data_provider.project_name
     self.common = Common(self.data_provider)
     self.old_common = oldCommon(self.data_provider)
     self.rds_conn = PSProjectConnector(self.project_name,
                                        DbUsers.CalculationEng)
     self.session_fk = self.data_provider.session_id
     self.match_product_in_scene = self.data_provider[Data.MATCHES]
     self.scif = self.data_provider[Data.SCENE_ITEM_FACTS]
     self.store_info = self.data_provider[Data.STORE_INFO]
     self.store_id = self.data_provider[Data.STORE_FK]
     self.survey = Survey(self.data_provider)
     self.block = Block(self.data_provider)
     self.general_toolbox = GENERALToolBox(self.data_provider)
     self.visit_date = self.data_provider[Data.VISIT_DATE]
     self.template_path = self.get_relevant_template
     self.gap_data = self.get_gap_data()
     self.kpi_weights = parse_template(self.template_path,
                                       Consts.KPI_WEIGHT,
                                       lower_headers_row_index=0)
     self.template_data = self.parse_template_data()
     self.kpis_gaps = list()
     self.passed_availability = list()
     self.kpi_static_data = self.old_common.get_kpi_static_data()
     self.own_manufacturer_fk = int(
         self.data_provider.own_manufacturer.param_value.values[0])
     self.parser = Parser
     self.all_products = self.data_provider[Data.ALL_PRODUCTS]
Beispiel #25
0
 def __init__(self, data_provider, output):
     self.output = output
     self.data_provider = data_provider
     self.common = Common(self.data_provider)
     self.project_name = self.data_provider.project_name
     self.session_uid = self.data_provider.session_uid
     self.products = self.data_provider[Data.PRODUCTS]
     self.all_products = self.data_provider[Data.ALL_PRODUCTS]
     self.match_product_in_scene = self.data_provider[Data.MATCHES]
     self.visit_date = self.data_provider[Data.VISIT_DATE]
     self.session_info = self.data_provider[Data.SESSION_INFO]
     self.scene_info = self.data_provider[Data.SCENES_INFO]
     self.store_id = self.data_provider[Data.STORE_FK]
     self.store_info = self.data_provider[Data.STORE_INFO]
     self.scif = self.data_provider[Data.SCENE_ITEM_FACTS]
     self.rds_conn = PSProjectConnector(self.project_name,
                                        DbUsers.CalculationEng)
     self.kpi_static_data = self.common.get_kpi_static_data()
     self.kpi_results_queries = []
     self.templates_path = os.path.join(
         os.path.dirname(os.path.realpath(__file__)), '..', 'Data')
     self.excel_file_path = os.path.join(self.templates_path,
                                         'inbevtradmx_template.xlsx')
     self.availability = Availability(self.data_provider)
     self.survey_response = self.data_provider[Data.SURVEY_RESPONSES]
     self.geo = GeoLocation.Geo(self.rds_conn, self.session_uid,
                                self.data_provider, self.kpi_static_data,
                                self.common)
 def __init__(self,
              data_provider,
              output,
              kpi_static_data,
              geometric_kpi_flag=False,
              **data):
     self.k_engine = BaseCalculationsGroup(data_provider, output)
     self.data_provider = data_provider
     self.project_name = self.data_provider.project_name
     self.session_uid = self.data_provider.session_uid
     self.scif = self.data_provider[Data.SCENE_ITEM_FACTS]
     self.rds_conn = PSProjectConnector(self.project_name,
                                        DbUsers.CalcAdmin)
     self.scif = self.scif.merge(self.data_provider[Data.STORE_INFO],
                                 how='left',
                                 left_on='store_id',
                                 right_on='store_fk')
     self.match_display_in_scene = data.get('match_display_in_scene')
     self.all_products = self.data_provider[Data.ALL_PRODUCTS]
     self.survey_response = self.data_provider[Data.SURVEY_RESPONSES]
     self.kpi_static_data = kpi_static_data
     # self.get_atts()
     if geometric_kpi_flag:
         self.position_graph_data = CCUS_SANDPositionGraphs(
             self.data_provider)
         self.matches = self.position_graph_data.match_product_in_scene
         self.position_graph = self.position_graph_data.position_graphs
     else:
         self.position_graph_data = None
         self.matches = self.data_provider[Data.MATCHES]
     self.matches = self.matches.merge(self.match_display_in_scene,
                                       how='left',
                                       on=['scene_fk', 'bay_number'])
Beispiel #27
0
    def __init__(self, data_provider, output):
        self.k_engine = BaseCalculationsScript(data_provider, output)
        self.data_provider = data_provider
        self.project_name = self.data_provider.project_name
        self.session_uid = self.data_provider.session_uid
        self.rds_conn = PSProjectConnector(self.project_name, DbUsers.CalculationEng)

        self.product_attributes = self.get_missing_attributes_data()
        self.products = self.data_provider[Data.PRODUCTS]
        self.products = self.products.merge(self.product_attributes, how='left', on='product_fk')
        self.all_products = self.data_provider[Data.ALL_PRODUCTS]
        self.all_products = self.all_products.merge(self.product_attributes, how='left', on='product_fk')
        self.scif = self.data_provider[Data.SCENE_ITEM_FACTS]
        self.scif = self.scif.merge(self.product_attributes, how='left', on='product_fk')

        self.matches = self.data_provider[Data.MATCHES]
        self.matches = self.matches.merge(self.products, how='left', on='product_fk')
        self.matches = self.matches.merge(self.scif[['scene_fk', LOCATION_FIELD]].drop_duplicates(),
                                          how='left', on='scene_fk')

        self.visit_date = self.data_provider[Data.VISIT_DATE]
        self.session_info = self.data_provider[Data.SESSION_INFO]
        self.scene_info = self.data_provider[Data.SCENES_INFO]
        self.store_type = self.data_provider[Data.STORE_INFO].store_type.values[0]
        self.store_id = self.data_provider[Data.STORE_FK]
        self.kpi_static_data = self.get_kpi_static_data()
        self.tools = GENERALToolBox(self.data_provider, output, self.kpi_static_data, geometric_kpi_flag=False)
        self.template_data = self.tools.get_json_data('{}/Template.xlsx'.format(TEMPLATES_PATH))
        self.power_skus = self.get_power_skus_for_store()
        self.kpi_results_queries = []
Beispiel #28
0
    def __init__(self, data_provider, output, commonv2):
        self.k_engine = BaseCalculationsScript(data_provider, output)
        self.output = output

        self.data_provider = data_provider
        self.common = commonv2
        self.project_name = self.data_provider.project_name
        self.session_uid = self.data_provider.session_uid
        self.visit_date = self.data_provider[Data.VISIT_DATE]
        self.session_info = self.data_provider[Data.SESSION_INFO]
        self.scene_info = self.data_provider[Data.SCENES_INFO]
        self.all_products = self.data_provider[Data.ALL_PRODUCTS]
        self.templates = self.data_provider[Data.TEMPLATES]
        self.store_id = self.data_provider[Data.STORE_FK]
        self.rds_conn = PSProjectConnector(self.project_name, DbUsers.CalculationEng)
        # self.kpi_static_data = self.get_kpi_static_data()
        self.kpi_results_queries = []
        self.store_info = self.data_provider[Data.STORE_INFO]
        self.store_type = self.store_info['store_type'].iloc[0]
        # self.rules = pd.read_excel(TEMPLATE_PATH).set_index('store_type').to_dict('index')
        self.ps_data_provider = PsDataProvider(self.data_provider, self.output)
        self.scif = self.data_provider[Data.SCENE_ITEM_FACTS]
        self.match_product_in_scene = self.data_provider[Data.MATCHES]
        self.ignore_stacking = False
        self.facings_field = 'facings' if not self.ignore_stacking else 'facings_ign_stack'
        self.manufacturer_fk = self.all_products['manufacturer_fk'][self.all_products['manufacturer_name'] == 'CCNA'].iloc[0]
        # self.scene_data = self.load_scene_data()
        # self.kpi_set_fk = kpi_set_fk
        self.templates = {}
        self.parse_template()
        self.toolbox = GENERALToolBox(self.data_provider)
        self.SOS = SOS_calc(self.data_provider)
        self.survey = Survey_calc(self.data_provider)
        self._merge_matches_and_all_product()
 def __init__(self, data_provider, output):
     self.k_engine = BaseCalculationsScript(data_provider, output)
     self.output = output
     self.data_provider = data_provider
     self.project_name = self.data_provider.project_name
     self.session_uid = self.data_provider.session_uid
     self.products = self.data_provider[Data.PRODUCTS]
     self.all_products = self.data_provider[Data.ALL_PRODUCTS]
     self.match_product_in_scene = self.data_provider[Data.MATCHES]
     self.visit_date = self.data_provider[Data.VISIT_DATE]
     self.session_info = self.data_provider[Data.SESSION_INFO]
     self.scene_info = self.data_provider[Data.SCENES_INFO]
     self.store_id = self.data_provider[Data.STORE_FK]
     self.scif = self.data_provider[Data.SCENE_ITEM_FACTS]
     self.rds_conn = PSProjectConnector(self.project_name, DbUsers.CalculationEng)
     self.tools = MSCGENERALToolBox(self.data_provider, self.output, rds_conn=self.rds_conn)
     self.kpi_static_data = self.get_kpi_static_data()
     self.kpi_results_queries = []
     self.custom_templates = {}
     self.store_info = self.data_provider[Data.STORE_INFO]
     self.get_atts()
     self.survey_response = self.data_provider[Data.SURVEY_RESPONSES]
     self.store_type = self.store_info['store_type'].iloc[0]
     self.scif_filters = {'In Scene Type': 'template_name', 'Template Group': 'template_group', 'Excluded Template Group':'template_group', 'Manufacturer':'manufacturer_name',
                          'Manufacturer Exclude': 'manufacturer_name', 'Trademark (att2)': 'att2', 'Exluded Trademark (att2)':'att2', 'Sub Category': 'sub_category',
                          'Excluded Package Type (att3)': 'att3', 'Package Group (att1)': 'att1', 'SSD Still (att4)':'att4', 'Product Categories':'category', 'Package Type (att3)': 'att3',
                          'Excluded Product Categories':'category', 'Excluded EAN Code': 'product_ean_code', 'EAN Code': 'product_ean_code', 'Question fk':'Question fk'}
     self.row_filters =  ['In Scene Type', 'Template Group', 'Excluded Template Group', 'Manufacturer', 'Manufacturer Exclude', 'Trademark (att2)', 'Exluded Trademark (att2)', 'Sub Category',
                           'Package Type (att3)', 'Excluded Package Type (att3)', 'Package Group (att1)', 'SSD Still (att4)', 'Product Categories', 'Excluded Product Categories', 'Excluded EAN Code', 'EAN Code']
Beispiel #30
0
 def __init__(self, data_provider, output):
     self.output = output
     self.data_provider = data_provider
     self.common = Common(self.data_provider)
     self.match_display_in_scene = self.data_provider.match_display_in_scene
     self.project_name = self.data_provider.project_name
     self.session_uid = self.data_provider.session_uid
     self.products = self.data_provider[Data.PRODUCTS]
     self.all_products = self.data_provider[Data.ALL_PRODUCTS]
     self.scene_info = self.data_provider[Data.SCENES_INFO]
     self.templates = self.data_provider[Data.TEMPLATES]
     self.match_product_in_scene = self.data_provider[Data.MATCHES]
     self.visit_date = self.data_provider[Data.VISIT_DATE]
     self.session_info = self.data_provider[Data.SESSION_INFO]
     self.scene_info = self.data_provider[Data.SCENES_INFO]
     self.store_id = self.data_provider[Data.STORE_FK]
     self.scif = self.data_provider[Data.SCENE_ITEM_FACTS]
     self.rds_conn = PSProjectConnector(self.project_name, DbUsers.CalculationEng)
     self.ps_data_provider = PsDataProvider(self.data_provider, self.output)
     self.kpi_static_data = self.common.get_kpi_static_data()
     self.kpi_results_queries = []
     self.templates_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), '..', 'Data')
     self.excel_file_path = os.path.join(self.templates_path, 'Template.xlsx')
     self.external_targets = self.ps_data_provider.get_kpi_external_targets(
         kpi_operation_types=["Target Config"],
         key_fields=["product_fks", "template_fks", "product_group_fk"],
         data_fields=["stacking_exclude", "min_product_facing", "best_shelf_position", "group_facings_count"]
         )