Commit Graph
45 Commits
Author SHA1 Message Date
Abel LópezandClaude Sonnet 5 7e2f99b50e Registra noprrp002 (Nomina de Pago) y corrige bugs de reporte PDF
Se agrega noprrp002 al proyecto usando nofmrp002.4fd, mas
vesalidaimpresora.4gl (selectOutput2) en la libreria compartida
FUNCIONESREPORT, y externalDependencies libgre.42x para el motor de
reportes.

Se corrige databaseName="marmotech" invalido en nofmrp002.4fd (schema
no registrado en el proyecto) por "smarmotech".

Se corrige bug de tipo de dato: r_output estaba declarado SMALLINT en
noprrp002.4gl, pero selectOutput2() devuelve un STRING ("PDF","SVG",
"XLSX"). Ese desajuste impedia que fgl_report_selectDevice recibiera
el dispositivo correcto, asi que elegir PDF no generaba un PDF real.
Se cambia r_output a STRING.

Probado reporte agrupado de nomina (vista previa en pantalla y
exportacion a PDF real), verificado contra BD sobre empleado 110,
periodo 2320/Q.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-28 10:09:33 -04:00
Abel LópezandClaude Sonnet 5 c1719d4b6e Registra noprcs006 (Consulta Balance Por Empleado)
Se agrega noprcs006 al proyecto usando nofmcs006.4fd, mas
FUNCIONESREPORT (seleccionarsalida.4gl) y externalDependencies
libgre.42x, requeridos para las funciones del motor de reportes
(fgl_report_loadCurrentSettings, etc) que usa la opcion Imprimir.

Probada consulta inicial, Ver (balance acumulado por movimiento) e
Imprimir (vista previa de reporte), verificado contra BD sobre
empleado 110, cod_mov=12 (PRESTAMO COOPMAR).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-26 10:36:47 -04:00
Abel LópezandClaude Sonnet 5 c296da0151 Registra noprcs004 (Consulta Acumulado por Empleado)
Se agrega noprcs004 al proyecto usando nofmcs004.4fd. Se agrega
addir/adfunciones.4gl al Application ya que el programa llama a
calcula_salarios() definida ahi (no en noprrp037.4gl, que tiene una
funcion del mismo nombre pero con firma incompatible/uso de
variables de otro programa).

Se corrige conversion CONVERT(CHAR,fech_efec,103) hacia variable DATE
en la consulta principal, mismo patron de error -1205 "Invalid month
in date" ya visto en otros programas.

Probada consulta principal (datos del empleado, fecha de entrada,
salario promedio diario) y Ver (acumulado por movimiento), verificado
contra BD sobre empleado 110.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-26 09:45:52 -04:00
Abel López 66a57b4b3c Merge branch 'main' of https://git.fulldetord.com/jsoto/mbs 2026-09-25 16:46:21 -04:00
Abel LópezandClaude Sonnet 5 c141af53f2 Registra noprcs002 (Consulta Movimiento por Nomina)
Se agrega noprcs002 al proyecto usando nofmcs002.per. Es un programa
de solo consulta (sin INSERT/UPDATE/DELETE).

Probada busqueda inicial, Ver (detalle de movimientos de un periodo,
incluyendo scroll por teclado para ver mas de 4 filas) y navegacion
Siguiente sobre empleado 110, periodo 2320/Q. Monto Pagado verificado
contra SUM(valor) en BD.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-25 16:33:40 -04:00
Abel LópezandClaude Sonnet 5 750b9a6bcf Registra noprmt025 (Parametros ISR) y corrige tres bugs bloqueantes
Se agrega noprmt025 al proyecto usando nofmmt025.4fd (tiene los
campos monto_ars/monto_afp que faltan en el .per).

Se corrigen tres bugs que impedian usar el programa:
1. nopcmf023(): CONVERT(varchar,fecha,101) hacia variable DATE,
   mismo patron de error -1205 "Invalid month in date" ya visto en
   otros programas.
2. nopcad023(): la validacion de tipo_emp contra notb00010 usaba un
   SELECT sin INTO/cursor (singleton select), que exige exactamente
   una fila. notb00010 es la tabla de periodos de nomina (un registro
   por periodo), con cientos de filas por tipo_emp, asi que esta
   validacion fallaba siempre con error -284 "A subquery has returned
   not exactly one row", bloqueando por completo la opcion Nuevo. Se
   cambia a SELECT COUNT(*) INTO existe_tipo.
