diff --git a/PROYECTO/bin/vecorporativo.txt b/PROYECTO/bin/vecorporativo.txt
new file mode 100644
index 0000000..e69de29
diff --git a/PROYECTO/distbin/mbs.gar b/PROYECTO/distbin/mbs.gar
new file mode 100644
index 0000000..42b2e88
Binary files /dev/null and b/PROYECTO/distbin/mbs.gar differ
diff --git a/PROYECTO/mbsERP.4pw b/PROYECTO/mbsERP.4pw
index 66f95df..a4c28f0 100644
--- a/PROYECTO/mbsERP.4pw
+++ b/PROYECTO/mbsERP.4pw
@@ -158,11 +158,19 @@
+
+
+
+
+
+
+
+
@@ -596,9 +604,9 @@
-
-
-
+
+
+
@@ -608,17 +616,14 @@
-
-
-
+
+
+
-
-
-
\ No newline at end of file
diff --git a/PROYECTO/resources/mainmenu.4st b/PROYECTO/resources/mainmenu.4st
new file mode 100644
index 0000000..d064227
--- /dev/null
+++ b/PROYECTO/resources/mainmenu.4st
@@ -0,0 +1,98 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/PROYECTO/resources/mainmenu_A.4st b/PROYECTO/resources/mainmenu_A.4st
new file mode 100644
index 0000000..abc4799
--- /dev/null
+++ b/PROYECTO/resources/mainmenu_A.4st
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/PROYECTO/resources/mainmenu_B.4st b/PROYECTO/resources/mainmenu_B.4st
new file mode 100644
index 0000000..ab4bbbe
--- /dev/null
+++ b/PROYECTO/resources/mainmenu_B.4st
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/PROYECTO/resources/mainmenu_C.4st b/PROYECTO/resources/mainmenu_C.4st
new file mode 100644
index 0000000..ed23e14
--- /dev/null
+++ b/PROYECTO/resources/mainmenu_C.4st
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/PROYECTO/resources/mainmenu_D.4st b/PROYECTO/resources/mainmenu_D.4st
new file mode 100644
index 0000000..ba46967
--- /dev/null
+++ b/PROYECTO/resources/mainmenu_D.4st
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/PROYECTO/vedir/vefmmt102.4fd b/PROYECTO/vedir/vefmmt102.4fd
index 116b964..d4a7a1f 100644
--- a/PROYECTO/vedir/vefmmt102.4fd
+++ b/PROYECTO/vedir/vefmmt102.4fd
@@ -1,7 +1,7 @@
-
+
-
+
@@ -32,7 +32,7 @@
-
+
@@ -52,6 +52,6 @@
-
+
\ No newline at end of file
diff --git a/PROYECTO/vedir/vefmwd022.4fd b/PROYECTO/vedir/vefmwd022.4fd
index 4580822..2db20d6 100644
--- a/PROYECTO/vedir/vefmwd022.4fd
+++ b/PROYECTO/vedir/vefmwd022.4fd
@@ -1,7 +1,7 @@
-
+
-
+
@@ -77,6 +77,6 @@
-
+
\ No newline at end of file
diff --git a/scripts/README.md b/scripts/README.md
new file mode 100644
index 0000000..b8484cc
--- /dev/null
+++ b/scripts/README.md
@@ -0,0 +1,47 @@
+# Scripts de build & deploy — Menú MBS (Genero 6 / GAS)
+
+Automatizan el flujo **fuente (Git) → GAR → GAS**. Reemplazan el viejo folder
+compartido de binarios. Solo **una persona** (release manager, Jhonny) despliega a
+`.251`/producción, siempre desde fuente ya pulled de Git.
+
+## Máquinas
+| Script | Dónde se corre | Qué hace |
+|---|---|---|
+| `build_mbs.cmd` | **PC con Genero Studio 6.00.03** (tiene `gsmake`) | `git pull` + compila el GAR → `PROYECTO\distbin\mbs.gar` |
+| `deploy_mbs.cmd` | **Server `.251`** (consola donde corre `gasadmin`) | quita la versión anterior + despliega + habilita el GAR |
+
+> `.251` **no tiene GST**, por eso el build va en una PC con GST y el deploy en el server.
+
+## Flujo completo
+1. **En tu PC** (con GST):
+ ```
+ scripts\build_mbs.cmd
+ ```
+ - Ajusta primero dentro del script: `REPO` (tu clon, ej. `C:\MBS`) y `GSMAKE` (ruta de tu GST).
+ - Produce `PROYECTO\distbin\mbs.gar`.
+ - (Opcional) descomenta `DEST` para que lo copie a un share del server.
+
+2. **Lleva `mbs.gar` al server `.251`** (copia por share, o el medio que uses).
+
+3. **En `.251`** (consola del GAS):
+ ```
+ scripts\deploy_mbs.cmd C:\ruta\mbs.gar
+ ```
+ - Hace: `disable` → `undeploy` → `clean-archives` → `deploy` → `enable`.
+ - Los mensajes *"Command failed / No archive to disable"* en el **primer** deploy son **normales** (no había versión previa).
+
+4. **Prueba**: `http://192.168.40.251:6394/ua/r/Application`
+ (si reconstruiste con `BinaryName=MAINMENU`, la URL será `/ua/r/MAINMENU`).
+
+## Notas
+- El **nombre del archive** lo toma `deploy_mbs.cmd` del nombre del `.gar`
+ (`mbs.gar` → archive `mbs`). Si cambias el nombre del archivo, cambia el archive.
+- El `.gar` **no se versiona en Git** (es artefacto). Se transfiere aparte.
+- Si `gsmake` no arma el paquete, constrúyelo desde GST: clic derecho en el
+ paquete **`mbs` → Build** (también deja el `.gar` en `PROYECTO\distbin\`).
+- **Recursos** (estilos `.4st`, imágenes): deben ir declarados como *Resources*
+ de la app en GST para que el GAR los empaquete. Si falta un `.4st`, el DVM
+ falla en runtime con `-8014 resource file ... can not be read`.
+- Camino "one-click remoto" (a futuro): instalar **Genero Studio Server** en `.251`
+ y usar *Tools → Server Connections*; entonces GST despliega directo al GAS del
+ server. Por ahora, estos 2 scripts son el flujo estable.
diff --git a/scripts/build_mbs.cmd b/scripts/build_mbs.cmd
new file mode 100644
index 0000000..37138b5
--- /dev/null
+++ b/scripts/build_mbs.cmd
@@ -0,0 +1,68 @@
+@echo off
+setlocal EnableExtensions
+REM ===========================================================================
+REM build_mbs.cmd - Baja lo ultimo de Git y compila el GAR del menu MBS
+REM
+REM >>> CORRER EN UNA PC CON GENERO STUDIO 6.00.03 (tiene gsmake) <<<
+REM
+REM Salida: \PROYECTO\distbin\mbs.gar
+REM Luego ese .gar se lleva al server .251 y se corre deploy_mbs.cmd
+REM ===========================================================================
+
+REM --- AJUSTA estas 2 rutas a tu PC ---
+set "REPO=C:\Users\jsoto\Documents\NACE\proyectos\Fuentes\MARMOTECH\"
+set "GSMAKE=C:\Program Files\FourJs\Genero Studio603\gst\bin\gsmake.exe"
+
+REM --- (normalmente no cambian) ---
+set "PROJECT=%REPO%\PROYECTO\MBSerp_new3.4pw"
+set "GAROUT=%REPO%\PROYECTO\distbin\mbs.gar"
+
+REM --- (OPCIONAL) copiar el GAR a un destino que vea el server .251 ---
+REM Ej: un share del server. Deja vacio para no copiar.
+set "DEST="
+REM set "DEST=\\192.168.40.251\deploy\mbs.gar"
+
+if not exist "%GSMAKE%" (
+ echo [ERROR] No existe gsmake en: "%GSMAKE%"
+ echo Corrige la variable GSMAKE (ruta de tu Genero Studio).
+ exit /b 1
+)
+if not exist "%PROJECT%" (
+ echo [ERROR] No existe el proyecto: "%PROJECT%"
+ echo Corrige REPO o el nombre del .4pw.
+ exit /b 1
+)
+
+echo --- 1) git pull ---
+pushd "%REPO%" || (echo [ERROR] No existe %REPO% & exit /b 1)
+git pull
+popd
+
+echo(
+echo --- 2) Compilando GAR con gsmake ---
+"%GSMAKE%" "%PROJECT%"
+if errorlevel 1 (
+ echo [ERROR] gsmake fallo. Abre el proyecto en GST y revisa los errores de build.
+ exit /b 1
+)
+
+if not exist "%GAROUT%" (
+ echo [ERROR] No se genero el GAR esperado: %GAROUT%
+ echo Si gsmake no arma el paquete, construyelo desde GST:
+ echo clic derecho en el paquete "mbs" -^> Build
+ echo (tambien deja el .gar en PROYECTO\distbin\)
+ exit /b 1
+)
+echo [OK] GAR generado: %GAROUT%
+
+if defined DEST (
+ echo --- 3) Copiando a %DEST% ---
+ copy /Y "%GAROUT%" "%DEST%"
+ if errorlevel 1 echo [AVISO] No se pudo copiar a %DEST% (revisa el share/permiso^).
+)
+
+echo(
+echo LISTO.
+echo GAR: %GAROUT%
+echo Ahora en el server .251: deploy_mbs.cmd "ruta\mbs.gar"
+endlocal
diff --git a/scripts/deploy_mbs.cmd b/scripts/deploy_mbs.cmd
new file mode 100644
index 0000000..0d26220
--- /dev/null
+++ b/scripts/deploy_mbs.cmd
@@ -0,0 +1,71 @@
+@echo off
+setlocal EnableExtensions
+REM ===========================================================================
+REM deploy_mbs.cmd - Despliega el GAR del menu MBS en el GAS de ESTE server
+REM
+REM >>> CORRER EN EL SERVER (.251), en la consola donde funciona 'gasadmin' <<<
+REM
+REM Uso: deploy_mbs.cmd [ruta\al\mbs.gar]
+REM Si no pasas ruta, busca mbs.gar en la carpeta actual.
+REM
+REM El nombre del ARCHIVE se toma del nombre del .gar (mbs.gar -> archive "mbs").
+REM ===========================================================================
+
+set "GAR=%~1"
+if "%GAR%"=="" set "GAR=mbs.gar"
+set "HOST=192.168.40.251"
+set "PORT=6394"
+
+if not exist "%GAR%" (
+ echo [ERROR] No se encuentra el GAR: "%GAR%"
+ echo Uso: %~nx0 [ruta\al\mbs.gar]
+ exit /b 1
+)
+
+REM --- nombre del archive = nombre del archivo sin extension ---
+for %%F in ("%GAR%") do set "ARCHIVE=%%~nF"
+
+echo(
+echo ============================================================
+echo DEPLOY MBS GAR="%GAR%" ARCHIVE=%ARCHIVE%
+echo ============================================================
+
+echo(
+echo --- 1) Estado actual ---
+gasadmin gar --list-archives
+
+echo(
+echo --- 2) Quitando version anterior (los "Command failed / No archive" aqui son NORMALES en el 1er deploy) ---
+gasadmin gar --disable-archive %ARCHIVE%
+gasadmin gar --undeploy-archive %ARCHIVE% -y
+gasadmin gar --clean-archives
+
+echo(
+echo --- 3) Desplegando nueva version ---
+gasadmin gar --deploy-archive "%GAR%" -y
+if errorlevel 1 (
+ echo [ERROR] Fallo el deploy del GAR.
+ exit /b 1
+)
+
+echo(
+echo --- 4) Habilitando ---
+gasadmin gar --enable-archive %ARCHIVE%
+if errorlevel 1 (
+ echo [ERROR] Fallo al habilitar el archive.
+ exit /b 1
+)
+
+echo(
+echo --- 5) Estado final ---
+gasadmin gar --list-archives
+
+echo(
+echo ============================================================
+echo LISTO. Abre en el navegador:
+echo http://%HOST%:%PORT%/ua/r/Application
+echo ============================================================
+echo Nota: si reconstruiste con BinaryName=MAINMENU, la app se
+echo llamara MAINMENU y la URL sera /ua/r/MAINMENU
+echo(
+endlocal