|
|
|
|
@ -1,5 +1,6 @@
|
|
|
|
|
from flask import Flask, render_template, request, redirect |
|
|
|
|
from db import get_db_connection |
|
|
|
|
from utils import generate_client_code |
|
|
|
|
|
|
|
|
|
app = Flask( |
|
|
|
|
__name__, |
|
|
|
|
@ -11,52 +12,55 @@ app = Flask(
|
|
|
|
|
def index(): |
|
|
|
|
return """ |
|
|
|
|
<h1>OTB Billing</h1> |
|
|
|
|
<p>Version 0.0.4</p> |
|
|
|
|
<p>Version 0.0.5</p> |
|
|
|
|
<p><a href="/clients">Clients</a></p> |
|
|
|
|
""" |
|
|
|
|
|
|
|
|
|
@app.route("/dbtest") |
|
|
|
|
def dbtest(): |
|
|
|
|
try: |
|
|
|
|
conn = get_db_connection() |
|
|
|
|
cursor = conn.cursor() |
|
|
|
|
cursor.execute("SELECT NOW()") |
|
|
|
|
result = cursor.fetchone() |
|
|
|
|
conn.close() |
|
|
|
|
|
|
|
|
|
return f"<h1>Database OK</h1><p>{result[0]}</p>" |
|
|
|
|
except Exception as e: |
|
|
|
|
return f"<h1>Database FAILED</h1><pre>{e}</pre>" |
|
|
|
|
|
|
|
|
|
@app.route("/clients") |
|
|
|
|
def clients(): |
|
|
|
|
|
|
|
|
|
conn = get_db_connection() |
|
|
|
|
cursor = conn.cursor(dictionary=True) |
|
|
|
|
cursor.execute("SELECT * FROM clients ORDER BY created_at DESC") |
|
|
|
|
|
|
|
|
|
cursor.execute("SELECT * FROM clients ORDER BY id DESC") |
|
|
|
|
clients = cursor.fetchall() |
|
|
|
|
|
|
|
|
|
conn.close() |
|
|
|
|
|
|
|
|
|
return render_template("clients/list.html", clients=clients) |
|
|
|
|
|
|
|
|
|
@app.route("/clients/new", methods=["GET", "POST"]) |
|
|
|
|
|
|
|
|
|
@app.route("/clients/new", methods=["GET","POST"]) |
|
|
|
|
def new_client(): |
|
|
|
|
|
|
|
|
|
if request.method == "POST": |
|
|
|
|
client_code = request.form["client_code"] |
|
|
|
|
|
|
|
|
|
company_name = request.form["company_name"] |
|
|
|
|
contact_name = request.form["contact_name"] |
|
|
|
|
email = request.form["email"] |
|
|
|
|
phone = request.form["phone"] |
|
|
|
|
|
|
|
|
|
conn = get_db_connection() |
|
|
|
|
cursor = conn.cursor(dictionary=True) |
|
|
|
|
|
|
|
|
|
cursor.execute("SELECT MAX(id) as last_id FROM clients") |
|
|
|
|
result = cursor.fetchone() |
|
|
|
|
|
|
|
|
|
last_number = result["last_id"] if result["last_id"] else 0 |
|
|
|
|
|
|
|
|
|
client_code = generate_client_code(company_name, last_number) |
|
|
|
|
|
|
|
|
|
cursor = conn.cursor() |
|
|
|
|
|
|
|
|
|
cursor.execute( |
|
|
|
|
""" |
|
|
|
|
INSERT INTO clients |
|
|
|
|
(client_code, company_name, contact_name, email, phone) |
|
|
|
|
VALUES (%s, %s, %s, %s, %s) |
|
|
|
|
VALUES (%s,%s,%s,%s,%s) |
|
|
|
|
""", |
|
|
|
|
(client_code, company_name, contact_name, email, phone) |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
conn.commit() |
|
|
|
|
conn.close() |
|
|
|
|
|
|
|
|
|
@ -64,5 +68,6 @@ def new_client():
|
|
|
|
|
|
|
|
|
|
return render_template("clients/new.html") |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__": |
|
|
|
|
app.run(host="0.0.0.0", port=5050) |
|
|
|
|
|