def getHouseholdIDsQuery(self):
        '''Get query for generating a list of households that match a users selection criteria'''

        projectid = self.getProjectID()
        selectedHChars = self.getSelectedHouseholdCharacteristics()
        selectedPChars = self.getSelectedPersonalCharacteristics()
        selectedhouseholds = self.getHouseholdsSelection()
        connector = DisposableHouseholdIncome()
        householdIDsQuery = connector.buildReportHouseholdIDsQuery(projectid,selectedhouseholds,selectedPChars,selectedHChars)
        return householdIDsQuery
 def getReportHouseholdIDs (self):
     '''Get a list of households that match a users selection criteria -i.e Household names + Personal Characteristics and Household Characteristics'''
     
     selectedids = []
     householdIDsQuery =self.getHouseholdIDsQuery()
     connector = DisposableHouseholdIncome()
     householdIDs = connector.getReportHouseholdIDs(householdIDsQuery)
     for hid in householdIDs:
         selectedids.append(str(hid[0]))
     return selectedids
 def getDISortedHouseholdIDs(self):
     """ Returns list of household IDs ordered according to DI/AE, from poorest to richest"""
     householdIDs = self.getReportHouseholdIDs()
     pid = self.getProjectID()
     reporttype = 'DI/AE'
     connector = DisposableHouseholdIncome()
     disposableincome = connector.householdDisposableIncome(reporttype,pid,householdIDs)
     houseids = []
     for row in disposableincome:
         houseids.append(row[0])
     return houseids
    def getNormalDIReportTable (self):
        '''Get report table'''

        pid = self.getProjectID()
        householdIDs = self.getReportHouseholdIDs()
        reporttype = 'Simulation'
        connector = DisposableHouseholdIncome()
        simconnector = SimulationDisposableHouseholdIncome()
        writeconnector = HouseholdsIncomeWrite()
        normalDIreportTable = connector.householdDisposableIncome(reporttype,pid,householdIDs)
        simulationDIreportTable = simconnector.householdDisposableIncome(reporttype,pid,householdIDs)
        writeconnector.writeSpreadsheetReport(normalDIreportTable,simulationDIreportTable)
        return simulationDIreportTable