Files
BoursePython/app/routes/societes.py
T

118 lines
4.4 KiB
Python
Raw Normal View History

2026-08-09 09:50:49 +02:00
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)