3. nofmmt025.4fd: el campo fecha (Edit widget, formonly) no tenia
   format="dd/mm/yyyy", causando que Genero interpretara la fecha
   tecleada con el formato de fecha por defecto del sistema en vez
   del formato dominicano, dando "Invalid month in date" al capturar
   un dia mayor a 12 como mes.

Probado ciclo completo: Nuevo, Buscar, Escoger y eLiminar sobre
parametro de prueba (numero_nomina=26).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-25 12:30:28 -04:00
Abel LópezandClaude Sonnet 5 303a722875 Registra noprmt024 (Maestra de Puestos) y corrige duplicado en Nuevo
Se agrega noprmt024 al proyecto usando nofmmt024.per.

Se corrige adpcad023(): tras un INSERT exitoso el codigo hacia NEXT
FIELD nom_puesto para permitir capturar otro puesto, pero sin limpiar
los campos del registro anterior. Combinado con el orden real de
tabulacion del formulario (nivel_sal/salario_min/salario_max quedan
antes que cod_puesto_sirla en el orden de atributos, aunque
visualmente aparecen despues), esto permitia disparar un segundo
INSERT accidental con datos incompletos/residuales del registro
previo. Se agrega CLEAR FORM y reset de los campos tras cada insercion
exitosa, igual que en los demas programas de Nuevo ya corregidos.

Probado ciclo completo: Nuevo (confirmado que ya no duplica),
Buscar, Escoger y eLiminar sobre puesto de prueba.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-25 11:48:21 -04:00
Abel LópezandClaude Sonnet 5 58909014ab Registra noprmt023 (Maestra de Departamentos) y corrige bug de MaintainX
Se agrega noprmt023 al proyecto usando nofmmt023.4fd. Este programa
conecta a dos bases (smarmotech y marmotech/EXTERIOR via Informix
legado) para sincronizar departamentos en ambas.

Se agrega environment FGLPROFILE al Application para que resuelva la
conexion dual via PROYECTO/config/fglprofile. Se corrige ese archivo:
dbi.database.smarmotech.source apuntaba a un DSN "marmotech250s" que
nunca se creo; se cambia al DSN real existente "marmotech18".

Se corrige eLiminar: llamaba a la API real de MaintainX (DELETE) con
solo validar que id_maintainx no fuera null, ignorando el checkbox
"Enviar a MaintainX" (apicheck). Ahora requiere ambas condiciones.

Probado ciclo completo (Adicionar, Buscar, Escoger, eLiminar,
Departamentos Relacionados) verificando sincronizacion entre
smarmotech y EXTERIOR.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-25 10:11:49 -04:00
Abel López 899f4ee138 Merge branch 'main' of https://git.fulldetord.com/jsoto/mbs 2026-09-22 16:50:12 -04:00
Abel LópezandClaude Sonnet 5 37209b5009 Registra noprmt019 (Cambio de Departamento)
Se agrega noprmt019 al proyecto usando nofmmt019.per. Probado cambio
de departamento sobre empleado 110 (1000 -> 2100 -> 1000), verificado
que se propaga a adtb00003 y a los movimientos fijos en notb00003.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-22 13:38:15 -04:00
Abel LópezandClaude Sonnet 5 31fbc9a3b9 Registra noprmt018 (Pago Prest. en Efectivo) y corrige bug de fecha
Se agrega noprmt018 al proyecto usando nofmmt018.per.

Se corrige conversion CONVERT(CHAR,fecha,103) hacia variable DATE en
nopcmf018(), mismo patron de error -1205 "Invalid month in date"
encontrado en otros programas de nomina.

Probado ciclo completo: Adicionar, Consultar-modificar/Buscar,
Escoger y eLiminar sobre empleado 4124 (cod_mov=12).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-22 12:44:22 -04:00
Abel López 12bb4e837b Merge branch 'main' of https://git.fulldetord.com/jsoto/mbs 2026-09-21 16:56:47 -04:00
Abel LópezandClaude Sonnet 5 fc49b30714 Registra noprmt016 (Act./Desact. Empleado)
Se agrega noprmt016 al proyecto usando nofmmt016.per. Probado
Activar/Desactivar sobre empleado 110, verificado status_t en
adtb00003 en ambos sentidos.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-21 16:55:33 -04:00
Abel LópezandClaude Sonnet 5 5baf191a88 Registra noprmt011 y corrige bugs de fecha y borrado de cuota compartida
Se agrega noprmt011 (Control Prestamos y Facturas) al proyecto usando
nofmmt011.4fd (nofmmt011.per no tenia el campo valor_cuota requerido).

