def run_project_calculations(self): self.timer.start() # use log.time_message tool_box = INTEG4KPIToolBox(self.data_provider, self.output) kpi_set_name = tool_box.set_name if kpi_set_name == CANTEEN: INTEG4CanteenCalculations(self.data_provider, self.output).main_function() elif kpi_set_name == PETROL: INTEG4PetrolCalculations(self.data_provider, self.output).main_function() elif kpi_set_name == HORECA: INTEG4HoReCaCalculations(self.data_provider, self.output).main_function() elif kpi_set_name == FT: INTEG4FTCalculations(self.data_provider, self.output).main_function() elif kpi_set_name == HYPERMARKET: INTEG4HypermarketCalculations(self.data_provider, self.output).main_function() elif kpi_set_name == SUPERMARKET: INTEG4SupermarketCalculations(self.data_provider, self.output).main_function() elif kpi_set_name == SUPERETTE: INTEG4SuperetteCalculations(self.data_provider, self.output).main_function() elif kpi_set_name == FAST_FOOD: INTEG4FastFoodCalculations(self.data_provider, self.output).main_function() else: Log.error('Session store "{}" is not set to calculation'.format( tool_box.session_info.store_type)) # todo add all supported store types self.timer.stop('INTEG4Calculations.run_project_calculations')
def __init__(self, data_provider, output): #All relevant session data with KPI static info will trigger the KPI calculation self.k_engine = BaseCalculationsGroup(data_provider, output) self.data_provider = data_provider self.project_name = data_provider.project_name self.output = output self.session_uid = self.data_provider.session_uid self.visit_date = self.data_provider[Data.VISIT_DATE] self.rds_conn = PSProjectConnector(self.project_name, DbUsers.CalculationEng) self.session_info = SessionInfo(data_provider) self.store_id = self.data_provider[Data.STORE_FK] self.tool_box = INTEG4KPIToolBox(self.data_provider, self.output, FT) self.results = {}