Neuer Kunde anlegen ohne Lizenz

Dieser Commit ist enthalten in:
2025-06-10 00:35:41 +02:00
Ursprung 7f9849d879
Commit 0a4d79ec6d
4 geänderte Dateien mit 131 neuen und 0 gelöschten Zeilen

Datei anzeigen

@@ -2185,6 +2185,61 @@ def edit_customer(customer_id):
return render_template("edit_customer.html", customer=customer, licenses=licenses, username=session.get('username'))
@app.route("/customer/create", methods=["GET", "POST"])
@login_required
def create_customer():
"""Erstellt einen neuen Kunden ohne Lizenz"""
if request.method == "POST":
name = request.form.get('name')
email = request.form.get('email')
is_test = request.form.get('is_test') == 'on'
if not name or not email:
flash("Name und E-Mail sind Pflichtfelder!", "error")
return render_template("create_customer.html", username=session.get('username'))
conn = get_connection()
cur = conn.cursor()
try:
# Prüfen ob E-Mail bereits existiert
cur.execute("SELECT id, name FROM customers WHERE email = %s", (email,))
existing = cur.fetchone()
if existing:
flash(f"Ein Kunde mit der E-Mail '{email}' existiert bereits: {existing[1]}", "error")
return render_template("create_customer.html", username=session.get('username'))
# Kunde erstellen
cur.execute("""
INSERT INTO customers (name, email, created_at, is_test)
VALUES (%s, %s, %s, %s) RETURNING id
""", (name, email, datetime.now(), is_test))
customer_id = cur.fetchone()[0]
conn.commit()
# Audit-Log
log_audit('CREATE', 'customer', customer_id,
new_values={
'name': name,
'email': email,
'is_test': is_test
})
flash(f"Kunde '{name}' wurde erfolgreich angelegt!", "success")
return redirect(f"/customer/edit/{customer_id}")
except Exception as e:
conn.rollback()
flash(f"Fehler beim Anlegen des Kunden: {str(e)}", "error")
return render_template("create_customer.html", username=session.get('username'))
finally:
cur.close()
conn.close()
# GET Request - Formular anzeigen
return render_template("create_customer.html", username=session.get('username'))
@app.route("/customer/delete/<int:customer_id>", methods=["POST"])
@login_required
def delete_customer(customer_id):