Se corrige conversion CONVERT(CHAR,fecha,103) hacia variable DATE en
nopcmf011(), que causaba error -1205 "Invalid month in date" al
navegar con Siguiente/Anterior cuando el dia del mes era mayor a 12.

Se corrige eLiminar: el DELETE FROM notb00003 era incondicional y
borraba la cuota compartida del empleado+movimiento aunque quedaran
otros documentos activos en notb00011 dependiendo de ella. Ahora solo
se borra si no quedan documentos activos para ese empleado+movimiento.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-21 11:45:55 -04:00
Abel López 64f5e612d9 Merge branch 'main' of https://git.fulldetord.com/jsoto/mbs 2026-09-16 16:49:29 -04:00
Abel LópezandClaude Sonnet 5 7638c1046b Corregir noprmt008 (Generacion de Nomina): checkbox no aplicaba su
valor por defecto

El checkbox "GENERO NOMINA ACTIVOS" (opt1) y los demas checkboxes de
la pantalla inicial no entregaban su defaultValue a la variable si el
usuario no los tocaba explicitamente, quedando en "N". Como el codigo
hace "IF opt1 != 'S' THEN RETURN" sin ningun mensaje, el programa
generaba 0 registros y se cerraba en silencio pareciendo exitoso.

Se inicializan opt1/opt2/opt3/regalia/vacaciones explicitamente antes
del INPUT BY NAME para que coincidan con los defaults del formulario,
sin depender de esa interaccion.

Se retiro tambien la funcion debuglog() (y su entrada FGLSPOOL) usada
solo para diagnosticar este problema.

Verificado generando la nomina 2701/Q completa: 4798 registros para
628 empleados, con calculo correcto de sueldo quincenal (50% primera
quincena) y descuentos de TSS/ARS.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-15 12:16:53 -04:00
Abel López 79eff57d70 Merge branch 'main' of https://git.fulldetord.com/jsoto/mbs 2026-09-10 17:02:44 -04:00
Abel LópezandClaude Sonnet 5 9ac3f70a13 WIP: Agregar noprmt008 (Generacion de Nomina) - en diagnostico
- Registrar noprmt008 en mbsERP.4pw junto con sus 3 formularios
  (nofmmt008.4fd, nofmmt108.per, nofmmt208.per)
- Corregir bug en nofmmt008.4fd: el checkbox opt3 tenia colName="opt2"
  duplicado por error de copiar/pegar, causando "Field (opt3) not
  found in form"
- Quitar CONVERT(CHAR(10),...,103) en 5 SELECTs que alimentaban
  variables DATE (mismo patron de bug ya visto en noprmt003):
  causaba "-1205 Invalid month in date" de forma intermitente
- Agregar funcion debuglog() (escribe a archivo en FGLSPOOL) para
  diagnosticar por que la generacion terminaba sin insertar ningun
  registro; diagnostico aun en curso

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-10 17:02:39 -04:00
Abel López 888a36553e Merge branch 'main' of http://192.168.40.251:3000/jsoto/MBS 2026-09-04 16:48:33 -04:00
Abel López 97ef961e13 Revert "Agregar noprmt020 al proyecto (identidad real pendiente de confirmar)"
This reverts commit 77e844390e.
2026-09-04 16:46:09 -04:00
Abel LópezandClaude Sonnet 5 77e844390e Agregar noprmt020 al proyecto (identidad real pendiente de confirmar)
- Registrar noprmt020 en mbsERP.4pw
- Agregar MAIN (faltaba, el archivo era solo funciones para ser
  llamadas desde el menu nomnmt000.4gl) y una funcion pantalla()
  local para el encabezado
- Corregir typo "database marmotech" -> "smarmotech" en nofmmt021.per

