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