from JobHed import JobHed from Store import store class JobHedFactory(object): def new(self): return JobHed() def getJobHeds(self): return store.fetchObjectsOfClass(JobHed) def getActiveJobHeds(self): return store.fetchObjectsOfClass(JobHed, clauses="WHERE complete=0 ORDER BY number") def getJobHedByNumber(self, number): return store.fetchObjectsOfClass(JobHed, clauses="WHERE number='%s'" % (number)) def getJobHedBySerialNum(self, serialNum): return store.fetchObject(JobHed, serialNum) def searchJobHeds(self,clauses): return store.fetchObjectsOfClass(JobHed, clauses) def getJobHedsByPage(self,numberOfLastOne = 0,pageCount = 250,sortBy = "number",order = True): findRange = int(numberOfLastOne) * int(pageCount) sqlEngine = str( store.__module__ ).split(".")[2] if sqlEngine=="MSSQLObjectStore": results = store.fetchObjectsOfClass(JobHed,clauses="WHERE [complete]=0 ORDER BY %s+'0',%s" % ( sortBy,sortBy ) ) #MSSQL doesn't have a LIMIT statement else: results = store.fetchObjectsOfClass(JobHed,clauses="WHERE complete=0 ORDER BY %s+'0',%s LIMIT %s" % ( sortBy,sortBy,(findRange + (2 * pageCount ) ) ) ) if (len(results) - findRange ) > pageCount: nextPage = int(numberOfLastOne) + 1 else: nextPage = False if not order: results.reverse() results = results[findRange : (findRange + int(pageCount) ) ] return list([results, nextPage ])