fix: titulos y descarga%kgs
This commit is contained in:
@@ -347,6 +347,9 @@
|
|||||||
" return df\n",
|
" return df\n",
|
||||||
"\n",
|
"\n",
|
||||||
"def _build_cobertura(df):\n",
|
"def _build_cobertura(df):\n",
|
||||||
|
" if df is None or df.empty or 'CANT_DESCARGADA' not in df.columns:\n",
|
||||||
|
" return pd.DataFrame(columns=['FACTURAEXPO','FECHA_FACTURAEXPO',\n",
|
||||||
|
" 'componentes_total','componentes_100pct','pct_promedio'])\n",
|
||||||
" df_d = df.copy()\n",
|
" df_d = df.copy()\n",
|
||||||
" df_d['cant_cubierta'] = df_d['CANT_DESCARGADA'].where(df_d['TIPO'].isin(['ORIGINAL','SUSTITUTO']), 0)\n",
|
" df_d['cant_cubierta'] = df_d['CANT_DESCARGADA'].where(df_d['TIPO'].isin(['ORIGINAL','SUSTITUTO']), 0)\n",
|
||||||
" cob_comp = df_d.groupby(['FACTURAEXPO','FECHA_FACTURAEXPO','LINEA','PT','COMPONENTE_MP','UNIMED_BOM','CANT_REQUERIDA'],\n",
|
" cob_comp = df_d.groupby(['FACTURAEXPO','FECHA_FACTURAEXPO','LINEA','PT','COMPONENTE_MP','UNIMED_BOM','CANT_REQUERIDA'],\n",
|
||||||
@@ -597,7 +600,7 @@
|
|||||||
"def graficar_impo_expo(cmp):\n",
|
"def graficar_impo_expo(cmp):\n",
|
||||||
" plt.close('all')\n",
|
" plt.close('all')\n",
|
||||||
" fig, axes = plt.subplots(2, 1, figsize=(11, 8))\n",
|
" fig, axes = plt.subplots(2, 1, figsize=(11, 8))\n",
|
||||||
" fig.suptitle('IMPO vs EXPO por aanio‚±o', fontsize=14, fontweight='bold', y=1.0)\n",
|
" fig.suptitle('IMPO vs EXPO por a-o', fontsize=14, fontweight='bold', y=1.0)\n",
|
||||||
" x = cmp['ANIO'].astype(int).values\n",
|
" x = cmp['ANIO'].astype(int).values\n",
|
||||||
" xpos = np.arange(len(x)); ancho = 0.4\n",
|
" xpos = np.arange(len(x)); ancho = 0.4\n",
|
||||||
" cI, cE = '#1976D2', '#F57C00'\n",
|
" cI, cE = '#1976D2', '#F57C00'\n",
|
||||||
@@ -617,7 +620,7 @@
|
|||||||
" ax = axes[1]\n",
|
" ax = axes[1]\n",
|
||||||
" b1 = ax.bar(xpos-ancho/2, cmp['valor_me_impo'], ancho, label='IMPO', color=cI)\n",
|
" b1 = ax.bar(xpos-ancho/2, cmp['valor_me_impo'], ancho, label='IMPO', color=cI)\n",
|
||||||
" b2 = ax.bar(xpos+ancho/2, cmp['valor_me_expo'], ancho, label='EXPO', color=cE)\n",
|
" b2 = ax.bar(xpos+ancho/2, cmp['valor_me_expo'], ancho, label='EXPO', color=cE)\n",
|
||||||
" ax.set_title('Valor ME (USD)'); ax.set_xticks(xpos); ax.set_xticklabels(x); ax.set_xlabel('Aanio‚±o')\n",
|
" ax.set_title('Valor ME (USD)'); ax.set_xticks(xpos); ax.set_xticklabels(x); ax.set_xlabel('A-o')\n",
|
||||||
" ax.yaxis.set_major_formatter(mtick.FuncFormatter(lambda v,_: f'${v:,.0f}'))\n",
|
" ax.yaxis.set_major_formatter(mtick.FuncFormatter(lambda v,_: f'${v:,.0f}'))\n",
|
||||||
" ax.legend(loc='upper left'); ax.grid(axis='y', linestyle=':', alpha=0.5)\n",
|
" ax.legend(loc='upper left'); ax.grid(axis='y', linestyle=':', alpha=0.5)\n",
|
||||||
" ax.set_ylim(top=ax.get_ylim()[1]*1.18); lab(ax, b1, cI, '${:,.0f}'); lab(ax, b2, cE, '${:,.0f}')\n",
|
" ax.set_ylim(top=ax.get_ylim()[1]*1.18); lab(ax, b1, cI, '${:,.0f}'); lab(ax, b2, cE, '${:,.0f}')\n",
|
||||||
@@ -627,7 +630,7 @@
|
|||||||
"def graficar_saldos_anio(por_anio):\n",
|
"def graficar_saldos_anio(por_anio):\n",
|
||||||
" plt.close('all')\n",
|
" plt.close('all')\n",
|
||||||
" fig, axes = plt.subplots(1, 2, figsize=(13, 5))\n",
|
" fig, axes = plt.subplots(1, 2, figsize=(13, 5))\n",
|
||||||
" fig.suptitle('Saldo disponible por aanio‚±o de entrada', fontsize=13, fontweight='bold')\n",
|
" fig.suptitle('Saldo disponible por a-o de entrada', fontsize=13, fontweight='bold')\n",
|
||||||
" x = por_anio['ANIO_ENTRADA'].astype(int).astype(str).values\n",
|
" x = por_anio['ANIO_ENTRADA'].astype(int).astype(str).values\n",
|
||||||
" axes[0].bar(x, por_anio['saldo_cant'], color='#42A5F5')\n",
|
" axes[0].bar(x, por_anio['saldo_cant'], color='#42A5F5')\n",
|
||||||
" axes[0].set_title('Cantidad'); axes[0].grid(axis='y', linestyle=':', alpha=0.5)\n",
|
" axes[0].set_title('Cantidad'); axes[0].grid(axis='y', linestyle=':', alpha=0.5)\n",
|
||||||
@@ -686,7 +689,7 @@
|
|||||||
"def graficar_pesos_anio(cmp):\n",
|
"def graficar_pesos_anio(cmp):\n",
|
||||||
" plt.close('all')\n",
|
" plt.close('all')\n",
|
||||||
" fig, ax = plt.subplots(figsize=(13, 5.5))\n",
|
" fig, ax = plt.subplots(figsize=(13, 5.5))\n",
|
||||||
" fig.suptitle('Peso por aanio‚±o anio‚ IMPO / EXPO / CONSUMIDO / DESCARGAS', fontsize=13, fontweight='bold')\n",
|
" fig.suptitle('Peso por a-o - IMPO / EXPO / CONSUMIDO / DESCARGAS', fontsize=13, fontweight='bold')\n",
|
||||||
" x = cmp['ANIO'].astype(int).values\n",
|
" x = cmp['ANIO'].astype(int).values\n",
|
||||||
" xpos = np.arange(len(x)); ancho = 0.2\n",
|
" xpos = np.arange(len(x)); ancho = 0.2\n",
|
||||||
" cI, cE, cC, cD = '#1976D2', '#F57C00', '#43A047', '#8E24AA'\n",
|
" cI, cE, cC, cD = '#1976D2', '#F57C00', '#43A047', '#8E24AA'\n",
|
||||||
@@ -694,7 +697,7 @@
|
|||||||
" b2 = ax.bar(xpos-0.5*ancho, cmp['peso_expo'], ancho, label='EXPO', color=cE)\n",
|
" b2 = ax.bar(xpos-0.5*ancho, cmp['peso_expo'], ancho, label='EXPO', color=cE)\n",
|
||||||
" b3 = ax.bar(xpos+0.5*ancho, cmp['peso_consumido'], ancho, label='CONSUMIDO', color=cC)\n",
|
" b3 = ax.bar(xpos+0.5*ancho, cmp['peso_consumido'], ancho, label='CONSUMIDO', color=cC)\n",
|
||||||
" b4 = ax.bar(xpos+1.5*ancho, cmp['peso_descargas'], ancho, label='DESCARGAS', color=cD)\n",
|
" b4 = ax.bar(xpos+1.5*ancho, cmp['peso_descargas'], ancho, label='DESCARGAS', color=cD)\n",
|
||||||
" ax.set_xticks(xpos); ax.set_xticklabels(x); ax.set_xlabel('Aanio‚±o')\n",
|
" ax.set_xticks(xpos); ax.set_xticklabels(x); ax.set_xlabel('A-o')\n",
|
||||||
" ax.set_ylabel('Peso neto')\n",
|
" ax.set_ylabel('Peso neto')\n",
|
||||||
" ax.yaxis.set_major_formatter(mtick.FuncFormatter(lambda v,_: f'{v:,.0f}'))\n",
|
" ax.yaxis.set_major_formatter(mtick.FuncFormatter(lambda v,_: f'{v:,.0f}'))\n",
|
||||||
" ax.legend(loc='upper left'); ax.grid(axis='y', linestyle=':', alpha=0.5)\n",
|
" ax.legend(loc='upper left'); ax.grid(axis='y', linestyle=':', alpha=0.5)\n",
|
||||||
@@ -734,19 +737,19 @@
|
|||||||
" cmp['cantidad_impo'] = cmp['cantidad_impo'].round(2)\n",
|
" cmp['cantidad_impo'] = cmp['cantidad_impo'].round(2)\n",
|
||||||
" cmp['cantidad_expo'] = cmp['cantidad_expo'].round(2)\n",
|
" cmp['cantidad_expo'] = cmp['cantidad_expo'].round(2)\n",
|
||||||
" cmp['diferencia'] = (cmp['cantidad_expo'] - cmp['cantidad_impo']).round(2)\n",
|
" cmp['diferencia'] = (cmp['cantidad_expo'] - cmp['cantidad_impo']).round(2)\n",
|
||||||
" prog.done('Cantidades por aanio‚±o listas')\n",
|
" prog.done('Cantidades por a-o listas')\n",
|
||||||
" return cmp\n",
|
" return cmp\n",
|
||||||
"\n",
|
"\n",
|
||||||
"def graficar_cantidades_anio(cmp):\n",
|
"def graficar_cantidades_anio(cmp):\n",
|
||||||
" plt.close('all')\n",
|
" plt.close('all')\n",
|
||||||
" fig, ax = plt.subplots(figsize=(12, 5.5))\n",
|
" fig, ax = plt.subplots(figsize=(12, 5.5))\n",
|
||||||
" fig.suptitle('Cantidades por aanio‚±o anio‚ IMPO vs EXPO', fontsize=13, fontweight='bold')\n",
|
" fig.suptitle('Cantidades por a-o - IMPO vs EXPO', fontsize=13, fontweight='bold')\n",
|
||||||
" x = cmp['ANIO'].astype(int).values\n",
|
" x = cmp['ANIO'].astype(int).values\n",
|
||||||
" xpos = np.arange(len(x)); ancho = 0.4\n",
|
" xpos = np.arange(len(x)); ancho = 0.4\n",
|
||||||
" cI, cE = '#1976D2', '#F57C00'\n",
|
" cI, cE = '#1976D2', '#F57C00'\n",
|
||||||
" b1 = ax.bar(xpos-ancho/2, cmp['cantidad_impo'], ancho, label='IMPO', color=cI)\n",
|
" b1 = ax.bar(xpos-ancho/2, cmp['cantidad_impo'], ancho, label='IMPO', color=cI)\n",
|
||||||
" b2 = ax.bar(xpos+ancho/2, cmp['cantidad_expo'], ancho, label='EXPO', color=cE)\n",
|
" b2 = ax.bar(xpos+ancho/2, cmp['cantidad_expo'], ancho, label='EXPO', color=cE)\n",
|
||||||
" ax.set_xticks(xpos); ax.set_xticklabels(x); ax.set_xlabel('Aanio‚±o')\n",
|
" ax.set_xticks(xpos); ax.set_xticklabels(x); ax.set_xlabel('A-o')\n",
|
||||||
" ax.set_ylabel('Cantidad (suma de unidades, varias UM)')\n",
|
" ax.set_ylabel('Cantidad (suma de unidades, varias UM)')\n",
|
||||||
" ax.yaxis.set_major_formatter(mtick.FuncFormatter(lambda v,_: f'{v:,.0f}'))\n",
|
" ax.yaxis.set_major_formatter(mtick.FuncFormatter(lambda v,_: f'{v:,.0f}'))\n",
|
||||||
" ax.legend(loc='upper left'); ax.grid(axis='y', linestyle=':', alpha=0.5)\n",
|
" ax.legend(loc='upper left'); ax.grid(axis='y', linestyle=':', alpha=0.5)\n",
|
||||||
@@ -792,7 +795,7 @@
|
|||||||
" cmp['cantidad_impo'] = cmp['cantidad_impo'].round(2)\n",
|
" cmp['cantidad_impo'] = cmp['cantidad_impo'].round(2)\n",
|
||||||
" cmp['cantidad_expo'] = cmp['cantidad_expo'].round(2)\n",
|
" cmp['cantidad_expo'] = cmp['cantidad_expo'].round(2)\n",
|
||||||
" cmp['diferencia'] = (cmp['cantidad_expo'] - cmp['cantidad_impo']).round(2)\n",
|
" cmp['diferencia'] = (cmp['cantidad_expo'] - cmp['cantidad_impo']).round(2)\n",
|
||||||
" prog.done('Cantidades por aanio‚±o + UM listas')\n",
|
" prog.done('Cantidades por a-o + UM listas')\n",
|
||||||
" return cmp\n",
|
" return cmp\n",
|
||||||
"\n",
|
"\n",
|
||||||
"def graficar_cantidades_anio_um(cmp, top_ums=None):\n",
|
"def graficar_cantidades_anio_um(cmp, top_ums=None):\n",
|
||||||
@@ -809,7 +812,7 @@
|
|||||||
" return fig\n",
|
" return fig\n",
|
||||||
" n = len(top_ums)\n",
|
" n = len(top_ums)\n",
|
||||||
" fig, axes = plt.subplots(n, 1, figsize=(12, 3.2*n), squeeze=False)\n",
|
" fig, axes = plt.subplots(n, 1, figsize=(12, 3.2*n), squeeze=False)\n",
|
||||||
" fig.suptitle('Cantidades por aanio‚±o (separado por UM, top {} UMs)'.format(n), fontsize=13, fontweight='bold', y=1.0)\n",
|
" fig.suptitle('Cantidades por a-o (separado por UM, top {} UMs)'.format(n), fontsize=13, fontweight='bold', y=1.0)\n",
|
||||||
" for idx, um in enumerate(top_ums):\n",
|
" for idx, um in enumerate(top_ums):\n",
|
||||||
" sub = filt[filt['UM'] == um].sort_values('ANIO')\n",
|
" sub = filt[filt['UM'] == um].sort_values('ANIO')\n",
|
||||||
" ax = axes[idx][0]\n",
|
" ax = axes[idx][0]\n",
|
||||||
@@ -1944,7 +1947,7 @@
|
|||||||
"def ejecutar_valores(plan, dry_run=True, progress=None, log=print):\n",
|
"def ejecutar_valores(plan, dry_run=True, 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",
|
||||||
" assert isinstance(dry_run, bool), 'dry_run debe ser bool'\n",
|
" assert isinstance(dry_run, bool), 'dry_run debe ser bool'\n",
|
||||||
" prog = _Progress(progress)\n",
|
" prog = _Progress(progress)\n",
|
||||||
" if plan is None or plan.empty:\n",
|
" if plan is None or plan.empty:\n",
|
||||||
@@ -3241,11 +3244,11 @@
|
|||||||
"btn_p10.on_click(_on_p10)\n",
|
"btn_p10.on_click(_on_p10)\n",
|
||||||
"\n",
|
"\n",
|
||||||
"tab_desc = W.VBox([\n",
|
"tab_desc = W.VBox([\n",
|
||||||
" W.HTML('<h3>Paso 8 anio‚Â Pronostico de cobertura</h3>'),\n",
|
" W.HTML('<h3>Paso 8 - Pronostico de cobertura</h3>'),\n",
|
||||||
" btn_pron, bar_pron, out_pron,\n",
|
" btn_pron, bar_pron, out_pron,\n",
|
||||||
" W.HTML('<h3 style=\"margin-top:18px;\">Paso 9 anio‚ Descargas pendientes (NA anio‚¢ AC)</h3>'),\n",
|
" W.HTML('<h3 style=\"margin-top:18px;\">Paso 9 - Descargas pendientes (NA - AC)</h3>'),\n",
|
||||||
" W.HBox([modo9, dry9]), W.HBox([fd9, fh9]), btn_p9, bar_p9, out_p9,\n",
|
" W.HBox([modo9, dry9]), W.HBox([fd9, fh9]), btn_p9, bar_p9, out_p9,\n",
|
||||||
" W.HTML('<h3 style=\"margin-top:18px;\">Paso 10 anio‚Â Complementaria (sobre facturas AC)</h3>'),\n",
|
" W.HTML('<h3 style=\"margin-top:18px;\">Paso 10 - Complementaria (sobre facturas AC)</h3>'),\n",
|
||||||
" W.HBox([modo10, dry10]), W.HBox([fd10, fh10]), facts_obj, btn_p10, bar_p10, out_p10,\n",
|
" W.HBox([modo10, dry10]), W.HBox([fd10, fh10]), facts_obj, btn_p10, bar_p10, out_p10,\n",
|
||||||
"])\n",
|
"])\n",
|
||||||
"\n",
|
"\n",
|
||||||
@@ -3275,46 +3278,46 @@
|
|||||||
" print('Calculando IMPO vs EXPO...')\n",
|
" print('Calculando IMPO vs EXPO...')\n",
|
||||||
" df_imp, df_exp, cmp = calcular_impo_expo_anio(progress=bar_an)\n",
|
" df_imp, df_exp, cmp = calcular_impo_expo_anio(progress=bar_an)\n",
|
||||||
" _state['df_imp'], _state['df_exp'], _state['cmp_impo_expo'] = df_imp, df_exp, cmp\n",
|
" _state['df_imp'], _state['df_exp'], _state['cmp_impo_expo'] = df_imp, df_exp, cmp\n",
|
||||||
" print(f' IMPO aanio‚±os: {len(df_imp)} | EXPO aanio‚±os: {len(df_exp)} | Comparativo: {len(cmp)}')\n",
|
" print(f' IMPO a-os: {len(df_imp)} | EXPO a-os: {len(df_exp)} | Comparativo: {len(cmp)}')\n",
|
||||||
" print('Calculando pesos IMPO/EXPO/SALDO por aanio‚±o...')\n",
|
" print('Calculando pesos IMPO/EXPO/SALDO por a-o...')\n",
|
||||||
" cmp_pesos = calcular_pesos_por_anio(progress=bar_an)\n",
|
" cmp_pesos = calcular_pesos_por_anio(progress=bar_an)\n",
|
||||||
" _state['cmp_pesos_anio'] = cmp_pesos\n",
|
" _state['cmp_pesos_anio'] = cmp_pesos\n",
|
||||||
" print(f' Comparativo pesos: {len(cmp_pesos)} aanio‚±os')\n",
|
" print(f' Comparativo pesos: {len(cmp_pesos)} a-os')\n",
|
||||||
" print('Calculando cantidades IMPO/EXPO por aanio‚±o...')\n",
|
" print('Calculando cantidades IMPO/EXPO por a-o...')\n",
|
||||||
" cmp_cant = calcular_cantidades_por_anio(progress=bar_an)\n",
|
" cmp_cant = calcular_cantidades_por_anio(progress=bar_an)\n",
|
||||||
" _state['cmp_cantidades_anio'] = cmp_cant\n",
|
" _state['cmp_cantidades_anio'] = cmp_cant\n",
|
||||||
" print(f' Comparativo cantidades: {len(cmp_cant)} aanio‚±os')\n",
|
" print(f' Comparativo cantidades: {len(cmp_cant)} a-os')\n",
|
||||||
" print('Calculando cantidades IMPO/EXPO por aanio‚±o + UM...')\n",
|
" print('Calculando cantidades IMPO/EXPO por a-o + UM...')\n",
|
||||||
" cmp_cant_um = calcular_cantidades_por_anio_um(progress=bar_an)\n",
|
" cmp_cant_um = calcular_cantidades_por_anio_um(progress=bar_an)\n",
|
||||||
" _state['cmp_cantidades_anio_um'] = cmp_cant_um\n",
|
" _state['cmp_cantidades_anio_um'] = cmp_cant_um\n",
|
||||||
" print(f' Comparativo cantidades por UM: {len(cmp_cant_um)} filas')\n",
|
" print(f' Comparativo cantidades por UM: {len(cmp_cant_um)} filas')\n",
|
||||||
" with out_an_anio:\n",
|
" with out_an_anio:\n",
|
||||||
" clear_output()\n",
|
" clear_output()\n",
|
||||||
" display(HTML('<h4>Saldo disponible por aanio‚±o (de entrada del lote)</h4>'))\n",
|
" display(HTML('<h4>Saldo disponible por a-o (de entrada del lote)</h4>'))\n",
|
||||||
" display(_state['por_anio_saldos'])\n",
|
" display(_state['por_anio_saldos'])\n",
|
||||||
" if not _state['por_anio_saldos'].empty:\n",
|
" if not _state['por_anio_saldos'].empty:\n",
|
||||||
" fig = graficar_saldos_anio(_state['por_anio_saldos']); display(fig); plt.close(fig)\n",
|
" fig = graficar_saldos_anio(_state['por_anio_saldos']); display(fig); plt.close(fig)\n",
|
||||||
" with out_an_imp_exp:\n",
|
" with out_an_imp_exp:\n",
|
||||||
" clear_output()\n",
|
" clear_output()\n",
|
||||||
" display(HTML('<h4>IMPO vs EXPO por aanio‚±o</h4>'))\n",
|
" display(HTML('<h4>IMPO vs EXPO por a-o</h4>'))\n",
|
||||||
" display(_state['cmp_impo_expo'])\n",
|
" display(_state['cmp_impo_expo'])\n",
|
||||||
" if not _state['cmp_impo_expo'].empty:\n",
|
" if not _state['cmp_impo_expo'].empty:\n",
|
||||||
" fig = graficar_impo_expo(_state['cmp_impo_expo']); display(fig); plt.close(fig)\n",
|
" fig = graficar_impo_expo(_state['cmp_impo_expo']); display(fig); plt.close(fig)\n",
|
||||||
" with out_an_pesos:\n",
|
" with out_an_pesos:\n",
|
||||||
" clear_output()\n",
|
" clear_output()\n",
|
||||||
" display(HTML('<h4>Peso por aanio‚±o anio‚ IMPO / EXPO / CONSUMIDO / DESCARGAS</h4>'))\n",
|
" display(HTML('<h4>Peso por a-o - IMPO / EXPO / CONSUMIDO / DESCARGAS</h4>'))\n",
|
||||||
" display(_state['cmp_pesos_anio'])\n",
|
" display(_state['cmp_pesos_anio'])\n",
|
||||||
" if not _state['cmp_pesos_anio'].empty:\n",
|
" if not _state['cmp_pesos_anio'].empty:\n",
|
||||||
" fig = graficar_pesos_anio(_state['cmp_pesos_anio']); display(fig); plt.close(fig)\n",
|
" fig = graficar_pesos_anio(_state['cmp_pesos_anio']); display(fig); plt.close(fig)\n",
|
||||||
" with out_an_cant:\n",
|
" with out_an_cant:\n",
|
||||||
" clear_output()\n",
|
" clear_output()\n",
|
||||||
" display(HTML('<h4>Cantidades por aanio‚±o anio‚ IMPO vs EXPO</h4>'))\n",
|
" display(HTML('<h4>Cantidades por a-o - IMPO vs EXPO</h4>'))\n",
|
||||||
" display(_state['cmp_cantidades_anio'])\n",
|
" display(_state['cmp_cantidades_anio'])\n",
|
||||||
" if not _state['cmp_cantidades_anio'].empty:\n",
|
" if not _state['cmp_cantidades_anio'].empty:\n",
|
||||||
" fig = graficar_cantidades_anio(_state['cmp_cantidades_anio']); display(fig); plt.close(fig)\n",
|
" fig = graficar_cantidades_anio(_state['cmp_cantidades_anio']); display(fig); plt.close(fig)\n",
|
||||||
" with out_an_cant_um:\n",
|
" with out_an_cant_um:\n",
|
||||||
" clear_output()\n",
|
" clear_output()\n",
|
||||||
" display(HTML('<h4>Cantidades por aanio‚±o + UM (separado por unidad de medida)</h4>'))\n",
|
" display(HTML('<h4>Cantidades por a-o + UM (separado por unidad de medida)</h4>'))\n",
|
||||||
" display(_state['cmp_cantidades_anio_um'])\n",
|
" display(_state['cmp_cantidades_anio_um'])\n",
|
||||||
" if not _state['cmp_cantidades_anio_um'].empty:\n",
|
" if not _state['cmp_cantidades_anio_um'].empty:\n",
|
||||||
" fig = graficar_cantidades_anio_um(_state['cmp_cantidades_anio_um']); display(fig); plt.close(fig)\n",
|
" fig = graficar_cantidades_anio_um(_state['cmp_cantidades_anio_um']); display(fig); plt.close(fig)\n",
|
||||||
@@ -3332,7 +3335,7 @@
|
|||||||
"btn_an_xlsx.on_click(_on_an_xlsx)\n",
|
"btn_an_xlsx.on_click(_on_an_xlsx)\n",
|
||||||
"\n",
|
"\n",
|
||||||
"tab_an = W.VBox([\n",
|
"tab_an = W.VBox([\n",
|
||||||
" W.HTML('<h3>Ananio‚¡lisis SSaldoTem + IMPO vs EXPO</h3>'),\n",
|
" W.HTML('<h3>An-lisis SSaldoTem + IMPO vs EXPO</h3>'),\n",
|
||||||
" W.HBox([btn_an, btn_an_xlsx]), bar_an, out_an_log, out_an_anio, out_an_imp_exp, out_an_pesos, out_an_cant, out_an_cant_um,\n",
|
" W.HBox([btn_an, btn_an_xlsx]), bar_an, out_an_log, out_an_anio, out_an_imp_exp, out_an_pesos, out_an_cant, out_an_cant_um,\n",
|
||||||
"])\n",
|
"])\n",
|
||||||
"\n",
|
"\n",
|
||||||
@@ -3357,7 +3360,7 @@
|
|||||||
"btn_nlp.on_click(_on_nlp)\n",
|
"btn_nlp.on_click(_on_nlp)\n",
|
||||||
"\n",
|
"\n",
|
||||||
"tab_nlp = W.VBox([\n",
|
"tab_nlp = W.VBox([\n",
|
||||||
" W.HTML('<h3>Sustitutos NLP anio‚Â TF-IDF + coseno</h3>'),\n",
|
" W.HTML('<h3>Sustitutos NLP - TF-IDF + coseno</h3>'),\n",
|
||||||
" min_sim, top_n, dry_nlp, btn_nlp, bar_nlp, out_nlp,\n",
|
" min_sim, top_n, dry_nlp, btn_nlp, bar_nlp, out_nlp,\n",
|
||||||
"])\n",
|
"])\n",
|
||||||
"\n",
|
"\n",
|
||||||
@@ -3408,13 +3411,13 @@
|
|||||||
"btn_p12c.on_click(_on_p12c)\n",
|
"btn_p12c.on_click(_on_p12c)\n",
|
||||||
"\n",
|
"\n",
|
||||||
"tab_kg = W.VBox([\n",
|
"tab_kg = W.VBox([\n",
|
||||||
" W.HTML('<h3>Paso 12 anio‚Â Descarga por % de KGS</h3>'\n",
|
" W.HTML('<h3>Paso 12 - Descarga por % de KGS</h3>'\n",
|
||||||
" '<p style=\"margin:0 0 10px 0;color:#555;\">'\n",
|
" '<p style=\"margin:0 0 10px 0;color:#555;\">'\n",
|
||||||
" 'cant_req = (BOM.CANTIDAD / 100) anio‚Â PESONETO de la partida. Mismo PEPS, UM y sustitutos.</p>'),\n",
|
" 'cant_req = (BOM.CANTIDAD / 100) - PESONETO de la partida. Mismo PEPS, UM y sustitutos.</p>'),\n",
|
||||||
" btn_pron12, bar_pron12, out_pron12,\n",
|
" btn_pron12, bar_pron12, out_pron12,\n",
|
||||||
" W.HTML('<h3 style=\"margin-top:18px;\">Paso 12 anio‚ Descargas pendientes KG (NA anio‚¢ AC)</h3>'),\n",
|
" W.HTML('<h3 style=\"margin-top:18px;\">Paso 12 - Descargas pendientes KG (NA - AC)</h3>'),\n",
|
||||||
" W.HBox([modo12, dry12]), W.HBox([fd12, fh12]), btn_p12, bar_p12, out_p12,\n",
|
" W.HBox([modo12, dry12]), W.HBox([fd12, fh12]), btn_p12, bar_p12, out_p12,\n",
|
||||||
" W.HTML('<h3 style=\"margin-top:18px;\">Paso 12 anio‚Â Complementaria KG (sobre facturas AC)</h3>'),\n",
|
" W.HTML('<h3 style=\"margin-top:18px;\">Paso 12 - Complementaria KG (sobre facturas AC)</h3>'),\n",
|
||||||
" W.HBox([modo12c, dry12c]), W.HBox([fd12c, fh12c]), facts_obj12, btn_p12c, bar_p12c, out_p12c,\n",
|
" W.HBox([modo12c, dry12c]), W.HBox([fd12c, fh12c]), facts_obj12, btn_p12c, bar_p12c, out_p12c,\n",
|
||||||
"])\n",
|
"])\n",
|
||||||
"\n",
|
"\n",
|
||||||
@@ -4662,7 +4665,7 @@
|
|||||||
" '<p style=\"color:#555;margin:0 0 8px 0;\">'\n",
|
" '<p style=\"color:#555;margin:0 0 8px 0;\">'\n",
|
||||||
" 'Recorre todas las bases de datos de la instancia SQL Server (las que el usuario '\n",
|
" 'Recorre todas las bases de datos de la instancia SQL Server (las que el usuario '\n",
|
||||||
" 'puede acceder y tienen la tabla <code>SPedimentos.PEDIMENTO</code>) y reporta en '\n",
|
" 'puede acceder y tienen la tabla <code>SPedimentos.PEDIMENTO</code>) y reporta en '\n",
|
||||||
" 'cual(es) base(s) vive cada pedimento del Excel. <b>Solo es diagnostico — no '\n",
|
" 'cual(es) base(s) vive cada pedimento del Excel. <b>Solo es diagnostico no '\n",
|
||||||
" 'modifica nada.</b> Util cuando el cliente tiene varias BDs y no sabes a cual '\n",
|
" 'modifica nada.</b> Util cuando el cliente tiene varias BDs y no sabes a cual '\n",
|
||||||
" 'apuntar el ajuste.</p>'),\n",
|
" 'apuntar el ajuste.</p>'),\n",
|
||||||
" W.HBox([btn_val_shelter]), bar_val_shelter,\n",
|
" W.HBox([btn_val_shelter]), bar_val_shelter,\n",
|
||||||
|
|||||||
Reference in New Issue
Block a user