- Registrar ipfmcs004.4fd, coloca_ubicacion.4fd, ipfmcs004b.per e
ipfmcs004_1.4fd (faltaban)
- Crear libreria UBICACIONDH_IP para ubicacionDH.4gl (funcion
InsertaUbicacionDH), separada de FUNCIONES_IP porque su otra funcion
buscardata() choca con la ya existente en ipprmt020.4gl
- Agregar dependencia de FUNCIONESREPORT a ipprcs004 (para
seleccionarSalida, ya registrada ahi para ipprmt044)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Probado: filtros de busqueda (producto, bodega, rango de fechas) con
opcion "Actual" - resultados correctos comparados contra la BD.
Opcion "Historico" (consulta base separada historicomtech) confirmada
como bug preexistente: falla con "Invalid column name num_oc" tanto en
el ambiente de pruebas (se restauro un backup fresco de produccion del
40.8 para poder probar) como en produccion Genero 3.20 - la tabla
historicomtech.dbo.iptb00006 nunca tuvo la columna num_oc que si tiene
la tabla en vivo. No es un bug de la migracion, no se toca.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Registrar formulario ipfmcs002.per (faltaba)
- Extraer la funcion pantalla() de ipmn00000.4gl (programa de menu con su
propio MAIN) a un archivo compartido nuevo (otrodir/pantalla_ip.4gl)
para poder reutilizarla sin conflicto de MAIN duplicado
- Bug corregido: el programa nunca tenia CONNECT TO, dependia de heredar
una conexion de otro programa que nunca lo invoca en este contexto de
prueba - se agrego ARG_VAL + CONNECT TO "smarmotech" como en el resto
de los programas
- Bug corregido: el arreglo global "prod" (usado solo por este programa)
era de tamaño fijo ARRAY[200], causaba error -1326 con mas de 200
resultados - convertido a DYNAMIC ARRAY, y se agrego prod.clear() antes
de repoblarlo
- Agregado titulo a la ventana (usaba "screen size" clasico sin TITLE)
Pendiente de decision de Johnny: la pantalla no exige ningun filtro de
busqueda y hace una consulta SQL adicional por cada producto encontrado
(calculo de existencia) - sin filtro intenta traer todo el catalogo y
tarda mas de una hora antes de fallar. Se probo exitosamente usando
siempre un codigo de producto completo (clase-grupo-tipo-secuencia).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Agregar titulo a columnas Unidad y Moneda, ocultar campo interno idrow
- Agregar a ToolBar1 los botones Busca Informacion, Limpia Screen,
Conversion Moneda y Cancela operacion (estaban definidos como
ActionDefault pero nunca agregados a la barra, por eso no se veian)
- Capturar el idrow generado al insertar un precio nuevo (antes quedaba
NULL en memoria, rompiendo el eliminar de esa misma fila en la misma
sesion)
- Corregir el checkbox "Elimina": el clic con mouse marcaba la casilla
visualmente pero no actualizaba el valor real hasta perder el foco con
Tab (bug de renderizado de GST). Se cambio el trigger de AFTER FIELD a
ON CHANGE, que si sincroniza el valor de inmediato con clic de mouse
Pendiente: falta la prueba final completa del flujo eliminar en
ipprmt017 (se hizo hasta confirmar que ON CHANGE captura el valor
correctamente, falta probar el guardado + verificacion en BD)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Registrar ipfmmt017.4fd e ipfmwd008.per (faltaban)
- Corregir esquema viejo "marmotech" -> "smarmotech" en ipfmwd008.per
- Copiar vefmwd002.4fd a ipdir (renombrado vefmwd002_ip.4fd) para evitar
depender de la libreria FORMULARIOS_PR (de Compras), que tiene errores
propios sin relacion (prfmmt006.4fd con columna inexistente,
prfmwd014.per con problema estructural) que bloqueaban la compilacion
- Corregir 3 columnas de la lista de precios sin titulo (idrow, unidadmed,
moneda): idrow se oculta (es un campo interno), unidadmed y moneda
reciben titulo visible
Pendiente: falta recompilar y probar el flujo completo (alta, consulta,
eliminacion) de ipprmt017.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Registrar formulario ipfmmt014.per (faltaba)
- Corregir refresco de pantalla al eliminar (no mostraba estado 'E' hasta
volver a consultar), confirmado por Johnny que debe verse al instante
- Agregar validacion para no permitir eliminar un registro ya eliminado
(mostraba "REGISTRO ELIMINADO" de nuevo sin avisar)
Nota: el aviso de "ya eliminado" no sale centrado en pantalla - limitacion
del cliente grafico de Genero para dialogos lanzados desde pantallas tipo
MENU clasico (no aplica en pantallas DIALOG modernas). Aceptado por la
usuaria, no es bloqueante.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- El formulario ipfmmt010.per tenia los campos Usuario Creador/Modificador,
Fecha Creacion/Modificacion y el indicador de estado enlazados a
iptb00020 (tabla de Grupos, ajena a este programa) en vez de iptb00024
(Tipos de Productos) - copiado por error del formulario de otro programa
- La consulta en ipprmt010.4gl tampoco seleccionaba esas columnas
- Al eliminar, el registro en memoria y la pantalla no se actualizaban con
el nuevo estado, solo la base de datos
Confirmado por Johnny que el estado 'E' debe reflejarse en pantalla al
eliminar.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Probado completo: alta, consulta-modificacion y eliminacion (confirmado
en BD que status_t queda en 'E') - todo funciona correctamente.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Autorizado por Johnny Soto: crear DSN ODBC apuntando a la base EXTERIOR
para la segunda conexion legada de Informix usada en ipprmt064/ipprmt005.
Investigacion: la conexion aislada a EXTERIOR funciona correctamente,
pero abrir esta segunda conexion junto con la conexion activa a
smarmotech falla con error -6366 "Changed database context" del driver
dbmsnc de Genero. Se descarto: colision de nombre de DSN, pooling de
conexiones ODBC, y version del driver (probados ODBC Driver 18 y el
driver "SQL Server" legado) - mismo resultado en todos los casos.
Parece ser una limitacion del driver de Genero al manejar dos conexiones
simultaneas al mismo servidor SQL Server. Escalado a Johnny para abrir
caso con soporte de Four Js.
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>
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>
- 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>
- 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.
- 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.
- 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).
Todos quedan bloqueados por un error de diccionario de base de datos
(Can not open Database dictionary 'smarmotech' / tabla no encontrada
entre las especificadas), confirmado en inprmt002 e inprmt005 pese a
actualizar el diccionario (Update from database). Reportado a Johnny.
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
- prprrp116: agrega form faltante, corrige encabezado del reporte
(p_compania.nombre), evita crash cuando no hay registros, agrega
opcion EXCEL en Visualizacion, quita filtros <blank>/<not blank>
del combo Status Orden.
- prprcs001: corrige CONSTRUCT con columna inexistente (fecha_oc).
- prprmt022: quita filtros <blank>/<not blank> del combo Estado.
- Agrega los 13 programas de MATERIA PRIMA al proyecto (mbsERP.4pw).
- Agrega ctprmt001, ctprrp004, ctprrp014 al grupo COSTOS
- Agrega lqprmt001, lqprmt002 al grupo LIQUIDACION (usa busca_liquidacion.4gl)
- Regenera ctfmmt001.4fd desde el .per para incluir la tabla s_semi