5.6 KiB
Clarification de la logique des virements salaires
Date : 14 octobre 2025
Contexte
Les champs de la table salary_transfers ont été clarifiés pour mieux refléter le cycle de vie d'un virement :
Nouvelle logique des champs
1. notification_sent (boolean)
- Signification : La notification a été envoyée au client
- Valeur par défaut :
false - Quand passe à true : Lors de l'appel à l'API
/api/staff/virements-salaires/[id]/notify-client - Affichage : Badge "✓ Envoyée" / "Non envoyée"
2. notification_ok (boolean) - NOUVELLE SIGNIFICATION
- Ancienne signification : Statut de la notification (OK / Erreur)
- Nouvelle signification : Paiement client reçu (Oui / Non)
- Valeur par défaut :
false - Quand passe à true :
- Manuellement par le staff via le modal d'édition
- Automatiquement quand on coche "Paiement client reçu"
- Via le bouton "Marquer comme reçu"
- Affichage : Badge "✓ Reçu" / "Non reçu"
3. client_wire_received_at (timestamp, optionnel)
- Signification : Date de réception du virement client
- Valeur par défaut :
null - Quand renseigné :
- Automatiquement à la date du jour lors de la cochage de "Paiement client reçu"
- Manuellement modifiable dans le formulaire d'édition
- Peut être effacé
- Affichage : Date formatée ou "—" si non renseignée
4. salaires_payes (boolean) - NOUVEAU CHAMP
- Signification : Les salaires ont été payés aux salariés
- Valeur par défaut :
false - Quand passe à true :
- Manuellement par le staff via le modal d'édition
- Via le bouton "Marquer comme payés"
- Affichage : Badge "✓ Payés" / "Non payés"
5. num_appel (text)
- Signification : Numéro d'appel de fonds (ex: "00001")
- Correction : Le champ est maintenant pris en compte lors de la création d'un virement
- Affichage : Police monospace dans le tableau et le modal
Cycle de vie d'un virement
1. CRÉATION
└─> num_appel renseigné
└─> notification_sent = false
└─> notification_ok = false
└─> salaires_payes = false
2. GÉNÉRATION PDF
└─> callsheet_url renseigné
3. NOTIFICATION CLIENT
└─> notification_sent = true
└─> Email envoyé au client
4. RÉCEPTION PAIEMENT CLIENT
└─> notification_ok = true
└─> client_wire_received_at = date (optionnel)
5. PAIEMENT DES SALAIRES
└─> salaires_payes = true
Interface utilisateur
Affichage en lecture (Modal)
Le modal affiche maintenant 3 sections distinctes :
-
Notification client
- Statut : Envoyée / Non envoyée
-
Paiement client reçu
- Statut : Reçu / Non reçu
- Date : (si renseignée)
- Bouton rapide : "Marquer comme reçu"
-
Salaires payés
- Statut : Payés / Non payés
- Bouton rapide : "Marquer comme payés"
Formulaire d'édition
Le formulaire permet maintenant de modifier :
-
Paiement client
- ☑ Checkbox "Paiement client reçu"
- 📅 Date de réception (optionnelle)
- ❌ Bouton pour effacer la date
-
Salaires
- ☑ Checkbox "Salaires payés aux salariés"
Tableau principal
Les colonnes ont été réorganisées :
| Colonne | Contenu |
|---|---|
| Notification | Badge "✓ Envoyée" / "Non envoyée" |
| Paiement client | Badge "✓ Reçu" / "Non reçu" + date |
| Salaires payés | Badge "✓ Payés" / "Non payés" |
Filtres
Nouveaux filtres disponibles :
- Notification envoyée : Oui / Non
- Paiement client reçu : Oui / Non
- Date virement client : Avec date / Sans date
- Salaires payés : Oui / Non (NOUVEAU)
API
Création - POST /api/staff/virements-salaires/create
Champs pris en compte :
num_appel✅ (corrigé)salaires_payes✅ (nouveau, défaut: false)
Mise à jour - PATCH /api/staff/virements-salaires/[id]
Nouveaux champs acceptés :
notification_ok: booleansalaires_payes: boolean
Migration base de données
Exécuter le fichier :
supabase/migrations/add_salaires_payes_column.sql
Ce script :
- ✅ Ajoute la colonne
salaires_payes - ✅ Vérifie l'existence de
num_appel - ✅ Ajoute des commentaires pour clarifier la logique
- ✅ Crée des index pour améliorer les performances
- ✅ Met à jour les données existantes (notification_ok pour les virements avec date)
Corrections apportées
✅ 1. Notification liée à notification_sent
Avant : Confusion entre "notification envoyée" et "notification OK"
Après : notification_sent = notification envoyée (clair)
✅ 2. Virement reçu lié à notification_ok + client_wire_received_at
Avant : notification_ok = statut erreur/OK de la notification
Après : notification_ok = paiement client reçu (oui/non), client_wire_received_at = date (optionnelle)
✅ 3. Paiement modifiable avec ou sans date
Avant : Obligation de mettre une date pour marquer comme reçu Après : Checkbox séparée + date optionnelle
✅ 4. Salaires payés lié à salaires_payes
Avant : Pas de champ dédié
Après : Nouveau champ salaires_payes (boolean)
✅ 5. Numéro d'appel pris en compte à la création
Avant : num_appel uniquement en modification
Après : num_appel pris en compte dès la création
Tests recommandés
- ✅ Créer un nouveau virement avec
num_appel - ✅ Marquer le paiement client comme reçu (avec et sans date)
- ✅ Marquer les salaires comme payés
- ✅ Vérifier les filtres fonctionnent correctement
- ✅ Tester les boutons rapides "Marquer comme reçu" et "Marquer comme payés"
- ✅ Vérifier l'affichage dans le tableau principal