96 lines
3.3 KiB
Ruby
96 lines
3.3 KiB
Ruby
#!/usr/bin/env ruby
|
|
# frozen_string_literal: true
|
|
|
|
require_relative 'drones/lib/dasu_executor'
|
|
|
|
puts "=== VERIFICAR FECHAS DESPUÉS DEL CAMBIO DE ZONA HORARIA ==="
|
|
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] Zona horaria actual del sistema:"
|
|
$tz = Get-TimeZone
|
|
Write-Host " ID: $($tz.Id)"
|
|
Write-Host " DisplayName: $($tz.DisplayName)"
|
|
Write-Host " BaseUtcOffset: $($tz.BaseUtcOffset)"
|
|
|
|
Write-Host "`n[2] Fecha/hora actual:"
|
|
Write-Host " Get-Date: $(Get-Date)"
|
|
Write-Host " UTC: $([DateTime]::UtcNow)"
|
|
|
|
Write-Host "`n[3] Última fecha en BonosAfiliado:"
|
|
$cmd = New-Object System.Data.SqlClient.SqlCommand("SELECT MAX(fecha) as ultima FROM BonosAfiliado", $conn)
|
|
$ultima = $cmd.ExecuteScalar()
|
|
Write-Host " MAX(fecha): $ultima"
|
|
|
|
Write-Host "`n[4] Últimos 10 registros (ordenados por fecha):"
|
|
$cmd = New-Object System.Data.SqlClient.SqlCommand("
|
|
SELECT TOP 10
|
|
idsolicitud,
|
|
CONVERT(varchar, fecha, 103) as fecha_ddmmaaaa,
|
|
codigoafiliado,
|
|
dependencia,
|
|
bono,
|
|
CONVERT(varchar, __tiempo, 103) + ' ' + CONVERT(varchar, __tiempo, 108) as tiempo_completo
|
|
FROM BonosAfiliado
|
|
WHERE fecha IS NOT NULL
|
|
ORDER BY fecha DESC, idsolicitud DESC
|
|
", $conn)
|
|
$adapter = New-Object System.Data.SqlClient.SqlDataAdapter($cmd)
|
|
$ds = New-Object System.Data.DataSet
|
|
$adapter.Fill($ds)
|
|
|
|
if ($ds.Tables[0].Rows.Count -gt 0) {
|
|
Write-Host " idsol | fecha (dd/mm/aaaa) | afiliado | dep | bono | __tiempo"
|
|
Write-Host " " + ("-" * 80)
|
|
$ds.Tables[0].Rows | ForEach-Object {
|
|
Write-Host " $($_.idsolicitud.ToString().PadLeft(5)) | $($_.fecha_ddmmaaaa) | $($_.codigoafiliado.ToString().PadLeft(5)) | $($_.dependencia.ToString().PadLeft(2)) | $($_.bono) | $($_.tiempo_completo)"
|
|
}
|
|
}
|
|
|
|
Write-Host "`n[5] Registros por día (últimos 5 días):"
|
|
$cmd = New-Object System.Data.SqlClient.SqlCommand("
|
|
SELECT TOP 5
|
|
CONVERT(varchar, CAST(fecha AS DATE), 103) as dia_ddmmaaaa,
|
|
COUNT(*) as cantidad,
|
|
MIN(idsolicitud) as min_id,
|
|
MAX(idsolicitud) as max_id
|
|
FROM BonosAfiliado
|
|
GROUP BY CAST(fecha AS DATE)
|
|
ORDER BY CAST(fecha AS DATE) 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_ddmmaaaa): $($_.cantidad) registros | IDs: [$($_.min_id) - $($_.max_id)]"
|
|
}
|
|
|
|
Write-Host "`n[6] Verificando formato de fecha ISO:"
|
|
$cmd = New-Object System.Data.SqlClient.SqlCommand("
|
|
SELECT TOP 3
|
|
fecha,
|
|
CONVERT(varchar, fecha, 120) as formato_iso,
|
|
__tiempo
|
|
FROM BonosAfiliado
|
|
ORDER BY fecha 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 " fecha=$($_.fecha) | ISO=$($_.formato_iso)"
|
|
}
|
|
|
|
$conn.Close()
|
|
PSCMD
|
|
|
|
DasuExecutor.execute_ps_on_dasu(ps_script)
|
|
|
|
puts "\n✅ Verificación completada"
|