🔷 INFORMATIONS GÉNÉRALES
Champ Détail
Nom du script champagne_data.py
Version 1.0.0
Date de création 09/03/2026
Auteur / Demandeur Gemini (IA Générée)
Objectif principal Gérer le temps de travail, les absences et la composition des équipes pour une exploitation de production de Champagne.
🎯 DESCRIPTION FONCTIONNELLE
📌 Que fait ce script ?
Ce script est une application de gestion en ligne de commande (CLI) permettant de suivre le cycle de vie des employés de production (vendangeurs, cavistes, etc.). Il permet d’enregistrer les heures travaillées par phase de production, de gérer les congés et d’organiser les employés en équipes dédiées.
📌 Problème résolu
Il remplace le suivi manuel ou sur papier des heures de travail et des absences, souvent complexe durant les périodes de forte activité (vendanges), en centralisant les données dans un format structuré (JSON) et en offrant des outils d’analyse (tableaux de bord).
⚙️ SPÉCIFICATIONS TECHNIQUES
🐍 Environnement
Élément Valeur
Version Python 3.x (Utilise les type hints et les f-strings)
OS cible Windows / Linux / MacOS (Multiplateforme)
Mode d’exécution CLI (Interactif)
📦 Dépendances / Librairies
Librairies standard (built-in)
os : Interaction avec le système (effacement écran).
json : Stockage et lecture des données.
datetime : Manipulation des dates et calculs de durées.
typing : Typage statique (Optional).
Librairies externes
Aucune (Script autonome).
📥 ENTRÉES (INPUTS)
📂 Fichiers / Sources de données en entrée
Type Chemin / Format Description
JSON ./champagne_data.json Base de données locale contenant employés, pointages, congés et équipes.
📤 SORTIES (OUTPUTS)
📂 Fichiers / Données en sortie
Type Chemin / Format Description
JSON ./champagne_data.json Mise à jour persistante des données après chaque action.
TXT export_pointages_YYYY-MM-DD.txt Rapport formaté des pointages pour traitement externe.
🧱 STRUCTURE DU SCRIPT
champagne_data.py
│
├── 📌 CONFIGURATION (Listes des postes et des phases de production)
├── 📌 UTILITAIRES (Gestion des couleurs, saisies sécurisées, calculs de durée)
├── 📌 DATA MGMT (Chargement/Sauvegarde JSON)
├── 📌 MODULE 1 : EMPLOYÉS (CRUD complet des salariés)
├── 📌 MODULE 2 : POINTAGE (Suivi des heures par phase)
├── 📌 MODULE 3 : CONGÉS (Déclaration et historique des absences)
├── 📌 MODULE 4 : ÉQUIPES (Organisation structurelle)
├── 📌 MODULE 5 : DASHBOARD (Statistiques et visualisation de la performance)
└── 📌 MAIN (Menu principal interactif)
🔄 LOGIQUE / ALGORITHME
Initialisation : Au lancement, le script vérifie l’existence de champagne_data.json. S’il est absent, il initialise un dictionnaire vide structuré.
Boucle de Navigation : Un menu principal dirige l’utilisateur vers des sous-menus thématiques.
Traitement des Saisies : Chaque entrée utilisateur est validée (format de date ISO, format d’heure HH:MM, existence des matricules).
Persistance : À chaque modification (ajout d’un pointage, modification d’un employé), la fonction sauvegarder_donnees() écrase le fichier JSON pour garantir la sécurité des données.
Analyse : Les fonctions de Dashboard agrègent les données brutes (somme des durées, calcul de pourcentages par phase).
🚨 GESTION DES ERREURS
Cas d’erreur Type d’exception Comportement attendu
Format date incorrect ValueError Message d’erreur rouge + demande de re-saisie.
Matricule doublon Logique métier Alerte l’utilisateur et annule l’ajout de l’employé.
ID introuvable StopIteration / None Message « Introuvable » + retour au menu.
Heure de fin < début Logique métier Ajoute 24h à la durée (gestion du travail de nuit). ✅ CONTRAINTES & RÈGLES MÉTIER Règle 1 : Un matricule employé doit être unique et est converti systématiquement en majuscules. Règle 2 : Le temps de travail hebdomadaire par défaut est de 35h, mais ajustable par profil. Règle 3 : Les phases de production sont prédéfinies (de la Vendange à l'Expédition) pour assurer la cohérence des statistiques. Règle 4 : Le calcul des jours de congé est inclusif (Date Fin - Date Début + 1). 📝 EXEMPLE D'UTILISATION ▶️ Lancement en ligne de commande Bash python champagne_data.py 📋 Exemple de sortie attendue (Dashboard) Plaintext ┌──────────────────────────────────────────┐ │ TABLEAU DE BORD 2026-03-09 │ ├──────────────────────────────────────────┤ │ 👷 Employés total : 12 │ │ ✔ Employés actifs : 10 │ │ ⏱ Heures totales : 450.5h │ └──────────────────────────────────────────┘ Vendanges 120.0h ██████████ 26.6% Pressurage 85.0h ███████ 18.8% 📌 NOTES COMPLÉMENTAIRES Style de code : Respect strict de la PEP8 avec un nommage explicite des fonctions en français. Interface : Utilisation de codes ANSI pour la mise en couleur et de caractères Box-Drawing pour l'aspect visuel en terminal. Prochaine étape :



Avis
Il n’y a pas encore d’avis.