feat(contribuyentes): mostrar nombre del supervisor en card
This commit is contained in:
@@ -42,7 +42,24 @@ export async function list(req: Request, res: Response, next: NextFunction) {
|
||||
try {
|
||||
const visibleIds = await getEntidadesVisibles(req.tenantPool!, req.user!.userId, req.user!.role);
|
||||
const rows = await contribuyenteService.listContribuyentes(req.tenantPool!, visibleIds, req.user!.tenantId);
|
||||
return res.json({ data: rows });
|
||||
|
||||
// Batch lookup de nombres de supervisores
|
||||
const supervisorIds = [...new Set(rows.map(r => r.supervisorUserId).filter(Boolean))] as string[];
|
||||
const supervisorNames: Record<string, string> = {};
|
||||
if (supervisorIds.length > 0) {
|
||||
const users = await prisma.user.findMany({
|
||||
where: { id: { in: supervisorIds } },
|
||||
select: { id: true, nombre: true },
|
||||
});
|
||||
for (const u of users) supervisorNames[u.id] = u.nombre;
|
||||
}
|
||||
|
||||
return res.json({
|
||||
data: rows.map(r => ({
|
||||
...r,
|
||||
supervisorNombre: r.supervisorUserId ? (supervisorNames[r.supervisorUserId] ?? null) : null,
|
||||
})),
|
||||
});
|
||||
} catch (err) { return next(err); }
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user