- Registrar noprmt008 en mbsERP.4pw junto con sus 3 formularios
(nofmmt008.4fd, nofmmt108.per, nofmmt208.per)
- Corregir bug en nofmmt008.4fd: el checkbox opt3 tenia colName="opt2"
duplicado por error de copiar/pegar, causando "Field (opt3) not
found in form"
- Quitar CONVERT(CHAR(10),...,103) en 5 SELECTs que alimentaban
variables DATE (mismo patron de bug ya visto en noprmt003):
causaba "-1205 Invalid month in date" de forma intermitente
- Agregar funcion debuglog() (escribe a archivo en FGLSPOOL) para
diagnosticar por que la generacion terminaba sin insertar ningun
registro; diagnostico aun en curso
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Registrar ipfmmt019.4fd (formulario real que usa ipprmt005.4gl)
- Migrar categorias.4gl desde PROYECTOS y registrarlo (usaba
formonly.cod_cat, coincide con ipprmt005; la copia existente en
PUNTO VENTAS VER2 usaba un nombre de campo distinto)
Pendiente: ipprmt005 (como ipprmt064) requiere una segunda conexion a una
base "marmotech" (alias IFMX) no mapeada en el ambiente, resto de la
epoca Informix. Consultado con Johnny como patron general.
- Registrar formulario ipfmmt013.4fd en el proyecto (faltaba)
- Corregir databaseName del formulario (marmotech -> smarmotech, esquema
viejo que impedia resolver la tabla iptb00004)
- Agregar titulo de ventana (formulario no tenia atributo text, mostraba
"screen" generico)
- Registrar 8 archivos faltantes en FUNCIONES_IP (ipautorizareq, codigoModificacion,
piking, conduces, ubicacionH, ipactualizareqtrx, loadDespiece, LlenarUbicaciones)
- Agregar dependencias FUNCIONESREPORT y FUNCIONESEMAIL a ipprmt044 (defecto,
configureOutput, enviaemail ya existian en el proyecto)
- Resolver colision de nombres: renombrar REPORT/FUNCTION duplicados en
ipautorizareq.4gl (requiere->requiereAutoriza, buscadoc->buscadocAutoriza,
impdocumento->impdocumentoAutoriza) que chocaban con imprequisiciones.4gl
y buscarequisicion.4gl
- Sincronizar registros locales desactualizados: x RECORD en ipautorizareq.4gl
(faltaba us_crea) y x/z RECORD del REPORT formu4 en ipprgb000.4gl (faltaban
bodega_destino, factura, area, descripcion_area, existencia, disponible,
codigo_bloque, id_kit) respecto a los registros globales reales
- Migrar ipprmt020_1.4rp desde PROYECTOS y corregir su RWFglReportName
Pendiente: funcion 'fotos' (12 parametros) no existe en ningun archivo del
proyecto, consultado con Johnny
- Registrar estadosprocesos.4gl y formulario ipfmmt021.4fd en el proyecto
- Corregir columna estado_proceso inexistente por idestado (error SQL -6372)
- Corregir desfase de columnas en SELECT/INTO de buscadoc() que dejaba
usuario, bodega origen y tipo de movimiento vacios en el reporte impreso,
y filtraba la descripcion del estado hacia el campo de observacion
- Registrar funciones compartidas faltantes (buscarequisicion, imprequisiciones, funciones_ip) y formularios ipfmmt003/ipfmmt020 en el proyecto
- Agregar usuarioSistema a seg000.4gl
- Ampliar combos Codigo Mov/Bodega/Bodega Destino en ipfmmt020.4fd (texto ilegible)
- Refrescar lista de requisiciones al anular (buscarData + clear del arreglo)
- Registra formulario ipfmmt003 en FORMULARIOS_IP con dependencia a
Database
- Corrige dos bugs reales en ipprmt003.4gl: campo
control_ubicacion_almacen duplicado en INPUT BY NAME (error -8090),
y columnas control_produccion/control_ubicacion_almacen duplicadas
en el INSERT INTO (error SQL -6372). Probado completo: alta,
consulta, eliminacion, validacion de duplicados
- Actualiza DATABASE/smarmotech.4db con el esquema actual de SQL
Server (agrega columnas nuevas de iptb00002 y otras tablas)
- ipprmt002 queda pendiente: 5 columnas de iptb00002 no son
reconocidas por el compilador pese a existir en la BD real,
requiere revision en vivo con Johnny
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Registrar noprmt020 en mbsERP.4pw
- Agregar MAIN (faltaba, el archivo era solo funciones para ser
llamadas desde el menu nomnmt000.4gl) y una funcion pantalla()
local para el encabezado
- Corregir typo "database marmotech" -> "smarmotech" en nofmmt021.per
NOTA: el usuario identifico este programa como "Calcular Horas
Extras", pero tanto el contenido del .4gl como su propio menu
(nomnmt000.4gl: "19-Porc. Accidente Trabajo noprmt020") indican que
en realidad es la maestra de % de Accidente de Trabajo. Build y
compilacion verificados, prueba funcional pendiente hasta confirmar
el programa correcto para "Calcular Horas Extras" (candidatos:
noprmt030.4gl, noprmt038.4gl, o los reportes noprrp007/011/018/026/034/035).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Registrar noprmt007 en mbsERP.4pw usando nofmmt007.4fd (el .per
carece de departamento_afecta, num_trx, sueldo_act y los campos
titulo_dep_act/titulo_dep_afecta que usa el programa). El .4gl
compilo limpio sin cambios de codigo.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Registrar noprmt001 en mbsERP.4pw (usa cofmmt001... nofmmt001.4fd,
el .per carece del grid smovimientos y los campos modifica/vacaciones)
- Reemplazar smarmotech.sch/.42d de nodir por la copia canonica ya
generada en MBS/DATABASE (orden de columnas correcto, incluye
telefonoCorporativo/numeroOficina/extension) en vez de regenerar
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Registra las Applications de Productos Terminados (ipprmt/ipprcs/ipprrp)
con dependencias a FUNCIONES_IP, Database y FUNCIONES, y agrega
ipprgb000.4gl como archivo compartido de FUNCIONES_IP. Listo para
compilar/probar programa por programa, igual que se hizo con Materia
Prima.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Instruccion de Johnny: todos los directorios de fuentes de inventario
deben migrarse de la carpeta temporal PROYECTOS a la carpeta real
PROYECTO, ya que PROYECTOS sera eliminada.
Se elimino tambien un archivo suelto sin relacion llamado "ipdir"
que existia en PROYECTO (del commit inicial) y bloqueaba el nombre
de la carpeta.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Corrige selectOutput()/seleccionarSalida()/configureOutput() en
defecto.4gl para usar la API real fgl_report_* (Report Writer 2.0),
reemplazando los stubs previos. Reutiliza el formulario Configuration
ya existente en el proyecto (FUNCIONESREPORT)
- inprrp011: quita el START REPORT forzado a XML roto (media migracion
abandonada), probado completo: filtros, totales/subtotales vs
produccion, exportacion PDF/Excel/Pantalla funcionando
- inprrp028: mismo patron, restaura Sietesalida) - No/matricial
como respaldo. Crea bin/inprrp028.4rp (diseno de reporte, no existia)
para la salida grafica; carga sin error de formato pero la
generacion no completa en este entorno - pendiente de revisar
rendimiento/recursos
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Registrar noprmt003 en mbsERP.4pw (FUNCIONES_NO: noprfu000.4gl,
nocarnet.4gl; FORMULARIOS_NO: nofmmt003.4fd); reutiliza
otrodir/departamentos.4gl ya presente en FUNCIONES
- Actualizar el diccionario de esquema smarmotech.sch: faltaban las
columnas telefonoCorporativo/numeroOficina/extension de adtb00003
(existen en la BD real pero no estaban en el diccionario, .42d se
regenera solo al recompilar); propagado a todos los directorios
- Desactivar el CONNECT TO "marmotech" AS "IFMX" (Informix ya no
existe, todo migro a SQL Server) y el INSERT duplicado hacia esa
conexion en el alta de empleados; sin esto el programa se colgaba
al iniciar
- Quitar CONVERT(...,103) de fechas en el SELECT/FETCH de empleados:
se convertian a texto dd/mm/yyyy y luego se reasignaban a variables
DATE, causando "-1205 Invalid month in date" con dias > 12
- Agregar BEFORE CONSTRUCT/END CONSTRUCT para poblar el combo de
Departamento en la busqueda (faltaba, quedaba vacio)
- Corregir foto de empleado que no se limpiaba al navegar
Siguiente/Anterior hacia un empleado sin foto
- nocarnet.4gl: sustituir fgl_report_* (API no disponible) por
om.XmlWriter.createFileWriter() hacia FGLSPOOL
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Registrar noprmt002 en mbsERP.4pw junto con noprgb000.4gl
(FUNCIONES_NO), nofmmt002.per/nofmwd001.per (FORMULARIOS_NO) y
adfmwd004.per (FORMULARIOS_AD, compartido con ADMINISTRACION)
- Copiar el diccionario de esquema smarmotech.sch a nodir/addir
(faltaba, igual que en otros directorios ya corregidos)
- Corregir typo "database marmotech" -> "smarmotech" en nofmwd001.per
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Registrar coprrp007 en mbsERP.4pw, usando cofmrp007.4fd (el .per
no define el combo de departamento que requiere busca_departamento())
- Enlazar la libreria FUNCIONES_IN (ya contiene departamento.4gl) en
vez de duplicar el archivo, evitando conflicto de salida .42m
- Agregar guarda NULL en departamento.4gl: ui.combobox.forname()
puede no encontrar el combo durante el CONSTRUCT y causaba
"Null pointer exception" al llamar .clear()
- Sustituir seleccionarsalida()/configureoutput() (no definidas,
API fgl_report_* no disponible) por om.XmlWriter.createFileWriter()
hacia FGLSPOOL
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- inprrp008: agrega CONNECT faltante en MAIN, corrige ruta de impresion
hardcodeada (C:\archivo -> FGLSPOOL) y comando RUN sin comillas,
reconstruye infmrp008 como .4fd (el campo Ordenamiento se compilaba
como checkbox en vez de texto)
- inprrp028: restaura la rama matricial (Si/No Reporte Grafico) que
habia quedado comentada, dejando el programa forzado a la via XML
rota; agrega funcion compartida seleccionarSalida() a defecto.4gl
- inprrp009: agrega notNull al combo de Bodega para quitar los items
<blank>/<not blank>, agrega titulo a la ventana
- Registra formularios infmrp008, infmrp028 e infmrp011 en el proyecto
- Todos probados: corren completos sin error de FGL (Exit code: 0) via
matricial; la salida grafica/PDF sigue siendo la limitacion conocida
de entorno (Report Writer 2.0 no disponible)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Registra formularios infmrp003.per e infmrp005.per en FORMULARIOS_IN
- Agrega funciones compartidas msgrp000() y selectOutput() a defecto.4gl
(selectOutput como stub, mismo limite conocido de Report Writer 2.0
que configureOutput)
- inprrp003 probado: reporte de movimientos corre completo sin error
de FGL (impresion fisica no disponible en entorno de desarrollo)
- inprrp005 pendiente: error SQL -1262 "Non-numeric character in
datetime" al filtrar por Fecha del Dia, en investigacion
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Registrar coprrp019 en mbsERP.4pw
- Agregar CONNECT TO/ARG_VAL faltante en MAIN (el programa hacia
consultas SQL sin haberse conectado nunca a la base de datos)
- Sustituir seleccionarsalida()/configureoutput() (no definidas,
API fgl_report_* no disponible) por om.XmlWriter.createFileWriter()
hacia FGLSPOOL
- Corregir typo "database marmotech" -> "database smarmotech" en
cofmrp019.per
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Proyecto ahora referencia infmcs006.4fd en vez de .per (el .per
clasico no puede declarar las columnas del Tree de filas hijas)
- Corrige conflicto de campo "bodega" entre INPUT y CONSTRUCT dentro
del mismo DIALOG (error -8090), moviendo la busqueda a ON ACTION
- Corrige binding de ComboBox Bodega y campo mensaje_ini (faltaba
colName/sqlTabName, causaba Null pointer exception)
- Agrega titulo "MOVIMIENTO MATERIA PRIMA" y ensancha combo de bodega
- Corrige tabIndex del combo de bodega para navegacion con teclado
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- inprfu000.4gl: corrige reimprime()/busca_info() para que branchen
correctamente segun el programa llamante (inprmt046 vs otros).
Antes usaban siempre las variables de inprmt046 (otros_mov),
causando errores en inprmt036. Se activa y corrige la logica que
estaba comentada para el caso generico (Johnny autorizo completarla,
confirmado que tampoco funcionaba en produccion).
- inprmt066 (Anular Documentos): agrega formulario faltante y el
campo Bodega (combo) que no existia. Ensancha el combo para
legibilidad. Probado: anulacion de documento real, funciona.
El Application node de coprmt009 no tenia la variable de entorno
FGLSPOOL configurada (a diferencia de coprrp001/coprrp004/coprmt025).
FGL_GETENV("FGLSPOOL") devolvia NULL, el handler de XmlWriter en
orden() (coprorden.4gl) nunca se creaba, y "Imprime" fallaba
silenciosamente sin generar el reporte ni mostrar error.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Registrar coprrp004 (usando cofmrp004.4fd, el .per carece del
campo estado) en mbsERP.4pw
- Sustituir seleccionarsalida()/configureoutput() (no definidas en
este programa, misma API fgl_report_* no disponible) por
om.XmlWriter.createFileWriter() hacia FGLSPOOL
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
El CONSTRUCT del criterio de busqueda y un DISPLAY BY NAME en escoge()
referenciaban cotb00014.bodega/ordenes.bodega, que no existe como campo
visible en cofmmt009 (combo oculto, ya excluido en el INPUT BY NAME de
copcad009). Causaba "FORMS statement error -1102: Field (bodega) not
found in form" al usar Buscar Ordenes de Compras.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Registrar coprrp001/cofmrp001 en mbsERP.4pw
- Sustituir API fgl_report_* no disponible por XmlWriter en coprrp001.4gl
- Ampliar cs_ordena.codigo a CHAR(20) en coprgb000.4gl
- Corregir mascaras PICTURE de codigo en coprcs009.4gl
- Ampliar campo c1 en cofmcs009.per para igualar el ancho de codigo
- Corregir typo de base de datos en cofmwd016.per
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- inprmt046: agrega columnas Maquina/Clasf.Bloque faltantes en la
tabla, ensancha combos para legibilidad, corrige formato de fecha
(CONVERT 103 requiere DBDATE=DMY4/ configurado). Saca la funcion
maquinaria() de un archivo local a una compartida (maquinaria.4gl)
para evitar duplicado.
- inprmt036 (Requisicion de Materiales): agrega formulario, campo
Impresion (MATRICIAL/PDF), corrige nombre_d y agrega columna
Existencia faltante en la tabla.
- Agrega funcion compartida configureOutput (stub, Report Writer 2.0
no disponible en FGL 6.00.01).
- Requiere variables de entorno DBDATE=DMY4/ y FGLSPOOL (carpeta
PROYECTO/spool) al abrir Genero Studio para reportes/fechas.
- coprmt010 (Paises): corregir condicion invertida en "Escoger" que
bloqueaba editar registros activos y solo permitia editar los ya
eliminados (status_t != "E" -> = "E").
- coprmt016 (Terminos de Pago): usar el formulario .4fd (el .per no tenia
el grid "Tabla" que el codigo espera); agregar columna "dias" faltante
al INSERT (la tabla real tiene 9 columnas, el INSERT solo daba 8 valores
sin lista de columnas explicita).
- coprmt025 (Requisicion Compras): agregar funciones faltantes
(busca_departamento2 en depto.4gl, enviaemail en FUNCIONESEMAIL);
sincronizar el RECORD "data" y la aridad de RETURNING de ApiMaintainC
con el fix de api_test.4gl; reemplazar fgl_report_* (no disponible) por
om.XmlWriter en las 3 rutas de impresion.
- coprmt015 y coprcs005: sin cambios de codigo, solo registro en el
proyecto.
- mbsERP.4pw: registrar los 5 programas; investigar/configurar Java para
coprmt025 (FGLJVMPATH/JAVA_HOME/CLASSPATH apuntando a un JRE Temurin
8u504 local). Pendiente: el puente Java de esta instalacion de Genero
sigue fallando ("Can not create java VM") incluso con el ejemplo oficial
de FGL: parece un problema de la instalacion misma, no de version de
Java. Se sugirio reparar via MsiExec /f {3B1E10F3-FBCC-4737-8BDF-284359029D70}
(Four Js Genero BDL with Web Services 6.00.02), pendiente de ejecutar.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Mueve todo el contenido de PROYECTOS/indir y varias funciones
compartidas de PROYECTOS/otrodir hacia PROYECTO, siguiendo
instruccion de Johnny (PROYECTOS se va a eliminar).
- inprmt002: agrega campo Desglose faltante, corrige typo "eLiminar".
- inprmt005: agrega formulario y 3 campos faltantes (Consumo,
Requiere Autorizacion, Requisiciones), corrige typo "eLiminar".
- inprmt013: agrega formulario, titulo, corrige typo "eLiminar".
- inprmt046: agrega formulario y varias funciones/dependencias
faltantes (cincodmov, clasf_bloque, medidas, defecto,
buscaEmp, consultaTransportista, busca_departamento);
corrige nombres de campo desalineados con el codigo
(depto_a, bodega) y los convierte a ComboBox donde el
codigo lo requiere.
- Corrige dependencia faltante de FORMULARIOS_IN a la libreria
Database (bloqueaba todo el modulo de MATERIA PRIMA).