docs: estructura recomendada del proyecto MBSerp_new3 (grupos/librerias, nombres unicos)
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user