NOTA: el usuario identifico este programa como "Calcular Horas
Extras", pero tanto el contenido del .4gl como su propio menu
(nomnmt000.4gl: "19-Porc. Accidente Trabajo noprmt020") indican que
en realidad es la maestra de % de Accidente de Trabajo. Build y
compilacion verificados, prueba funcional pendiente hasta confirmar
el programa correcto para "Calcular Horas Extras" (candidatos:
noprmt030.4gl, noprmt038.4gl, o los reportes noprrp007/011/018/026/034/035).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-04 16:22:45 -04:00
Abel LópezandClaude Sonnet 5 81182e5ded Agregar noprmt007 (Novedades de la Nomina) al modulo NOMINA
Registrar noprmt007 en mbsERP.4pw usando nofmmt007.4fd (el .per
carece de departamento_afecta, num_trx, sueldo_act y los campos
titulo_dep_act/titulo_dep_afecta que usa el programa). El .4gl
compilo limpio sin cambios de codigo.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-04 13:45:56 -04:00
Abel LópezandClaude Sonnet 5 60e392c033 Agregar noprmt001 (Codigos de Movimientos) al modulo NOMINA
- Registrar noprmt001 en mbsERP.4pw (usa cofmmt001... nofmmt001.4fd,
  el .per carece del grid smovimientos y los campos modifica/vacaciones)
- Reemplazar smarmotech.sch/.42d de nodir por la copia canonica ya
  generada en MBS/DATABASE (orden de columnas correcto, incluye
  telefonoCorporativo/numeroOficina/extension) en vez de regenerar

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-04 12:12:24 -04:00
Abel López affc09c3e8 Merge branch 'main' of http://192.168.40.251:3000/jsoto/MBS 2026-09-03 16:57:12 -04:00
Abel LópezandClaude Sonnet 5 ee27da0669 Agregar noprmt003 (Maestra de Empleados) al modulo NOMINA
- 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>
2026-09-03 16:51:11 -04:00
Abel LópezandClaude Sonnet 5 b27b20d42d Agregar noprmt002 (Movimientos Fijos Emp.) al modulo NOMINA
- Registrar noprmt002 en mbsERP.4pw junto con noprgb000.4gl
  (FUNCIONES_NO), nofmmt002.per/nofmwd001.per (FORMULARIOS_NO) y
  adfmwd004.per (FORMULARIOS_AD, compartido con ADMINISTRACION)
- Copiar el diccionario de esquema smarmotech.sch a nodir/addir
  (faltaba, igual que en otros directorios ya corregidos)
- Corregir typo "database marmotech" -> "smarmotech" en nofmwd001.per

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-03 12:12:06 -04:00
Abel López 4cb8d4c71b Merge branch 'main' of http://192.168.40.251:3000/jsoto/MBS 2026-09-01 16:48:54 -04:00
Abel LópezandClaude Sonnet 5 f216a7acfa Agregar coprrp007 (Cronologico de Requisiciones) al proyecto
- Registrar coprrp007 en mbsERP.4pw, usando cofmrp007.4fd (el .per
  no define el combo de departamento que requiere busca_departamento())
- Enlazar la libreria FUNCIONES_IN (ya contiene departamento.4gl) en
  vez de duplicar el archivo, evitando conflicto de salida .42m
- Agregar guarda NULL en departamento.4gl: ui.combobox.forname()
  puede no encontrar el combo durante el CONSTRUCT y causaba
  "Null pointer exception" al llamar .clear()
- Sustituir seleccionarsalida()/configureoutput() (no definidas,
  API fgl_report_* no disponible) por om.XmlWriter.createFileWriter()
  hacia FGLSPOOL

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-01 16:48:46 -04:00
Abel López 26961ddd81 Merge branch 'main' of http://192.168.40.251:3000/jsoto/MBS 2026-08-31 16:43:06 -04:00
Abel LópezandClaude Sonnet 5 3284ae0de9 Agregar coprrp019 (Validacion Ordenes) al proyecto
- Registrar coprrp019 en mbsERP.4pw
- Agregar CONNECT TO/ARG_VAL faltante en MAIN (el programa hacia
  consultas SQL sin haberse conectado nunca a la base de datos)
- Sustituir seleccionarsalida()/configureoutput() (no definidas,
  API fgl_report_* no disponible) por om.XmlWriter.createFileWriter()
  hacia FGLSPOOL
