import logging
import sys
import os
from datetime import date

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()

cursor.execute("{CALL data_tablas_edictos_update (?)}", 'update_vinculaciones')
rows = cursor.fetchall()

for row in rows:
    if not row.cuit_sociedad:
        logging.warning(f"REGISTRO_OMITIDO | cuit_sociedad NULL cuit_vinculada={row.cuit_vinculada}")
        continue
    if row.rol is None:
        logging.warning(f"REGISTRO_OMITIDO | rol NULL cuit_sociedad={row.cuit_sociedad} cuit_vinculada={row.cuit_vinculada}")
        continue
    
    periodo_mes  = row.periodo_mes.replace(day=1) if row.periodo_mes else None
    periodo_anio = row.periodo_anio.replace(month=1, day=1) if row.periodo_anio else None
    params = (
        row.cuit_sociedad,
        row.cuit_vinculada,
        row.rol,
        periodo_mes,
        periodo_anio,
        row.detalle,
        1,
        row.id_padron_sociedad,
        row.id_padron_vinculada,
        "0",
        row.created_by,
        row.relaciones_vinc_id
    )
    logging.debug(f"SP_EJECUTADO | sp_actualizar_vinculaciones cuit_sociedad={row.cuit_sociedad} cuit_vinculada={row.cuit_vinculada}")
    cursor.execute("{CALL sp_actualizar_vinculaciones (?,?,?,?,?,?,?,?,?,?,?, ?)}", params)
    conn.commit()

cursor.close()
conn.close()