Neuer Kunde anlegen ohne Lizenz
Dieser Commit ist enthalten in:
@@ -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):
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren