From ff7ed8f594815720168d2fd7e63a71e18e7621ec Mon Sep 17 00:00:00 2001 From: imnavajas Date: Wed, 7 May 2025 11:51:52 +0200 Subject: [PATCH] Creados scripts --- .../ERP Safekat 2.0 - Papeles Impresion.xlsx | Bin 0 -> 23525 bytes scripts/papeles_impresion/Tramos papel.xlsx | Bin 0 -> 19669 bytes .../loadMargenesPapelImpresion.py | 95 ++++++++++++++++++ .../papeles_impresion/updatePrecioTonelada.py | 58 +++++++++++ 4 files changed, 153 insertions(+) create mode 100644 scripts/papeles_impresion/ERP Safekat 2.0 - Papeles Impresion.xlsx create mode 100644 scripts/papeles_impresion/Tramos papel.xlsx create mode 100644 scripts/papeles_impresion/loadMargenesPapelImpresion.py create mode 100644 scripts/papeles_impresion/updatePrecioTonelada.py diff --git a/scripts/papeles_impresion/ERP Safekat 2.0 - Papeles Impresion.xlsx b/scripts/papeles_impresion/ERP Safekat 2.0 - Papeles Impresion.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..17e6259289db48ec31e48867a8b7d7519bffd668 GIT binary patch literal 23525 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 bJNe&pqJ;^VGP(c&J>`s|EYs!=->&`u?s?y* literal 0 HcmV?d00001 diff --git a/scripts/papeles_impresion/Tramos papel.xlsx b/scripts/papeles_impresion/Tramos papel.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..29c801117b6fc28f83b3e785fa4ec80a9bf030db GIT binary patch literal 19669 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 literal 0 HcmV?d00001 diff --git a/scripts/papeles_impresion/loadMargenesPapelImpresion.py b/scripts/papeles_impresion/loadMargenesPapelImpresion.py new file mode 100644 index 00000000..a4ab9f5f --- /dev/null +++ b/scripts/papeles_impresion/loadMargenesPapelImpresion.py @@ -0,0 +1,95 @@ +import pandas as pd +import mysql.connector + +""" +Script para insertar márgenes en la tabla 'papel_impresion_margenes' en base a un archivo Excel. + +- Lee los papeles objetivo desde la hoja 'Papeles'. +- Lee los tramos de márgenes desde la hoja 'Tramos'. +- Elimina márgenes existentes de los papeles especificados. +- Inserta nuevos tramos de márgenes para cada papel. + +Requiere: +- Archivo Excel con hojas 'Papeles' y 'Tramos'. +- Conexión activa a la base de datos MySQL. +- Paquetes: pandas, mysql-connector-python + +Autor: IMN +Fecha: 07/05/2025 +""" + +# === CONFIGURACIÓN === +RUTA_EXCEL = "Tramos papel.xlsx" +DB_CONFIG = { + "host": "82.223.102.252", + "user": "erp-dev", + "password": "Txhn75@10", + "database": "erp-dev" +} + +# === CARGAR DATOS DESDE EXCEL === +df_papeles = pd.read_excel(RUTA_EXCEL, sheet_name="Papeles") +df_tramos = pd.read_excel(RUTA_EXCEL, sheet_name="Tramos") + +ids_papeles = df_papeles['ID'].dropna().astype(int).unique().tolist() +print("IDs de papeles cargados:", ids_papeles) + +# === CONEXIÓN A MYSQL === +conn = mysql.connector.connect(**DB_CONFIG) +cursor = conn.cursor() + +# === ELIMINAR MÁRGENES EXISTENTES === +delete_query = f""" +DELETE FROM papel_impresion_margenes +WHERE papel_impresion_id IN ({', '.join(map(str, ids_papeles))}); +""" +cursor.execute(delete_query) +print(f"Eliminadas entradas antiguas para {len(ids_papeles)} papeles.") + +# === ACTUALIZAR PRECIO TONELADA PARA CADA PAPEL === +update_query = """ +UPDATE lg_papel_impresion +SET precio_tonelada = %s +WHERE id = %s +""" + +# Preparar los valores (precio, id) +updates = [] +for _, row in df_papeles.iterrows(): + papel_id = int(row["ID"]) + precio = float(row["Precio Tonelada"]) + updates.append((precio, papel_id)) + +# Ejecutar actualizaciones +cursor.executemany(update_query, updates) +conn.commit() +print(f"Actualizados {cursor.rowcount} precios en lg_papel_impresion.") + +# === PREPARAR DATOS NUEVOS === +insert_query = """ +INSERT INTO papel_impresion_margenes ( + papel_impresion_id, paginas_min, paginas_max, margen, + user_created_id, user_updated_id, is_deleted, deleted_at, + created_at, updated_at +) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, NOW(), NOW()) +""" + +data = [] +for papel_id in ids_papeles: + for _, row in df_tramos.iterrows(): + data.append(( + papel_id, + int(row["Páginas min"]), + int(row["Páginas máx"]), + float(row["%"]), + 10, 10, 0, None + )) + +# === INSERTAR NUEVOS REGISTROS === +cursor.executemany(insert_query, data) +conn.commit() + +# === FINALIZAR === +print(f"Insertadas {cursor.rowcount} filas.") +cursor.close() +conn.close() diff --git a/scripts/papeles_impresion/updatePrecioTonelada.py b/scripts/papeles_impresion/updatePrecioTonelada.py new file mode 100644 index 00000000..531105dc --- /dev/null +++ b/scripts/papeles_impresion/updatePrecioTonelada.py @@ -0,0 +1,58 @@ +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()