Beispiel #1
0
def update_order(purchase_id):
    # -------------------------
    # Update data of order
    # -------------------------
    if request.form.get('_method') != 'PUT':
        app.logger.Info(
            'Cannot perform this action. Please contact administrator')
        abort(405)

    purchase = Purchase(id=purchase_id)

    try:
        purchase = purchase.list_one_or_none_purchase()

        if purchase_id is None:
            app.logger.info(
                f'No data with Purchase ID =\
                    {purchase_id} could be found!')
            abort(422)
    except BaseException:
        app.logger.info(
            f'An error occurred. No data with Purchase ID\
                 = {purchase_id} could be found!')
        abort(422)

    purchase.id = purchase_id
    product_name = request.form.get('product')
    purchase.quantity = request.form.get('quantity', purchase.quantity)
    customer_name = request.form.get('customer_id')

    purchase.purchase_date = request.form.get(
        'purchase_date', purchase.purchase_date)

    purchase.total = request.form.get('total', purchase.total)

    product = Product.query.filter(
        Product.name == product_name).one_or_none()
    customer = Customer.query.filter(
        Customer.name == customer_name).one_or_none()

    purchase.product_id = product.product_id
    purchase.customer_id = customer.customer_id

    try:
        purchase.update_purchase_in_database()
        flash(
            f'Purchase {purchase_id} was successfully updated!',
            'success')
    except BaseException:
        app.log.info(f'An error occurred. Purchase {purchase_id} \
            could not be updated!')
        abort(422)

    return redirect(url_for('purchases'))