Пример #1
0
 def test_get_item_by_sku(self):
     test_item = db.Item(sku=999,
                         part_no='test part',
                         manufacturer='test manufacturer',
                         description='test description')
     db.session.add(test_item)
     result_item = db.get_item_by_sku(999)
     self.assertIs(test_item, result_item)
     db.session.rollback()
Пример #2
0
def adjust_stock_for_item_view(item_sku: int):
    try:
        item = db.get_item_by_sku(item_sku)
        reasons = db.get_all_reasons()
    except:
        abort(400)
    return render_template('adjust_stock_for_item.html',
                           item=item,
                           reasons=reasons)
Пример #3
0
def get_item_by_sku():
    try:
        item_sku = request.args.get('item_sku')
    except:
        abort(400)
    item = db.get_item_by_sku(int(item_sku))
    if item == None:
        return jsonify(item), 404
    else:
        return jsonify(item.__repr__()), 200
Пример #4
0
def adjustments_view(browse_type, filter_id, page_number = 0):
    adjustments = []
    rows = []
    try:
        if browse_type == 'employee':
            employee = db.session.query(db.Employee).filter(db.Employee.id == filter_id).one()
            table_header = "Adjustments by {}".format(employee.name.title())
            page_title = employee.name.title()
            adjustment_count = db.count_adjustments_by_employee_id(filter_id)
            adjustments = db.get_adjustments_by_employee_id(filter_id, page_number)
        elif browse_type == 'date':
            filter_date = date(int(filter_id[0:4]), int(filter_id[5:7]), int(filter_id[8:]))
            table_header = "Adjustments on {}".format(filter_date.strftime("%a, %b %e %Y"))
            page_title = filter_date.strftime("%a, %b %e %Y")
            adjustment_count = db.count_adjustments_by_date(filter_date)
            adjustments = db.get_adjustments_by_date(filter_date, None, page_number)
        elif browse_type == 'item':
            item = db.get_item_by_sku(filter_id)
            table_header = "Adjustments to {}".format(item.part_no.upper())
            page_title = item.part_no.upper()
            adjustment_count = db.count_adjustments_by_sku(filter_id)
            adjustments = db.get_adjustments_by_sku(filter_id, page_number)
        elif browse_type == 'reason':
            reason = db.session.query(db.AdjustmentReason).filter(db.AdjustmentReason.id == filter_id).one()
            table_header = "Adjustments for {}".format(reason.name.title())
            page_title = reason.name.upper()
            adjustment_count = db.count_adjustments_by_reason_id(filter_id)
            adjustments = db.get_adjustments_by_reason_id(filter_id, page_number)
        else:
            abort(400)
    except:
        db.session.rollback()
        abort(404)
    page_count = ceil(adjustment_count / db.page_limit)
    for adjustment in adjustments:
        cst_datetime = adjustment.datetime - timedelta(hours=6)
        rows.append(BasicRow(
            id = adjustment.id,
            href = '/adjustment/{}'.format(adjustment.id),
            primary_text = "{} - {}".format(adjustment.item.part_no.upper(), adjustment.cst_datetime.strftime("%m/%d/%y %I:%M %p")),
            secondary_text = "Qty Change: {}".format(adjustment.total_qty_change)
        ))
    return render_template('basic_table_view.html',
        table_header = table_header,
        page_title = page_title,
        rows = rows,
        current_page = page_number + 1,
        total_pages = page_count)
Пример #5
0
def get_object_id(search_string, object_type):
    if object_type == "category":
        try:
            category = db.session.query(db.Category).filter(
                db.Category.name == search_string.lower()).one()
        except:
            abort(404)
        result_id = category.id
    elif object_type == "location":
        try:
            location = db.session.query(db.Location).filter(
                db.Location.name == search_string.upper()).one()
        except:
            abort(404)
        result_id = location.id
    elif object_type == 'manufacturer':
        item_count = db.count_items_by_manufacturer(search_string.lower())
        if item_count == 0:
            abort(404)
        result_id = search_string.lower()
    elif object_type == 'item':
        item = db.get_item_by_sku(search_string)
        if item == None:
            abort(404)
        result_id = item.sku
    elif object_type == 'employee':
        try:
            employee = db.session.query(db.Employee).get(search_string)
        except:
            abort(404)
        result_id = employee.id
    elif object_type == "reason":
        try:
            reason = db.session.query(db.AdjustmentReason).filter(
                db.AdjustmentReason.name == search_string.lower()).one()
        except:
            abort(404)
        result_id = reason.id
    else:
        abort(400)
    return result_id
Пример #6
0
def item_detail_view(sku: int):
    item = db.get_item_by_sku(sku)
    if item == None:
        abort(404)
    return render_template('item_detail_view.html', item=item)