espace-paie-odentas/SYNC_NOTES_AUTO_DECLARATION_STAFF.md

158 lines
5.8 KiB
Markdown

# Synchronisation des notes : Auto-déclaration → Staff/Salariés
## Problème résolu
Les notes saisies par les salariés dans le formulaire d'auto-déclaration n'étaient **pas visibles** dans la section "Notes" de la page staff/salaries.
### Situation avant correction
- ✅ Les notes étaient sauvegardées dans `justificatifs_personnels` (format JSON)
- ❌ Les notes n'étaient PAS enregistrées dans le champ `notes`
- ❌ Le staff ne pouvait pas voir ces notes dans l'interface staff/salaries
**Conséquence** : Les informations importantes communiquées par les salariés restaient invisibles pour le staff.
## Solution appliquée
### Modifications dans `/app/api/auto-declaration/route.ts`
La logique d'enregistrement des notes a été améliorée pour :
1. **Récupérer les notes existantes** avant d'ajouter les nouvelles
2. **Ajouter la nouvelle note avec horodatage** au champ `notes` visible par le staff
3. **Préserver l'historique** dans `justificatifs_personnels` (format JSON)
### Code modifié
```typescript
if (updateData.notes) {
// Récupérer les notes existantes pour les préserver
const { data: currentSalarie } = await sb
.from('salaries')
.select('notes, justificatifs_personnels')
.eq('id', tokenData.salarie_id)
.single();
// Préparer la nouvelle note avec horodatage
const currentDate = new Date().toISOString().split('T')[0];
const currentTime = new Date().toLocaleString('fr-FR');
const newNote = `[${currentTime} - Auto-déclaration]\n${updateData.notes}`;
// Ajouter aux notes existantes ou créer une nouvelle note
if (currentSalarie?.notes) {
dataToUpdate.notes = `${currentSalarie.notes}\n\n${newNote}`;
} else {
dataToUpdate.notes = newNote;
}
// Également ajouter aux justificatifs personnels (format JSON) pour historique
const noteEntry = {
date: currentDate,
source: 'auto-declaration',
notes: updateData.notes
};
dataToUpdate.justificatifs_personnels = JSON.stringify([noteEntry]);
}
```
## Fonctionnement
### 1. Horodatage automatique
Chaque note de l'auto-déclaration est précédée de :
```
[17/10/2025 à 14:30:25 - Auto-déclaration]
```
### 2. Préservation des notes existantes
- Si le salarié avait déjà des notes (ajoutées par le staff), elles sont conservées
- La nouvelle note est ajoutée à la suite avec une double ligne de séparation (`\n\n`)
### 3. Double sauvegarde
- **Champ `notes`** : Visible immédiatement par le staff sur staff/salaries
- **Champ `justificatifs_personnels`** : Historique structuré au format JSON
## Format des notes
### Exemple avec première note
```
[17/10/2025 à 14:30:25 - Auto-déclaration]
Je suis disponible pour commencer le contrat dès le 20 octobre.
J'ai déjà travaillé sur des productions similaires.
```
### Exemple avec notes multiples
```
[15/10/2025 à 10:00:00 - Staff]
Candidat intéressant pour le projet XYZ
[17/10/2025 à 14:30:25 - Auto-déclaration]
Je suis disponible pour commencer le contrat dès le 20 octobre.
J'ai déjà travaillé sur des productions similaires.
```
## Avantages
### ✅ Visibilité immédiate
- Les notes des salariés apparaissent instantanément dans l'interface staff
- Pas besoin de chercher dans les justificatifs personnels
### ✅ Traçabilité
- Horodatage précis de chaque note
- Source clairement identifiée (Auto-déclaration vs Staff)
- Historique complet préservé
### ✅ Communication améliorée
- Le staff peut voir les informations importantes des salariés
- Facilite le suivi et la coordination
- Évite les oublis ou pertes d'information
## Interface utilisateur
### Page auto-déclaration
Le salarié voit :
```
Section "Notes"
┌─────────────────────────────────────────────┐
│ Informations complémentaires │
│ ┌─────────────────────────────────────────┐ │
│ │ [Zone de texte libre] │ │
│ │ │ │
│ │ │ │
│ └─────────────────────────────────────────┘ │
│ Utilisez ce champ libre si vous devez │
│ mentionner toutes les informations │
│ complémentaires. │
└─────────────────────────────────────────────┘
```
### Page staff/salaries
Le staff voit la note dans le panneau latéral :
```
Section "Notes"
┌─────────────────────────────────────────────┐
│ [17/10/2025 à 14:30:25 - Auto-déclaration] │
│ Je suis disponible pour commencer le │
│ contrat dès le 20 octobre. │
└─────────────────────────────────────────────┘
```
## Tests recommandés
1. ✅ Saisir une note sur l'auto-déclaration
2. ✅ Vérifier qu'elle apparaît dans staff/salaries
3. ✅ Vérifier l'horodatage et la source
4. ✅ Ajouter une deuxième note et vérifier la concaténation
5. ✅ Vérifier que les notes staff existantes sont préservées
6. ✅ Tester avec un salarié sans note existante
7. ✅ Tester avec un salarié ayant déjà des notes staff
## Fichiers modifiés
-`/app/api/auto-declaration/route.ts` - Logique d'enregistrement des notes
## Rétrocompatibilité
- ✅ Les anciennes notes (si existantes) sont préservées
- ✅ Le format JSON dans `justificatifs_personnels` reste fonctionnel
- ✅ Aucune migration de données nécessaire