Пример #1
0
def category_name(id=None):
    """Return the name of the category or None"""
    from inventory.models import Category
    rec = Category(g.db).select_one(where='id = {}'.format(cleanRecordID(id)))
    if rec:
        return rec.name

    return None
Пример #2
0
def create_category(request):
    category = Category()
    if request.POST:
        form = CategoryForm(data=request.POST)
        if form.is_valid():
            category = form.save(commit=False)
            category.save()
            return redirect('/inventory/categories/')
    else:
        form = CategoryForm(instance=category)
    if request.is_ajax():
        base_template = 'modal.html'
    else:
        base_template = 'inventory_base.html'
    return render(request, 'inventory_category_create_form.html', {
        'form': form,
        'base_template': base_template,
    })
Пример #3
0
def create_category(request):
    category = Category()
    if request.POST:
        form = CategoryForm(data=request.POST)
        if form.is_valid():
            category = form.save(commit=False)
            category.save()
            return redirect('/inventory/categories/')
    else:
        form = CategoryForm(instance=category)
    if request.is_ajax():
        base_template = 'modal.html'
    else:
        base_template = 'inventory_base.html'
    return render(request, 'inventory_category_create_form.html', {
        'form': form,
        'base_template': base_template,
    })
Пример #4
0
def edit(id=None):
    setExits()
    g.title = "Edit {} Record".format(g.title)

    category = Category(g.db)

    if request.form:
        id = request.form.get('id', None)
    id = cleanRecordID(id)

    if id >= 0 and not request.form:
        if id == 0:
            rec = category.new()
        else:
            rec = category.get(id)

        if rec:
            return render_template('category_edit.html', rec=rec)
        else:
            flash('Record not Found')

    if request.form:
        if not validate_form():
            return render_template('category_edit.html', rec=request.form)

        if id == 0:
            rec = category.new()
        else:
            rec = category.get(id)
        if rec:
            category.update(rec, request.form)
            category.save(rec)
            try:
                g.db.commit()
            except Exception as e:
                g.db.rollback()
                flash(
                    printException('Error attempting to save Category record',
                                   str(e)))
                return redirect(g.listURL)
        else:
            flash('Record not Found')

    return redirect(g.listURL)
Пример #5
0
def display():
    setExits()
    g.title = "{} List".format(g.title)

    recs = Category(g.db).select()

    return render_template(
        'category_list.html',
        recs=recs,
    )
Пример #6
0
def delete(id=None):
    setExits()
    if id == None:
        id = request.form.get('id', request.args.get('id', -1))

    id = cleanRecordID(id)
    if id <= 0:
        flash("That is not a valid record ID")
        return redirect(g.listURL)

    rec = Category(g.db).get(id)
    if not rec:
        flash("Record not found")
    else:
        Category(g.db).delete(rec.id)
        g.db.commit()
        flash("Record Deleted")

    return redirect(g.listURL)
Пример #7
0
def addcategory(request):

    # Create new instance of Category object
    message = ""
    if request.method == 'POST':
        _category = Category()
        _category = CategoryForm(request.POST, instance=_category)
        new_category = _category.save()
        message = "%s category successfully added" % new_category
        #return HttpResponse(message)

        #add functionality to print successful message after save



    #Cater for when no post has been made from the form
    args = {} #set args to an empty dictionary
    args.update(csrf(request))
    args['message'] = message

    return render_to_response('inventory/addcategory.html', args)
Пример #8
0
def addCat(request):
	if request.method == 'POST':
		form = CategoryForm(request.POST)
		if form.is_valid():
			cd = form.cleaned_data
			newCat = Category()
			newCat.name = cd.get('name')
			newCat.description = cd.get('description')
			newCat.save()					
			if request.is_ajax():
				categories = Category.objects.all()
				context = {'categories': categories,}
				return render_to_response('inventory/getCats.html', context, context_instance=RequestContext(request))
			else:
				return HttpResponseRedirect('/inventory/')

	message = "Oops, it broke! You should enter in something valid."
	form = CategoryForm()
	categories = Category.objects.all()
	context = {'message': message, 'form': form, 'categories': categories, }
	return render_to_response('inventory/index.html', context, context_instance=RequestContext(request))
Пример #9
0
def addCat(request):
    if request.method == 'POST':
        form = CategoryForm(request.POST)
        if form.is_valid():
            cd = form.cleaned_data
            newCat = Category()
            newCat.name = cd.get('name')
            newCat.description = cd.get('description')
            newCat.save()
            if request.is_ajax():
                categories = Category.objects.all()
                context = {
                    'categories': categories,
                }
                return render_to_response(
                    'inventory/getCats.html',
                    context,
                    context_instance=RequestContext(request))
            else:
                return HttpResponseRedirect('/inventory/')

    message = "Oops, it broke! You should enter in something valid."
    form = CategoryForm()
    categories = Category.objects.all()
    context = {
        'message': message,
        'form': form,
        'categories': categories,
    }
    return render_to_response('inventory/index.html',
                              context,
                              context_instance=RequestContext(request))
Пример #10
0
def move_node_ajax(request):
    node_id = request.POST['node_id']
    parent_id = request.POST['parent_id']

    try:
        node_set = Category.objects.get(id=int(node_id.split("_")[1]))
        parent_set = Category.objects.get(id=int(parent_id.split("_")[1]))

        category = Category()
        category._tree_manager.move_node(node_set, parent_set)
    except:
        return False
    return True
