- 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
56 lines
1.5 KiB
TypeScript
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 }
|
|
);
|
|
}
|
|
}
|