def data_providers(self): from custom.ilsgateway.tanzania.reports.facility_details import (InventoryHistoryData, RegistrationData, RandRHistory, Notes, RecentMessages) config = self.report_config data_providers = [] if config['org_summary']: location = SQLLocation.objects.get(location_id=config['org_summary'][0].location_id) data_providers = [ SohSubmissionData(config=config, css_class='row_chart'), ProductSelectionPane(config=config, css_class='row_chart'), ProductAvailabilitySummary(config=config, css_class='row_chart_all', chart_stacked=False), ] if location.location_type.name.upper() == 'DISTRICT': data_providers.append(DistrictSohPercentageTableData(config=config, css_class='row_chart_all')) elif location.location_type.name.upper() == 'FACILITY': return [ InventoryHistoryData(config=config), RandRHistory(config=config), Notes(config=config), RecentMessages(config=config), RegistrationData(config=dict(loc_type='FACILITY', **config), css_class='row_chart_all'), RegistrationData(config=dict(loc_type='DISTRICT', **config), css_class='row_chart_all'), RegistrationData(config=dict(loc_type='REGION', **config), css_class='row_chart_all') ] else: data_providers.append(SohPercentageTableData(config=config, css_class='row_chart_all')) return data_providers
def data_providers(self): config = self.report_config if self.location: if self.location.location_type.name.upper() == 'FACILITY': self.use_datatables = True return [ InventoryHistoryData(config=config), RandRHistory(config=config), Notes(config=config), RecentMessages(config=config), RegistrationData(config=dict(loc_type='FACILITY', **config), css_class='row_chart_all'), RegistrationData(config=dict(loc_type='DISTRICT', **config), css_class='row_chart_all'), RegistrationData(config=dict(loc_type='REGION', **config), css_class='row_chart_all') ] else: self.use_datatables = False return [ RandRSubmissionData(config=config), DistrictSummaryData(config=config), SohSubmissionData(config=config), DeliverySubmissionData(config=config), ProductAvailabilitySummary(config=config, css_class='row_chart_all') ] else: return []
def get_soh_data(self, location, facs_count): org_summary = OrganizationSummary.objects.filter( date__range=(self.config['startdate'], self.config['enddate']), location_id=location.location_id ) if facs_count > 0: soh_rows = SohSubmissionData(config={'org_summary': org_summary}).rows soh_data = soh_rows[0] if soh_rows else None if soh_data: soh_on_time = soh_data.on_time * 100 / facs_count soh_late = soh_data.late * 100 / facs_count soh_not_responding = soh_data.not_responding * 100 / facs_count return soh_late, soh_not_responding, soh_on_time return None, None, None