Esempio n. 1
0
def search_invoice():
    invoice_id = request.args.get('invoice_id')
    inv = Invoice()
    inv.invoice_id = invoice_id
    invoice = inv.get_invoice_by_id()

    if invoice:
        id = invoice[0][1]
        costumer = invoice[0][2]
        date = str(datetime.strftime(invoice[0][3], '%Y-%m-%d'))
        seller = invoice[0][4]
        items = invoice[0][5]
        total = invoice[0][6]
        pending = invoice[0][7]

        return redirect(url_for('print_invoice', id=id, costumer=costumer, date=date, seller=seller,
                                items=items, total=total, pending=pending))
    else:
        return redirect(url_for('select_invoice',  nfy="No found"))
Esempio n. 2
0
def delete_invoice():
    invoice = request.form['invoice-1']
    vali_invoice = request.form['invoice-2']
    if invoice == '' or vali_invoice == '':
        flash("Please complete all the fields.")
        return redirect(url_for('settings'))

    if invoice == vali_invoice:
        inv = Invoice()
        inv.invoice_id = invoice

        if inv.delete_invoice():
            flash("Invoice deleted successfully.")
            return redirect(url_for('settings'))
        else:
            flash("ERROR.")
            return redirect(url_for('settings'))
    else:
        flash("Invoice number didn't match.")
        return redirect(url_for('settings'))
Esempio n. 3
0
def create_invoice_process():

    inv = Invoice()

    try:
        inv.info = request.form['costumer']
        inv.date = datetime.strptime(request.form['date'], '%d %B, %Y')  # CONVERT STRING TO DATETIME
        category = request.form['category']
        inv.seller = request.form['seller']
        inv.invoice_id = request.form['invoice_id']
    except Exception as e:
        raise e

    try:
        inv.pending = request.form['pending']
    except Exception as e:
        inv.pending = 0

    items_list_id_quantity = []
    for x in range(1, 6):
        try:
            items_list_id_quantity.append((request.form['id'+str(x)], request.form['quantity'+str(x)]))
        except Exception as e:
            print(e)

    items_full = []
    for item in items_list_id_quantity:

        if item[0]:
            # LIST OF TUPLES WITH (ID, PRICE, QUANTITY )
            items_full.append((item[0], inv.get_price_category(item[0], category), item[1]))

    total = 0
    invoice = []
    for item in items_full:
        subtotal = 0
        quantity = int(item[2])
        price = int(item[1])
        subtotal = quantity * price
        total += subtotal

        # TODO: THIS IS STATIC. FIND A DYNAMIC SOLUTION CODE: 508
        if item[0][0] == '1':
            invoice.append((quantity, inv.get_item_description_by_id(1), price, subtotal))
        elif item[0][0] == '2':
            invoice.append((quantity, inv.get_item_description_by_id(2), price, subtotal))
        elif item[0][0] == '3':
            invoice.append((quantity, inv.get_item_description_by_id(3), price, subtotal))
        elif item[0][0] == '4':
            invoice.append((quantity, inv.get_item_description_by_id(3), price, subtotal))
        elif item[0][0] == '5':
            invoice.append((quantity, inv.get_item_description_by_id(3), price, subtotal))
        elif item[0][0] == '6':
            invoice.append((quantity, inv.get_item_description_by_id(3), price, subtotal))
        else:
            invoice.append((quantity, "Unidentified item. CODE: 580", price, subtotal))

    invoice_list = ""
    for k in invoice:
        invoice_list += str(k)
    inv.items = invoice_list.replace("'", "")
    inv.total = total

    try:
        inv.create_invoice()
    except Exception as e:
        print(e)
        return redirect(url_for('create_invoice', flash="Invoice couldn't been created."))

    return redirect(url_for('create_invoice', flash='Invoice created successfully.'))