def loadLoads(cursor): print('Importing loads...') cnt = 0 starttime = time() # Note: The sorting of the loads is not really necessary, but helps to make # the planning progress consistent across runs and database engines. cursor.execute(''' SELECT operation_id, resource_id, quantity, effective_start, effective_end, name, priority, setup, search, skill_id FROM resourceload WHERE alternate IS NULL OR alternate = '' ORDER BY operation_id, resource_id ''') curresname = None for i, j, k, l, m, n, o, p, q, r in cursor.fetchall(): cnt += 1 try: if j != curresname: curresname = j curres = frepple.resource(name=curresname) curload = frepple.load(operation=frepple.operation(name=i), resource=curres, quantity=k) if l: curload.effective_start = l if m: curload.effective_end = m if n: curload.name = n if o: curload.priority = o if p: curload.setup = p if q: curload.search = q if r: curload.skill = frepple.skill(name=r) except Exception as e: print("Error:", e) cursor.execute(''' SELECT operation_id, resource_id, quantity, effective_start, effective_end, name, alternate, priority, setup, search, skill_id FROM resourceload WHERE alternate IS NOT NULL AND alternate <> '' ORDER BY operation_id, resource_id ''') curresname = None for i, j, k, l, m, n, o, p, q, r, s in cursor.fetchall(): cnt += 1 try: if j != curresname: curresname = j curres = frepple.resource(name=curresname) curload = frepple.load(operation=frepple.operation(name=i), resource=curres, quantity=k) if l: curload.effective_start = l if m: curload.effective_end = m if n: curload.name = n if o: curload.alternate = o if p: curload.priority = p if q: curload.setup = q if r: curload.search = r if s: curload.skill = frepple.skill(name=s) except Exception as e: print("Error:", e) print('Loaded %d loads in %.2f seconds' % (cnt, time() - starttime))
def loadResources(cursor): print('Importing resources...') cnt = 0 starttime = time() Resource.rebuildHierarchy(database=cursor.db.alias) cursor.execute('''SELECT name, description, maximum, maximum_calendar_id, location_id, type, cost, maxearly, setup, setupmatrix_id, category, subcategory, owner_id FROM %s order by lvl asc, name'''% connections[database].ops.quote_name('resource')) for i,j,t,k,l,m,n,o,p,q,r,s,u in cursor.fetchall(): cnt += 1 try: if m == "infinite": x = frepple.resource_infinite(name=i,description=j,category=r,subcategory=s) elif not m or m == "default": x = frepple.resource_default(name=i,description=j,category=r,subcategory=s) if k: x.maximum_calendar = frepple.calendar(name=k) if o: x.maxearly = o if t: x.maximum = t else: raise ValueError("Resource type '%s' not recognized" % m) if l: x.location = frepple.location(name=l) if n: x.cost = n if p: x.setup = p if q: x.setupmatrix = frepple.setupmatrix(name=q) if u: x.owner = frepple.resource(name=u) except Exception as e: print("Error:", e) print('Loaded %d resources in %.2f seconds' % (cnt, time() - starttime))
def run(cls, database=DEFAULT_DB_ALIAS, **kwargs): import frepple if cls.filter: filter_and = "and %s " % cls.filter filter_where = "where %s " % cls.filter else: filter_and = "" filter_where = "" with connections[database].chunked_cursor() as cursor: cnt = 0 starttime = time() cursor.execute(''' SELECT resource_id, skill_id, effective_start, effective_end, priority, source FROM resourceskill %s ORDER BY skill_id, priority, resource_id ''' % filter_where) for i in cursor: cnt += 1 try: cur = frepple.resourceskill( resource=frepple.resource(name=i[0]), skill=frepple.skill(name=i[1]), priority=i[4] or 1, source=i[5] ) if i[2]: cur.effective_start = i[2] if i[3]: cur.effective_end = i[3] except Exception as e: logger.error("**** %s ****" % e) logger.info('Loaded %d resource skills in %.2f seconds' % (cnt, time() - starttime))
def loadResourceSkills(self): print('Importing resource skills...') cnt = 0 starttime = time() self.cursor.execute(''' SELECT resource_id, skill_id, effective_start, effective_end, priority, source FROM resourceskill %s ORDER BY skill_id, priority, resource_id ''' % self.filter_where) for i in self.cursor.fetchall(): cnt += 1 try: cur = frepple.resourceskill( resource=frepple.resource(name=i[0]), skill=frepple.skill(name=i[1]), priority=i[4] or 1, source=i[5]) if i[2]: cur.effective_start = i[2] if i[3]: cur.effective_end = i[3] except Exception as e: print("Error:", e) print('Loaded %d resource skills in %.2f seconds' % (cnt, time() - starttime))
def run(cls, database=DEFAULT_DB_ALIAS, **kwargs): import frepple if cls.filter: filter_and = "and %s " % cls.filter filter_where = "where %s " % cls.filter else: filter_and = "" filter_where = "" with connections[database].cursor() as cursor: cnt = 0 starttime = time() cursor.execute(''' SELECT supplier_id, item_id, location_id, sizeminimum, sizemultiple, cost, priority, effective_start, effective_end, source, leadtime, resource_id, resource_qty, fence FROM itemsupplier %s ORDER BY supplier_id, item_id, location_id, priority desc ''' % filter_where) cursuppliername = None curitemname = None for i in cursor.fetchall(): cnt += 1 try: if i[0] != cursuppliername: cursuppliername = i[0] cursupplier = frepple.supplier(name=cursuppliername) if i[1] != curitemname: curitemname = i[1] curitem = frepple.item(name=curitemname) curitemsupplier = frepple.itemsupplier( supplier=cursupplier, item=curitem, source=i[9], leadtime=i[10].total_seconds() if i[10] else 0, fence=i[13].total_seconds() if i[13] else 0, resource_qty=i[12] ) if i[2]: curitemsupplier.location = frepple.location(name=i[2]) if i[3]: curitemsupplier.size_minimum = i[3] if i[4]: curitemsupplier.size_multiple = i[4] if i[5]: curitemsupplier.cost = i[5] if i[6]: curitemsupplier.priority = i[6] if i[7]: curitemsupplier.effective_start = i[7] if i[8]: curitemsupplier.effective_end = i[8] if i[11]: curitemsupplier.resource = frepple.resource(name=i[11]) except Exception as e: print("Error:", e) print('Loaded %d item suppliers in %.2f seconds' % (cnt, time() - starttime))
def run(cls, database=DEFAULT_DB_ALIAS, **kwargs): import frepple if cls.filter: filter_and = "and %s " % cls.filter filter_where = "where %s " % cls.filter else: filter_and = "" filter_where = "" with connections[database].chunked_cursor() as cursor: cnt = 0 starttime = time() cursor.execute(''' SELECT origin_id, item_id, location_id, sizeminimum, sizemultiple, cost, priority, effective_start, effective_end, source, leadtime, resource_id, resource_qty, fence FROM itemdistribution %s ORDER BY origin_id, item_id, location_id, priority desc ''' % filter_where) curoriginname = None curitemname = None for i in cursor: cnt += 1 try: if i[0] != curoriginname: curoriginname = i[0] curorigin = frepple.location(name=curoriginname) if i[1] != curitemname: curitemname = i[1] curitem = frepple.item(name=curitemname) curitemdistribution = frepple.itemdistribution( origin=curorigin, item=curitem, source=i[9], leadtime=i[10].total_seconds() if i[10] else 0, fence=i[13].total_seconds() if i[13] else 0, resource_qty=i[12] ) if i[2]: curitemdistribution.destination = frepple.location(name=i[2]) if i[3]: curitemdistribution.size_minimum = i[3] if i[4]: curitemdistribution.size_multiple = i[4] if i[5]: curitemdistribution.cost = i[5] if i[6]: curitemdistribution.priority = i[6] if i[7]: curitemdistribution.effective_start = i[7] if i[8]: curitemdistribution.effective_end = i[8] if i[11]: curitemdistribution.resource = frepple.resource(name=i[11]) except Exception as e: logger.error("**** %s ****" % e) logger.info('Loaded %d item distributions in %.2f seconds' % (cnt, time() - starttime))
def loadResources(self): print('Importing resources...') cnt = 0 starttime = time() Resource.rebuildHierarchy(database=self.database) self.cursor.execute(''' SELECT name, description, maximum, maximum_calendar_id, location_id, type, cost, maxearly, setup, setupmatrix_id, category, subcategory, owner_id, source FROM %s %s ORDER BY lvl ASC, name ''' % (connections[self.cursor.db.alias].ops.quote_name('resource'), self.filter_where) ) for i in self.cursor.fetchall(): cnt += 1 try: if i[5] == "infinite": x = frepple.resource_infinite( name=i[0], description=i[1], category=i[10], subcategory=i[11], source=i[13] ) elif i[5] == "buckets": x = frepple.resource_buckets( name=i[0], description=i[1], category=i[10], subcategory=i[11], source=i[13] ) if i[3]: x.maximum_calendar = frepple.calendar(name=i[3]) if i[7]: x.maxearly = i[7] elif not i[5] or i[5] == "default": x = frepple.resource_default( name=i[0], description=i[1], category=i[10], subcategory=i[11], source=i[13] ) if i[3]: x.maximum_calendar = frepple.calendar(name=i[3]) if i[7]: x.maxearly = i[7] if i[2]: x.maximum = i[2] else: raise ValueError("Resource type '%s' not recognized" % i[5]) if i[4]: x.location = frepple.location(name=i[4]) if i[6]: x.cost = i[6] if i[8]: x.setup = i[8] if i[9]: x.setupmatrix = frepple.setupmatrix(name=i[9]) if i[12]: x.owner = frepple.resource(name=i[12]) except Exception as e: print("Error:", e) print('Loaded %d resources in %.2f seconds' % (cnt, time() - starttime))
def loadResources(self): print('Importing resources...') cnt = 0 starttime = time() Resource.rebuildHierarchy(database=self.database) self.cursor.execute(''' SELECT name, description, maximum, maximum_calendar_id, location_id, type, cost, maxearly, setup, setupmatrix_id, category, subcategory, owner_id, source FROM %s %s ORDER BY lvl ASC, name ''' % (connections[self.cursor.db.alias].ops.quote_name('resource'), self.filter_where) ) for i in self.cursor.fetchall(): cnt += 1 try: if i[5] == "infinite": x = frepple.resource_infinite( name=i[0], description=i[1], category=i[10], subcategory=i[11], source=i[13] ) elif i[5] == "buckets": x = frepple.resource_buckets( name=i[0], description=i[1], category=i[10], subcategory=i[11], source=i[13] ) if i[3]: x.maximum_calendar = frepple.calendar(name=i[3]) if i[7]: x.maxearly = i[7] elif not i[5] or i[5] == "default": x = frepple.resource_default( name=i[0], description=i[1], category=i[10], subcategory=i[11], source=i[13] ) if i[3]: x.maximum_calendar = frepple.calendar(name=i[3]) if i[7]: x.maxearly = i[7].total_seconds() if i[2]: x.maximum = i[2] else: raise ValueError("Resource type '%s' not recognized" % i[5]) if i[4]: x.location = frepple.location(name=i[4]) if i[6]: x.cost = i[6] if i[8]: x.setup = i[8] if i[9]: x.setupmatrix = frepple.setupmatrix(name=i[9]) if i[12]: x.owner = frepple.resource(name=i[12]) except Exception as e: print("Error:", e) print('Loaded %d resources in %.2f seconds' % (cnt, time() - starttime))
def loadItemDistributions(self): print('Importing item distributions...') cnt = 0 starttime = time() self.cursor.execute(''' SELECT origin_id, item_id, location_id, sizeminimum, sizemultiple, cost, priority, effective_start, effective_end, source, leadtime, resource_id, resource_qty, fence FROM itemdistribution %s ORDER BY origin_id, item_id, location_id, priority desc ''' % self.filter_where) curoriginname = None curitemname = None for i in self.cursor.fetchall(): cnt += 1 try: if i[0] != curoriginname: curoriginname = i[0] curorigin = frepple.location(name=curoriginname) if i[1] != curitemname: curitemname = i[1] curitem = frepple.item(name=curitemname) curitemdistribution = frepple.itemdistribution( origin=curorigin, item=curitem, source=i[9], leadtime=i[10].total_seconds() if i[10] else 0, fence=i[13].total_seconds() if i[13] else 0, resource_qty=i[12]) if i[2]: curitemdistribution.destination = frepple.location( name=i[2]) if i[3]: curitemdistribution.size_minimum = i[3] if i[4]: curitemdistribution.size_multiple = i[4] if i[5]: curitemdistribution.cost = i[5] if i[6]: curitemdistribution.priority = i[6] if i[7]: curitemdistribution.effective_start = i[7] if i[8]: curitemdistribution.effective_end = i[8] if i[11]: curitemdistribution.resource = frepple.resource(name=i[11]) except Exception as e: print("Error:", e) print('Loaded %d item itemdistributions in %.2f seconds' % (cnt, time() - starttime))
def loadLoads(self): print('Importing loads...') cnt = 0 starttime = time() # Note: The sorting of the loads is not really necessary, but helps to make # the planning progress consistent across runs and database engines. self.cursor.execute(''' SELECT operation_id, resource_id, quantity, effective_start, effective_end, name, priority, setup, search, skill_id, source FROM resourceload %s ORDER BY operation_id, resource_id ''' % self.filter_where) curresname = None for i in self.cursor.fetchall(): cnt += 1 try: if i[1] != curresname: curresname = i[1] curres = frepple.resource(name=curresname) curload = frepple.load(operation=frepple.operation(name=i[0]), resource=curres, quantity=i[2], source=i[10]) if i[3]: curload.effective_start = i[3] if i[4]: curload.effective_end = i[4] if i[5]: curload.name = i[5] if i[6]: curload.priority = i[6] if i[7]: curload.setup = i[7] if i[8]: curload.search = i[8] if i[9]: curload.skill = frepple.skill(name=i[9]) except Exception as e: print("Error:", e) self.cursor.execute(''' SELECT count(*) FROM resourceload WHERE alternate IS NOT NULL AND alternate <> '' ''') if self.cursor.fetchone()[0]: raise ValueError( "Load.alternate field is not used any longer. Use only load.name" ) print('Loaded %d loads in %.2f seconds' % (cnt, time() - starttime))
def loadItemDistributions(self): print('Importing item distributions...') cnt = 0 starttime = time() self.cursor.execute(''' SELECT origin_id, item_id, location_id, sizeminimum, sizemultiple, cost, priority, effective_start, effective_end, source, leadtime, resource_id, resource_qty, fence FROM itemdistribution %s ORDER BY origin_id, item_id, location_id, priority desc ''' % self.filter_where) curoriginname = None curitemname = None for i in self.cursor.fetchall(): cnt += 1 try: if i[0] != curoriginname: curoriginname = i[0] curorigin = frepple.location(name=curoriginname) if i[1] != curitemname: curitemname = i[1] curitem = frepple.item(name=curitemname) curitemdistribution = frepple.itemdistribution( origin=curorigin, item=curitem, source=i[9], leadtime=i[10].total_seconds() if i[10] else 0, fence=i[13].total_seconds() if i[13] else 0, resource_qty=i[12] ) if i[2]: curitemdistribution.destination = frepple.location(name=i[2]) if i[3]: curitemdistribution.size_minimum = i[3] if i[4]: curitemdistribution.size_multiple = i[4] if i[5]: curitemdistribution.cost = i[5] if i[6]: curitemdistribution.priority = i[6] if i[7]: curitemdistribution.effective_start = i[7] if i[8]: curitemdistribution.effective_end = i[8] if i[11]: curitemdistribution.resource = frepple.resource(name=i[11]) except Exception as e: print("Error:", e) print('Loaded %d item itemdistributions in %.2f seconds' % (cnt, time() - starttime))
def run(cls, database=DEFAULT_DB_ALIAS, **kwargs): import frepple if cls.filter: filter_and = "and %s " % cls.filter filter_where = "where %s " % cls.filter else: filter_and = "" filter_where = "" with connections[database].chunked_cursor() as cursor: cnt = 0 starttime = time() # Note: The sorting of the loads is not really necessary, but helps to make # the planning progress consistent across runs and database engines. cursor.execute(''' SELECT operation_id, resource_id, quantity, effective_start, effective_end, name, priority, setup, search, skill_id, source FROM operationresource %s ORDER BY operation_id, resource_id ''' % filter_where) for i in cursor: cnt += 1 try: curload = frepple.load( operation=frepple.operation(name=i[0]), resource=frepple.resource(name=i[1]), quantity=i[2], source=i[10] ) if i[3]: curload.effective_start = i[3] if i[4]: curload.effective_end = i[4] if i[5]: curload.name = i[5] if i[6]: curload.priority = i[6] if i[7]: curload.setup = i[7] if i[8]: curload.search = i[8] if i[9]: curload.skill = frepple.skill(name=i[9]) except Exception as e: logger.error("**** %s ****" % e) logger.info('Loaded %d resource loads in %.2f seconds' % (cnt, time() - starttime))
def loadItemSuppliers(self): print('Importing item suppliers...') cnt = 0 starttime = time() self.cursor.execute(''' SELECT supplier_id, item_id, location_id, sizeminimum, sizemultiple, cost, priority, effective_start, effective_end, source, leadtime, resource_id, resource_qty FROM itemsupplier %s ORDER BY supplier_id, item_id, location_id, priority desc ''' % self.filter_where) cursuppliername = None curitemname = None for i in self.cursor.fetchall(): cnt += 1 try: if i[0] != cursuppliername: cursuppliername = i[0] cursupplier = frepple.supplier(name=cursuppliername) if i[1] != curitemname: curitemname = i[1] curitem = frepple.item(name=curitemname) curitemsupplier = frepple.itemsupplier(supplier=cursupplier, item=curitem, source=i[9], leadtime=i[10] or 0, resource_qty=i[12]) if i[2]: curitemsupplier.location = frepple.location(name=i[2]) if i[3]: curitemsupplier.size_minimum = i[3] if i[4]: curitemsupplier.size_multiple = i[4] if i[5]: curitemsupplier.cost = i[5] if i[6]: curitemsupplier.priority = i[6] if i[7]: curitemsupplier.effective_start = i[7] if i[8]: curitemsupplier.effective_end = i[8] if i[11]: curitemsupplier.resource = frepple.resource(name=i[11]) except Exception as e: print("Error:", e) print('Loaded %d item suppliers in %.2f seconds' % (cnt, time() - starttime))
def loadResourceSkills(cursor): print('Importing resource skills...') cnt = 0 starttime = time() cursor.execute('''SELECT resource_id, skill_id, effective_start, effective_end, priority FROM resourceskill ORDER BY skill_id, priority, resource_id''') for i,j,k,l,m in cursor.fetchall(): cnt += 1 try: cur = frepple.resourceskill(resource=frepple.resource(name=i), skill=frepple.skill(name=j), priority=m or 1) if k: cur.effective_start = k if l: cur.effective_end = l except Exception as e: print("Error:", e) print('Loaded %d resource skills in %.2f seconds' % (cnt, time() - starttime))
def loadItemSuppliers(self): print('Importing item suppliers...') cnt = 0 starttime = time() self.cursor.execute(''' SELECT supplier_id, item_id, location_id, sizeminimum, sizemultiple, cost, priority, effective_start, effective_end, source, leadtime, resource_id, resource_qty FROM itemsupplier %s ORDER BY supplier_id, item_id, location_id, priority desc ''' % self.filter_where) cursuppliername = None curitemname = None for i in self.cursor.fetchall(): cnt += 1 try: if i[0] != cursuppliername: cursuppliername = i[0] cursupplier = frepple.supplier(name=cursuppliername) if i[1] != curitemname: curitemname = i[1] curitem = frepple.item(name=curitemname) curitemsupplier = frepple.itemsupplier( supplier=cursupplier, item=curitem, source=i[9], leadtime=i[10] or 0, resource_qty=i[12] ) if i[2]: curitemsupplier.location = frepple.location(name=i[2]) if i[3]: curitemsupplier.size_minimum = i[3] if i[4]: curitemsupplier.size_multiple = i[4] if i[5]: curitemsupplier.cost = i[5] if i[6]: curitemsupplier.priority = i[6] if i[7]: curitemsupplier.effective_start = i[7] if i[8]: curitemsupplier.effective_end = i[8] if i[11]: curitemsupplier.resource = frepple.resource(name=i[11]) except Exception as e: print("Error:", e) print('Loaded %d item suppliers in %.2f seconds' % (cnt, time() - starttime))
def loadLoads(self): print('Importing loads...') cnt = 0 starttime = time() # Note: The sorting of the loads is not really necessary, but helps to make # the planning progress consistent across runs and database engines. self.cursor.execute(''' SELECT operation_id, resource_id, quantity, effective_start, effective_end, name, priority, setup, search, skill_id, source FROM resourceload %s ORDER BY operation_id, resource_id ''' % self.filter_where) curresname = None for i in self.cursor.fetchall(): cnt += 1 try: if i[1] != curresname: curresname = i[1] curres = frepple.resource(name=curresname) curload = frepple.load(operation=frepple.operation(name=i[0]), resource=curres, quantity=i[2], source=i[10]) if i[3]: curload.effective_start = i[3] if i[4]: curload.effective_end = i[4] if i[5]: curload.name = i[5] if i[6]: curload.priority = i[6] if i[7]: curload.setup = i[7] if i[8]: curload.search = i[8] if i[9]: curload.skill = frepple.skill(name=i[9]) except Exception as e: print("Error:", e) self.cursor.execute(''' SELECT count(*) FROM resourceload WHERE alternate IS NOT NULL AND alternate <> '' ''') if self.cursor.fetchone()[0]: raise ValueError("Load.alternate field is not used any longer. Use only load.name") print('Loaded %d loads in %.2f seconds' % (cnt, time() - starttime))
def loadResourceSkills(cursor): print('Importing resource skills...') cnt = 0 starttime = time() cursor.execute('''SELECT resource_id, skill_id, effective_start, effective_end, priority FROM resourceskill ORDER BY skill_id, priority, resource_id''') for i, j, k, l, m in cursor.fetchall(): cnt += 1 try: cur = frepple.resourceskill(resource=frepple.resource(name=i), skill=frepple.skill(name=j), priority=m or 1) if k: cur.effective_start = k if l: cur.effective_end = l except Exception as e: print("Error:", e) print('Loaded %d resource skills in %.2f seconds' % (cnt, time() - starttime))
def loadOperationResources(self): print('Importing operation resources...') cnt = 0 starttime = time() # Note: The sorting of the loads is not really necessary, but helps to make # the planning progress consistent across runs and database engines. self.cursor.execute(''' SELECT operation_id, resource_id, quantity, effective_start, effective_end, name, priority, setup, search, skill_id, source FROM operationresource %s ORDER BY operation_id, resource_id ''' % self.filter_where) for i in self.cursor.fetchall(): cnt += 1 try: curload = frepple.load( operation=frepple.operation(name=i[0]), resource=frepple.resource(name=i[1]), quantity=i[2], source=i[10] ) if i[3]: curload.effective_start = i[3] if i[4]: curload.effective_end = i[4] if i[5]: curload.name = i[5] if i[6]: curload.priority = i[6] if i[7]: curload.setup = i[7] if i[8]: curload.search = i[8] if i[9]: curload.skill = frepple.skill(name=i[9]) except Exception as e: print("Error:", e) print('Loaded %d resource loads in %.2f seconds' % (cnt, time() - starttime))
def loadResources(cursor): print('Importing resources...') cnt = 0 starttime = time() Resource.rebuildHierarchy(database=cursor.db.alias) cursor.execute('''SELECT name, description, maximum, maximum_calendar_id, location_id, type, cost, maxearly, setup, setupmatrix_id, category, subcategory, owner_id FROM %s order by lvl asc, name''' % connections[cursor.db.alias].ops.quote_name('resource')) for i, j, t, k, l, m, n, o, p, q, r, s, u in cursor.fetchall(): cnt += 1 try: if m == "infinite": x = frepple.resource_infinite(name=i, description=j, category=r, subcategory=s) elif not m or m == "default": x = frepple.resource_default(name=i, description=j, category=r, subcategory=s) if k: x.maximum_calendar = frepple.calendar(name=k) if o: x.maxearly = o if t: x.maximum = t else: raise ValueError("Resource type '%s' not recognized" % m) if l: x.location = frepple.location(name=l) if n: x.cost = n if p: x.setup = p if q: x.setupmatrix = frepple.setupmatrix(name=q) if u: x.owner = frepple.resource(name=u) except Exception as e: print("Error:", e) print('Loaded %d resources in %.2f seconds' % (cnt, time() - starttime))
def loadResourceSkills(self): print('Importing resource skills...') cnt = 0 starttime = time() self.cursor.execute(''' SELECT resource_id, skill_id, effective_start, effective_end, priority, source FROM resourceskill %s ORDER BY skill_id, priority, resource_id ''' % self.filter_where) for i in self.cursor.fetchall(): cnt += 1 try: cur = frepple.resourceskill( resource=frepple.resource(name=i[0]), skill=frepple.skill(name=i[1]), priority=i[4] or 1, source=i[5] ) if i[2]: cur.effective_start = i[2] if i[3]: cur.effective_end = i[3] except Exception as e: print("Error:", e) print('Loaded %d resource skills in %.2f seconds' % (cnt, time() - starttime))
### print("\nTesting the comparison operator") print("makeoper < shipoper", makeoper < shipoper) print("shipoper < makeoper", shipoper < makeoper) print("shipoper != makeoper", shipoper != makeoper) print("shipoper == makeoper", shipoper == makeoper) print("shipoper == shipoper", shipoper == shipoper) try: print("makeoper == item", makeoper == item) except Exception as e: print("Catching exception %s: %s" % (e.__class__.__name__, e)) ### print("\nCreating a resource") frepple.resource(name="machine", maximum_calendar=frepple.calendar(name="Cal2")) ### print("\nCreating customers") mycustomer = frepple.customer(name="client") ### print("\nCreating locations") locA = frepple.location(name="locA") locB = frepple.location(name="locB") ### print("\nCreating some buffers") buf = frepple.buffer(name="end item", producing=choice, item=item)
def run(cls, database=DEFAULT_DB_ALIAS, **kwargs): import frepple if cls.filter: filter_and = "and %s " % cls.filter filter_where = "where %s " % cls.filter else: filter_and = "" filter_where = "" with connections[database].chunked_cursor() as cursor: cnt = 0 starttime = time() Resource.rebuildHierarchy(database=database) cursor.execute(''' SELECT name, description, maximum, maximum_calendar_id, location_id, type, cost, maxearly, setup, setupmatrix_id, category, subcategory, owner_id, source, available_id FROM %s %s ORDER BY lvl ASC, name ''' % (connections[cursor.db.alias].ops.quote_name('resource'), filter_where) ) for i in cursor: cnt += 1 try: if i[5] == "infinite": x = frepple.resource_infinite( name=i[0], description=i[1], category=i[10], subcategory=i[11], source=i[13] ) elif i[5] == "buckets": x = frepple.resource_buckets( name=i[0], description=i[1], category=i[10], subcategory=i[11], source=i[13] ) if i[3]: x.maximum_calendar = frepple.calendar(name=i[3]) if i[7] is not None: x.maxearly = i[7] elif not i[5] or i[5] == "default": x = frepple.resource_default( name=i[0], description=i[1], category=i[10], subcategory=i[11], source=i[13] ) if i[3]: x.maximum_calendar = frepple.calendar(name=i[3]) if i[7] is not None: x.maxearly = i[7].total_seconds() if i[2] is not None: x.maximum = i[2] else: raise ValueError("Resource type '%s' not recognized" % i[5]) if i[4]: x.location = frepple.location(name=i[4]) if i[6]: x.cost = i[6] if i[8]: x.setup = i[8] if i[9]: x.setupmatrix = frepple.setupmatrix(name=i[9]) if i[12]: x.owner = frepple.resource(name=i[12]) if i[14]: x.available = frepple.calendar(name=i[14]) except Exception as e: logger.error("**** %s ****" % e) logger.info('Loaded %d resources in %.2f seconds' % (cnt, time() - starttime))