diff --git a/server.js b/server.js index 5fca1b0..db573ef 100644 --- a/server.js +++ b/server.js @@ -3975,6 +3975,17 @@ app.post("/services/manual-high", authMiddleware, async (req, res) => { const cpMatchAlta = (address || "").match(/\b\d{5}\b/); const cpDetectado = cpMatchAlta ? cpMatchAlta[0] : "00000"; + // 🩹 FIX: si al crear el servicio ya se elige un operario a mano, había que guardar + // también el status_operativo como "Asignado". Si se dejaba vacío (como pasaba antes), + // la ficha de detalle caía en systemStatuses[0] ("Pendiente de Asignar") al no encontrar + // el estado, y como ese nombre contiene la palabra "asignar" el panel de detalle mostraba + // "Sin Asignar" aunque el operario SÍ estuviera guardado correctamente en la base de datos. + let statusOperativoAlta = null; + if (assigned_to) { + const statusAsignadoQ = await pool.query("SELECT id FROM service_statuses WHERE owner_id=$1 AND name = 'Asignado' LIMIT 1", [ownerId]); + if (statusAsignadoQ.rowCount > 0) statusOperativoAlta = String(statusAsignadoQ.rows[0].id); + } + const rawData = { "Nombre Cliente": name, "Teléfono": phone, @@ -3985,7 +3996,8 @@ app.post("/services/manual-high", authMiddleware, async (req, res) => { "scheduled_date": "", "scheduled_time": "", "duration_minutes": duration_minutes || 60, - "Compañía": is_company ? company_name : "Particular" + "Compañía": is_company ? company_name : "Particular", + "status_operativo": statusOperativoAlta }; const serviceReference = is_company ? company_ref : `M-${Date.now().toString().slice(-6)}`;