Skip to content
GitHub

ETL Scripts - Cargas Masivas

bc_loader.py

Carga series monetarias (UF, USD, EUR) del Banco Central.


Flags: -fi, -fn, -m, -dryrun

previred_loader.py

Carga indicadores previsionales desde JSON emitido por Previred.


Flags: --period, --dry-run

impuesto_2cat_loader.py

Carga tramos de Impuesto Único de 2da Categoría (UTM + Tasas SII).


Flags: --year, --month, --periodo

sii_loader.py

Extractor headless de datos SII (Boletas, RCV).


Flags: -y, -m, -u, -p

run_cargas_sii.py

Orquestador que procesa archivos descargados y los carga a los tenants.


Config: [archivo.yml]


Descarga valores de indicadores económicos desde la API del Banco Central a la tabla parametros.monedas.

Terminal window
# Consulta rango de fechas sin insertar
python -m accounting_system.bc_loader -fi 2025-10-01 -fn 2025-10-31
Terminal window
# Inserta UF, USD, EUR en la base de datos
python -m accounting_system.bc_loader -fi 2025-10-01 -fn 2025-10-31 -m ALL -dryrun 0
ArgumentoDescripción
-fi, --fecha-inicioFecha inicio (YYYY-MM-DD)
-fn, --fecha-finFecha fin (YYYY-MM-DD)
-m, --monedaUF, USD, EUR o ALL (default)
-dryrun1 (solo ver) o 0 (insertar)

2. previred_loader.py (Indicadores Previsionales)

Section titled “2. previred_loader.py (Indicadores Previsionales)”

Carga indicadores (Topes, Rentas Mínimas, AFC, AFP) procesando la salida de emit_previred_json.py.

Terminal window
python -m accounting_system.previred_loader --period 2025-08 --dry-run
Terminal window
# ADVERTENCIA: Reemplaza datos existentes del período
python -m accounting_system.previred_loader --period 2025-08
ArgumentoDescripción
--periodFormato YYYY-MM
--schemaSchema destino (default: parametros)
--no-replaceEvita borrar los datos del período antes de insertar

3. impuesto_2cat_loader.py (Impuesto 2da Categoría)

Section titled “3. impuesto_2cat_loader.py (Impuesto 2da Categoría)”

Calcula y carga la tabla de Impuesto Único de Segunda Categoría basándose en la UTM del mes y las tasas oficiales obtenidas desde el SII.

Terminal window
# Genera tramos Mensual, Quincenal, Semanal y Diario
python -m accounting_system.impuesto_2cat_loader --year 2025 --month 10 --periodo all
Terminal window
# Solo mensual, forzando valor UTM
python -m accounting_system.impuesto_2cat_loader \
--year 2025 --month 10 \
--periodo mensual \
--utm 67890.50

Este loader inserta en parametros.impuesto_2cat:

  1. Tramos: Desde/Hasta en pesos
  2. Factor: Tasa de impuesto
  3. Rebaja: Cantidad a rebajar

Robot automatizado usando Playwright para extraer boletas (Honorarios) y RCV (Registro de Compras y Ventas) desde el portal del SII.

Terminal window
# Extracción completa para usuario específico
python -m accounting_system.sii_loader -y 2025 -m 10 -u 6000431-5 -p Password123

Si el archivo .env está configurado con USER_SII y PASS_SII, puede omitir las credenciales:

Terminal window
python -m accounting_system.sii_loader -y 2025 -m 10

Procesa los archivos descargados por sii_loader.py (u manualmente) y los carga en las bases de datos de operaciones.

  1. Lectura de Configuración: Lee el archivo YAML (ej. cargas_sii.yml) que define los pipelines.
  2. Escaneo: Busca en el directorio source_dir archivos que coincidan con los patrones definidos.
  3. Identificación Tenant: Extrae el RUT del nombre del archivo (ej. Account_12345678-9_...) para determinar la base de datos destino.
  4. Ejecución Pipeline: Ejecuta la secuencia de carga definida para ese tipo de archivo.
Terminal window
python accounting_system/run_cargas_sii.py cargas_sii.yml