El reporte se veia con los campos apilados y encimados: las filas
estaban declaradas con length=12 en vez de max y las columnas eran
demasiado angostas.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
grupo_producto() declaraba bgrupos (iptb00071) pero recorria btipoproductos.
Ahora recorre bgrupos y usa el nombre del grupo como valor, que es lo que
guarda iptb00002.grupo1 (CORALINA, TRAVERTINO, CARIBBEAN BLOND, PORTORRO).
Verificado en la .250: alta del producto 209-1819-9-391 con grupo1=TRAVERTINO.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
En la pantalla nueva se puede aceptar con OK sin pasar por el campo num_emp, y
nombre_representante solo se calculaba en AFTER FIELD num_emp. Al modificar un
producto, el UPDATE lo grababa vacio. Se recalcula antes de los 5 INSERT/UPDATE
de iptb00002. Verificado en la .250: tras Escoger+OK sin cambios solo cambian
us_mod y fech_mod.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- ipdir/smarmotech.sch: copia del esquema raiz con solo iptb00002 actualizada a
las 49 columnas reales (grupo2, bookmatch, tipos, tipo_material, imp_aduanal,
categoria, es_produccion). Verificado: los 33 programas ip* que compilaban
siguen compilando.
- otrodir/gerentesmarcas.4gl copiado de PROYECTOS; categoria_conteo registrada;
busca_departamento local en ipprmt002 (irdepartamento esta en FUNCIONES_IR).
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
El merge 93a4eb4 subio el .4pw con marcadores de conflicto (ambas versiones
pegadas). Se rehizo el merge de 16ef058 y 9bc9170 normalizando los saltos de
linea (16ef058 estaba en LF, el resto en CRLF). Resultado: XML valido, 233
aplicaciones sin duplicados, conserva registros de ipprmt044/045 y los de
adprmt001/017/027 y cpprrp002.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- lqprrp009: se quita la copia local de defecto(); msgrp000 (restaurado por
Johnny el 16/10) ya la trae y duplicaba (-6203).
- prprmt006: se anulan las dos llamadas a pantalla() (encabezado de la
pantalla de texto antigua, no existe en el proyecto y los demas programas
de PRODUCCION no la usan) y se pone titulo de ventana.
- ipprmt044: fotos.4gl ahora incluye ctramo() y cseccion() (copiadas de
otrodir/tramos.4gl y secciones.4gl) porque importar FUNCIONES_IR completa
mete modulos de Repuestos que chocan.
- ipdir/ipautorizareq.4gl: IMPORT FGL greruntime. msgrp000 importa ese
paquete y libgre.42m tambien define fgl_report_*, por lo que cualquier
modulo de libreria que los llamara sin importar quedaba ambiguo (-8401)
cuando el programa lo usaba (solo ipprmt044). Verificado: las 34
aplicaciones que usan FUNCIONES_IP enlazan, salvo ipprmt002 e ipprrp052
que siguen con el problema conocido de columnas de iptb00002 en el
esquema.
Pendiente: probar funcionalmente estos programas.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
lqprrp009 (Liquidacion Repuestos):
- Dependencia FUNCIONESREPORT (msgrp000, seleccionarsalida).
- defecto() copiada al programa (vive en indir/defecto.4gl junto con
msgrp000 duplicado, importarla chocaba -6203); configureOutput ya la
aporta msgrp000.
- Quita Convert(...,103) que llenaba variables DATE (fecha_inicial/final).
- Titulo de ventana "Liquidacion Repuestos".
prprmt006 (Orden Produccion):
- El programa usa prtb08[idx].cod_n_c... como arreglo, pero el global
prtb08 es RECORD LIKE prtb00012.* y el arreglo arrprtb08 se quito de
prprgb000.4gl el 24/08 (68b73cf): 52 errores "Subscripting cannot be
applied". Se define arrprtb08 dentro del propio programa (mismos 7
campos que el form prfmmt006 s_orden) y se renombran 54 referencias.
Nadie mas usa arrprtb08, no hay choque con globales.
ipprmt044 (Transacciones Inventario):
- Faltaba la funcion fotos() de 12 parametros: existe en el respaldo
PROYECTOS/otrodir/fotos.4gl (version de 2017) y la llamada del programa
coincide exactamente. Se agrega a la aplicacion junto con el form
ipfmwd015.4fd. Las llamadas de ipprcs004/_1 a fotos() estan comentadas,
no se afectan. cc_avisadespacho es un procedimiento almacenado, no una
funcion 4GL.
Los tres compilan con fglcomp (esquema smarmotech); falta enlazar y
probar cuando se active la licencia de Genero (FLM-51 vencida).
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- Registra en FORMULARIOS_PR los formularios que el programa y sus
librerias abren y no estaban en el proyecto: prfmmt011b, prfmmt011c,
prfmwd015, prfmcs002, prfmmt021b/c/d, prfmwd002, prfmwd012, prfmwd013.
- prfmmt012 registrado era el de ccdir (otro formulario con el mismo
nombre); se reemplaza por PRDIR/prfmmt012.4fd (campos iguales al 42f de
produccion).
- Rescata otrodir/existenciaalmacenes.4fd del respaldo PROYECTOS y lo
registra en FUNCIONES_PR junto a existenciaalmacenes.4gl.
- prfmwd014.per: s_llegada[9] -> [5]; la pantalla dibuja 5 filas y el
formulario no compilaba (-2029). Tampoco existia compilado en produccion.
- Quita CONVERT(...,103) en 8 lecturas que llenan campos DATE (consulta
principal, fecha_llegada, parciales y datos de cotizacion); con dias >12
el programa terminaba con error al buscar. Se dejan los CONVERT que
llenan campos CHAR(10).
- Titulo de ventana "Administracion Ordenes".
Verificado: busqueda 01/07/2026-02/07/2026 trae 189 lineas con colores;
botones transacciones y Requisicion funcionan. Pendiente probar
Existencia, flujo, Documentos, fllegada, parciales, visualiza_log,
Reporte Data e Informe. Nota: un mes completo (3,105 lineas) tarda
varios minutos por las consultas por linea (diseno original).
Pendiente Johnny: FORMULARIOS_PR no compila completo por prfmmt006
(columna prtb00007.orden_pedido inexistente) y msgfmwd001 (msgrp000) no
tiene fuente en ningun lado.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Alta y modificacion ahora graban cod_inv (Inventario); antes se leia en
la consulta pero nunca se guardaba (igual en el 42m de produccion 3.20).
- La consulta excluye las clases con status_t = 'E' (eliminadas) y lee
status_t, para que al consultar una eliminada salga REGISTRO NO EXISTE y
funcione el control de Escoger sobre registros anulados.
- Impresora se deja sin tocar, como en 3.20: el combo no tiene opciones
(tampoco en produccion) y guardarlo borraria valores existentes (80-83)
que usa veconvierteorden para rutear impresion de ordenes.
- Configuracion de ejecucion con el usuario de la responsable (antes usaba
el de jsoto, por eso grababa ese usuario como creador/modificador).
Verificado: consulta de clase eliminada (211) da REGISTRO NO EXISTE; alta
(212) graba Inventario y usuario jpeguero. Pendiente: probar Escoger y
eLiminar con la nueva version y confirmar en produccion que cod_inv solo
usa los valores del combo.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Con Tipo Reporte Local (sin liquidaciones con liquidada='L' en cgtb00017,
ni en pruebas ni en produccion) el programa se cerraba sin avisar. En 3.20
muestra INFO "NO ENCONTRE INFORMACION CON ESOS PARAMETROS" y vuelve al
menu; se replica el mismo texto.
Verificado contra Genero 3.20 y 6.00.03 con Productos Terminados, 03/2024,
Local.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- bin/lqprrp004.4rp del repo era un archivo binario ilegible (motor de
reportes: "Content is not allowed in prolog"). Se reemplaza por el XML de
produccion (\192.168.40.4\MARMOTECHC$\BIN320, report name liquida1,
formato 6.00).
- Si la consulta no devuelve filas ahora muestra "NO EXISTEN REGISTROS PARA
ESTOS PARAMETROS" en vez de cerrarse sin avisar.
Verificado: Productos Terminados, 03/2024, tipo Importacion: 2 paginas en
pantalla y PDF con totales por orden. Tipo Local sin datos en el periodo.
Excel no probado.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
lqprrp004:
- El .4gl tenia saltos de linea CR (Mac antiguo): en Genero 6 el comentario
'######' de la linea 2 se tragaba todo el programa (modulo de 181 bytes,
"main not defined"). Convertido a CRLF (el diff grande es solo eso).
- numero_ent se usaba en REPORT entrada271 sin definirse (solo existia en
edprrp0271); definida y asignada = 27 como en la funcion hermana.
- Agrega dependencia FUNCIONESREPORT.
prprmt011 / prprmt021:
- primpresion.impresion(pnumoc) chocaba con impresion(...) de 5 parametros
de FUNCIONESREPORT (veprrp049_1.4gl). Renombrada a impresion_oc y su unico
llamador (prprmt021) actualizado. prprmt011 recibe FUNCIONESREPORT.
Verificado con gsmake: lqprrp004, lqprmt002, ipprmt005, prprmt011 y
prprmt021 compilan y enlazan. lqprrp004 consulta datos de 03/2024 pero el
reporte no se genera: bin/lqprrp004.4rp es un archivo binario (no XML) y no
existe version XML en el repo. Pendiente que Johnny lo entregue.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- Titulo de ventana corregido
- START REPORT se ejecuta con la primera fila; si la consulta no devuelve
datos avisa "NO EXISTEN REGISTROS PARA ESTOS PARAMETROS" en vez de
generar un reporte en blanco
Verificado con ano 2024 (la BD de pruebas no tiene produccion posterior a
agosto de 2025): 1 pagina con 9 semielaborados por mes y total, en pantalla,
PDF y Excel.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- Titulo de ventana corregido (mostraba "screen")
- START REPORT se ejecuta con la primera fila; si la consulta no devuelve
datos avisa "NO EXISTEN REGISTROS PARA ESTOS PARAMETROS" en vez de
generar un reporte en blanco
Verificado con 01/01/2024 a 12/31/2024: detallado 166 paginas en pantalla,
resumen 57 paginas en PDF. En la BD de pruebas (.40.250) cttb00003 no tiene
produccion posterior a agosto de 2025, por eso rangos de 2026 salen vacios.
Excel no probado.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- Registra ipfmrp054.4fd y la dependencia FUNCIONESREPORT en mbsERP.4pw
- seleccionarsalida() -> selectOutputSimple()
- Rescata ipprrp054.4rp del respaldo PROYECTOS/bin (ipdir/ y bin/)
- El reporte arrancaba aunque la consulta no devolviera filas y el motor
fallaba (Failed to find value for the look ahead input-variables);
ahora START REPORT se ejecuta con la primera fila y, si no hay datos,
muestra "NO EXISTEN REGISTROS"
- Titulo de ventana corregido
Verificado: 05/01/2026 a 10/15/2026 genera 100 paginas en pantalla y PDF.
Nota: las fechas de este formulario se capturan en formato mm/dd/yyyy
(campo Edit sin selector), comportamiento original del programa.
Excel no probado.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- Registra ipfmrp051.4fd y la dependencia FUNCIONESREPORT en mbsERP.4pw
(resuelve msgrp000 y seleccionarSalida)
- busca_departamento() definida localmente (igual que ipprrp047/048)
- seleccionarsalida() -> selectOutputSimple()
- Rescata ipprrp051.4rp del respaldo PROYECTOS/bin (ipdir/ y bin/)
- Titulo de ventana corregido
Verificado: 01/08/2026 a hoy, movimiento 30, 8 paginas en pantalla y PDF.
Excel no probado.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- Registra ipfmrp048.4fd y la dependencia FUNCIONESREPORT en mbsERP.4pw
(resuelve msgrp000 y seleccionarSalida)
- busca_departamento() definida localmente (igual que ipprrp035/036/047)
- seleccionarsalida() -> selectOutputSimple()
- Rescata ipprrp048.4rp del respaldo PROYECTOS/bin (ipdir/ y bin/)
- Titulo de ventana corregido
Verificado: 01/08/2026 a hoy, movimiento 30, 4 paginas en pantalla y PDF.
Excel no probado.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- Registra ipfmrp047.4fd y la dependencia FUNCIONESREPORT en mbsERP.4pw
(resuelve msgrp000 y seleccionarSalida)
- busca_departamento() definida localmente (igual que ipprrp035/036)
- seleccionarsalida() -> selectOutputSimple()
- Rescata ipprrp047.4rp del respaldo PROYECTOS/bin (ipdir/ y bin/)
- Titulo de ventana corregido
Verificado en pantalla: 01/05/2026 a hoy, 113+ paginas agrupadas por
movimiento y departamento con totales. PDF y Excel no probados.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- Registra ipfmrp046.per y la dependencia FUNCIONESREPORT en mbsERP.4pw
- seleccionarsalida()/configureoutput() -> selectOutputSimple() y funcion
local configurarSalidaClasica(): el configureOutput de msgrp000 es un stub
que devuelve NULL; el reporte clasico PRINT COLUMN necesita el modo
compatibilidad (monoespaciado) como el de indir/defecto.4gl
- Titulo de ventana corregido
Verificado: 01/05/2026 a hoy genera 299 paginas en pantalla y PDF.
Excel no probado por el volumen de datos.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- Registra ipfmrp014.4fd y la dependencia FUNCIONESREPORT en mbsERP.4pw
- Quita convert(char(10),...,103) de fecha_v y fecha_oc (el campo es DATE)
- Titulo de ventana corregido
- Rescata ipprrp014.4rp del respaldo PROYECTOS/bin; el encabezado decia
IPPRRP013 (texto fijo copiado del otro diseno), corregido a IPPRRP014
Verificado: pantalla, PDF y Excel con el gerente Adolfo Santelises (prueba
con usuario temporal, no incluido en este commit). Pendiente: Resumen por
clase, ipprrp014r.4rp no existe en el repo ni en el respaldo.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- Registra ipfmrp053.4fd y la dependencia FUNCIONESREPORT en mbsERP.4pw
- selectoutput() inexistente -> selectOutputSimple()
- Rescata ipprrp053.4rp del respaldo PROYECTOS/bin (ipdir/ y bin/)
- Titulo de ventana corregido (mostraba "form")
Verificado: rango 05/01/2026 a hoy genera 911 paginas; pantalla, PDF y Excel OK.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- Registra ipfmrp013.4fd y la libreria FUNCIONESREPORT en mbsERP.4pw
- Quita CONVERT(...,103) en fecha_factura y fech_oc (error -1205)
- Titulo de ventana corregido
- ipprrp013.4rp: formato 7.00, diseno plano con rtl:input-variable
(los grupos anidados no coincidian con el flujo del REPORT), encabezado
con compania/fecha/hora y FECHA VENTA enlazada a fecha_v
- Resumen usa ipprrp013r.4rp (agregado por Johnny)
Verificado: Detallado sin filtros (3 paginas) y Resumen clase 124.
Pendiente: alineacion visual de columnas del Detallado.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- Registrar ipfmrp013.4fd en el proyecto (form not found al abrir).
- Agregar dependencia faltante FUNCIONESREPORT (msgrp000,
seleccionarSalida), no linkeaba.
- Agregar titulo a la ventana (usaba el generico "screen").
El .4rp ya existia en el repo y no necesito cambios. Pendiente probar
funcionalmente (filtros/fechas, totales, exportar) - queda para la
proxima sesion.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
otrodir/selectoutput_simple.4gl definia FUNCTION selectOutput(), mismo
nombre que otrodir/vesalidaimpresora.4gl (ya usado por Abel en
noprcs006, ipprrp002, ipprrp003, ipprrp039, ipprrp044). Al mezclar
ambos commits, cualquier programa que dependiera de FUNCIONESREPORT
mas la libreria de Abel rompia por simbolo duplicado.
Se renombra la funcion (y se actualizan sus 4 unicos llamados: ipprrp005,
ipprrp009, ipprrp035, ipprrp036) sin tocar vesalidaimpresora.4gl, para
no afectar los programas que Abel ya tiene funcionando con esa version.
Recompilados y verificados los 4 programas tras el cambio.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
.4rp faltantes y titulo incorrecto
- Registrar ipfmrp036.4fd en el proyecto.
- Agregar dependencia faltante FUNCIONESREPORT para selectOutput().
- Rescatar ipprrp036.4rp de un backup viejo (PROYECTOS/bin), no existia
en el repo. El nombre de reporte (inv1) coincidia bien.
- El titulo del reporte decia "ipprrp035" (texto quemado copiado del
diseño anterior, nunca actualizado) - corregido a "ipprrp036", y el
subtitulo aclarado a "Reporte costos de calidad (con ventas)".
Verificado con rango de fechas 2026-hoy: abre limpio, muestra
"Facturado ventas a la fecha" en el encabezado, exporta correctamente
en PDF, pantalla y Excel.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Registrar ipfmrp035.4fd en el proyecto.
- Agregar dependencia faltante FUNCIONESREPORT para selectOutput().
- Rescatar ipprrp035.4rp de un backup viejo (PROYECTOS/bin), no existia
en el repo. El nombre de reporte (inv1) coincidia bien.
Verificado con rango de fechas 2024-hoy, vista detallada y resumida
(por producto y por departamento): abre limpio, exporta correctamente
en PDF, pantalla y Excel.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Registrar ipfmrp009.4fd y agregar dependencias faltantes
(FUNCIONESREPORT, FUNCIONES_IN) para msgrp000/selectOutput/defecto/
fgl_report_*.
- Rescatar ipprrp009.4rp de un backup viejo (PROYECTOS/bin), no existia
en el repo. El nombre de reporte (existencia_grafica) coincidia bien,
a diferencia del caso de ipprrp010.
- Quitar dos DISPLAY de depuracion olvidados (mostraban el SQL completo
y el texto "imprime" en cada fila).
Verificado con producto 29-668-1403-6952, rango 01/01/2026-29/09/2026,
grafico=SI: Existencia 360.00, Costo 3,512.41/3,512.42, Total
1,264,469.40 (cuadra: 360 x costo). Subtotal por origen y total general
correctos. Exportado en PDF, pantalla y Excel sin problemas. Cierre
limpio.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Registrar ipfmrp005.4fd en el proyecto (form not found al abrir).
- Agregar dependencias faltantes FUNCIONESREPORT (msgrp000) para el
papel/preview del reporte.
- selectOutput() no estaba definida en ningun modulo enlazable sin
conflicto: la version de otrodir/vesalidaimpresora.4gl tiene una
firma distinta (devuelve 3 valores) y la de otrodir/msgrp000.4gl
choca con indir/defecto.4gl al traer ambas. Se extrajo a un archivo
propio (otrodir/selectoutput_simple.4gl) la version de un solo
valor de retorno que ya coincidia con lo que espera este programa,
reutilizando el formulario "Configuration" ya existente.
- ipprrp005.4rp: la ruta del logo era absoluta a la maquina de
produccion (E:\MARMOTECHC\IMAGENES\logo.png), no existia aqui -
cambiada a ruta relativa (logo.png, ya esta en PROYECTO/bin).
- Se agrego titulo a la ventana (usaba el generico "screen").
Verificado con producto 29-668-1403-6952, año 2026: Material 3,512.42,
Labor 0.00, Gasto 0.00, Costo STD 3,512.42 - reporte bien formateado
(usa el .4rp original del programa, no uno reescrito). Cierre limpio.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
El .4rp que traia el repo (y su copia en el backup viejo) era en
realidad el reporte de "activos" de otro programa (RWFglReportName y
todo el cuerpo no correspondian a REPORT detalle(x)) - por eso nunca
pudo generar nada, ni siquiera despues de arreglar el crash original
de configureOutput().
- Se convirtio el REPORT detalle(x) de PRINT COLUMN clasico a PRINTX
(siguiendo el patron de ipprrp005, que si funciona), y se escribio un
.4rp nuevo desde cero con las variables correctas.
- Se quito el subtotal por "Orden" que la migracion habia agregado sin
incluirlo en el ORDER BY (nunca funciono bien, no existia en 3.20).
- Se agrego titulo a la ventana (usaba el generico "screen").
Pendiente: el acomodo visual de columnas del reporte sale apilado en
vertical en vez de en fila - los datos y subtotales son correctos, pero
falta pulir el layout en el Report Designer (consultado con Johnny).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
La regeneracion via 'Update Meta-schema' del commit anterior perdio 239
tablas que si existian en el esquema anterior (algunas reales, como
departamentos y dgii_rnc, no solo staging temporal), probablemente por
la opcion 'Ignore errors' de la extraccion o por permisos/timeout contra
la base real. Riesgo de romper la compilacion de otros programas del
equipo sin necesidad, y de todas formas no resolvio el bloqueo de
ipprrp052 (columna iptb00002.categoria). Se revierte para no arriesgar
el trabajo de otros mientras se investiga la causa real con Johnny.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Registrar ipfmrp050.4fd en el proyecto (form not found al abrir).
- Agregar dependencia faltante FUNCIONESREPORT a ipprrp050 (no linkeaba,
llamaba seleccionarSalida() sin tener el modulo).
- Rescatar ipprrp050.4rp de un backup viejo (PROYECTOS/bin), no existia
en el repo.
Verificado con producto 29-668-1403-6952, bodega ALMACEN PUNTA CANA:
existencia 308.00, coincide con la BD. Cierre limpio con Cancel (usa el
mismo patron DIALOG/ON ACTION que ipprrp052, sin el bug de cierre
colgado de ipprrp002/ipprrp002_1).
Nota aparte (sin corregir, igual que ipprrp052): cuentaitems() nunca se
llama (comentado), variable cuenta sin inicializar para la barra de
progreso - inofensivo pero es codigo muerto.
Ademas: actualizar DATABASE/smarmotech.4db, smarmotech.sch y
PROYECTO/smarmotech.sch desde la BD real (.40.250) via Update Meta-schema
de Genero Studio. Se hizo intentando resolver el bloqueo de ipprrp052
(columna iptb00002.categoria no reconocida por el compilador) - el
esquema ya trae la columna correcta pero el compilador sigue sin
reconocerla incluso tras Rebuild All completo; ipprrp052 sigue
bloqueado, pendiente que Johnny revise el paso de regeneracion del
diccionario que nos falta.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- ipprrp002_1.4gl: envolver el flujo de captura/reporte en un WHILE,
mismo bug que ipprrp002 (el programa quedaba colgado tras generar el
reporte y habia que forzar el cierre; ahora Cancelar cierra limpio y
se puede volver a buscar sin cerrar el programa).
- ipfmrp002_1.4fd: agregar texto al <Form> ("CATALOGO PRODUCTOS CON
COSTOS"), la ventana no tenia titulo y mostraba "screen" por defecto.
Verificado con producto 29-668-1403-6952 (1 pagina, existencia 360.00,
costo 3,512.42, precio 7,379.02, coincide con la BD) y con el catalogo
completo sin filtro (mismo volumen que ipprrp002, generacion correcta
aunque lenta por las consultas adicionales que hace por fila).
Nota aparte (sin corregir): los campos "Origen" y "Lista Precios" en
pantalla no estan en el INPUT BY NAME ni se usan en el query (que trae
siempre ventas='1' y cod_lista=1 hardcodeados) - no seleccionables,
funcionalidad a medio conectar igual que "Anio" en ipprcs042.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Rescatar de un backup viejo (PROYECTOS/bin) los .4rp que faltaban en el
repo: ipprrp002.4rp, ipprrp002_1.4rp, ipprrp002_2.4rp e ipprrp052.4rp.
Sin ellos el reporte nunca podia generarse (fgl_report_loadCurrentSettings
fallaba y el programa hacia EXIT PROGRAM).
- Registrar en mbsERP.4pw los formularios ipfmrp002.4fd, ipfmrp002_1.4fd
e ipfmrp052.4fd, y los .4rp anteriores: existian en el repo pero nunca
se habian agregado al proyecto.
- ipprrp002.4gl: cambiar `cuenta` de SMALLINT a INTEGER, causaba
"Value too large to fit in a SMALLINT" al generar el catalogo completo
(43,796 productos sin filtro).
- ipprrp002.4gl: envolver el flujo de captura/reporte en un WHILE para
permitir buscar de nuevo sin cerrar el programa, y para que Cancelar
termine limpio (antes, al terminar de generar el reporte el programa
quedaba colgado y habia que forzar el cierre).
Verificado con producto 29-668-1403-6952 (1 pagina, ciclo buscar-reporte-
cerrar limpio) y catalogo completo sin filtro (43,796 productos, 1093
paginas, generacion correcta).
Nota aparte (sin corregir): sin filtro de codigo el programa genera el
catalogo completo (43,796 productos) sin ninguna advertencia; evaluar si
deberia exigir un filtro minimo. Campo "Anio" en pantalla sin uso en el
codigo. ipprrp002_1 e ipprrp052 tienen sus assets registrados pero aun
no se han probado funcionalmente.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
ipfmrp002.4fd e ipfmrp002_1.4fd existian en el repo pero nunca se habian
agregado a mbsERP.4pw, mismo patron visto en ipprcs004_1/ipprcs042.
Pendiente aparte: los reportes ipprrp002.4rp e ipprrp002_2.4rp (usados
por fgl_report_loadCurrentSettings) no existen en el repo ni en su
historial, el programa no puede completar la generacion del reporte
hasta que se consigan o se rehagan en Report Studio. Consultado con
Johnny, sin respuesta aun.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Registrar ipfmcs042.4fd en el proyecto, no estaba agregado a mbsERP.4pw
y el runtime daba "Form file not found" al abrir el programa.
- Quitar CONVERT(CHAR(10),b.fech_oc,103) en la busqueda de ordenes de
compra a proveedores, causaba "Invalid month in date" (-1205) igual
que en mercancia_transito.4gl/funciones_ip.4gl.
Verificado con producto 1-119-2-56 (272 ordenes de compra 2008-2026):
grilla de proveedores, inventarios y precios cargan correctamente.
Nota aparte (sin corregir): los campos "Almacen" y "Rank" del formulario
existen mas nunca se usan en el codigo, no filtran nada.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- mercancia_transito.4gl y funciones_ip.4gl: quitar CONVERT(...,103) al
traer fechas de SQL Server, causaba "Invalid month in date" (-1205) en
ambiente de pruebas por ambiguedad de formato dd/mm/yyyy vs mm/dd/yyyy.
- ipprcs004_1: agregar dependencia faltante FUNCIONES_PR (no linkeaba,
llamaba mercancia_transito/fechas_llegadas sin tener el modulo).
- Registrar en el proyecto tres formularios que existian en el repo pero
nunca se agregaron a mbsERP.4pw (ipfmwd017.4fd, almacenes.4fd,
cofmfu009.4fd), causaban "Form file not found" en los botones
Ordenes/Almacenes/Fecha Llegada.
Verificado botón por botón contra produccion (Genero 3.20, .40.8) con el
mismo codigo de producto: Foto, Ordenes, Reservados, Ubicacion, Almacenes
y Reporte (PDF/pantalla/Excel) dan resultados consistentes.
Pendiente aparte: el patron CONVERT(...,103) aparece en ~132 archivos del
proyecto, riesgo sistemico a evaluar por separado.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- 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