from flask import Blueprint, current_app, flash, redirect, render_template, request, url_for from sqlalchemy import text from app import db from app.decorators import login_required societes_bp = Blueprint("societes", __name__) @societes_bp.route("/gestion-societes", methods=["GET", "POST"]) @login_required def gestion_societes(): if request.method == "POST": action = request.form.get("action") soc_id = request.form.get("id") nom = request.form.get("nom") forme = request.form.get("forme") capital = request.form.get("capital") siren = request.form.get("siren") siret = request.form.get("siret") rcs = request.form.get("rcs") tva = request.form.get("tva") naf = request.form.get("naf") tel = request.form.get("tel") web = request.form.get("web") mail = request.form.get("mail") if action == "creer": try: query = text( "INSERT INTO societe (nom, forme, capital, siren, siret, rcs, " "tva, naf, tel, web, mail) " "VALUES (:nom, :forme, :capital, :siren, :siret, :rcs, :tva, " ":naf, :tel, :web, :mail)" ) db.session.execute( query, { "nom": nom, "forme": forme, "capital": capital, "siren": siren, "siret": siret, "rcs": rcs, "tva": tva, "naf": naf, "tel": tel, "web": web, "mail": mail, }, ) db.session.commit() flash("Société créée avec succès.", "success") except Exception as e: db.session.rollback() current_app.logger.error("Erreur création société : %s", e, exc_info=True) flash("Erreur lors de la création de la société.", "danger") elif action == "modifier" and soc_id: try: query = text( "UPDATE societe SET nom = :nom, forme = :forme, " "capital = :capital, siren = :siren, siret = :siret, " "rcs = :rcs, tva = :tva, naf = :naf, tel = :tel, web = :web, " "mail = :mail WHERE id = :id" ) db.session.execute( query, { "id": soc_id, "nom": nom, "forme": forme, "capital": capital, "siren": siren, "siret": siret, "rcs": rcs, "tva": tva, "naf": naf, "tel": tel, "web": web, "mail": mail, }, ) db.session.commit() flash("Société modifiée avec succès.", "success") except Exception as e: db.session.rollback() current_app.logger.error("Erreur modification société : %s", e, exc_info=True) flash("Erreur lors de la modification de la société.", "danger") return redirect(url_for("societes.gestion_societes")) societes_query = text( "SELECT id, nom, forme, capital, siren, siret, rcs, tva, naf, tel, web, " "mail FROM societe ORDER BY id ASC" ) result = db.session.execute(societes_query) societes = [ { "id": row.id, "nom": row.nom if row.nom else "", "forme": row.forme if row.forme else "", "capital": row.capital if row.capital is not None else 0, "siren": row.siren if row.siren is not None else "", "siret": row.siret if row.siret is not None else "", "rcs": row.rcs if row.rcs else "", "tva": row.tva if row.tva else "", "naf": row.naf if row.naf else "", "tel": row.tel if row.tel else "", "web": row.web if row.web else "", "mail": row.mail if row.mail else "", } for row in result ] return render_template("gestion_societes.html", societes=societes)