fix: Récupérer org_id via référence contrat si organization_id manquant

This commit is contained in:
odentas 2025-11-03 15:30:02 +01:00
parent 4aa817400b
commit b844a89844

View file

@ -76,42 +76,51 @@ export async function POST(request: NextRequest) {
// 3. Récupération du nom du client depuis Supabase
let organizationName = 'Employeur'; // Fallback par défaut
if (!organizationId) {
console.error('❌ organization_id manquant');
return NextResponse.json(
{ error: 'organization_id est requis' },
{ status: 400 }
);
}
let actualOrgId = organizationId;
console.log('🔍 Récupération du nom du client depuis organizations...');
try {
const supabase = createSbServiceRole();
const { data: orgData, error: orgError } = await supabase
.from('organizations')
.select('name')
.eq('id', organizationId)
.single();
if (orgError) {
console.error('❌ Erreur lors de la récupération de l\'organisation:', orgError);
throw orgError;
// Si organization_id n'est pas fourni, le récupérer via la référence du contrat
if (!actualOrgId && reference) {
console.log('⚠️ organization_id manquant, récupération via la référence du contrat');
const { data: contractData } = await supabase
.from('cddu_contracts')
.select('org_id')
.eq('contract_number', reference)
.single();
if (contractData?.org_id) {
actualOrgId = contractData.org_id;
console.log('✅ org_id récupéré depuis le contrat:', actualOrgId);
} else {
console.error('❌ Impossible de trouver l\'org_id pour la référence:', reference);
}
}
if (orgData?.name) {
organizationName = orgData.name;
console.log('✅ Nom du client trouvé:', organizationName);
// Récupérer le nom de l'organisation
if (actualOrgId) {
const { data: orgData, error: orgError } = await supabase
.from('organizations')
.select('name')
.eq('id', actualOrgId)
.single();
if (orgError) {
console.error('❌ Erreur lors de la récupération de l\'organisation:', orgError);
} else if (orgData?.name) {
organizationName = orgData.name;
console.log('✅ Nom du client trouvé:', organizationName);
} else {
console.error('❌ Nom du client non trouvé pour org_id:', actualOrgId);
}
} else {
console.error('❌ Nom du client non trouvé pour org_id:', organizationId);
console.error('❌ Impossible de déterminer l\'org_id');
}
} catch (err) {
console.error('❌ Erreur lors de la récupération du nom du client:', err);
return NextResponse.json(
{ error: 'Impossible de récupérer le nom du client' },
{ status: 500 }
);
console.error('⚠️ Erreur lors de la récupération du nom du client:', err);
// Ne pas bloquer l'envoi de l'email, utiliser le fallback
}
// 4. Récupération du prénom depuis Supabase si non fourni