def backfill_item(list_of_price): if not list_of_price: return with_plus = None without_plus = None result = [] for x in list_of_price: if x.prod_id[-1] == '+': with_plus = x else: without_plus = x if without_plus is None: prod_id = with_plus.prod_id[:-1] ig = dbapi.getone(ProdItemGroup, prod_id=prod_id) if ig is None: ig = make_item_plused(with_plus) igid = dbapi.create(ig) result.append('itemgroup') else: igid = ig.uid print ig.serialize() else: ig = dbapi.getone(ProdItemGroup, prod_id=without_plus.prod_id) if ig is None: ig = make_item_group(without_plus) igid = dbapi.create(ig) result.append('itemgroup') else: igid = ig.uid if without_plus: item = dbapi.getone(ProdItem, prod_id=without_plus.prod_id) if item is None: item = make_item(without_plus) item.itemgroupid = igid dbapi.create(item) result.append('item {}'.format(item.prod_id)) if with_plus: item = dbapi.getone(ProdItem, prod_id=with_plus.prod_id) if item is None: item = make_item(with_plus) item.itemgroupid = igid dbapi.create(item) result.append('item {}'.format(item.prod_id)) return result
def main(): with dbapi.session: # x = ProdTag(tag='hot_items', description='70 best sellers that contribute to 50% of revenue', created_by='han qi') # dbapi.create(x) # dbapi.db_session.commit() with open('tags.txt') as f: for x in f.readlines(): tag, prod_id = x.strip().split()[:2] itemgroup = dbapi.getone(ProdItemGroup, prod_id=prod_id) if itemgroup is None: print 'missing', prod_id continue if dbapi.getone(ProdTagContent, tag=tag, itemgroup_id=itemgroup.uid) is None: dbapi.create(ProdTagContent(tag=tag, itemgroup_id=itemgroup.uid)) print 'created itemgroup', itemgroup.uid dbapi.db_session.commit()
def main(): with dbapi.session: for x in dbapi.search(ProdItem): prod_id = get_real_prod_id(x.prod_id) itemgroup = dbapi.getone(ProdItemGroup, prod_id=prod_id) if itemgroup: dbapi.update(x, {'itemgroupid': itemgroup.uid}) else: print prod_id
def fix_inv(uid, old_path): inv = invapi.get_doc_from_file(old_path) alm_id = 1 if inv.meta.almacen_id == 3 else inv.meta.almacen_id for i in inv.items: if i.prod.almacen_id is None: new_prod = dbapi.getone(prod_id=i.prod.prod_id, almacen_id=alm_id) i.prod.almacen_id = new_prod.almacen_id i.prod.upi = new_prod.upi i.prod.multiplicador = new_prod.multiplicador invapi.filemanager.put_file(old_path, json_dumps(inv)) print 'invoice ', uid, 'saved ', old_path
def main(): now = datetime.datetime.now() now = now - datetime.timedelta(days=1) with dbapi.session: for x in dbapi.search(ProdCount): itemgroup = dbapi.getone(ProdItemGroup, prod_id=x.prod_id) if itemgroup: t = InventoryMovement( from_inv_id=-1, to_inv_id=x.bodega_id, prod_id=x.prod_id, itemgroup_id=itemgroup.uid, timestamp=now, type=InvMovementType.INITIAL, quantity=x.cant, reference_id=None, ) transactionapi.save(t) else: print x.bodega_id, x.prod_id, x.cant