85 lines
4.3 KiB
Markdown
85 lines
4.3 KiB
Markdown
# Estructura del proyecto `MBSerp_new3` (Genero 6)
|
|
|
|
Cómo organizar grupos y librerías del proyecto GST limpio para la migración.
|
|
Reemplaza el `.4pw` viejo (MBSVG240), que tenía nombres de librería duplicados y rutas muertas.
|
|
|
|
---
|
|
|
|
## ⚠️ Regla de oro
|
|
**Cada librería debe tener un `binaryName` ÚNICO.** El proyecto viejo tenía 4 librerías llamadas
|
|
`FORMULARIOS` → colisión (`GS-12528` / `.42x conflicts`) → no compilaba. Sufija siempre por módulo
|
|
(`FORMULARIOS_VE`, `FORMULARIOS_CG`, …).
|
|
|
|
---
|
|
|
|
## Nivel 1 — Grupo `COMUNES` (lo compartido; se compila una vez)
|
|
|
|
| Librería (nombre único) | Contenido |
|
|
|---|---|
|
|
| `SCHEMA` (o `dabase`) | Esquema de BD: `../DATABASE/smarmotech.4db` (+ los `.4db` que apliquen) |
|
|
| `FUNCIONES` | Funciones comunes: `autentificacion.4gl`, `seg000.4gl`, `msg.4gl`, `mensajes.4gl` (mbox_msg/mbox_yn), combos (ano/mes/din), `bancos`, `proveedores`, `zonas`, `paises`, `localidades`, etc. |
|
|
| `FUNCIONESREP` | Funciones/plantillas de reportes compartidas |
|
|
| `FUNCIONESEMAIL` | Envío de correo (`enviacorreo`, `enviaencuesta`…) |
|
|
| `STYLES` | Todos los `.4st`: `mainmenu`, `mainmenu_A/B/C/D`, `formularios`, `mbsStyle` |
|
|
| `FORMULARIOSCOM` | Forms compartidos: `mainmenuform`, `inicial`, `cambia`, `MainDisp` |
|
|
| **App `MAINMENU`** | `otrodir/MainMenu.4gl` — **deps:** `SCHEMA, FUNCIONES, STYLES, FORMULARIOSCOM` |
|
|
|
|
> El `MBSerp_new3` ya trae un CORE inicial (Database, FUNCIONES, STYLES, FORMULARIOS, MAINMENU).
|
|
> Solo hay que **completarlo, renombrar con nombres únicos y agruparlo en `COMUNES`**.
|
|
|
|
---
|
|
|
|
## Nivel 2 — Un GRUPO por módulo (solo los que tienen programas activos)
|
|
|
|
Cada grupo de módulo lleva:
|
|
- **`FORMULARIOS_<xx>`** → los forms del módulo (nombre único).
|
|
- *(opcional)* **`FUNCIONES_<xx>`** → funciones propias del módulo, si tiene.
|
|
- **Applications** → cada **programa ejecutable** del módulo = un App node con su `.4gl`.
|
|
- **deps de cada App:** `SCHEMA, FUNCIONES, STYLES, FORMULARIOS_<xx>`
|
|
(+ `FUNCIONESREP` si es reporte, + `FUNCIONESEMAIL` si manda correo).
|
|
|
|
> Los `.4gl` que son **funciones/combos** (no ejecutables) van en una LIBRERÍA, no como App.
|
|
|
|
### Módulos a crear (por reparto) — verifica el `dir` real de cada uno
|
|
| Módulo | Carpeta (dir) | Librería de forms | Responsable |
|
|
|---|---|---|---|
|
|
| Contabilidad General | `cgdir` | `FORMULARIOS_CG` | Jhonny |
|
|
| Tesorería | `tedir` | `FORMULARIOS_TE` | Jhonny |
|
|
| Activos | `acdir` | `FORMULARIOS_AC` | Jhonny |
|
|
| Cheques | *(confirmar)* | `FORMULARIOS_CH` | Jhonny |
|
|
| Informática | `sedir`/`otrodir` | `FORMULARIOS_INF` | Jhonny |
|
|
| Repuestos | `irdir` (PROYECTOS) | `FORMULARIOS_IR` | Jhonny |
|
|
| Cuentas por Pagar | `cpdir` | `FORMULARIOS_CP` | Abel |
|
|
| Compras | `codir` | `FORMULARIOS_CO` | Abel |
|
|
| Nómina | `nodir` | `FORMULARIOS_NO` | Abel |
|
|
| Admin. Personal | `addir` | `FORMULARIOS_AD` | Abel |
|
|
| Costos | `ctdir` | `FORMULARIOS_CT` | Jeilyn |
|
|
| Liquidación Mercancías | `lqdir` | `FORMULARIOS_LQ` | Jeilyn |
|
|
| Producción | `prdir` | `FORMULARIOS_PR` | Jeilyn |
|
|
| Materia Prima | `indir` (PROYECTOS) | `FORMULARIOS_IN` | Jeilyn |
|
|
| Productos Terminados | `ipdir` (PROYECTOS) | `FORMULARIOS_IP` | Jeilyn |
|
|
| Rep. Entradas Productos | *(reportes inv.)* | `FORMULARIOS_REP_IP` | Jeilyn |
|
|
| Cuentas por Cobrar | `ccdir` | `FORMULARIOS_CC` | Luis Miguel |
|
|
| Ventas | `vedir` | `FORMULARIOS_VE` | Luis Miguel |
|
|
| Servicios | `svdir` | `FORMULARIOS_SV` | Luis Miguel |
|
|
|
|
*(Ajusta los `dir` que difieran — tú los conoces mejor. El nombre de la librería es lo que debe ser único.)*
|
|
|
|
---
|
|
|
|
## Qué NO incluir (para mantenerlo limpio)
|
|
- **WEBSERVICES** y **MOVIL401** → proyectos aparte (su propio `.4pw` y deploy). No van aquí.
|
|
- **menup, dashboard, ENCUESTAS, DOCUMENTACION, PRESUPUESTOG, PUNTOVENTAS, GERENCIALES** →
|
|
solo si tienen programas en el menú activo; si no, **fuera** (se agregan luego si hacen falta).
|
|
|
|
---
|
|
|
|
## Cómo poblar (incremental)
|
|
1. Crea el **esqueleto**: grupo `COMUNES` (completo) + los grupos de módulo con su `FORMULARIOS_<xx>` vacía.
|
|
2. Compila y corre **MAINMENU** (debe levantar el menú).
|
|
3. Por cada programa migrado (por ticket): **Add Application** en su grupo, agrega el `.4gl` + su form,
|
|
pon las dependencias, **Build**. Si el linker dice "function X not found", agrega el `.4gl` que la define.
|
|
4. `git commit` + `git push`.
|
|
|
|
> Así el proyecto **siempre compila** y crece de forma ordenada, sin el caos del `.4pw` viejo.
|