import tkinter as tk
from tkinter import messagebox
import mysql.connector
import os
import subprocess
from dotenv import load_dotenv

# Charger les variables d'environnement
load_dotenv()

DB_HOST = os.getenv("DB_HOST")
DB_USER = os.getenv("DB_USER")
DB_PASSWORD = os.getenv("DB_PASSWORD")
DB_NAME = os.getenv("DB_NAME")


def ouvrir_excel(site, login):
    dossier_excel = os.path.join(os.path.dirname(__file__), "excel")
    chemin_excel = os.path.join(dossier_excel, "Ratio.xlsm")
    subprocess.Popen(["start", chemin_excel], shell=True)

    # Écrit le nom du site
    with open(os.path.join(dossier_excel, "site_selectionne.txt"), "w") as f:
        f.write(site)

    # Écrit le nom de l'utilisateur connecté
    with open(os.path.join(dossier_excel, "login_utilisateur.txt"), "w") as f:
        f.write(login)
    os.chdir(dossier_excel)  # On se place dans le dossier pour lancer Excel
    subprocess.Popen(["start", "Ratio.xlsm"], shell=True)

from datetime import date

def verifier_connexion():
    login = entry_login.get()
    mdp = entry_mdp.get()

    try:
        conn = mysql.connector.connect(
            host=DB_HOST,
            user=DB_USER,
            password=DB_PASSWORD,
            database=DB_NAME
        )
        cursor = conn.cursor()

        cursor.execute("SELECT Site, DateExpiration FROM AccesUtilisateurs WHERE NomUtilisateur=%s AND MotDePasse=%s", (login, mdp))
        result = cursor.fetchone()

        if result:
            site, expiration = result
            if expiration and expiration < date.today():
                messagebox.showerror("Compte expiré", f"Votre compte a expiré le {expiration}.")
            else:
                root.destroy()
                ouvrir_excel(site, login)
        else:
            messagebox.showerror("Erreur", "Identifiants invalides.")

    except Exception as e:
        messagebox.showerror("Erreur de connexion", str(e))



# Interface utilisateur
root = tk.Tk()
root.title("Connexion à l'inventaire")

tk.Label(root, text="Nom d'utilisateur").grid(row=0, column=0)
tk.Label(root, text="Mot de passe").grid(row=1, column=0)

entry_login = tk.Entry(root)
entry_mdp = tk.Entry(root, show="*")

entry_login.grid(row=0, column=1)
entry_mdp.grid(row=1, column=1)

tk.Button(root, text="Connexion", command=verifier_connexion).grid(row=2, columnspan=2, pady=10)

root.mainloop()

