示例#1
0
def consume(stock_id):
    c = g.get_hhapps_client('stock')
    stock = c.stocks.get(stock_id)
    # items = c.inventories.list_items(stock)
    inventories = c.inventories.list(stock)
    available_items = get_available_items(inventories)
    print('available_items:', available_items)
    form = forms.stocks.inventories.InventoryConsumingForm()
    item_choices = [(aitem['item'].id,
                     '{} ({}) available serving size: {}'.format(
                         aitem['item'].name, aitem['item'].upc,
                         aitem['available_serving_size']))
                    for k, aitem in available_items.items()]

    item_choices.insert(0, ('', 'Select item'))
    form.item.choices = item_choices
    print(form.item.data, type(form.item.data))

    if (not form.validate_on_submit()) or (len(form.item.data) == 0):
        errors = [{
            'detail': '{}: {}'.format(k, v)
        } for k, v in form.errors.items()]
        return render_template('/dashboard/stocks/inventories/consume.html',
                               form=form,
                               errors=errors,
                               stock=stock)
    print(form.data)
    c.inventories.consume(stock=stock,
                          item=form.item.data,
                          consuming_size=form.consuming_size.data)
    return redirect(
        url_for('dashboard.stocks.inventories.index', stock_id=stock.id))
示例#2
0
def index():
    hhclient = g.hhclient
    hh_stock_client = g.get_hhapps_client('stock')
    buildings = hhclient.buildings.list()
    stocks = hh_stock_client.stocks.list()
    return render_template('dashboard/index.html',
                           buildings=buildings,
                           stocks=stocks)
示例#3
0
def add():
    c = g.get_hhapps_client('stock')
    items = c.items.list()

    form = forms.stocks.items.ItemForm()

    return render_template('/dashboard/stocks/items/add.html',
                           form=form,
                           items=items)
示例#4
0
def view_upc(upc):
    c = g.get_hhapps_client('stock')
    item = c.items.get_upc(upc)

    form = forms.stocks.items.ItemUPCForm()

    return render_template('/dashboard/stocks/items/view_upc.html',
                           item=item,
                           form=form)
示例#5
0
def view(stock_id):

    c = g.get_hhapps_client(app_name)
    stock = c.stocks.get(stock_id)
    inventories = c.inventories.list(stock)
    available_items = inventories_view.get_available_items(inventories)

    return render_template('/dashboard/stocks/view.html',
                           stock=stock,
                           available_items=available_items,
                           inventories=inventories)
示例#6
0
def index(stock_id):
    c = g.get_hhapps_client('stock')
    stock = c.stocks.get(stock_id)
    inventories = c.inventories.list(stock)
    for inventory in inventories:
        inventory.item = c.items.get(inventory.item)
    return render_template(
        '/dashboard/stocks/inventories/index.html',
        stock=stock,
        inventories=inventories,
    )
示例#7
0
def index(stock_id):
    c = g.get_hhapps_client('stock')
    hhc = g.hhclient
    stock = c.stocks.get(stock_id)
    consumptions = c.consumptions.list(stock)
    for consumption in consumptions:
        consumption.item = c.items.get(consumption.item)
        consumption.consumer = hhc.users.get(consumption.consumer)
    return render_template(
        '/dashboard/stocks/consumptions/index.html',
        stock=stock,
        consumptions=consumptions,
    )
示例#8
0
def create():
    form = forms.stocks.StockForm()
    if not form.validate_on_submit():
        return render_template('dashboard/stocks/create.html', form=form)
    c = g.get_hhapps_client(app_name)
    building = get_building(request.args.get('building_id'))

    stock = c.stocks.create(building=building, **form.data)

    if stock.is_error:
        return render_template('dashboard/stocks/create.html',
                               form=form,
                               errors=stock.errors)

    return redirect(url_for('dashboard.stocks.view', stock_id=stock.id))
示例#9
0
def get_available_items(inventories):
    c = g.get_hhapps_client(app_name)
    available_items = {}
    for inventory in inventories:
        available_item = available_items.get(inventory.item, None)
        if available_item:
            available_items[inventory.item]['available_serving_size'] += \
                    inventory.available_serving_size
        else:
            item = c.items.get(inventory.item)
            available_items[item.id] = dict(
                item=item,
                available_serving_size=inventory.available_serving_size)

    return available_items
示例#10
0
def add(stock_id):
    c = g.get_hhapps_client('stock')
    stock = c.stocks.get(stock_id)
    items = c.items.list()

    item_choices = [(item.id, '{} ({})'.format(item.name, item.upc))
                    for item in items]
    item_choices.insert(0, ('', 'Select item or enter UPC'))
    form = forms.stocks.inventories.InventoryForm()
    form.item.choices = item_choices
    form.expired_date.label.text = '{}: default date is {}'.format(
        form.expired_date.label.text, form.expired_date.default.ctime())
    # if not form.expired_date.data:
    #     form.expired_date.data = form.expired_date.default.strftime(
    #             form.expired_date.format)

    is_item = True if form.item.data else False or len(form.item_upc.data) > 0
    if not form.validate_on_submit():
        errors = [{
            'detail': '{}: {}'.format(k, v)
        } for k, v in form.errors.items()]
        return render_template('/dashboard/stocks/inventories/add.html',
                               form=form,
                               stock=stock,
                               items=items)
    if not is_item:
        errors = [{'detail': 'Select item or enter upc'}]
        return render_template('/dashboard/stocks/inventories/add.html',
                               form=form,
                               errors=errors,
                               stock=stock,
                               items=items)
    data = form.data
    if len(data['item']) > 0:
        data['item'] = {'id': data['item']}

    inventory = c.inventories.create(stock=stock, **data)
    if inventory.is_error:
        # import pprint
        # pprint.pprint(inventory.data)
        return render_template('/dashboard/stocks/inventories/add.html',
                               form=form,
                               stock=stock,
                               items=items)

    return redirect(
        url_for('dashboard.stocks.inventories.index', stock_id=stock.id))
示例#11
0
def index():
    c = g.get_hhapps_client(app_name)
    stocks = c.stocks.list()

    return render_template('/dashboard/stocks/index.html', stocks=stocks)