ccprmt001/003/005 leen cctb00003 por tipo_doc esperando una sola fila. En SQL
Server un SELECT INTO que devuelve varias filas da -284 (en Informix tomaba la
primera). Al dar de alta un rango, ccprmt002 insertaba una fila PG por vendedor
y, con ella, nadie podia registrar recibos. Ahora solo crea la fila si no existe
ninguna PG.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- El bloque AFTER DISPLAY de la lista recargaba el grupo seleccionado (y sus
clientes) al pulsar Nuevo; ahora solo lo hace si operacion <> "N".
- vefmwd022.4fd: los botones Desactivar y Activar solo tenian icono y quedaban
invisibles cuando el icono no carga; se les agrega texto.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- ccprrp018: agrega MAIN, GROUP BY por nombre, y reemplaza la salida Excel/DDE
(G:\ESTADO.XLS, DEL G:\ESTADOS) por un reporte Genero (ccprrp018.4rp); carga con
un solo INSERT...SELECT en tabla temporal.
- ccprrp003: reemplaza el REPORT de texto con codigos de impresora por
ccprrp003.4rp; agrega por cliente en una consulta (DATEDIFF, mismas reglas).
- ccprrp001: agrega MAIN, GROUP BY por nombre, reporte Genero (ccprrp001.4rp) y
registra el formulario ccfmrp001 en FORMULARIOS_CC (faltaba, -1110).
- ccprrp052: la validacion del campo Orden estaba al reves.
- ccprmt002: cctb00002.fecha es datetime en SQL Server; el formulario, la variable
global relacion (ccprgb000) y el CONSTRUCT la manejan como DATE; corrige que
eLiminar mostrara exito sin actualizar filas.
- mbsERP.4pw: registra los .4rp, libgre y ccfmrp001 (sin credenciales).
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- prfmmt003pr.4fd: Equipo 30 -> 48 columnas y las columnas siguientes se corren 18.
- prprmt003.4rp: hoja horizontal y nueva columna cantidad entre espesor y medida
(el cambio de cantidad al modificar un documento no se veia al imprimir).
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- DATABASE -> SCHEMA y CONNECT TO smarmotech con usuario/clave (args 1 y 2).
- iptb00007 (contador) es por movimiento y bodega: consulta, update e insert lo usan.
- Verificacion de documento duplicado en iptb00006 considera la bodega.
- user,current (Informix) -> SUSER_SNAME(),getdate().
- INSERT INTO iptb00006 con lista explicita de columnas (la tabla ya tiene 50).
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- La salida pasa del archivo de texto en FGLSPOOL a
seleccionarsalida()/configureoutput() (Excel/PDF/pantalla); antes se
dejo en texto porque configureOutput() era un stub que devolvia NULL.
- RIGHT MARGIN 86 (el reporte usa hasta la columna 84).
- NO. REGISTROS se reinicia en cada codigo de movimiento (se acumulaba).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- mbsERP.4pw: se registra noprrp008 (Volantes de Nomina) en NOMINA. El
build ya pasa con la JVM configurada en el grupo COMUNES.
- noprrp008.4gl: seleccionarSalida() en lugar del 'SVG' fijo; el usuario
elige Excel/PDF/pantalla (modo IMPRESORA y la parte impresa de EMAIL).
- noprrp008.4rp: formato del acumulado ###,###,###.## (con #,###,###.##
los montos de 10 millones o mas salian como 2.64775E7).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- mbsERP.4pw: el grupo COMUNES (libreria FUNCIONESEMAIL, que usa
IMPORT JAVA javax.mail) recibe FGLJVMPATH/JAVA_HOME/PATH como el grupo
MODULOS; sin eso el build fallaba con -8301 "Can not create java VM".
- mbsERP.4pw: se registra codir/cofmmt025.4fd en lugar del .per (el .per
no tiene el combo formonly.depto: error -8083 al consultar).
- coprmt025.4gl: la impresion vuelve a configureoutput(salida) como en
3.20 (escribia un XML suelto en FGLSPOOL); el boton imprimir muestra el
cuadro de formato (PDF si se cancela).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- defecto()/START REPORT TO archivo reemplazado por
seleccionarsalida()/configureoutput() (salida XML HANDLER).
- Se quita RUN imprime (era para la impresora matricial).
- Codigos de impresora en NULL (salian como basura en PDF/Excel).
- RIGHT MARGIN 138 para que no se recorten las columnas.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- La salida escribia un XML directo en FGLSPOOL; se vuelve a
seleccionarsalida()/configureoutput() como en la version 3.20.
- RIGHT MARGIN 148 para que no se recorten las columnas.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
El formulario viejo de ctdir lo sigue usando ctprmt029; prprmt003 usa una copia del .4fd
nuevo de PRDIR con otro nombre para que no choquen en bin.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
El proyecto apuntaba a ctdir/prprmt003.4gl (631 lineas, version vieja). Se cambia a
PRDIR (2398 lineas) y se agregan prtraza, coperacion, cturno, prod_report,
prverificar, los formularios prfmordenped/pendientes/prfmwd010/prfmwd011, la
dependencia FUNCIONES_IR (maquinas) y libgre.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- Codigos de impresora matricial en NULL (salian como basura en PDF/Excel).
- PRINT antes de la raya de cierre: la ultima linea de detalle termina en ";"
y la raya se pegaba a ella, saliendose de la pagina.
- nom_pt CLIPPED para que Flete/Gastos queden en sus columnas.
- RIGHT MARGIN 165 (el reporte usa hasta la columna 163).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- La salida escribia un XML crudo en FGLSPOOL (no era PDF ni Excel); vuelve
a configureOutput() (modo compatibilidad de GRE, como en 3.20) con la
ventana comun seleccionarsalida() (EXCEL / PDF / SCREEN).
- Se quitan dos ESC P (ASCII 27, ASCII 80) de impresora matricial que el
reporte imprimia directo y salian como basura en PDF/Excel.
Verificado contra la BD .250 (tipo 01, 01/08/2026 al 15/08/2026): PDF y Excel
generados; 4 ordenes, monto = productos + flete + otros gastos, total
1,515,154.88 = SQL. Build OK con gsmake.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- La salida escribia un XML crudo en FGLSPOOL (no era PDF ni Excel); se
restaura el codigo de 3.20: ventana seleccionarSalida() (EXCEL / PDF /
SCREEN) con el diseno bin/coprrp001.4rp (fgl_report_loadCurrentSettings).
Verificado contra la BD .250 (22-1 a 22-10, orden numerico): PDF y Excel
generados; 9 suplidores = SQL (22-7 anulado). Build OK con gsmake.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- otrodir/enviacorreo.4gl: TRY/CATCH al ejecutar el procedimiento de correo
(si falla avisa y no se pierde la grabacion; antes una cotizacion con
reserva se perdia completa) y desvio opcional MBS_CORREO_PRUEBA para
ambientes de prueba (en produccion no existe la variable).
- ccprmt001, ccprmt003, ccprrp049, ccprrp054: salida SVG fija -> PDF.
- bin/ccprrp054.4rp: era de otro reporte (reporte54); se usa el de
ccprrp049 (mismo REPORT r_email).
- *.sch: columnas DECIMAL/MONEY con precision > 32 (vistas como
ventas_facturas, analisiscotizaciones, rotacioniventario) bajadas a 32
con la misma escala; Genero daba -6634 y no compilaban veprrp058/059/060.
- mbsERP.4pw: agregado vefmrp060.4fd a FORMULARIOS_VE (-1110).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- .gitignore: se ignora todo PROYECTO/bin (compilados, imagenes, estilos,
xml/js de ejecucion, ejecutables, certificados) excepto *.4rp, que son
fuentes registradas en mbsERP.4pw. Reemplaza las reglas anteriores de
bin/IMAGENES y bin/*.TXT.
- Se quitan del repositorio (git rm --cached) los 459 archivos de bin que no
son .4rp; siguen en el disco de cada PC. Se conservan los 205 .4rp.
Nota: bin/cert/*.pem quedan en el historial de git; si son llaves reales
deben cambiarse.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Si el item ya esta en otra linea, muestra un aviso corto, limpia la fila y
regresa a Clase. Se mantiene el chequeo al guardar como respaldo.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- Guardar: si un item (clase/grupo/tipo/medida) aparece en mas de una linea,
aunque cambie el area, muestra error y no guarda (antes solo avisaba y solo
si coincidia el area). Evita que el impreso muestre solo la primera linea.
- Reporte: la fecha/hora sale como dd/mm/yyyy hh:mm y el titulo deja espacio
para que no se corte en el encabezado.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Nueva funcion itemRepetido(): misma area, clase, grupo, tipo y medida entre las
lineas con cantidad. Si hay repetido pregunta si desea continuar; NO vuelve a
la edicion (CONTINUE DIALOG), YES guarda como antes.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- .gitignore: PROYECTO/bin/** ignorado salvo *.4rp (incluye subcarpetas).
- Se sacan del indice 459 archivos de bin (cert/*.pem, filesXML, fotos,
node_modules, estilos, etc.) con git rm --cached; siguen en cada PC.
- Se conservan los 205 disenos de reporte .4rp.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- La salida escribia un .txt en FGLSPOOL (no era PDF ni Excel); vuelve a
configureOutput() con la ventana comun seleccionarsalida() (EXCEL / PDF /
SCREEN), RIGHT MARGIN 142 y sin codigos de impresora matricial.
- BUG de la migracion: la consulta se armaba en selec CHAR(500); al cambiar
rowid por ROW_NUMBER() el texto fijo paso a 463 caracteres y cualquier
filtro de factura+suplidor o de fechas se cortaba (-4145). Ahora se arma
en un STRING local.
Verificado contra la BD .250: factura 068-1AK05 de 22-770 (Debe = Haber =
1,253,019.91) y grupo 22 del 01/08/2026 al 15/08/2026 (4 facturas, total
3,834,979.72) cuadran con SQL; PDF y Excel generados. Build OK con gsmake.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- La salida escribia un XML crudo en FGLSPOOL (no era PDF ni Excel); vuelve
a configureOutput() (modo compatibilidad de GRE, como en 3.20) con la
ventana comun seleccionarsalida() (EXCEL / PDF / SCREEN).
- RIGHT MARGIN 142: la linea llega a la columna 139 y con el ancho por
defecto (132) se cortaba.
Verificado contra la BD .250 (grupo 22, 01/08/2026 al 15/08/2026, Afectar
Mayor = N): PDF y Excel generados; 4 facturas, valor 62,868.52, Debe = Haber
= 3,834,979.72 y totales por cuenta cuadran con SQL. Build OK con gsmake.
No probado: Afectar Mayor = S (graba en cgtb00004).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- La salida escribia un XML crudo en FGLSPOOL (no era PDF ni Excel); vuelve
a configureOutput() (modo compatibilidad de GRE, como en 3.20) con la
ventana comun seleccionarsalida() (EXCEL / PDF / SCREEN).
- Se quita defecto(): solo cargaba codigos de impresora matricial que, si
el menu pasa una impresora, salian como basura en PDF/Excel.
Verificado contra la BD .250 (22-770, 01/08/2026 al 15/08/2026): PDF y Excel
generados; documentos y creditos (38,910.46) cuadran con SQL. Build OK con
gsmake. Sin cambios (igual que 3.20): 'Balance Al' sale .00 porque usa
cptb00001.tipo_doc_cp, vacia en todas las filas; hoja final vacia.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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>
- La salida escribia un XML crudo en FGLSPOOL (no era PDF ni Excel); vuelve
a configureOutput() (modo compatibilidad de GRE, como en 3.20) con la
ventana comun seleccionarsalida() (EXCEL / PDF / SCREEN).
- Se dejan vacios los codigos de impresora matricial (ASCII 14/15/20,
ESC E/F/M/P) del encabezado, que salian como basura en PDF/Excel.
Verificado contra la BD .250 (grupo 22, del 01/08/2026 al 15/08/2026):
PDF, Excel y pantalla generados; balance inicial, debitos, creditos, balance
y total general (credito 62,868.52, balance 105,394.28) cuadran con SQL.
Build OK con gsmake.
Co-Authored-By: Claude Opus 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>