Files
safekat/scripts/papeles_impresion/updatePrecioTonelada.py
2025-05-07 11:51:52 +02:00

59 lines
1.5 KiB
Python

import pandas as pd
import mysql.connector
"""
Script para actualizar la columna 'precio_tonelada' en la tabla 'lg_papel_impresion' desde un archivo Excel.
- Lee los valores de ID y Precio desde un archivo Excel con cabecera clara.
- Conecta a la base de datos y actualiza los precios de tonelada para los IDs especificados.
Requiere:
- Archivo Excel con columnas 'ID' y 'Precio Tonelada'.
- Conexión activa a la base de datos MySQL.
- Paquetes: pandas, mysql-connector-python
Autor: IMN
Fecha: 07/05/2025
"""
# === CONFIGURACIÓN DE LA BASE DE DATOS ===
DB_CONFIG = {
"host": "82.223.102.252",
"user": "erp-dev",
"password": "Txhn75@10",
"database": "erp-dev"
}
# === CARGAR DATOS DESDE EXCEL ===
df = pd.read_excel("ERP Safekat 2.0 - Papeles Impresion.xlsx")
# === CONEXIÓN A MYSQL ===
conn = mysql.connector.connect(**DB_CONFIG)
cursor = conn.cursor()
# === CONSULTA DE ACTUALIZACIÓN ===
update_query = """
UPDATE lg_papel_impresion
SET precio_tonelada = %s
WHERE id = %s
"""
# === PREPARAR DATOS ===
data = []
for _, row in df.iterrows():
try:
papel_id = int(row['ID'])
precio = float(row['Precio Tonelada'])
data.append((precio, papel_id))
except (ValueError, TypeError):
continue # Ignorar datos inválidos
# === EJECUTAR ACTUALIZACIONES ===
cursor.executemany(update_query, data)
conn.commit()
print(f"✅ Actualizados {cursor.rowcount} registros en lg_papel_impresion.")
# === CERRAR CONEXIÓN ===
cursor.close()
conn.close()