Пример #11
0
def import_data(filespec):
    db = Database('instance/database.sqlite').connect()
    category = Category(db)
    uom = Uom(db)
    item = Item(db)
    trx = Transaction(db)

    with open(filespec, newline='') as csvfile:
        reader = csv.DictReader(csvfile)
        for row in reader:
            print('Name: {}, Category: {}'.format(row['item_name'],
                                                  row['category_name']))
            #import pdb;pdb.set_trace()
            #create a Category if not exists
            cats = category.select_one(
                where='name = "{}"'.format(row['category_name']))
            if not cats:
                cats = category.new()
                cats.name = row["category_name"]
                category.save(cats)
            cat_id = cats.id
            #create UOM if not exists
            uom_name = row['uom'].strip()
            if uom_name == '':
                uom_name = "Ea."

            uoms = uom.select_one(where='name = "{}"'.format(uom_name))
            if not uoms:
                uoms = uom.new()
                uoms.name = uom_name
                uom.save(uoms)

            items = item.select_one(
                where='name = "{}"'.format(row['item_name'], ))
            if not items:
                items = item.new()
                items.name = row['item_name']
                items.uom = uom_name
                items.cat_id = cat_id
                item.save(items)

            # Create a transaction record
            trxs = trx.new()
            trx.update(trxs, row)
            trxs.created = datetime.strptime(row['created'], '%Y-%m-%d')
            trxs.item_id = items.id
            trx.save(trxs)

        try:
            db.commit()
        except Exception as e:
            db.rollback()
            print(str(e))
Пример #12
0
def edit(id=None):
    setExits()
    g.title = "Edit {} Record".format(g.title)

    item = Item(g.db)
    transactionList = None
    #import pdb;pdb.set_trace()
    if request.form:
        id = request.form.get('id', None)

    id = cleanRecordID(id)

    if id < 0:
        flash("Invalid Record ID")
        return redirect(g.listURL)

    categories = Category(g.db).select()
    uoms = Uom(g.db).select()

    if id >= 0 and not request.form:
        if id == 0:
            rec = item.new()  # allow creation of new properties
            item.save(rec)  # need an id for transactions
            g.db.commit()  # have to commit this to protect the ID we just got
            # This name changes behavure of the Cancel link in the edit form
            g.cancelURL = url_for('.cancel') + "{}/".format(rec.id)

        else:
            rec = item.get(id)

        if not rec:
            flash('Record not Found')
            return redirect(g.listURL)

    #import pdb;pdb.set_trace()

    if request.form:
        rec = item.get(id)
        if rec:
            item.update(rec, request.form)
            if validate_form():
                item.save(rec)
                try:
                    g.db.commit()
                    return redirect(g.listURL)

                except Exception as e:
                    g.db.rollback()
                    flash(
                        printException('Error attempting to save Item record',
                                       str(e)))
                    return redirect(g.listURL)
            else:
                pass  # There are imput errors

        else:
            flash('Record not Found')
            return redirect(g.listURL)

    transactionList = get_trx_list_for_item(rec.id)
    transferList = get_transfer_list_for_item(rec.id)
    qoh_list = get_qoh_by_warehouse(rec.id)
    on_hand = item.stock_on_hand(id)

    return render_template('item_edit.html',
                           rec=rec,
                           categories=categories,
                           uoms=uoms,
                           transactionList=transactionList,
                           transferList=transferList,
                           qoh_list=qoh_list,
                           on_hand=on_hand)
Пример #13
0
def seed(request):
    seeder = Seed.seeder()

    # Las categorías iniciales
    cat = Category()
    cat.name = 'Alimentos'
    cat.color = 'ff695b'
    cat.save()

    cat = Category()
    cat.name = 'Bebidas'
    cat.color = '60a8ff'
    cat.save()

    print('Seeded categories')

    seeder.add_entity(Item, 10, {
        'name': lambda x: seeder.faker.word() + ' ' + seeder.faker.word(),
        'code': lambda x: None,
        'provider_id': lambda x: None,
        'lead_time': lambda x: None,
        'reorder_point': lambda x: None,
        'price': lambda x: random.randint(10, 500),
        'category_id': lambda x: Category.objects.order_by('?').first(),
    })

    seeder.execute()
    print('Seeded items')

    # Crear 20 documentos para cada mes del año
    for i in range(0, 12):
        seeder.add_entity(Document, 20, {
            'date': lambda x: datetime.date(2019, random.randint(1, 12), random.randint(1, 28)),
        })

    seeder.execute()
    print('Seeded documents')

    # Crear 5 movimientos para cada documento
    for doc in Document.objects.all():
        print(doc.id)
        # seeder.add_entity(Movement, 5, {
        #     'document_id': lambda x: doc,
        #     'item_id': lambda x: Item.objects.order_by('?').first(),
        #     'quantity_in': lambda x: random.randint(-5, 5),
        # })

        for i in range(0, 5):
            mov = Movement()
            mov.document_id = doc
            mov.item_id = Item.objects.order_by('?').first()
            mov.quantity_in = random.randint(-5, 5)
            mov.save()

        #seeder.execute()

    print('Seeded movements')

    return HttpResponse("Seeded succesfully")