fix(mi-dia): dedup capturas que ya aparecen en leads/oportunidades
Cuando un lead se crea con Monday activo, aparece tanto en el tablero Monday (misLeads) como en LeadCaptura (misCapturas). Filtrar de 'misCapturas' los items cuyo leadId ya existe en misLeads/misOportunidades para evitar el duplicado visual que reportan los vendedores. 597 tests verdes.
This commit is contained in:
@@ -400,6 +400,14 @@ export async function resumenMiDia(
|
||||
}
|
||||
})
|
||||
.sort((a, b) => b.capturadoEn.localeCompare(a.capturadoEn))
|
||||
// Excluir de "Mis capturas" los que ya aparecen en "Mis leads" o "Mis
|
||||
// oportunidades" para no duplicar visualmente cuando el lead existe en
|
||||
// Monday Y tambien en LeadCaptura (caso creacion con Monday activo).
|
||||
const idsEnOtrosTabs = new Set([
|
||||
...misLeads.map((l) => l.id),
|
||||
...mios.map((o) => o.id),
|
||||
])
|
||||
const misCapturasSinDuplicados = misCapturas.filter((c) => !idsEnOtrosTabs.has(c.leadId))
|
||||
|
||||
// "Mis clientes" es local + cruce con Monday: el alta en progreso lleva
|
||||
// proyecto '', el alta completada lleva el proyecto lleno. estadoApartado
|
||||
@@ -457,7 +465,7 @@ export async function resumenMiDia(
|
||||
generadoEn: ahora.toISOString(),
|
||||
sinMapeoMonday: sinMapeo,
|
||||
misLeads,
|
||||
misCapturas,
|
||||
misCapturas: misCapturasSinDuplicados,
|
||||
misClientes,
|
||||
misActividadesHoy,
|
||||
apartadosPorVencer,
|
||||
@@ -661,6 +669,13 @@ export function resumenMiDiaLocal(
|
||||
pendienteSync: c.pendienteSync,
|
||||
}))
|
||||
.sort((a, b) => b.capturadoEn.localeCompare(a.capturadoEn))
|
||||
// Excluir de "Mis capturas" los que ya aparecen en "Mis leads" u "Mis
|
||||
// oportunidades" para no duplicar visualmente.
|
||||
const idsEnOtrosTabsLocal = new Set([
|
||||
...misLeads.map((l) => l.id),
|
||||
...itemsOportunidades.map((o) => o.id),
|
||||
])
|
||||
const misCapturasSinDuplicadosLocal = misCapturas.filter((c) => !idsEnOtrosTabsLocal.has(c.leadId))
|
||||
|
||||
const etapaApartadoPorId = new Map(apartadosLocales.map((a) => [a.leadId, a.etapa]))
|
||||
const misClientes: ClienteMiDia[] = clientes
|
||||
@@ -680,7 +695,7 @@ export function resumenMiDiaLocal(
|
||||
generadoEn: ahora.toISOString(),
|
||||
sinMapeoMonday: usuario.mondayUserId === null,
|
||||
misLeads,
|
||||
misCapturas,
|
||||
misCapturas: misCapturasSinDuplicadosLocal,
|
||||
misClientes,
|
||||
misActividadesHoy: [], // no hay tabla local de actividades
|
||||
apartadosPorVencer: [], // los apartados locales aún no guardan fecha límite
|
||||
|
||||
Reference in New Issue
Block a user