fix(mi-dia): admin/director ven todos los leads y oportunidades
- esMio: admin/director_ventas/direccion_general ven todo - Controller: admin carga todas las capturas y clientes (no solo las suyas) - Admin ahora ve 123 leads + 8 ops + 5 apartados
This commit is contained in:
@@ -43,9 +43,10 @@ export async function resumenMiDiaEndpoint(req: Request, res: Response): Promise
|
|||||||
console.error('No se pudieron listar los usuarios del workspace de Monday:', err)
|
console.error('No se pudieron listar los usuarios del workspace de Monday:', err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Capturas de afluencia registradas por el usuario (registro local)
|
// Capturas de afluencia: admin ve todas, otros solo las suyas
|
||||||
|
const esAdmin = usuario.rol === 'admin' || usuario.rol === 'direccion_general' || usuario.rol === 'director_ventas'
|
||||||
const capturas = await prisma.leadCaptura.findMany({
|
const capturas = await prisma.leadCaptura.findMany({
|
||||||
where: { usuarioId: usuario.id },
|
where: esAdmin ? {} : { usuarioId: usuario.id },
|
||||||
orderBy: { createdAt: 'desc' },
|
orderBy: { createdAt: 'desc' },
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -60,9 +61,9 @@ export async function resumenMiDiaEndpoint(req: Request, res: Response): Promise
|
|||||||
...mappings.map((m) => m.oportunidadId),
|
...mappings.map((m) => m.oportunidadId),
|
||||||
])
|
])
|
||||||
|
|
||||||
// Altas de clientes iniciadas por el usuario (registro local)
|
// Altas de clientes: admin ve todas, otros solo las suyas
|
||||||
const clientes = await prisma.cliente.findMany({
|
const clientes = await prisma.cliente.findMany({
|
||||||
where: { capturadoPorId: usuario.id },
|
where: esAdmin ? {} : { capturadoPorId: usuario.id },
|
||||||
orderBy: { createdAt: 'desc' },
|
orderBy: { createdAt: 'desc' },
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -230,7 +230,9 @@ export async function resumenMiDia(
|
|||||||
// personas: solo cuenta la captura local. Funciona SIN vínculo Monday.
|
// personas: solo cuenta la captura local. Funciona SIN vínculo Monday.
|
||||||
const idsCapturados = capturadosIds ?? new Set(capturas.map((c) => c.leadId))
|
const idsCapturados = capturadosIds ?? new Set(capturas.map((c) => c.leadId))
|
||||||
const esCompartido = miId !== null && compartidoId !== null && compartidoId > 0 && miId === compartidoId
|
const esCompartido = miId !== null && compartidoId !== null && compartidoId > 0 && miId === compartidoId
|
||||||
|
const esAdmin = usuario.rol === 'admin' || usuario.rol === 'direccion_general' || usuario.rol === 'director_ventas'
|
||||||
const esMio = (peopleIds: number[], itemId: string): boolean => {
|
const esMio = (peopleIds: number[], itemId: string): boolean => {
|
||||||
|
if (esAdmin) return true
|
||||||
if (idsCapturados.has(itemId)) return true
|
if (idsCapturados.has(itemId)) return true
|
||||||
if (esCompartido || miId === null) return false
|
if (esCompartido || miId === null) return false
|
||||||
return peopleIds.includes(miId)
|
return peopleIds.includes(miId)
|
||||||
|
|||||||
Reference in New Issue
Block a user