Se ignoran *.jks, *.keystore, *.p12, *.pfx, *.pem, *.key, *.crt y *.cer, y se sacan del
repo los 38 que estaban versionados (keystores de Android, certificados de firma, llave
TLS de WEBSERVICES, llaves APNs, etc.). Los archivos siguen en disco.
OJO: al hacer pull, git borra esos archivos de la copia de cada desarrollador; quien los
necesite (firma e-CF, WEBSERVICES, build del APK) debe recibirlos por un medio seguro.
Siguen en el historial de git: se recomienda renovar las llaves expuestas.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- *.gar: los paquetes se generan en el build (gsmake -t mbs mbsERP.4pw); se sacan del
repo PROYECTO/distbin/mbs.gar y PROYECTO/seguridad2.0/distbin/Application_GAR.gar.
- PROYECTO/bin/IMAGENES: solo se versionan las imagenes que usan programas y reportes
(Logo.png, Logo_DCM.png, genero_logo.png, LOGO.JPG, logo1.png y EMPLEADOS/.gitkeep).
Se sacan del repo fotos personales, temporales (tmpfile.jpg) y archivos subidos en
ejecucion (imagenessistema/, p.ej. comprobantes de cobro). Los archivos siguen en disco.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Se quita la aplicacion cgprmt005 (Cheques Administrativos RD$) y sus formularios
cgfmmt005/cgfmwd007: pertenece al proyecto EXTERIOR (conecta a la BD exterior, usa
funciones de sus librerias y los cheques solo estan vivos en exterior; en marmotech
el ultimo es de 2018). Las fuentes quedan en cgdir.
- Paquete mbs: el directorio IMAGENES solo incluye los logos que usan los .4rp
(Logo.png, Logo_DCM.png, genero_logo.png, LOGO.JPG). Con *.png/*.jpg se empaquetaban
fotos personales, temporales y comprobantes de cobro de bin/IMAGENES.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- acprmt001_alter_actb00001.sql: crea en actb00001 las columnas cod_sp, cod_sp_sec,
tipo_activo y activo_padre (NULL). Las usa la version ene-2025 del programa
(integracion MaintainX) y nunca se habian creado en ninguna base. Aplicado en la .250;
pendiente en produccion.
- Si MaintainX falla (Adicionar/Modificar con la casilla marcada, Eliminar con
id_maintainx) se cancela la operacion; antes hacia ROLLBACK y seguia grabando fuera de
la transaccion (COMMIT -255).
- Eliminar: parametros de ApiMaintainX en el orden de la firma (infoArray, maquinaria).
- Lista: se quita la fila vacia final; getdata usa el codigo como parametro (antes
"WHERE a.codigo = " sin valor daba -201) y filtra la maquina inactiva en el ON del
LEFT JOIN.
Co-Authored-By: Claude Opus 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>
cgprmt022 (actualizacion de tasa mensual, cgtb00084; la usa edprrp116):
- La fuente era la version de EXTERIOR, donde vetb00060/vetb00061 estan invertidas
respecto a marmotech: el combo de moneda ahora sale de vetb00061 y los tipos de
cliente de vetb00060.
- SELECT INTO tenia 5 columnas para 4 variables.
- Se quita la segunda escritura a marmotech.dbo.cgtb00084 (en marmotech es la misma tabla).
- cgfmmt022.4fd: formulario de EXTERIOR (campo Replicar y tabla de tipos de cliente);
el de MARMOTECH (2022) no tenia esos campos (-1102).
mbsERP.4pw: se quita la aplicacion cgprmt037 y sus formularios cgfmmt037/cgfmwd006
(solo los usaba ese programa). Pertenece al proyecto EXTERIOR (sistema de tablas de la
BD exterior, aun no iniciado); las fuentes quedan en cgdir.
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>
El grupo estaba vacio (despues de MATERIA PRIMA) y no se usara; los
programas de nomina viven en RECURSOS HUMANOS > NOMINA.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Repuestos (irdir):
- irprrp002: cod_sec USING '&&&&' (con '&&&' salia *** en sec >= 1000); encabezado
con companias.nombre (estaba fijo "EUROSTONE").
- irprrp003: filtro de fecha real con parametros (antes CONVERT(...,103) BETWEEN texto:
traia movimientos de cualquier ano); codigo CHAR(8)/'&&&&' (los sec >= 1000 se
mezclaban en un mismo grupo y saldo); RIGHT MARGIN 170 (saldo y balance cortados).
- irprrp004: CONSTRUCT sobre irtb00005.cod_mov (antes intb00005: fallaba con filtro).
- irprrp006: JOIN b.cod_n = c.cod_n (antes c.cod_n = c.cod_n).
- irprrp009: CONSTRUCT calificado con b. (columnas ambiguas en el JOIN).
- irprrp045: sin departamento solo muestra los departamentos del usuario (adtb00056).
Contabilidad (cgdir):
- cgprrp014: saldo de apertura acreedor va positivo a la columna CR (restaba en totales).
- cgprrp009: ya no modifica cgtb00004 (UPDATE departamento=0 y reversion); el NULL se
trata como 0 en las consultas; corrige idx1 (START REPORT se repetia por fila).
- cgprcs024: el acumulado anterior termina el dia antes de "desde" (se contaba doble).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Registra nofmmt026.4fd y la aplicacion noprmt026 (con FGLSPOOL) en el
subgrupo NOMINA.
- GDC 6.00 ya no incluye el modulo WINDDE (error -6331): enviaDDE() guarda
las celdas en memoria y escribeCSV() genera FGLSPOOL/noprmt026_<tipo>_
<periodo>.csv con las mismas filas/columnas de la plantilla TSS.
- SQL: se quitan los CONVERT(...,103) sobre variables DATE (-1205), la
comparacion de fechas como texto (101) y el date+int dentro del SQL
(-206); rango con fecha_sig = fecha_final+1. FOREACH con THRU (10 cols).
Verificado contra la BD .250: Normal 2026/7 = 636 filas / 33,933,711.43;
Bonificacion cancelados 2026/4 = 229 filas / 1,596,887.98.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- Registra nofmrp041.4fd y la aplicacion noprrp041 en el subgrupo NOMINA.
- nofmrp041.4fd: el del repo no era el de este programa; se usa el de 3.20
(fecha_inicial, fecha_final, cod_sup, num_emp) con format dd/mm/yyyy.
- noprrp041.4gl: el JOIN comparaba notb00028.supervisor (texto
'(cod) NOMBRE') con adtb00003.num_emp -> error 245; ahora une por
notb00028.num_emp. El filtro Empleado filtra b.num_emp. Fechas del SQL
en yyyymmdd con fecha_final+1 (sin BETWEEN).
Verificado contra la BD .250 (dic-2019: 3,552 horas / 544,076.97).
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Programas (bugs encontrados en las pruebas funcionales en la .250):
- acprmt004/acprmt005: MIN/MAX sobre la fecha real (no sobre texto CONVERT 103); acprmt004 alinea rowid.
- cgprrp008: lee cgtb00004 (no la copia cgtb00004_tmp del 14-mar-2026) y solo regenera
cgtb00016 cuando se corre sin filtro de cuenta.
- cgprrp014: CONSTRUCT con los nombres de campo del form (cod_sp_sc).
- cgfmrp013: defaultValue del combo = cgprrp012.4rp.
- cgprrp022/edprrp029: salida getPreviewDevice() en lugar de SVG fijo.
- edprrp080: no consume numero ED con afecta = NO.
- cgprmt004/022/037, segprmt0001: sin CONNECT "IFMX" (-6366); EXTERIOR via cross-DB.
- irprcs001: agrega CONNECT; irprmt021: columna idestado; irprmt066: la anulacion sin
MaintainX ya no se deshace (-255); otrodir/bodegas: rama '2' llena origen y destino.
- teprmt001: ajustes G6.
Despliegue G6:
- DBDATE=dmy4 en config/Application.xcf, config/Main_prg.xcf, resources/Application.xcf
y en el grupo MODULOS del .4pw (los programas lanzados por el menu heredan el entorno).
- 31 .4rp: IMAGEBOX con rutas absolutas file:///E:|F:|C: -> relativas IMAGENES/...;
se agregan IMAGENES/LOGO.JPG y genero_logo.png.
- Paquete mbs: incluye bin/*.4rp y bin/IMAGENES (antes el GAR no llevaba los reportes).
- resources/TopMenu.4st (irprcs008 daba -8014); bin/cgprcs024.4rp.
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>
El stub RETURN NULL dejaba sin handler a los ~90 programas que usan
configureOutput(): todos caian con -8083 en START REPORT ... TO XML HANDLER.
Se vuelve a la version de 3.20 y se agrega IMPORT FGL greruntime para que
las funciones fgl_report_* resuelvan aunque la app no declare libgre.42x.
Verificado con gsmake (fgl602) sobre las 79 apps que dependen de
FUNCIONESREPORT: ninguna empeora; las de CxP, Compras y Nomina siguen
compilando y 8 reportes de Ventas pasan a compilar.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Merge de main (ipprrp013/014/046/053) con conflictos resueltos:
- mbsERP.4pw: ipprrp014 conserva ambos 4rp y su 4fd.
- bin/ipprrp014.4rp: columnas MARGEN/CLASIF. + titulo IPPRRP014.
Programas agregados a mbsERP.4pw (53 compilan y enlazan con fgl602):
- CONTABILIDAD GENERAL, ACTIVOS FIJOS, REPUESTOS; grupos nuevos TESORERIA,
CHEQUES e INFORMATICA (segprmt001 = seguridad2.0/segprmt0001.4gl).
- irdir copiado de 3.20 PROYECTOS/irdir a PROYECTO/irdir; helpers de
PROYECTOS/otrodir en FUNCIONES_IR (departamento -> irdepartamento.4gl).
- Fuentes mas nuevos de 3.20: edprrp118, edprrp080, acprrp010, cgprmt022.
- FUNCIONES: GeneraEntradaDiario.4gl a la version 3.20 + costoLiquidacion.4gl.
- Ajustes G6: existe duplicado en irprgb000, fakeData de 22 campos y
answer2 en irprmt036/020 (ApiMaintainC), selectOutputSimple en irprcs008,
schemas de forms a smarmotech, referencia declarada en cgprmt005.
- cgprmt005 sigue sin enlazar: requiere funciones de EXTERIOR.
Co-Authored-By: Claude Opus 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>
- Programas y librerias de nomina (FORMULARIOS_NO, FUNCIONES_NO y las
aplicaciones noprmt/noprcs/noprrp) pasan al subgrupo NOMINA.
- FORMULARIOS_AD y FUNCIONES_AD pasan al subgrupo ADMINISTRACION PERSONAL.
Solo cambia la ubicacion en mbsERP.4pw; ids, dependencias y fuentes sin
cambios.
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>
Quita espacios dentro de las expresiones RTL de bgColor/fontBold, que el
parser rechazaba al cargar el reporte. Datos verificados contra la BD
(monto y cantidad por mes y sexo, ano 2025).
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>
- Registra nofmrp045.per y la aplicacion noprrp045 en mbsERP.4pw.
- Mueve noprrp045.4rp a bin/ (igual que los demas reportes).
- Diseno: el gris/negrita de columnas aplica solo a filas mensuales
(A/M/C); las secciones 4-8 se ven planas. Declara x.tipo como
input-variable.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Solo cambia la ubicacion en mbsERP.4pw (ids, dependencias y fuentes
sin cambios). El grupo NOMINA queda vacio.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Se agrega noprrp015 al proyecto usando nofmrp015.per.
A diferencia de noprrp009 (donde se opto por salida de archivo de
texto), aqui se reescribio REPORT prestamo de PRINT COLUMN clasico a
PRINTX, y se creo nodir/../bin/noprrp015.4rp (diseno Report Writer
2.0) para soportar pantalla/PDF/Excel, igual que noprrp002/003/039/
043/044. configureOutput() en msgrp000.4gl sigue siendo un stub NULL
(ver noprrp009), asi que se usa fgl_report_loadCurrentSettings +
fgl_report_selectDevice/selectPreview/commitCurrentSettings
directamente.
Se corrige tambien el mismo problema de signo oculto en los montos
(mascaras sin caracter de signo) que se encontro en noprrp009.
Probado con empleado especifico y con varios empleados del mismo
movimiento, verificado contra BD (valor, interes y balance).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Se agrega noprrp009 al proyecto usando nofmrp009.per.
Se corrige conversion CONVERT(CHAR,fecha,103) hacia variables DATE en
3 consultas (mismo patron de error -1205 "Invalid month in date" visto
en otros programas).
Se corrige salida del reporte: REPORT list_cooper usa el estilo
clasico PRINT COLUMN (no PRINTX/.4rp), incompatible con el motor de
reportes moderno (fgl_report_*); configureOutput() en msgrp000.4gl es
un stub que siempre retorna NULL para este caso (documentado en su
propio comentario). Se cambia a escribir un archivo de texto plano en
FGLSPOOL, igual que noprrp038.
Se corrige comparacion de fechas como texto (CONVERT a CHAR en formato
dd/mm/yyyy comparado alfabeticamente) en el modo "Vacaciones Pagadas",
que fallaba al usar un rango de fechas que cruza meses/anos distintos;
se cambia a comparacion real de fechas (>= y < dia_siguiente).
Se corrige formato de fecha faltante en los campos de rango de fecha
del formulario (.per), causando "Invalid month in date" al capturar
un dia mayor a 12 como mes.
Se corrige perdida del valor de fecha final en el encabezado del modo
"Vacaciones Pagadas" (el campo se reutilizaba en el record de fetch y
se sobreescribia con un valor en blanco); se guarda en una variable
separada antes del ciclo.
Se corrige formato de impresion de montos y totales sin signo
(mascaras "#,###,###.##" sin caracter de signo), que ocultaba
silenciosamente los valores negativos mostrandolos como positivos.
Probado en ambos modos (por nomina/movimiento, y por vacaciones
pagadas con rango de fechas cruzando meses), verificado contra BD.
Co-Authored-By: Claude Sonnet 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>
Se agrega noprrp043 al proyecto usando nofmrp043.4fd, reutilizando
FUNCIONESREPORT y libgre.42x.
Se corrige validacion residual de otro programa: comprobaba
"fecha_inicial IS NULL" (variable nunca asignada aqui) y hacia
NEXT FIELD fecha_inicial, campo que no existe en este formulario
(solo existen xfecha1/xfecha2). Esto hacia que el boton "Imprimir"
fallara siempre con "Field not found". Se elimina esa validacion,
ya que la validacion real de xfecha1 esta justo despues.
Se corrige rango de fechas: WHERE checktime BETWEEN fecha1 AND fecha2
(sin hora) excluye registros del ultimo dia con hora posterior a
medianoche. Se cambia a >= fecha1 AND < fecha2+1.
Probado con empleado 5001, rango 14/10/2024-16/10/2024, verificado
contra BD (2 registros de entrada, fecha/hora correctas).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>