This repository has been archived on 2022-03-31. You can view files and clone it, but cannot push or open issues or pull requests.
GesMag/stats.py
Mylloon 2efecadfc1 Modifications:
- Add dependencie `csv` in documentation
- Add quantity selection when removing something from stock (now you can delete an item, but set it's quantity to 0)
- Cleanup function names (`__affichagePanier`)
- Disable the button who confirm a receipt when nothing is in the basket
- Create the CSV file when starting the app
- Add a function who update dates in the global csv file
2021-11-29 20:24:27 +01:00

60 lines
2.6 KiB
Python

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)