- Corregir typo "database marmotech" -> "database smarmotech" en
  cofmrp019.per

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-31 16:42:59 -04:00
Abel LópezandClaude Sonnet 5 052b80de34 Configurar FGLSPOOL en coprmt009 para que Imprime genere el reporte
El Application node de coprmt009 no tenia la variable de entorno
FGLSPOOL configurada (a diferencia de coprrp001/coprrp004/coprmt025).
FGL_GETENV("FGLSPOOL") devolvia NULL, el handler de XmlWriter en
orden() (coprorden.4gl) nunca se creaba, y "Imprime" fallaba
silenciosamente sin generar el reporte ni mostrar error.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-28 16:56:29 -04:00
Abel LópezandClaude Sonnet 5 cc4964af5e Merge remote-tracking branch 'origin/main'
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-28 16:48:38 -04:00
Abel LópezandClaude Sonnet 5 3df53ba483 Agregar coprrp004 (Cronologico de Ordenes) al proyecto
- Registrar coprrp004 (usando cofmrp004.4fd, el .per carece del
  campo estado) en mbsERP.4pw
- Sustituir seleccionarsalida()/configureoutput() (no definidas en
  este programa, misma API fgl_report_* no disponible) por
  om.XmlWriter.createFileWriter() hacia FGLSPOOL

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-28 16:48:04 -04:00
Abel LópezandClaude Sonnet 5 91eeef199e Corregir campo bodega oculto en busqueda de coprmt009
El CONSTRUCT del criterio de busqueda y un DISPLAY BY NAME en escoge()
referenciaban cotb00014.bodega/ordenes.bodega, que no existe como campo
visible en cofmmt009 (combo oculto, ya excluido en el INPUT BY NAME de
copcad009). Causaba "FORMS statement error -1102: Field (bodega) not
found in form" al usar Buscar Ordenes de Compras.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-28 16:06:50 -04:00
Abel LópezandClaude Sonnet 5 a37d0336b5 Agregar coprrp001 (Catalogo Suplidores) y corregir bugs en coprcs009
- Registrar coprrp001/cofmrp001 en mbsERP.4pw
- Sustituir API fgl_report_* no disponible por XmlWriter en coprrp001.4gl
- Ampliar cs_ordena.codigo a CHAR(20) en coprgb000.4gl
- Corregir mascaras PICTURE de codigo en coprcs009.4gl
- Ampliar campo c1 en cofmcs009.per para igualar el ancho de codigo
- Corregir typo de base de datos en cofmwd016.per

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-28 11:38:43 -04:00
Abel López b7877d7c07 Merge branch 'main' of http://192.168.40.251:3000/jsoto/MBS 2026-08-27 16:19:01 -04:00
Abel LópezandClaude Sonnet 5 b05e858ac6 Añadir coprmt010, coprmt015, coprmt016, coprmt025 y coprcs005 (modulo COMPRAS)
- coprmt010 (Paises): corregir condicion invertida en "Escoger" que
  bloqueaba editar registros activos y solo permitia editar los ya
  eliminados (status_t != "E" -> = "E").
- coprmt016 (Terminos de Pago): usar el formulario .4fd (el .per no tenia
  el grid "Tabla" que el codigo espera); agregar columna "dias" faltante
  al INSERT (la tabla real tiene 9 columnas, el INSERT solo daba 8 valores
  sin lista de columnas explicita).
- coprmt025 (Requisicion Compras): agregar funciones faltantes
  (busca_departamento2 en depto.4gl, enviaemail en FUNCIONESEMAIL);
  sincronizar el RECORD "data" y la aridad de RETURNING de ApiMaintainC
  con el fix de api_test.4gl; reemplazar fgl_report_* (no disponible) por
  om.XmlWriter en las 3 rutas de impresion.
- coprmt015 y coprcs005: sin cambios de codigo, solo registro en el
  proyecto.
- mbsERP.4pw: registrar los 5 programas; investigar/configurar Java para
  coprmt025 (FGLJVMPATH/JAVA_HOME/CLASSPATH apuntando a un JRE Temurin
  8u504 local). Pendiente: el puente Java de esta instalacion de Genero
  sigue fallando ("Can not create java VM") incluso con el ejemplo oficial
  de FGL: parece un problema de la instalacion misma, no de version de
  Java. Se sugirio reparar via MsiExec /f {3B1E10F3-FBCC-4737-8BDF-284359029D70}
  (Four Js Genero BDL with Web Services 6.00.02), pendiente de ejecutar.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-27 16:18:51 -04:00
