# Temps de Travail Réel - Fonctionnalité ## 📋 Contexte Depuis la migration vers le nouvel Espace Paie, le système de saisie des heures et jours de travail a changé. Les données affichées dans la card "Temps de travail réel" sur la page client `contrats/[id]` n'étaient plus correctement alimentées. ## ✅ Solution Implémentée ### 1. Nouvelles Colonnes Supabase Ajout de colonnes dédiées dans `cddu_contracts` pour stocker le temps de travail **réel** (distinct des données contractuelles) : | Colonne | Type | Description | |---------|------|-------------| | `jours_travail_reel` | TEXT | Jours de travail réels (artiste) | | `jours_travail_non_artiste_reel` | TEXT | Jours de travail réels (technicien) | | `nb_representations_reel` | INTEGER | Nombre réel de représentations | | `dates_representations_reel` | TEXT | Dates réelles des représentations | | `nb_services_repetitions_reel` | INTEGER | Nombre réel de services de répétition | | `nb_heures_repetitions_reel` | NUMERIC(10,2) | Heures réelles de répétition | | `dates_repetitions_reel` | TEXT | Dates réelles des répétitions | | `nb_heures_annexes_reel` | NUMERIC(10,2) | Heures réelles Annexes 8 | | `nb_cachets_aem_reel` | INTEGER | Cachets AEM réels | | `nb_heures_aem_reel` | NUMERIC(10,2) | Heures AEM réelles | **Note importante** : Ces colonnes sont purement **informatives pour le client** et ne sont **pas utilisées** pour la génération du PDF du contrat via PDFMonkey. ### 2. Interface Staff (staff/contrats/[id]) Ajout d'une **sous-section "Temps de travail réel"** dans la card "Temps de travail" : - **Emplacement** : Après le séparateur, en bas de la card "Temps de travail" - **Indication visuelle** : Message clair indiquant que c'est informatif pour le client - **Champs disponibles** : - Jours travaillés (artiste) - Jours travaillés (technicien) - Nombre de représentations - Dates de représentations - Nombre de services répétitions - Nombre d'heures répétitions - Dates de répétitions - Nombre d'heures Annexes 8 - Nombre de cachets AEM - Nombre d'heures AEM ### 3. Affichage Client (contrats/[id]) La card "Temps de travail réel" affiche maintenant les données des colonnes `*_reel` : ```tsx
// etc.
``` ### 4. API Mapping L'API `/api/contrats/[id]` mappe automatiquement ces nouvelles colonnes : ```typescript nb_representations_reel: cddu.nb_representations_reel ? Number(cddu.nb_representations_reel) : undefined, nb_services_repetitions_reel: cddu.nb_services_repetitions_reel ? Number(cddu.nb_services_repetitions_reel) : undefined, // etc. ``` ## 🚀 Migration SQL Exécuter le script de migration : ```bash # Via Supabase Dashboard > SQL Editor # Ou via CLI supabase supabase db execute -f migrations/add_temps_travail_reel_columns.sql ``` ## 📝 Utilisation 1. **Staff** : Aller sur `staff/contrats/[id]` 2. Descendre jusqu'à la card **"Temps de travail"** 3. Remplir la sous-section **"Temps de travail réel (informatif client)"** 4. Cliquer sur **Sauvegarder** 5. **Client** : Les données apparaissent immédiatement dans `contrats/[id]` > "Temps de travail réel" ## ⚠️ Points d'Attention - ✅ Ces données sont **indépendantes** des données contractuelles (utilisées pour le PDF) - ✅ Elles **ne sont pas envoyées** à PDFMonkey - ✅ Elles sont **purement informatives** pour le client - ✅ Les anciennes colonnes (`jours_travail`, `nb_representations`, etc.) restent utilisées pour le contrat PDF ## 📂 Fichiers Modifiés | Fichier | Modifications | |---------|---------------| | `migrations/add_temps_travail_reel_columns.sql` | Création des colonnes | | `components/staff/contracts/ContractEditor.tsx` | Ajout UI + états + sauvegarde | | `app/api/contrats/[id]/route.ts` | Mapping API | | `app/(app)/contrats/[id]/page.tsx` | Affichage client | ## ✅ Tests - [ ] Exécuter la migration SQL sur Supabase - [ ] Vérifier que les colonnes sont créées - [ ] Tester la saisie dans staff/contrats/[id] - [ ] Vérifier l'affichage dans contrats/[id] - [ ] Vérifier que le PDF du contrat n'est pas impacté