The code does not work, the code should select true in this case because the data is correct
// 1. Datos del cliente desde el nodo “Edit Fields”
const cliente = $items(“Edit Fields”)[0].json;
const horaCliente = cliente.Hora?.trim();
const fechaCliente = cliente.Fecha?.trim();
const nombreCliente = cliente.Nombre?.trim().toLowerCase();
// 2. Todos los registros del nodo “Search Records”
const reservas = $items(“Search records”).map(item => item.json);
// 3. Buscar coincidencia flexible
// - Coincide siempre por Nombre + Fecha
// - Si el cliente dio una hora, también la comprobamos
const match = reservas.find(r =>
r.Fecha?.trim() === fechaCliente &&
(r.Nombre || “”).trim().toLowerCase() === nombreCliente &&
(!horaCliente || r.Hora?.trim() === horaCliente)
);
// 4. Devolver resultado
if (match) {
return [{
json: {
encontrado: true,
mensaje: Reserva encontrada para ${match.Nombre} el ${match.Fecha} a las ${match.Hora}.,
fields: match
}
}];
} else {
// Opcional: mostrar sugerencias si coincide Nombre + Fecha aunque no coincida la hora
const sugerencias = reservas.filter(r =>
r.Fecha?.trim() === fechaCliente &&
(r.Nombre || “”).trim().toLowerCase() === nombreCliente
);
if (sugerencias.length > 0) {
return [{
json: {
encontrado: false,
mensaje: No se encontró reserva con esa hora, pero sí para ${cliente.Nombre} el ${fechaCliente}. Horas disponibles: ${sugerencias.map(s => s.Hora).join(", ")},
sugerencias,
cliente
}
}];
}
return [{
json: {
encontrado: false,
mensaje: “No existe ninguna reserva con esos datos”,
cliente
}
}];
}





