espace-paie-odentas/app/api/virements-salaires/[id]/route.ts
odentas 91e0919274 feat: Ajout export SEPA et marquage groupé des virements salaires
- Ajout export fichier SEPA XML (norme ISO 20022 pain.001.001.03)
  * Sélection multiple via checkboxes
  * Génération XML pour virements bancaires groupés
  * Validation IBAN et gestion des salariés sans RIB
  * Modal de succès/avertissements
  * Référence: Nom organisation - Période

- Ajout marquage groupé des paies comme payées
  * Sélection multiple des paies
  * Modal de confirmation
  * Actualisation automatique sans refresh

- Nouvelle route API /api/virements-salaires/[id] (PATCH)
  * Mise à jour transfer_done et transfer_done_at

- Amélioration UX
  * Card informative pour clients non-Odentas
  * Modal informatif dans 'En savoir plus'
  * Messages clairs et cohérents
2025-11-03 00:08:21 +01:00

56 lines
1.5 KiB
TypeScript

import { createRouteHandlerClient } from '@supabase/auth-helpers-nextjs';
import { cookies } from 'next/headers';
import { NextRequest, NextResponse } from 'next/server';
export async function PATCH(
request: NextRequest,
{ params }: { params: { id: string } }
) {
try {
const supabase = createRouteHandlerClient({ cookies });
// Vérifier l'authentification
const { data: { session } } = await supabase.auth.getSession();
if (!session) {
return NextResponse.json({ error: 'Non authentifié' }, { status: 401 });
}
const payslipId = params.id;
const body = await request.json();
const { transfer_done } = body;
if (typeof transfer_done !== 'boolean') {
return NextResponse.json(
{ error: 'Le champ transfer_done doit être un booléen' },
{ status: 400 }
);
}
// Mettre à jour la fiche de paie
const { data, error } = await supabase
.from('payslips')
.update({
transfer_done,
transfer_done_at: transfer_done ? new Date().toISOString() : null
})
.eq('id', payslipId)
.select()
.single();
if (error) {
console.error('Erreur mise à jour payslip:', error);
return NextResponse.json(
{ error: 'Erreur lors de la mise à jour' },
{ status: 500 }
);
}
return NextResponse.json({ success: true, data });
} catch (error) {
console.error('Erreur API virements-salaires PATCH:', error);
return NextResponse.json(
{ error: 'Erreur serveur' },
{ status: 500 }
);
}
}