feat: Tri alphabétique et format NOM Prénom pour appels à virement

This commit is contained in:
odentas 2025-12-19 18:57:21 +01:00
parent 4000883fab
commit 8e9d628e5e

View file

@ -311,12 +311,15 @@ export async function POST(req: NextRequest) {
console.log("═══════════════════════════════════════════════════════════");
// Build line items for payslips
const lineItems = (payslips || []).map((p: any) => {
const lineItems = (payslips || [])
.map((p: any) => {
const contract = p.cddu_contracts;
const salarie = contract?.salaries;
// Get employee name
const employee_name = `${salarie?.prenom || ""} ${salarie?.nom || ""}`.trim();
// Get employee name in format "NOM Prénom"
const nom = (salarie?.nom || "").trim().toUpperCase();
const prenom = (salarie?.prenom || "").trim();
const employee_name = nom && prenom ? `${nom} ${prenom}` : (nom || prenom || "");
// Utiliser le montant personnalisé si disponible, sinon le montant de la paie
const montant = p.custom_amount !== null && p.custom_amount !== undefined
@ -336,13 +339,16 @@ export async function POST(req: NextRequest) {
return {
employee_name,
nom_for_sorting: nom, // Utilisé pour le tri
matricule: contract?.employee_matricule || "",
contrat: contract?.contract_number || "",
montant,
analytique: contract?.analytique || "",
profession: contract?.profession || "",
};
});
})
.sort((a, b) => a.nom_for_sorting.localeCompare(b.nom_for_sorting, 'fr')) // Tri alphabétique par nom
.map(({ nom_for_sorting, ...item }) => item); // Retirer le champ de tri temporaire
console.log("[generate-pdf] ✅ Line items built:", lineItems.length, "items");
if (lineItems.length > 0) {