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
Пример #2
0
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()
Пример #3
0
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
Пример #4
0
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
Пример #5
0
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
Пример #6
0
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