#!/usr/bin/env ruby # frozen_string_literal: true require_relative 'drones/lib/dasu_executor' puts "=== VERIFICACIÓN FINAL DASU-SQL4 ===" puts "Fecha: #{Time.now.strftime('%Y-%m-%d %H:%M:%S')}" puts "" ps_script = <<~PSCMD.strip $ErrorActionPreference = "Stop" $connString = "Server=localhost;Database=sysdasuten;Integrated Security=true;TrustServerCertificate=yes;" $conn = New-Object System.Data.SqlClient.SqlConnection($connString) $conn.Open() Write-Host "[1] Última fecha en BonosAfiliado (formato ISO):" $cmd = New-Object System.Data.SqlClient.SqlCommand("SELECT CONVERT(varchar, MAX(fecha), 120) as ultima FROM BonosAfiliado", $conn) $ultima = $cmd.ExecuteScalar() Write-Host " $ultima" Write-Host "`n[2] Registros por día (últimos 5 días):" $cmd = New-Object System.Data.SqlClient.SqlCommand(" SELECT TOP 5 CONVERT(varchar, CAST(fecha AS DATE), 120) as dia, COUNT(*) as cantidad, MIN(idsolicitud) as min_id, MAX(idsolicitud) as max_id FROM BonosAfiliado GROUP BY CAST(fecha AS DATE) ORDER BY dia DESC ", $conn) $adapter = New-Object System.Data.SqlClient.SqlDataAdapter($cmd) $ds = New-Object System.Data.DataSet $adapter.Fill($ds) $ds.Tables[0].Rows | ForEach-Object { Write-Host " $($_.dia): $($_.cantidad) registros | IDs: [$($_.min_id) - $($_.max_id)]" } Write-Host "`n[3] ¿La suma de registros coincide con el total?" $cmd = New-Object System.Data.SqlClient.SqlCommand("SELECT COUNT(*) FROM BonosAfiliado", $conn) $total = $cmd.ExecuteScalar() Write-Host " Total: $total" Write-Host "`n[4] Muestra de 5 registros recientes (con todos sus campos):" $cmd = New-Object System.Data.SqlClient.SqlCommand(" SELECT TOP 5 idsolicitud, fecha, codigoafiliado, dependencia, bono FROM BonosAfiliado ORDER BY fecha DESC, idsolicitud DESC ", $conn) $adapter = New-Object System.Data.SqlClient.SqlDataAdapter($cmd) $ds = New-Object System.Data.DataSet $adapter.Fill($ds) $ds.Tables[0].Rows | ForEach-Object { Write-Host " ids=$($_.idsolicitud) | fecha=$($_.fecha) | afiliado=$($_.codigoafiliado) | dep=$($_.dependencia) | bono=$($_.bono)" } Write-Host "`n[5] Verificando si hay datos del 15 de abril de 2026:" $cmd = New-Object System.Data.SqlClient.SqlCommand(" SELECT COUNT(*) as c FROM BonosAfiliado WHERE YEAR(fecha) = 2026 AND MONTH(fecha) = 4 AND DAY(fecha) = 15 ", $conn) $c = $cmd.ExecuteScalar() Write-Host " Registros el 2026-04-15: $c" $conn.Close() PSCMD DasuExecutor.execute_ps_on_dasu(ps_script) puts "\n✅ Verificación completada"