- Ajout sous-header total net à payer sur page virements-salaires - Migration transfer_done_at pour tracking précis des virements - Nouvelle page saisie tableau pour création factures en masse - APIs bulk pour mise à jour dates signature et jours technicien - API demande mandat SEPA avec email template - Webhook DocuSeal pour signature contrats (mode TEST) - Composants modaux détails et vérification PDF fiches de paie - Upload/suppression/remplacement PDFs dans PayslipsGrid - Amélioration affichage colonnes et filtres grilles contrats/paies - Template email mandat SEPA avec sous-texte CTA - APIs bulk facturation (création, update statut/date paiement) - API clients sans facture pour période donnée - Corrections calculs dates et montants avec auto-remplissage
2.8 KiB
2.8 KiB
Migration : Ajout de transfer_done_at pour les virements salaires
Date : 2 novembre 2025
Contexte : Amélioration du tracking des virements de salaires
🎯 Problème identifié
Le système utilisait la colonne updated_at pour déterminer si une paie avait été virée dans les 30 derniers jours. Cette colonne est mise à jour à chaque modification du payslip, pas seulement quand on marque le virement comme effectué.
Conséquence : Une paie marquée comme virée il y a 2 mois pouvait réapparaître dans "Virements récemment effectués" si le payslip était modifié pour une autre raison.
✅ Solution implémentée
1. Nouvelle colonne transfer_done_at
Ajout d'une colonne transfer_done_at (TIMESTAMPTZ) dans la table payslips :
- NULL : Virement pas encore effectué
- Date : Date exacte où le virement a été marqué comme effectué
2. Modifications du code
API PATCH /api/payslips/[id]
- Quand
transfer_donepasse àtrue→ on enregistre la date actuelle danstransfer_done_at - Quand
transfer_donepasse àfalse→ on effacetransfer_done_at(remis à NULL)
API GET /api/virements-salaires
- Ajout de
transfer_done_atdans le SELECT - Utilisation de
transfer_done_atau lieu deupdated_atpour filtrer les paies récentes (≤ 30 jours)
3. Migration de données
Les payslips existants avec transfer_done = true ont été migrés :
transfer_done_at=updated_at(valeur par défaut pour l'historique)
📁 Fichiers modifiés
migrations/add_transfer_done_at_to_payslips.sql- Migration SQLapp/api/payslips/[id]/route.ts- API PATCH pour mettre à jour transfer_done_atapp/api/virements-salaires/route.ts- API GET utilisant transfer_done_at
🚀 Déploiement
Étape 1 : Exécuter la migration SQL
-- Sur Supabase, exécuter le fichier migrations/add_transfer_done_at_to_payslips.sql
Étape 2 : Déployer le code
# Build et déploiement
npm run build
git push origin feat/direct-docuseal-webhook-contracts
Étape 3 : Vérifier
- Aller sur
/virements-salaires - Marquer une paie comme payée
- Vérifier qu'elle apparaît dans "Virements récemment effectués"
- Annuler le marquage
- Vérifier qu'elle revient dans "Paies à payer"
🔍 Points de vigilance
- Les paies virées avant cette migration auront
transfer_done_at = updated_at - Seules les nouvelles modifications auront la vraie date de marquage
- Les index créés optimisent les requêtes sur
transfer_done_at
📊 Impact
- Performance : Ajout d'index pour optimiser les requêtes
- UX : Les utilisateurs verront désormais précisément les paies virées dans les 30 derniers jours
- Traçabilité : Meilleur suivi de l'historique des virements