- 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>
- 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>
- Vuelve a configureOutput() (modo compatibilidad de GRE, como en 3.20) en
lugar del XML crudo en FGLSPOOL, que no era ni PDF ni Excel.
- El formato se elige en la ventana comun seleccionarsalida() (EXCEL / PDF /
SCREEN); se quita del formulario cpfmrp002 el grupo 'Opciones Salidas',
al que no se llegaba con Enter. La opcion MATRICIAL deja de ofrecerse.
- RIGHT MARGIN 145: la linea llega a la columna 143 y con el ancho por
defecto (132) la columna Total salia cortada.
Verificado contra la BD .250 (grupo 25, corte 20/10/2026): PDF de 12 paginas
con totales completos. Excel generado en prueba local; falta confirmarlo en
el GDC.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Dos usuarios convirtiendo la misma cotizacion a la vez creaban dos ordenes
(cot 340001 -> 262237 y 262238, ticket 12234). La validacion "cotizacion
tiene orden" corria antes del BEGIN WORK; el segundo usuario la pasaba,
esperaba el bloqueo de prtb00020 y al liberarse insertaba otra orden.
- vedir/veconvierteorden: re-valida dentro de la transaccion, ya con el
bloqueo de prtb00020.
- WEBSERVICES/veconvierteorden: misma re-validacion (no tenia ninguna).
- ccdir/ccprmt003 verifica_orden(): COUNT(*) en vez de SELECT num_oc,
que daba -284 con ordenes duplicadas.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>