🔥Création du fichier
This commit is contained in:
61
Inventaires-Excel.py
Normal file
61
Inventaires-Excel.py
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
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}")
|
||||||
Reference in New Issue
Block a user