diff --git a/app/routes.py b/app/routes.py index 4de0082..5b6ac4b 100644 --- a/app/routes.py +++ b/app/routes.py @@ -223,4 +223,83 @@ def gestion_actions(): 'updated_at': row.updated_at.strftime('%Y-%m-%d %H:%M:%S') if row.updated_at else '' }) - return render_template('gestion_actions.html', actions=actions_list) \ No newline at end of file + return render_template('gestion_actions.html', actions=actions_list) + + +# Route pour la gestion des sociétés +@main.route('/gestion-societes', methods=['GET', 'POST']) +def gestion_societes(): + if 'user_id' not in session: + return redirect(url_for('main.index')) + + 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': + 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") + + elif action == 'modifier' and soc_id: + 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") + + return redirect(url_for('main.gestion_societes')) + + # Lecture de la table societe + 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 = [] + for row in result: + societes.append({ + '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 '' + }) + + return render_template('gestion_societes.html', societes=societes) \ No newline at end of file diff --git a/app/templates/gestion_societes.html b/app/templates/gestion_societes.html new file mode 100644 index 0000000..90ebd91 --- /dev/null +++ b/app/templates/gestion_societes.html @@ -0,0 +1,412 @@ +{% extends "base.html" %} {% block title %}Gestion des sociétés - Bolsa{% +endblock %} {% block header_title %}Gestion sociétés{% endblock %} {% block +content %} +
+ +
+ {% set messages = get_flashed_messages(with_categories=true) %} {% if + messages %} {% for category, message in messages %} +
+ {{ message }} +
+ {% endfor %} {% endif %} +
+ + +
+ +
+
+

+ Administration des sociétés +

+

+ Gérez les informations légales et coordonnées des sociétés. +

+
+ + Retour au menu + +
+ + +
+ +
+

+ Sociétés enregistrées +

+ + +
+ {% for s in societes %} +
+ {{ s.Nom }} + + {{ s.Forme or 'N/A' }} + +
+ {% endfor %} +
+
+ + +
+
+ + + +
+

+ Détails de la société +

+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
+
+
+ + +
+ + + + +
+
+
+
+ + +
+ Positions en bourse : Accès sécurisé. Veillez à fermer votre session après + chaque utilisation. +
+
+
+ + +{% endblock %} diff --git a/app/templates/menu.html b/app/templates/menu.html index d0c784f..a8c06d8 100644 --- a/app/templates/menu.html +++ b/app/templates/menu.html @@ -14,6 +14,7 @@ header_title %}Tableau de bord{% endblock %} {% block content %}
+ + 2. Ordres + + 3. Comptes + + - 4. Données perso + 4. Gestion sociétés + + 5. Gestion utilisateurs + + 6. Stat historique + + 7. Import/Export Actions CSV + +