import csv from datetime import date, timedelta from users import Utilisateurs class Stats(Utilisateurs): """Gère les statistiques et son export en format CSV.""" def creationCSV(self): """Créer le fichier `CSV` qui stockera les statistiques pour tous les utilisateurs.""" if not self.fichierExiste("stats.csv"): entete = ["id", "pseudo"] dateAujourdHui = date.today() for _ in range(0, 8): entete.append(dateAujourdHui) dateAujourdHui = dateAujourdHui - timedelta(days=1) with open("stats.csv", 'w') as f: writer = csv.writer(f) writer.writerow(entete) def miseAJourStatsUtilisateur(self, utilisateurID: int, prix: float): """ Récupère le prix d'une transaction et l'ajoute au total d'un utilisateur. - si aucune date n'est précisé dans la base de donnée d'un utilisateur, alors il n'a jamais enregistré de statistiques et on procède normalement - si une date est déjà renseigné : - si la date correspond à la date d'aujourd'hui, on procède normalement - si la date ne correspond pas, on enregistre ce qu'il y a dans la base de donnée dans un fichier `CSV`, ensuite on écrase l'ancien prix par `0` et la date par celle d'aujourd'hui, ensuite on procède normalement Procéder normalement consiste à ajouter le prix au prix totale stocké dans la base de donnée. """ print(prix) pass def exporteCSV(self, utilisateurID: int, mode: bool = False): """ Exporte les statistiques d'un utilisateur dans un fichier `CSV`. Deux modes : - `False` : exporte dans le fichier globale (qui contient tous les utilisateurs, utilisés par l'histogramme de l'interface du Manager) - si le fichier `CSV` ne contient aucune donnée de l'utilisateur, on y rajoute les données de l'utilisateur - ne garde qu'un historique des 7 derniers jours maximum - `True` : exporte dans un fichier séparé l'utilisateur choisie (demande à l'utilisateur où il souhaite que le fichier soit exporté) - (utilisé par le bouton d'exportation de l'interface du caissier) - A savoir : n'exporte que l'état actuel de la base de donnée """ pass def miseAJourDatesCSV(self): """Mets-à-jour les dates trop anciennes du fichier globales `CSV`.""" with open("stats.csv", 'r') as f: fichier = csv.DictReader(f) print(fichier)