import streamlit as st import pandas as pd import mysql.connector from datetime import datetime from dotenv import load_dotenv import os # Charger les variables d'environnement (.env) load_dotenv() def get_connection(database_name): return mysql.connector.connect( host=os.getenv("54.36.188.119"), user=os.getenv("michel"), password=os.getenv("#SO2&1nf%mZ@jfh"), database=database_name ) # --- Interface utilisateur --- st.title("📦 Tableau de bord - Inventaires multi-sites") # Sélecteur de base (site) sites = ["Roissy", "Meudon", "Saclay"] # ➕ tu peux en ajouter ici site_selectionne = st.selectbox("Sélectionnez le site :", sites) try: conn = get_connection(site_selectionne) cursor = conn.cursor(dictionary=True) # Récupérer les mois disponibles cursor.execute("SELECT DISTINCT DATE_FORMAT(Date, '%Y-%m') AS Mois FROM Inventaires ORDER BY Mois DESC") mois_dispos = [row['Mois'] for row in cursor.fetchall()] if not mois_dispos: st.warning("Aucun inventaire trouvé pour ce site.") else: mois_choisi = st.selectbox("Choisissez un mois :", mois_dispos) # Charger les données du mois query = """ SELECT Id_Article, Quantité, Prix, Date FROM Inventaires WHERE DATE_FORMAT(Date, '%%Y-%%m') = %s ORDER BY Id_Article """ cursor.execute(query, (mois_choisi,)) data = cursor.fetchall() df = pd.DataFrame(data) st.success(f"{len(df)} lignes trouvées pour {site_selectionne} - {mois_choisi}") st.dataframe(df) # Export CSV csv = df.to_csv(index=False).encode('utf-8') st.download_button("📥 Télécharger CSV", csv, f"Inventaire_{site_selectionne}_{mois_choisi}.csv", "text/csv") cursor.close() conn.close() except Exception as e: st.error(f"Erreur : {e}")