import logging
import sys
import os

sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..', '..'))
from helpers.db import conectar
from helpers.logging_setup import setup_logging

setup_logging("socios_accionistas")

conn = conectar()
cursor = conn.cursor()

# Traer registros de personas con cargo socio
cursor.execute("{CALL data_tablas_edictos_update (?)}", 'update_personas_socios')

rows = cursor.fetchall()

for row in rows:
    if not row.documento_soc:
        logging.warning(f"REGISTRO_OMITIDO | sin documento_soc id={row.id} id_fide={row.id_fide}")
        continue
    params = (
        "sociedades_constituciones_relaciones_personas",  # @desde_tabla
        row.id,                                           # @id
        row.id_fide,                                      # @id_fide
        None,                                             # @provincia_boletin
        None,                                             # @provincia_nombre
        row.fecha_publicacion,                            # @periodo
        row.documento_soc,                                # @p_cuit
        row.cuit,                                         # @p_cuit_socio
        row.apellido_nombre,                              # @apellido_nombre
        row.domicilio,                                    # @domicilio
        row.estado_civil,                                 # @estado_civil
        row.conyuge,                                      # @conyuge
        row.cargo,                                        # @p_cargo
        "SI" if row.permanece_en_cargo and row.permanece_en_cargo.lower() in ["si", "sí"] else "NO",
        row.created_by,                                   # @user_id
        row.id_padron_sociedad,                           # @id_padron_empresa
        row.id_padron_integrante                          # @id_padron_socio
    )
    logging.debug(f"SP_EJECUTADO | edictos_ia_procesar_accionistas id={row.id} id_fide={row.id_fide}")
    cursor.execute("{CALL edictos_ia_procesar_accionistas (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}", params)
    conn.commit()

cursor.close()
conn.close()
