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'
     }
Example #2
0
 def __init__(self, data_provider, output, kpi_set_fk):
     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.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.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.tools = NEW_OBBOGENERALToolBox(self.data_provider,
                                         self.output,
                                         rds_conn=self.rds_conn)
     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.scene_data = self.load_scene_data()
     self.kpi_set_fk = kpi_set_fk
 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.store_info = self.data_provider[Data.STORE_INFO]
     self.store_type = self.store_info['store_type'].iloc[0]
     self.rds_conn = PSProjectConnector(self.project_name,
                                        DbUsers.CalculationEng)
     self.scif = self.data_provider[Data.SCENE_ITEM_FACTS]
     self.scif = self.scif.merge(self.get_missing_attributes(),
                                 on='product_fk',
                                 how='left',
                                 suffixes=['', '_1'])
     self.template_data = parse_template(TEMPLATE_PATH, 'Sheet1')
     self.tools = CCUSGENERALToolBox(self.data_provider,
                                     self.output,
                                     scif=self.scif)
     self.output_df = pd.read_excel(OUTPUT_PATH)
     self.kpi_static_data = self.get_kpi_static_data(set_name='CCUS Test')
     self.kpi_results_queries = []
 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.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_results_queries = []
     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()
     self.all_brand = self.all_products[['brand_name', 'brand_fk']].set_index(u'brand_fk').to_dict()
     # Get Pillars KPI Scene's result
     self.scenes_result = self.data_provider.scene_kpi_results
     self.scenes_result = self.scenes_result.loc[self.scenes_result['type'] == Const.SCENE_KPI_NAME]
 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.rds_conn = PSProjectConnector(self.project_name, DbUsers.CalculationEng)
     self.store_info = self.data_provider[Data.STORE_INFO]
     self.store_id = self.data_provider[Data.STORE_FK]
     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.segment = self.get_business_unit_name()
     self.scene_info = self.data_provider[Data.SCENES_INFO]
     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.tools = DIAGEOToolBox(self.data_provider, output, match_display_in_scene=self.match_display_in_scene)
     self.kpi_results_queries = []
     self.common = Common(self.data_provider)
     self.commonV2 = CommonV2(self.data_provider)
     self.diageo_generator = DIAGEOGenerator(self.data_provider, self.output, self.common)
