4.4 KiB
4.4 KiB
Correctif : Mise à jour du Numéro d'Appel
🐛 Problème Identifié
Le champ num_appel n'était pas pris en compte lors de la modification d'un virement de salaire. Le numéro saisi dans le formulaire de modification n'était pas enregistré en base de données.
✅ Solution Appliquée
1. Frontend (components/staff/SalaryTransfersGrid.tsx)
Avant :
const payload = {
period_month: periodDate,
period_label: editForm.period_label,
deadline: editForm.deadline,
mode: editForm.mode,
total_net: editForm.total_net,
notes: editForm.notes,
// ❌ num_appel manquant
};
Après :
const payload = {
period_month: periodDate,
period_label: editForm.period_label,
deadline: editForm.deadline,
mode: editForm.mode,
num_appel: editForm.num_appel, // ✅ Ajouté
total_net: editForm.total_net,
notes: editForm.notes,
};
console.log("[handleUpdateTransfer] Payload:", payload); // ✅ Log ajouté
2. Backend (app/api/staff/virements-salaires/[id]/route.ts)
Avant :
const {
period_month,
period_label,
deadline,
mode,
total_net,
notes,
// ❌ num_appel manquant
} = body;
// ...
if (period_month !== undefined) updateData.period_month = period_month;
if (period_label !== undefined) updateData.period_label = period_label;
if (deadline !== undefined) updateData.deadline = deadline;
if (mode !== undefined) updateData.mode = mode;
if (total_net !== undefined) updateData.total_net = total_net;
if (notes !== undefined) updateData.notes = notes;
// ❌ num_appel manquant
Après :
const {
period_month,
period_label,
deadline,
mode,
num_appel, // ✅ Ajouté
total_net,
notes,
} = body;
// ...
if (period_month !== undefined) updateData.period_month = period_month;
if (period_label !== undefined) updateData.period_label = period_label;
if (deadline !== undefined) updateData.deadline = deadline;
if (mode !== undefined) updateData.mode = mode;
if (num_appel !== undefined) updateData.num_appel = num_appel; // ✅ Ajouté
if (total_net !== undefined) updateData.total_net = total_net;
if (notes !== undefined) updateData.notes = notes;
🧪 Test du Correctif
Procédure de test :
-
Ouvrir un virement existant :
- Aller sur Staff → Virements de Salaires
- Cliquer sur un virement dans la liste
-
Modifier le numéro d'appel :
- Cliquer sur "Modifier"
- Changer le champ "Numéro d'appel" (ex: "00042")
- Cliquer sur "Enregistrer"
-
Vérifier la mise à jour :
- Le modal doit se fermer
- Le numéro doit apparaître dans la colonne "N° Appel" du tableau
- Rouvrir le virement pour confirmer que le numéro est bien enregistré
-
Vérifier les logs (optionnel) :
- Dans la console du navigateur, chercher :
[handleUpdateTransfer] Payload: { ..., num_appel: "00042", ... } - Dans les logs serveur Next.js, chercher :
[update salary transfer] Update data: { ..., num_appel: "00042", ... }
- Dans la console du navigateur, chercher :
Vérification en base de données :
-- Vérifier que la colonne num_appel est bien mise à jour
SELECT id, num_appel, period_label, updated_at
FROM salary_transfers
WHERE id = 'ID_DU_VIREMENT'
ORDER BY updated_at DESC;
📊 Impact
- ✅ Le numéro d'appel peut maintenant être modifié
- ✅ La valeur est correctement enregistrée en base
- ✅ La référence de virement utilisera le bon numéro lors de la génération PDF
- ✅ Logs ajoutés pour faciliter le débogage
📁 Fichiers Modifiés
-
components/staff/SalaryTransfersGrid.tsx
- Ajout de
num_appeldans le payload de mise à jour - Ajout d'un log pour tracer le payload envoyé
- Ajout de
-
app/api/staff/virements-salaires/[id]/route.ts
- Extraction de
num_appeldepuis le body de la requête - Ajout de la mise à jour conditionnelle de
num_appel
- Extraction de
🔧 Notes Techniques
Pourquoi ce bug ?
Le champ num_appel a été ajouté récemment à la colonne Supabase, mais :
- ❌ Le formulaire le permettait de le modifier (champ visible)
- ❌ Mais le payload d'update ne l'incluait pas
- ❌ L'API ne le traitait pas non plus
Mise à jour conditionnelle
L'API utilise une mise à jour conditionnelle (if (num_appel !== undefined)) qui permet :
- ✅ De ne mettre à jour que les champs fournis
- ✅ De ne pas écraser les champs non modifiés
- ✅ D'accepter
nullcomme valeur valide pour supprimer un numéro
📅 Date du Correctif
13 octobre 2025