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"))
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'))
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.'))