Example #6
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()
Example #7
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.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 = OBBOGENERALCCUS_SANDToolBox(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 = []
Example #8
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.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.scif = self.data_provider[Data.SCENE_ITEM_FACTS]
     self.store_info = self.data_provider[Data.STORE_INFO]
     self.store_type = self.store_info['store_type'].values[0]
     self.number_of_checkouts = self.store_info['additional_attribute_1'].values[0]
     self.segmentation = self.get_segmentation()
     self.region = self.store_info['region_name'].values[0]
     self.rds_conn = PSProjectConnector(self.project_name, DbUsers.CalculationEng)
     self.match_display_in_scene = self.get_match_display()
     self.tools = PEPSICOBR_SANDGENERALToolBox(self.data_provider, self.output, rds_conn=self.rds_conn)
     self.price_data = self.get_price_data()
     self.kpi_static_data = self.get_kpi_static_data()
     self.template_data = parse_template(TEMPLATE_PATH, 'KPIs')
     self.availability_template = parse_template(TEMPLATE_PATH, 'Assortment', 3, 2, 3)
     self.price_template = parse_template(TEMPLATE_PATH, 'Price', 1, 0, 2)
     self.planogram_template = parse_template(TEMPLATE_PATH, 'Planogram', 0, 0, 5,
                                              columns_for_vertical_padding=[self.PLANOGRAM_NAME,
                                                                            self.COUNT_OF_SHELVES,
                                                                            self.SCENE_TYPE])
     self.planogram_template[self.COUNT_OF_SHELVES] = self.planogram_template[self.COUNT_OF_SHELVES].astype(float)
     self.availability_id = '{};{}'.format(self.region, self.segmentation)
     self.kpi_results_queries = []
 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']
 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 = DISPLAYSGENERALToolBox(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 = []
Example #11
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 = NEW_OBBOGENERALToolBox(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):
     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 = MSC_NEWGENERALCCUS_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.kpi_data = parse_template(TEMPLATE_PATH, 'KPI')
     self.scif_filters = {
         'include manufacturer': 'manufacturer_name',
         'exclude manufacturer': 'manufacturer_name',
         'include att2': 'att2',
         'exclude att2': 'att2',
         'att4': 'att4',
         'scene type': 'template_name'
     }
     self.row_filters = [
         'include manufacturer', 'exclude manufacturer', 'include att2',
         'exclude att2', 'att4', 'scene type'
     ]
 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.store_info = self.data_provider[Data.STORE_INFO]
     self.store_type = self.store_info['store_type'].iloc[0]
     self.scif = self.data_provider[Data.SCENE_ITEM_FACTS]
     self.rds_conn = PSProjectConnector(self.project_name, DbUsers.CalculationEng)
     self.general_tools = CCKHGENERALToolBox(self.data_provider, self.output)
     self.template = CCKHTemplateConsts()
     self.kpi_static_data = self.get_kpi_static_data()
     self.kpi_results_queries = []
     self.commonV2 = CommonV2(self.data_provider)
     self.kpi_new_static_data = self.commonV2.get_new_kpi_static_data()
     self.manufacturer = int(self.data_provider.own_manufacturer.param_value.values[0])
     self.ps_data_provider = PsDataProvider(self.data_provider, self.output)
     self.external_targets = self.ps_data_provider.get_kpi_external_targets()
     self.assortment = Assortment(self.data_provider, self.output)
     self.templates_info = self.external_targets[self.external_targets[CCKHTemplateConsts.TEMPLATE_OPERATION] ==
                                                 CCKHTemplateConsts.BASIC_SHEET]
     self.visibility_info = self.external_targets[self.external_targets[CCKHTemplateConsts.TEMPLATE_OPERATION]
                                                  == CCKHTemplateConsts.VISIBILITY_SHEET]
     self.cooler_info = self.external_targets[self.external_targets[CCKHTemplateConsts.TEMPLATE_OPERATION]
                                              == CCKHTemplateConsts.COOLER_SHEET]
Example #14
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.visit_date = self.data_provider[Data.VISIT_DATE]
     self.session_info = self.data_provider[Data.SESSION_INFO]
     self.store_id = self.data_provider[Data.STORE_FK]
     store_type = self.data_provider[
         Data.STORE_INFO]['store_type'].values[0]
     self.store_type = '' if not store_type else store_type
     self.scif = self.data_provider[Data.SCENE_ITEM_FACTS]
     self.rds_conn = PSProjectConnector(self.project_name,
                                        DbUsers.CalculationEng)
     self.tools = JTIUA_SANDGENERALToolBox(self.data_provider,
                                           self.output,
                                           rds_conn=self.rds_conn)
     self.matches = self.tools.match_product_in_scene
     self.scene_info = self.tools.scenes_info
     self.match_display = self.get_match_display()
     self.template_data = parse_template(TEMPLATE_PATH, 'KPIs')
     self.posm_template = parse_template(TEMPLATE_PATH,
                                         'POSM',
                                         columns_for_vertical_padding=[
                                             JTIUA_SANDConsts.SCENE_TYPE,
                                             JTIUA_SANDConsts.DISPLAY_TYPE,
                                             JTIUA_SANDConsts.DISPLAY_BRAND
                                         ])
     self.kpi_static_data = self.get_kpi_static_data()
     self.hotspots = self.calculate_hotspot_range()
     self.posm_scoring = self.calculate_posm_scoring()
     self.kpi_results_queries = []
 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 = HEINEKENCNGENERALToolBox(self.data_provider,
                                           self.output,
                                           rds_conn=self.rds_conn)
     self.kpi_static_data = self.get_kpi_static_data()
     self.tamplate_tools = HandleTemplate(
         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.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 = PNGMCCN_SANDGENERALToolBox(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 = []
Example #17
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.session_fk = self.session_info['pk'][0]
        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.store_type = '' if self.store_type is None else self.store_type
        self.scif = self.data_provider[Data.SCENE_ITEM_FACTS]
        self.survey_response = self.data_provider[Data.SURVEY_RESPONSES]
        self.rds_conn = PSProjectConnector(self.project_name,
                                           DbUsers.CalculationEng)
        self.segmentation, self.region = self.get_segmentation_and_region()
        self.kpi_static_data = self.get_kpi_static_data()
        self.tools = CCTH_UATGENERALToolBox(self.data_provider, self.output)
        if '7-11' in self.store_type:
            if self.visit_date >= datetime(2017, 7, 1).date():
                template_name = CCTH_UATParseTemplates.TEMPLATE_7_11_AFTER_JULY2017
            else:
                template_name = CCTH_UATParseTemplates.TEMPLATE_7_11_UNTIL_JULY2017
            self.template = CCTH_UATParseTemplates(template=template_name)
            self.calculation_type = template_name
            self.availability_id = self.gap_id = self.store_type
        else:
            if self.visit_date >= datetime(2017, 10, 25).date():
                template_name = CCTH_UATParseTemplates.TEMPLATE_TT_AFTER_NOV2017
                self.template = CCTH_UATParseTemplates(template=template_name)
                self.calculation_type = self.template.TEMPLATE_TT_AFTER_NOV2017

            else:
                template_name = CCTH_UATParseTemplates.TEMPLATE_TT_UNTIL_NOV2017
                self.template = CCTH_UATParseTemplates(template=template_name)
                self.calculation_type = self.template.TEMPLATE_TT_UNTIL_NOV2017
            self.availability_id = self.gap_id = '{};{}'.format(
                self.region, self.store_type)
            self.survey_id = '{};{};{}'.format(self.region, self.store_type,
                                               self.segmentation)
        self.templates_data = self.template.parse_kpi()
        self.availability_data = self.template.parse_availability()
        self.survey_data = self.template.parse_survey()
        self.gap_data = self.template.parse_gap()
        self.gap_translations = pd.read_excel(
            os.path.join(TEMPLATE_PATH, 'Gaps.xlsx'))
        self.kpi_results_queries = []
        self.gaps = {}
        self.gaps_queries = []
 def __init__(self, data_provider, output, project_name):
     self.k_engine = BaseCalculationsScript(data_provider, output)
     self.project_name = project_name
     self.data_provider = data_provider
     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.get_kpi_static_data()
 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.all_templates = self.data_provider[Data.ALL_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.store_type = self.data_provider[
         Data.STORE_INFO]['store_type'].values[0]
     self.scif = self.data_provider[Data.SCENE_ITEM_FACTS]
     self.brand_to_manufacturer = {
         x['brand_name']: x['manufacturer_name']
         for i, x in self.scif[['brand_name', 'manufacturer_name'
                                ]].drop_duplicates().iterrows()
     }
     self.match_display_in_scene = self.get_match_display()
     self.store_retailer = self.get_retailer()
     self.tools = PNGAUGENERALToolBox(self.data_provider,
                                      self.output,
                                      rds_conn=self.rds_conn)
     if self.visit_date <= datetime(2017, 12, 31).date():
         self.TEMPLATE_PATH = os.path.join(
             os.path.dirname(os.path.realpath(__file__)), '..', 'Data',
             'Template Dec.xlsx')
     else:
         self.TEMPLATE_PATH = os.path.join(
             os.path.dirname(os.path.realpath(__file__)), '..', 'Data',
             'Template.xlsx')
     self.template_data = parse_template(self.TEMPLATE_PATH, 'KPIs')
     self.scoring_data = parse_template(self.TEMPLATE_PATH, 'Scores')
     self.category_scene_types, self.template_groups = self.get_category_scene_types(
     )
     self._custom_templates = {}
     self.scenes_types_for_categories = {}
     self.kpi_static_data = self.get_kpi_static_data()
     self.kpi_results_queries = []
     self.kpi_results = {}
     self.atomic_results = {}
     self.categories = self.all_products['category_fk'].unique().tolist()
 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.all_products = self.data_provider[Data.ALL_PRODUCTS]
     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.rds_conn = PSProjectConnector(self.project_name,
                                        DbUsers.CalculationEng)
     self.matches = self.get_match_product_in_scene()
     self.kpi_static_data = self.get_kpi_static_data()
     self.session_categories_data = self.get_session_categories_data()
     self.kpi_results_queries = []
     self.empty_spaces = {self.get_category_name(category): {'png': 0, 'other': 0} for category in RELEVANT_CATEGORIES \
                          if self.check_validation_of_category(category)}
     self.irrelevant_empties = 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 = MONSTERGENERALCCUS_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.ssd_score = 0   # Save the current score for Kpi1, fail Kp12 in case Kpi1 succeed.
 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.store_info = self.data_provider[Data.STORE_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 = NESTLEUKGENERALToolBox(self.data_provider,
                                         self.output,
                                         rds_conn=self.rds_conn)
     self.kpi_static_data = self.get_kpi_static_data()
     self.kpi_results_queries = []
     self.store_type = self.store_info['store_type'].iloc[0]
     self.store_type = '' if self.store_type is None else self.store_type
     self.templates_class = NESTLEUKParseTemplates('Nestle_UK_v3.0')
     self.template_ava_class = NESTLEUKParseTemplates('Template')
     self.templates_data = self.templates_class.parse_template(
         sheet_name='KPIs')
     self.template_ava_data = self.template_ava_class.parse_template(
         sheet_name='Hierarchy')
     self.template_ava_visible = self.template_ava_class.parse_template(
         sheet_name='Visible')
     self.template_ava_bottom_shelf = self.template_ava_class.parse_template(
         sheet_name='Bottom shelf')
     self.template_ava_adjacent = self.template_ava_class.parse_template(
         sheet_name='Adjacent')
     self.template_ava_diamond = self.template_ava_class.parse_template(
         sheet_name='Diamond')
     self.scores = pd.DataFrame(columns=['ean_code', 'visible', 'ava'])
     self.session_fk = self.data_provider[Data.SESSION_INFO]['pk'].iloc[0]
     self.custom_scif_queries = []
 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 = GOLD_PEAK_BLOCKGeneralToolBox(self.data_provider, self.output, rds_conn=self.rds_conn)
     self.kpi_static_data = self.get_kpi_static_data()
     self.kpi_results_queries = []
     self.kpi_data = parse_template(TEMPLATE_PATH, 'KPIs')
     self.store_info = self.data_provider[Data.STORE_INFO]
     self.store_type = self.store_info['store_type'].iloc[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.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_type = self.store_info['store_type'].values[0]
     self.scif = self.data_provider[Data.SCENE_ITEM_FACTS]
     self.rds_conn = PSProjectConnector(self.project_name, DbUsers.CalculationEng)
     self.kpi_static_data = self.get_kpi_static_data()
     self.match_display_in_scene = self.get_match_display()
     self.general_tools = GILLETTEUSGENERALToolBox(self.data_provider, output)
     self.template_data = self.general_tools.get_json_data(TEMPLATE_PATH)
     self.kpi_results_queries = []
Example #25
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.all_templates = self.data_provider[Data.ALL_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.store_type = self.data_provider[
         Data.STORE_INFO]['store_type'].values[0]
     self.scif = self.data_provider[Data.SCENE_ITEM_FACTS]
     self.brand_to_manufacturer = self.scif[[
         'brand_name', 'manufacturer_name'
     ]].drop_duplicates()
     self.rds_conn = PSProjectConnector(self.project_name,
                                        DbUsers.CalculationEng)
     self.match_display_in_scene = self.get_match_display()
     self.tools = PNGJPGENERALToolBox(self.data_provider,
                                      self.output,
                                      rds_conn=self.rds_conn)
     self.template_data = parse_template(TEMPLATE_PATH, 'KPIs')
     self.category_scene_types, self.template_groups = self.get_category_scene_types(
     )
     self._custom_templates = {}
     self.scenes_types_for_categories = {}
     self.kpi_static_data = self.get_kpi_static_data()
     self.kpi_results_queries = []
     self.kpi_results = {}
     self.atomic_results = {}
     self.categories = self.all_products['category_fk'].unique().tolist()
 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.all_templates = self.data_provider[Data.ALL_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.store_type = self.data_provider[Data.STORE_INFO][
         StoreInfoConsts.STORE_TYPE].values[0]
     self.scif = self.data_provider[Data.SCENE_ITEM_FACTS]
     self.match_display_in_scene = self.get_match_display()
     self.data_provider.probe_groups = self.get_probe_group(
         self.data_provider.session_uid)
     self.tools = PNGJP_SAND2GENERALToolBox(self.data_provider,
                                            self.output,
                                            rds_conn=self.rds_conn)
     self.template_name = 'TemplateQualitative.xlsx'
     self.TEMPLATE_PATH = os.path.join(
         os.path.dirname(os.path.realpath(__file__)), '..', 'Data',
         self.template_name)
     self.template_data = parse_template(self.TEMPLATE_PATH, self.HIERARCHY)
     self.golden_zone_data = parse_template(self.TEMPLATE_PATH,
                                            self.GOLDEN_ZONE)
     self.golden_zone_data_criteria = parse_template(
         self.TEMPLATE_PATH, self.GOLDEN_ZONE_CRITERIA)
     self.block_data = parse_template(self.TEMPLATE_PATH, self.BLOCK)
     self.adjacency_data = parse_template(self.TEMPLATE_PATH,
                                          self.ADJACENCY)
     self.anchor_data = parse_template(self.TEMPLATE_PATH, self.ANCHOR)
     self.perfect_execution_data = parse_template(self.TEMPLATE_PATH,
                                                  self.PERFECT_EXECUTION)
     self.category_list_data = parse_template(self.TEMPLATE_PATH,
                                              self.CATEGORY_LIST)
     self.product_groups_data = parse_template(self.TEMPLATE_PATH,
                                               self.PRODUCT_GROUP)
     self._custom_templates = {}
     self.scenes_types_for_categories = {}
     self.kpi_static_data = self.get_kpi_static_data()
     self.kpi_results_queries = []
     self.kpi_results = {}
     self.atomic_results = {}
     self.categories = self.all_products[
         ProductsConsts.CATEGORY_FK].unique().tolist()
     self.display_types = [
         'Aisle', 'Casher', 'End-shelf', 'Entrance', 'Island', 'Side-End',
         'Side-net'
     ]
     self.custom_scif_queries = []
     self.session_fk = self.data_provider[Data.SESSION_INFO][
         BasicConsts.PK].iloc[0]
     self.block = Block(data_provider=self.data_provider,
                        rds_conn=self.rds_conn)
     self.adjacency = Adjancency(data_provider=self.data_provider,
                                 rds_conn=self.rds_conn)
     self.fix_utf_space_problem()
     self.kpi_scores = {}