fix(flow): LeadCaptura para oportunidades y apartados en flujo Monday
- convertirLeadEndpoint: crea LeadCaptura OPORTUNIDADES al convertir lead - escaneoOportunidades: crea LeadCaptura APARTADO al crear apartado - Mi día: esMio para apartados incluye oportunidadId del usuario - Flujo completo verificado: Lead → Contactado → Agendo → Aparto
This commit is contained in:
@@ -579,6 +579,25 @@ export class AutomatizacionesService {
|
||||
})
|
||||
await this.state.set(claveApartadoCreado(op.id), apartadoItemId)
|
||||
resultado.apartadosCreados.push({ oportunidadId: op.id, nombre: op.nombre, apartadoItemId })
|
||||
// Crear LeadCaptura local para el apartado (Mi día los necesita)
|
||||
try {
|
||||
// Buscar el usuarioId de la oportunidad original para vincular el apartado
|
||||
const opLocal = await prisma.leadCaptura.findFirst({ where: { leadId: op.id } })
|
||||
await prisma.leadCaptura.create({
|
||||
data: {
|
||||
leadId: apartadoItemId,
|
||||
board: 'APARTADO',
|
||||
etapa: 'Pago Apartado',
|
||||
nombreLead: op.nombre,
|
||||
telefono: op.telefono || null,
|
||||
email: op.email || null,
|
||||
usuarioId: opLocal?.usuarioId ?? 'sistema',
|
||||
oportunidadId: op.id,
|
||||
mondayItemId: apartadoItemId,
|
||||
pendienteSync: false,
|
||||
},
|
||||
})
|
||||
} catch (e) { console.error('[APARTADO-ERR]', e.message?.slice(0,150)) }
|
||||
} catch (err) {
|
||||
resultado.errores.push({ oportunidadId: op.id, mensaje: err instanceof Error ? err.message : String(err) })
|
||||
}
|
||||
|
||||
@@ -312,9 +312,13 @@ export async function resumenMiDia(
|
||||
const apartadosDeMisClientes = new Set(
|
||||
clientes.map((c) => c.mondayApartadoId).filter((id): id is string => id !== null),
|
||||
)
|
||||
// Set de oportunidades mías (por LeadCaptura o por vendedorIds)
|
||||
const miosOportunidadesIds = new Set(
|
||||
capturas.filter((c) => c.oportunidadId).map((c) => c.oportunidadId),
|
||||
)
|
||||
const miosApartados = apartados.filter(
|
||||
(a) =>
|
||||
(esMio(a.vendedorIds, a.id) || apartadosDeMisClientes.has(a.id)) && !esEstadoFinalApartado(a.estado),
|
||||
(esMio(a.vendedorIds, a.id) || apartadosDeMisClientes.has(a.id) || miosOportunidadesIds.has(a.id)) && !esEstadoFinalApartado(a.estado),
|
||||
)
|
||||
|
||||
const [cambiosLeads, cambiosOportunidades, cambiosApartados] = await Promise.all([
|
||||
|
||||
Reference in New Issue
Block a user