Abel López 43d5a218e7 Merge branch 'main' of http://192.168.40.251:3000/jsoto/MBS 2026-08-25 16:59:08 -04:00
Abel LópezandClaude Sonnet 5 acacf34eea Añadir modulo COMPRAS (coprmt001, coprmt009, coprmt016)
- coprmt001 (Suplidores): agregar campos faltantes (tipo_doc,rnc,cuenta_no)
  al RECORD interno de ApiMaintainC() en api_test.4gl, y unificar la
  aridad de RETURNING en las 3 llamadas (POST/PATCH/DELETE) - el
  enlazador exige el mismo numero de valores de retorno en todo el modulo.
- coprmt009 (Ordenes de Compra): reemplazar fgl_report_loadCurrentSettings/
  selectDevice/selectPreview/commitCurrentSettings (no disponibles en este
  FGL) por om.XmlWriter.createFileWriter en coprorden.4gl; agregar
  verificacion defensiva en lugarentrega.4gl (ui.combobox.forname puede
  devolver NULL si el formulario actual no tiene el combo "bodega"); quitar
  "ordenes.bodega" de los INPUT BY NAME (campo oculto, no se puede enlazar).
  Pendiente: probar el flujo completo de creacion de orden (se corto por
  una caida de conexion transitoria durante la prueba).
- coprmt016 (Terminos de Pago): CRUD simple, sin cambios de codigo.
- mbsERP.4pw: crear modulo COMPRAS (estaba vacio) con librerias
  FUNCIONES_CO y FORMULARIOS_CO, y registrar los 3 programas.
- otrodir/smarmotech.sch: diccionario de esquema completo (antes faltaba
  en este directorio, causaba fallos de link en api_test.4gl).
- .gitignore: excluir logs de STARTLOG() (bin/*.TXT) y archivos .err de
  compilacion.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-25 16:58:59 -04:00
Abel López 347e8139fc Merge branch 'main' of http://192.168.40.251:3000/jsoto/MBS 2026-08-25 11:49:06 -04:00
Abel LópezandClaude Sonnet 5 46d9dd4f5d Añadir cpprrp011 y cpprrp017; corregir bugs de migracion Informix->SQL Server
- cpprrp011: agregar INTO explicito a SELECT de validacion de referencia
  duplicada, y lineas de diagnostico temporales (pendiente: el campo ref
  sigue llegando NULL al INSERT en cgtb00004, falta investigar mas).
- cpprrp017: agregar bloque MAIN faltante, quitar CALL PANTALLA() redundante,
  cambiar rutas hardcodeadas C:\archivo y %USPRINT% (sin permisos/no
  definida) por FGLSPOOL, y reemplazar a.rowid (pseudo-columna de Informix
  inexistente en SQL Server) por ROW_NUMBER() OVER(...).
- cpfmrp017.per: corregir typo "database marmotech" -> "database smarmotech"
  que rompia la resolucion del esquema.
- mbsERP.4pw: registrar cpprrp011 y cpprrp017 con sus dependencias y
  configuracion de prueba.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-25 11:48:57 -04:00
Abel LópezandClaude Sonnet 5 fa1b51c33e Añadir cpprrp002, cpprrp003 y cpprrp004; corregir reportes XML y formulario cpfmrp002
- cpprgb000/msgrp000: restaurar getPreviewDevice con case correcto
  (ui.Interface.frontCall) y dejar configureOutput como stub, ya que la
  API fgl_report_* no existe en este FGL 6.00.01.
- cpprrp002/003/004: sustituir configureoutput()/handler roto por
  om.XmlWriter.createFileWriter escribiendo a FGLSPOOL, usando STRING
  para la ruta (CHAR(80) truncaba la ruta larga del proyecto).
- cpfmrp002.per: agregar campo faltante "Salida" (r_output) que el
  programa ya esperaba.
- mbsERP.4pw: registrar cpprrp002/003/004 con sus dependencias,
  entorno FGLSPOOL y configuracion de prueba.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-24 17:04:18 -04:00
Abel López 2c3ff7ec43 Merge branch 'main' of http://192.168.40.251:3000/jsoto/MBS 2026-08-24 09:20:13 -04:00
Abel LópezandClaude Sonnet 5 78812911de Quitar archivos de spool de reportes del control de versiones
Los archivos en PROYECTO/spool/ son salida temporal generada al
ejecutar reportes (cpprrp001), no codigo fuente.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-21 17:16:19 -04:00
Abel López 52ae931b32 ALOPEZ PROGRAMAS CXP 2026-08-21 17:09:03 -04:00