# Activar librerías
library(odbc)
library(DBI)
library(readr)   # opcional si luego quieres usar write_csv
library(openxlsx)
library(readxl)

# ==== CONEXIÓN A SQL SERVER ====
driver   <- "ODBC Driver 17 for SQL Server"
server   <- "192.168.200.63"
database <- "BD_NOTI_CALIDAD"
uid      <- "mgomez"
pwd      <- "y9Gi7pe2dsRHsewM"  # ⚠️ Recomendado mover a variable de entorno

con <- dbConnect(
  odbc::odbc(),
  Driver   = driver,
  Server   = server,
  Database = database,
  UID      = uid,
  PWD      = pwd
  # , TrustServerCertificate = "yes"  # si lo necesitas
)

if (dbIsValid(con)) {
  print("Connection successful!")
} else {
  stop("Connection failed.")
}

# ==== LECTURA DE TABLAS ====
data_individual_actual <- dbReadTable(con, "investigacion_ind")
data_febriles_actual   <- dbReadTable(con, "investigacion_feb")
data_edas_actual       <- dbReadTable(con, "investigacion_eda")
data_iras_actual       <- dbReadTable(con, "investigacion_ira")
data_noti_sp           <- dbReadTable(con, "noti_sp")

# ==== RUTAS DE SALIDA ====
# Ajusta estas rutas a tu entorno Windows
# Ejemplo: carpeta local C:\data\bases\
ruta_individual_actual <- "Z:/individual_actual.csv"
ruta_febriles_actual   <- "Z:/febriles_actual.csv"
ruta_edas_actual       <- "Z:/edas_actual.csv"
ruta_iras_actual       <- "Z:/iras_actual.csv"
ruta_noti_sp           <- "Z:/noti_sp.csv"

# Crea la carpeta si no existe
# dir.create("C:/data/bases", recursive = TRUE, showWarnings = FALSE)

# ==== EXPORTAR A CSV (FORMATO MÁS LIGERO Y CONSISTENTE) ====
# Opción 1: usando write.csv pero ajustado
write.csv(
  data_individual_actual,
  file         = ruta_individual_actual,
  row.names    = FALSE,      # ❗ no agrega columna extra
  na           = "",         # NA como vacío (no "NA")
  fileEncoding = "UTF-8",    # codificación consistente
  eol          = "\n"        # salto de línea tipo Linux (1 byte)
)

write.csv(
  data_febriles_actual,
  file         = ruta_febriles_actual,
  row.names    = FALSE,
  na           = "",
  fileEncoding = "UTF-8",
  eol          = "\n"
)

write.csv(
  data_edas_actual,
  file         = ruta_edas_actual,
  row.names    = FALSE,
  na           = "",
  fileEncoding = "UTF-8",
  eol          = "\n"
)

write.csv(
  data_iras_actual,
  file         = ruta_iras_actual,
  row.names    = FALSE,
  na           = "",
  fileEncoding = "UTF-8",
  eol          = "\n"
)

write.csv(
  data_noti_sp,
  file         = ruta_noti_sp,
  row.names    = FALSE,
  na           = "",
  fileEncoding = "UTF-8",
  eol          = "\n"
)

# ==== CERRAR CONEXIÓN ====
dbDisconnect(con)
print("Exportación completada.")
