mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
Creados scripts
This commit is contained in:
Binary file not shown.
BIN
scripts/papeles_impresion/Tramos papel.xlsx
Normal file
BIN
scripts/papeles_impresion/Tramos papel.xlsx
Normal file
Binary file not shown.
95
scripts/papeles_impresion/loadMargenesPapelImpresion.py
Normal file
95
scripts/papeles_impresion/loadMargenesPapelImpresion.py
Normal file
@ -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()
|
||||
58
scripts/papeles_impresion/updatePrecioTonelada.py
Normal file
58
scripts/papeles_impresion/updatePrecioTonelada.py
Normal file
@ -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()
|
||||
Reference in New Issue
Block a user