fix: ajustes parametros tecma

This commit is contained in:
Ernesto Herrera
2026-05-22 12:43:21 -06:00
parent 1afe23182f
commit a65f34d852

View File

@@ -1944,7 +1944,7 @@
" if not resumen.empty: resumen.to_excel(w, sheet_name='Resumen', index=False)\n", " if not resumen.empty: resumen.to_excel(w, sheet_name='Resumen', index=False)\n",
"\n", "\n",
"\n", "\n",
"def ejecutar_valores(plan, dry_run=True, progress=None, log=print):\n", "def ejecutar_valores(plan, dry_run=True, aplicar_vtmn=True, aplicar_mptemp=False, progress=None, log=print):\n",
" \"\"\"Paso B: UPDATE SPartidasExpo por cada partida del plan, usando 3-part\n", " \"\"\"Paso B: UPDATE SPartidasExpo por cada partida del plan, usando 3-part\n",
" naming si la fila trae BaseDeDatos/Esquema (cuando se uso shelter).\n", " naming si la fila trae BaseDeDatos/Esquema (cuando se uso shelter).\n",
" Transaccion por (pedimento, BD) rollback si alguna partida falla.\"\"\"\n", " Transaccion por (pedimento, BD) rollback si alguna partida falla.\"\"\"\n",
@@ -1968,14 +1968,21 @@
" target = f'[{db}].[{esq}].SPartidasExpo'\n", " target = f'[{db}].[{esq}].SPartidasExpo'\n",
" else:\n", " else:\n",
" target = 'SPartidasExpo'\n", " target = 'SPartidasExpo'\n",
" upd_sql = f\"UPDATE {target} SET VALORTOTALME = ?, VALORTOTALMN = ? WHERE FACTURAEXPO = ? AND LINEA = ?\"\n", " sets, params_tmpl = ['VALORTOTALME = ?'], ['ME']\n",
" if aplicar_vtmn:\n",
" sets.append('VALORTOTALMN = ?'); params_tmpl.append('MN')\n",
" if aplicar_mptemp:\n",
" sets.append('ValorMPTempMN = ?'); params_tmpl.append('MN')\n",
" upd_sql = f\"UPDATE {target} SET {', '.join(sets)} WHERE FACTURAEXPO = ? AND LINEA = ?\"\n",
" try:\n", " try:\n",
" with scaii_conn.cursor() as cur:\n", " with scaii_conn.cursor() as cur:\n",
" for _, p in fil.iterrows():\n", " for _, p in fil.iterrows():\n",
" if not dry_run:\n", " if not dry_run:\n",
" cur.execute(upd_sql,\n", " vals = []\n",
" float(p['NUEVO_ME']), float(p['NUEVO_MN']),\n", " for t in params_tmpl:\n",
" p['FACTURAEXPO'], int(p['LINEA']))\n", " vals.append(float(p['NUEVO_ME']) if t == 'ME' else float(p['NUEVO_MN']))\n",
" vals.extend([p['FACTURAEXPO'], int(p['LINEA'])])\n",
" cur.execute(upd_sql, *vals)\n",
" upd += 1\n", " upd += 1\n",
" if not dry_run: scaii_conn.commit()\n", " if not dry_run: scaii_conn.commit()\n",
" except Exception as e:\n", " except Exception as e:\n",
@@ -4577,6 +4584,8 @@
"btn_val_xlsx.on_click(_on_val_xlsx)\n", "btn_val_xlsx.on_click(_on_val_xlsx)\n",
"\n", "\n",
"dry_val = W.Checkbox(value=True, description='DRY_RUN (simular sin escribir)')\n", "dry_val = W.Checkbox(value=True, description='DRY_RUN (simular sin escribir)')\n",
"chk_val_vtmn = W.Checkbox(value=True, description='Aplicar a VALORTOTALMN', indent=False, layout={'width':'280px'})\n",
"chk_val_mptemp = W.Checkbox(value=False, description='Aplicar a ValorMPTempMN', indent=False, layout={'width':'280px'})\n",
"btn_val_ejecutar = W.Button(description='Ejecutar ajuste (Paso B)', button_style='warning', icon='play', layout={'width':'280px'})\n", "btn_val_ejecutar = W.Button(description='Ejecutar ajuste (Paso B)', button_style='warning', icon='play', layout={'width':'280px'})\n",
"bar_val_b = _mkbar('Ejecucion Valores')\n", "bar_val_b = _mkbar('Ejecucion Valores')\n",
"out_val_ejec = W.Output(layout=OUT_STYLE)\n", "out_val_ejec = W.Output(layout=OUT_STYLE)\n",
@@ -4588,7 +4597,10 @@
" if 'val_plan' not in _state:\n", " if 'val_plan' not in _state:\n",
" print('ERROR: corre primero Analizar.'); return\n", " print('ERROR: corre primero Analizar.'); return\n",
" print(f'(DB actual: {DB_ACTUAL})')\n", " print(f'(DB actual: {DB_ACTUAL})')\n",
" ejecutar_valores(_state['val_plan'], dry_run=dry_val.value, log=print, progress=bar_val_b)\n", " ejecutar_valores(_state['val_plan'], dry_run=dry_val.value,\n",
" aplicar_vtmn=bool(chk_val_vtmn.value),\n",
" aplicar_mptemp=bool(chk_val_mptemp.value),\n",
" log=print, progress=bar_val_b)\n",
"btn_val_ejecutar.on_click(_on_val_ejecutar)\n", "btn_val_ejecutar.on_click(_on_val_ejecutar)\n",
"\n", "\n",
"tab_valores = W.VBox([\n", "tab_valores = W.VBox([\n",
@@ -4610,6 +4622,8 @@
" '<p style=\"color:#555;margin:0 0 8px 0;\">UPDATE VALORTOTALME y VALORTOTALMN por (FACTURAEXPO, LINEA). '\n", " '<p style=\"color:#555;margin:0 0 8px 0;\">UPDATE VALORTOTALME y VALORTOTALMN por (FACTURAEXPO, LINEA). '\n",
" '<b>Corre primero con DRY_RUN activado.</b></p>'),\n", " '<b>Corre primero con DRY_RUN activado.</b></p>'),\n",
" W.HBox([dry_val]),\n", " W.HBox([dry_val]),\n",
" W.HTML('<small style=\"color:#555;\">Columnas MN a actualizar:</small>'),\n",
" W.HBox([chk_val_vtmn, chk_val_mptemp]),\n",
" btn_val_ejecutar, bar_val_b,\n", " btn_val_ejecutar, bar_val_b,\n",
" out_val_ejec,\n", " out_val_ejec,\n",
"])\n", "])\n",