Files
dtic-DIIAA/adn/tools/cli/verificar_fenix_fechas.rb

85 lines
2.6 KiB
Ruby

#!/usr/bin/env ruby
# frozen_string_literal: true
require 'tiny_tds'
puts "=== FENIX - Verificando fechas de últimos registros ==="
puts "Fecha: #{Time.now.strftime('%Y-%m-%d %H:%M:%S')}"
puts ""
pass_cmd = `ruby adn/tools/candados/candados.rb get utnlarioja.intranet:monlaricardo 2>/dev/null`.strip
sql_user = 'UTNlarioja\\monlaricardo'
sql_host = '10.0.10.200'
client = TinyTds::Client.new(
username: sql_user,
password: pass_cmd,
host: sql_host,
timeout: 600,
database: 'sysdasuten'
)
puts "[1] Últimos 10 registros de BonosAfiliado (por ID):"
result = client.execute("
SELECT TOP 10 idsolicitud, fecha, codigoafiliado, dependencia,
CONVERT(datetime, fecha) as fecha_dt,
GETDATE() as ahora
FROM BonosAfiliado
ORDER BY idsolicitud DESC
")
result.each do |r|
puts " ID: #{r['idsolicitud']} | fecha: #{r['fecha']} | afiliado: #{r['codigoafiliado']}"
end
puts "\n[2] Registros con fecha 2026-04-15:"
result = client.execute("
SELECT TOP 10 idsolicitud, fecha, codigoafiliado
FROM BonosAfiliado
WHERE fecha >= '2026-04-15'
ORDER BY idsolicitud DESC
")
if result.to_a.empty?
puts " No hay registros con fecha >= 2026-04-15"
else
result.each do |r|
puts " ID: #{r['idsolicitud']} | fecha: #{r['fecha']}"
end
end
puts "\n[3] Verificando diferencia entre MAX(idsolicitud) y MAX(fecha):"
result = client.execute("
SELECT
MAX(idsolicitud) as max_id,
(SELECT MAX(fecha) FROM BonosAfiliado) as max_fecha,
(SELECT fecha FROM BonosAfiliado WHERE idsolicitud = (SELECT MAX(idsolicitud) FROM BonosAfiliado)) as fecha_del_max_id
FROM BonosAfiliado
")
r = result.first
puts " ID máximo: #{r['max_id']}"
puts " Fecha máxima: #{r['max_fecha']}"
puts " Fecha del ID máximo: #{r['fecha_del_max_id']}"
puts "\n[4] ¿Hay registros creados el 15/04 con fecha 14/04?"
puts " (comparando IDs altos con fecha 14 vs fecha 15)"
# IDs del 15 de abril (por fecha de creación del registro, no la columna fecha)
# Usamos una columna de auditoría si existe, sino comparamos por rango de IDs
result = client.execute("
SELECT
(SELECT COUNT(*) FROM BonosAfiliado WHERE fecha = '2026-04-15') as con_fecha_15,
(SELECT COUNT(*) FROM BonosAfiliado WHERE fecha = '2026-04-14') as con_fecha_14,
(SELECT COUNT(*) FROM BonosAfiliado WHERE idsolicitud > 30000000) as con_id_alto
")
r = result.first
puts " Registros con fecha=2026-04-15: #{r['con_fecha_15']}"
puts " Registros con fecha=2026-04-14: #{r['con_fecha_14']}"
puts " Registros con ID > 30000000: #{r['con_id_alto']}"
client.close
puts "\n✅ Verificación completada"