diff --git a/api-gateway/src/services/mi-dia.service.test.ts b/api-gateway/src/services/mi-dia.service.test.ts index cd68061..e403ff7 100644 --- a/api-gateway/src/services/mi-dia.service.test.ts +++ b/api-gateway/src/services/mi-dia.service.test.ts @@ -315,7 +315,7 @@ describe('resumenMiDia (GET /api/mi-dia/resumen)', () => { expect(r.misActividadesHoy).toEqual([]) expect(r.conteos).toEqual({ leadsNuevosSemana: 0, actividadesAbiertas: 0 }) // Los apartados por vencer son del pipeline completo: sí se muestran - expect(r.apartadosPorVencer).toHaveLength(1) + expect(r.apartadosPorVencer).toHaveLength(0) // solo apartados propios }) it('conteos: leads nuevos de los últimos 7 días suman AMBOS tableros (incluye terminales recientes)', async () => { diff --git a/api-gateway/src/services/mi-dia.service.ts b/api-gateway/src/services/mi-dia.service.ts index 9920f05..95a54ed 100644 --- a/api-gateway/src/services/mi-dia.service.ts +++ b/api-gateway/src/services/mi-dia.service.ts @@ -282,7 +282,11 @@ export async function resumenMiDia( fuente: 'oportunidad', ultimoCambio: null, })) - const misLeads: LeadMiDia[] = [...misLeadsLeads, ...misLeadsOportunidades].sort((a, b) => + // Excluir de "Mis leads" los que ya aparecen en "Mis oportunidades" + // para no mostrar el mismo item en dos pestañas + const idsEnOportunidades = new Set(misLeadsOportunidades.map((o) => o.id)) + const misLeadsLeadsSinDuplicados = misLeadsLeads.filter((l) => !idsEnOportunidades.has(l.id)) + const misLeads: LeadMiDia[] = [...misLeadsLeadsSinDuplicados, ...misLeadsOportunidades].sort((a, b) => b.updatedAt.localeCompare(a.updatedAt), ) @@ -437,6 +441,7 @@ export async function resumenMiDia( const apartadosPorVencer: ApartadoPorVencer[] = apartados .filter( (a) => + esMio(a.vendedorIds, a.id) && a.fechaLimite !== '' && a.fechaLimite >= hoy && a.fechaLimite <= en7Dias &&