From ffe459f22f506970f0b4aa40790d774a2c1399ae Mon Sep 17 00:00:00 2001 From: marsalva Date: Sat, 12 Sep 2026 16:57:34 +0000 Subject: [PATCH] Fix: captura de C.P. en el alta por WhatsApp (comando de admin) para que el aviso aparezca en la Bol --- server.js | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/server.js b/server.js index 2c4f1c6..35ca891 100644 --- a/server.js +++ b/server.js @@ -1983,6 +1983,17 @@ async function procesarConIA(ownerId, mensajeCliente, datosExpediente) { const descripcionActual = patch["Descripción"] || datosExpediente.averia || ""; const capturaCompleta = !!(nombreActual && direccionActual && descripcionActual); + // 📮 FALLBACK CP: si la IA no separó el código postal como campo propio (p.ej. + // el cliente escribió "Calle Mayor 5, 28013 Madrid" todo junto), lo buscamos + // nosotros mismos en la dirección/población para no dejar el aviso sin CP — + // sin CP, el aviso NO aparece en "Solicitar Servicios" (Bolsa) para operarios + // con zonas configuradas, aunque esté correctamente sin gremio/operario. + if (!patch["Código Postal"] && !datosExpediente.cp) { + const poblacionActual = patch["Población"] || datosExpediente.poblacion || ""; + const cpMatch = `${direccionActual} ${poblacionActual}`.match(/\b\d{5}\b/); + if (cpMatch) patch["Código Postal"] = cpMatch[0]; + } + let workerAsignado = null; let guildAsignado = null; @@ -2128,7 +2139,7 @@ async function procesarConIA(ownerId, mensajeCliente, datosExpediente) { if (datosExpediente.intake_mode) { const faltantes = []; if (!datosExpediente.nombre_cliente) faltantes.push("su nombre completo"); - if (!datosExpediente.direccion) faltantes.push("la dirección exacta de la visita"); + if (!datosExpediente.direccion) faltantes.push("la dirección exacta de la visita (calle, número, código postal y población)"); if (!datosExpediente.averia) faltantes.push(`una breve descripción de lo que necesita${datosExpediente.intake_purpose ? ` (motivo indicado: ${datosExpediente.intake_purpose})` : ''}`); directivaEstricta = `🟡 ESTADO ACTUAL: RECOGIDA INICIAL DE DATOS. Esto es una primera toma de contacto (todavía no hay expediente completo), continúa la conversación ya iniciada.