feat(8-mejoras): cancelar+motivo, brocker, etapas, calendario, modal cliente

1. Cancelar con motivo: Mis apartados y Escrituración piden motivo (modal reutilizado)
2. Origen BROCKER agregado en alta afluencia y captura rápida
3. Etapas oportunidades reordenadas: Agendo Cita → Afluencia → Cotizador
4. Cotizador: mensualidades diferibles (6, 12, 14, 18, 24 meses)
5. Calendario semanal por vendedor en Mi día
6. Hora en citas (datetime-local en vez de solo fecha)
7. Click en nombre → modal DetalleLeadModal (info + notas + historial)
This commit is contained in:
2026-09-09 10:26:36 +00:00
parent 6db9662838
commit d546460ba4
11 changed files with 808 additions and 26 deletions

View File

@@ -39,6 +39,9 @@ export const FASES_APARTADO_PERMITIDAS = [
const cambiarEstadoSchema = z.object({
estado: z.enum(FASES_APARTADO_PERMITIDAS),
motivo: z.string().optional(),
subcategoria: z.string().optional(),
comentario: z.string().optional(),
})
type MondayApartados = Pick<
@@ -84,7 +87,10 @@ export async function cambiarEstadoApartadoEndpoint(req: Request, res: Response)
}
}
res.json({ itemId, estado: body.estado })
auditoria.registrar(req.usuarioToken?.sub ?? 'sistema', 'CAMBIAR_ESTADO', 'apartado', itemId, body.estado)
const detalle = body.motivo
? `${body.estado} — motivo: ${body.motivo}${body.subcategoria ? ` / ${body.subcategoria}` : ''}${body.comentario ? ` (${body.comentario})` : ''}`
: body.estado
auditoria.registrar(req.usuarioToken?.sub ?? 'sistema', 'CAMBIAR_ESTADO', 'apartado', itemId, detalle)
}
// ---------- Precarga de documentos del expediente (desde "Mis apartados") ----------