- 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>
- 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>
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>
- 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>
- Registrar noprmt003 en mbsERP.4pw (FUNCIONES_NO: noprfu000.4gl,
nocarnet.4gl; FORMULARIOS_NO: nofmmt003.4fd); reutiliza
otrodir/departamentos.4gl ya presente en FUNCIONES
- Actualizar el diccionario de esquema smarmotech.sch: faltaban las
columnas telefonoCorporativo/numeroOficina/extension de adtb00003
(existen en la BD real pero no estaban en el diccionario, .42d se
regenera solo al recompilar); propagado a todos los directorios
- Desactivar el CONNECT TO "marmotech" AS "IFMX" (Informix ya no
existe, todo migro a SQL Server) y el INSERT duplicado hacia esa
conexion en el alta de empleados; sin esto el programa se colgaba
al iniciar
- Quitar CONVERT(...,103) de fechas en el SELECT/FETCH de empleados:
se convertian a texto dd/mm/yyyy y luego se reasignaban a variables
DATE, causando "-1205 Invalid month in date" con dias > 12
- Agregar BEFORE CONSTRUCT/END CONSTRUCT para poblar el combo de
Departamento en la busqueda (faltaba, quedaba vacio)
- Corregir foto de empleado que no se limpiaba al navegar
Siguiente/Anterior hacia un empleado sin foto
- nocarnet.4gl: sustituir fgl_report_* (API no disponible) por
om.XmlWriter.createFileWriter() hacia FGLSPOOL
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>