Commit Graph
159 Commits
Author SHA1 Message Date
Abel López 9c520ec3ad Merge branch 'main' of https://git.fulldetord.com/jsoto/mbs 2026-10-19 17:24:20 -04:00
Abel LópezandClaude Sonnet 5.5 548dc62d4a Registra adprmt017 (Accion de Personal) y corrige bugs de Genero 6
- Registra adprmt017 y sus formularios (adfmmt017, adfmwd007/008/017/018/019)
  en ADMINISTRACION PERSONAL. adfmwd009.per no se registra: solo lo abre
  busca_movi(), que nadie llama.
- adfunciones.4gl pasa a la libreria FUNCIONES_ADF (el mismo archivo no puede
  estar en dos aplicaciones); noprcs004 y adprmt017 dependen de ella.
- adfmwd008.per: DATABASE rayovac -> smarmotech (-6601).
- adprmt017.4gl: CONVERT(CHAR(10),fecha,103/101) hacia variables DATE -> se
  lee la columna fecha directa (-1205); sexo del titular con
  ISNULL(cod_par,0)=0 (adtb00021 tiene cod_par/sec_par NULL); un tipo_mov
  vacio (AUMENTO SALARIAL, CONTRATACION) ya no se atora en cod_sol.
Verificado contra la BD .250: Nuevo de AUMENTO SALARIAL (accion 5387, empleado
110) graba adtb00020 sin cambiar adtb00003. Capacitacion/Desvinculacion no
probadas: las tablas adtb00059-62 no existen en la .250.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 17:22:34 -04:00
jpegueroandClaude Sonnet 5.5 604f9339ed Bloqueados: lqprrp009, prprmt006 e ipprmt044 (pendiente enlazar y probar)
lqprrp009 (Liquidacion Repuestos):
- Dependencia FUNCIONESREPORT (msgrp000, seleccionarsalida).
- defecto() copiada al programa (vive en indir/defecto.4gl junto con
  msgrp000 duplicado, importarla chocaba -6203); configureOutput ya la
  aporta msgrp000.
- Quita Convert(...,103) que llenaba variables DATE (fecha_inicial/final).
- Titulo de ventana "Liquidacion Repuestos".

prprmt006 (Orden Produccion):
- El programa usa prtb08[idx].cod_n_c... como arreglo, pero el global
  prtb08 es RECORD LIKE prtb00012.* y el arreglo arrprtb08 se quito de
  prprgb000.4gl el 24/08 (68b73cf): 52 errores "Subscripting cannot be
  applied". Se define arrprtb08 dentro del propio programa (mismos 7
  campos que el form prfmmt006 s_orden) y se renombran 54 referencias.
  Nadie mas usa arrprtb08, no hay choque con globales.

ipprmt044 (Transacciones Inventario):
- Faltaba la funcion fotos() de 12 parametros: existe en el respaldo
  PROYECTOS/otrodir/fotos.4gl (version de 2017) y la llamada del programa
  coincide exactamente. Se agrega a la aplicacion junto con el form
  ipfmwd015.4fd. Las llamadas de ipprcs004/_1 a fotos() estan comentadas,
  no se afectan. cc_avisadespacho es un procedimiento almacenado, no una
  funcion 4GL.

Los tres compilan con fglcomp (esquema smarmotech); falta enlazar y
probar cuando se active la licencia de Genero (FLM-51 vencida).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 13:00:27 -04:00
jsoto fcaa47948b Merge branch 'main' of https://git.fulldetord.com/jsoto/mbs 2026-10-19 12:09:59 -04:00
Abel LópezandClaude Sonnet 5.5 31daca8636 Registra adprmt001 (Departamentos) en ADMINISTRACION PERSONAL y corrige bugs
- Registra adfmmt001.4fd (FORMULARIOS_AD), adprgb000.4gl (FUNCIONES_AD) y
  la aplicacion adprmt001 en el subgrupo ADMINISTRACION PERSONAL.
- INSERT en adtb00001 (14 cols) y adtb00029 (10 cols) con lista de
  columnas (error 213 por columnas nuevas en el esquema).
- INPUT/DISPLAY BY NAME limitados a los 7 campos del formulario (-1102
  tipo_departamento no existe en el form).
- Escoger ya no actualiza estado_a/estado_m con variables nunca cargadas
  (los dejaba en NULL); se quitan del INPUT BY NAME (no estan en el form).
- SELECT UNIQUE -> SELECT DISTINCT (SQL Server).
Verificado contra la BD .250 con el depto 9990: Nuevo, Escoger y eLiminar
en adtb00001/00029/00033.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 11:24:54 -04:00
jsotoandClaude Opus 5.5 3a021932f3 JSOTO mbsERP.4pw: cgprmt005 fuera del proyecto y GAR solo con logos de reportes
- 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>
2026-10-19 10:27:45 -04:00
jpegueroandClaude Opus 5.5 f6e41932b1 prprmt011 (Administracion Ordenes): formularios faltantes y fechas -1205
- 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>
2026-10-17 12:05:43 -04:00
jpeguero cb8363561a Merge branch 'main' of https://git.fulldetord.com/jsoto/mbs 2026-10-17 09:31:17 -04:00
jsoto adbbaaee8e Merge branch 'main' of https://git.fulldetord.com/jsoto/mbs 2026-10-16 17:07:28 -04:00
jsotoandClaude Opus 5.5 f363390589 JSOTO cgprmt022 adaptado a MARMOTECH y cgprmt037 fuera del proyecto MBS
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>
2026-10-16 17:05:01 -04:00
jpegueroandClaude Opus 5.5 a52b16b8b2 ipprmt005 (Clase): graba Inventario y oculta clases eliminadas
- 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>
2026-10-16 17:00:54 -04:00
Abel LópezandClaude Sonnet 5.5 b8f403c2e4 Proyecto: elimina el grupo NOMINA vacio de MODULOS
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>
2026-10-16 16:53:41 -04:00
Abel López 8a87ebbc10 Merge branch 'main' of https://git.fulldetord.com/jsoto/mbs 2026-10-16 16:50:16 -04:00
Abel LópezandClaude Sonnet 5.5 70c3131e9c Registra noprmt026 (Pago TSS) y migra la salida de DDE a CSV
- 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>
2026-10-16 16:47:15 -04:00
Abel LópezandClaude Sonnet 5.5 fc5a23132d Registra noprrp041 (Reporte de Horas Extras) y corrige bugs
- 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>
2026-10-16 15:39:35 -04:00
jsotoandClaude Opus 5.5 705fadfdb4 JSOTO QA G6 (.250): arreglos CG/Activos/Repuestos/Informatica, DBDATE, imagenes de reportes y cgprrp008
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>
2026-10-16 15:30:24 -04:00
jpegueroandClaude Sonnet 5.5 5dcc4adf2c Corrige compilacion de lqprrp004 y prprmt011 (modulos LIQUIDACION y PRODUCCION)
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>
2026-10-16 10:15:59 -04:00
jsotoandClaude Opus 5.5 d8764b3bda JSOTO Alta y compilacion G6 de programas CG, Cheques, Activos, Tesoreria, Repuestos e Informatica
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>
2026-10-15 16:22:14 -04:00
jpegueroandClaude Sonnet 5.5 fc2fa7acac Corrige ipprrp054 (Revision de Conduces con y sin Archivo)
- 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>
2026-10-15 13:16:11 -04:00
jpegueroandClaude Sonnet 5.5 47942191ee Corrige ipprrp051 (Transacciones de Inventario con ubicacion)
- 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>
2026-10-15 13:04:06 -04:00
jpegueroandClaude Sonnet 5.5 43f9d16e62 Corrige ipprrp048 (Transacciones de Inventario por Departamento)
- 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>
2026-10-15 12:51:54 -04:00
jsoto 659e690af3 JSOTO adicione los 4rp del ipprrp014 2026-10-14 18:30:22 -04:00
jpegueroandClaude Sonnet 5.5 d805fa3164 Corrige ipprrp047 (Operacion por Movimiento Detallado y Valorizado)
- 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>
2026-10-14 17:00:45 -04:00
jpegueroandClaude Sonnet 5.5 3903f11a92 Corrige ipprrp046 (Relacion de Documentos)
- 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>
2026-10-14 16:29:54 -04:00
jpegueroandClaude Sonnet 5.5 d76e6d7035 Corrige ipprrp014 (Dias de Inventarios Gerente Marcas): Detallado funcional
- 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>
2026-10-14 15:47:26 -04:00
Abel LópezandClaude Sonnet 5.5 79a4a4530c Proyecto: reorganiza grupos de RECURSOS HUMANOS
- 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>
2026-10-08 16:48:11 -04:00
Abel López 0ed9fb6d98 Merge branch 'main' of https://git.fulldetord.com/jsoto/mbs
# Conflicts:
#	PROYECTO/mbsERP.4pw
2026-10-08 10:28:43 -04:00
jpegueroandClaude Sonnet 5.5 b6ae121e22 Corrige ipprrp053 (Informe Transacciones Inventarios)
- 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>
2026-10-07 13:15:20 -04:00
Abel LópezandClaude Sonnet 5.5 61818beb31 Registra noprrp045 (Formulario Ministerio de Trabajo)
- 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>
2026-10-07 12:54:04 -04:00
Abel LópezandClaude Sonnet 5.5 4b2d63007b Proyecto: mover librerias y programas del grupo NOMINA a RECURSOS HUMANOS
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>
2026-10-07 12:53:51 -04:00
jsoto 9366fc90e4 Merge branch 'main' of https://git.fulldetord.com/jsoto/mbs 2026-10-07 12:12:20 -04:00
jsoto a5ccd3083f JSOTO Adicion grupos ADMINISTRACION PERSONAL Y NOMINA 2026-10-07 12:11:28 -04:00
Luis 2498c785d3 agregue varias funciones para poder ejecutar el programa de facturas lsoto 2026-10-05 23:11:14 -04:00
jsoto f414a150d9 Merge branch 'main' of https://git.fulldetord.com/jsoto/mbs
# Conflicts:
#	PROYECTO/mbsERP.4pw
2026-10-01 17:53:35 -04:00
jsoto 67a5190309 JSOTO ADICIONE EL IPPRRP013R.4RP 2026-10-01 17:48:44 -04:00
Abel López 9ba79096c4 Merge branch 'main' of https://git.fulldetord.com/jsoto/mbs 2026-10-01 17:03:15 -04:00
Abel LópezandClaude Sonnet 5 80bd203be6 Registra noprrp015 (Prestamos Cooperativa) con reporte moderno
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>
2026-10-01 17:02:41 -04:00
Abel LópezandClaude Sonnet 5 8ac18135e5 Registra noprrp009 (Movimientos de Empleados) y corrige varios bugs
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>
2026-10-01 12:53:49 -04:00
jpeguero 65515b14c2 Merge branch 'main' of https://git.fulldetord.com/jsoto/mbs 2026-09-30 17:03:17 -04:00
jpegueroandClaude Sonnet 5 4bdcf34a7d Registrar form y dependencia de ipprrp013 (Dias de Inventario), agregar titulo
- 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>
2026-09-30 16:56:02 -04:00
Abel LópezandClaude Sonnet 5 a7431ef94a Registra noprrp043 (Informe Registro Entrada/Salidas) y corrige bugs
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>
2026-09-30 10:58:35 -04:00
Abel López 5eedb6b174 Merge branch 'main' of https://git.fulldetord.com/jsoto/mbs 2026-09-29 16:48:14 -04:00
Abel LópezandClaude Sonnet 5 f9a7bb91dc Registra noprrp038 (Generacion File para Bancos)
Se agrega noprrp038 al proyecto reutilizando el formulario nofmrp008
(no tiene formulario propio). Sin bugs de codigo encontrados.

Probado con nomina 2320/Q filtrando al empleado 110 (con cuenta
bancaria real): archivo H/N generado correctamente, RNC de la
empresa y monto neto verificados contra BD. El archivo de retiro en
efectivo (RetMarmo.txt) quedo vacio correctamente ya que el empleado
de prueba si tiene cuenta bancaria.

Nota: el relleno de lineas en blanco al final del archivo de prueba
es un artefacto de filtrar a un solo empleado (PAGE LENGTH usa el
conteo total de la nomina, no el del filtro); en una corrida real sin
filtro de empleado no ocurre.

Se genero el archivo real de prueba en una carpeta temporal fuera del
repositorio (contenia datos bancarios/cedula reales del empleado de
prueba), se verifico y se elimino del disco tras la confirmacion del
usuario.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-29 16:44:17 -04:00
jpegueroandClaude Sonnet 5 60a4119326 Corregir ipprrp036 (Costos de Calidad con Ventas): form, dependencia,
.4rp faltantes y titulo incorrecto

- Registrar ipfmrp036.4fd en el proyecto.
- Agregar dependencia faltante FUNCIONESREPORT para selectOutput().
- Rescatar ipprrp036.4rp de un backup viejo (PROYECTOS/bin), no existia
  en el repo. El nombre de reporte (inv1) coincidia bien.
- El titulo del reporte decia "ipprrp035" (texto quemado copiado del
  diseño anterior, nunca actualizado) - corregido a "ipprrp036", y el
  subtitulo aclarado a "Reporte costos de calidad (con ventas)".

Verificado con rango de fechas 2026-hoy: abre limpio, muestra
"Facturado ventas a la fecha" en el encabezado, exporta correctamente
en PDF, pantalla y Excel.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-29 15:26:41 -04:00
jpegueroandClaude Sonnet 5 895499a8a8 Corregir ipprrp035 (Costos de Calidad): form, dependencia y .4rp faltantes
- Registrar ipfmrp035.4fd en el proyecto.
- Agregar dependencia faltante FUNCIONESREPORT para selectOutput().
- Rescatar ipprrp035.4rp de un backup viejo (PROYECTOS/bin), no existia
  en el repo. El nombre de reporte (inv1) coincidia bien.

Verificado con rango de fechas 2024-hoy, vista detallada y resumida
(por producto y por departamento): abre limpio, exporta correctamente
en PDF, pantalla y Excel.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-29 15:07:14 -04:00
jpegueroandClaude Sonnet 5 6c20f62de9 Corregir ipprrp009 (Existencia a Diferentes Fechas) y limpiar debug
- Registrar ipfmrp009.4fd y agregar dependencias faltantes
  (FUNCIONESREPORT, FUNCIONES_IN) para msgrp000/selectOutput/defecto/
  fgl_report_*.
- Rescatar ipprrp009.4rp de un backup viejo (PROYECTOS/bin), no existia
  en el repo. El nombre de reporte (existencia_grafica) coincidia bien,
  a diferencia del caso de ipprrp010.
- Quitar dos DISPLAY de depuracion olvidados (mostraban el SQL completo
  y el texto "imprime" en cada fila).

Verificado con producto 29-668-1403-6952, rango 01/01/2026-29/09/2026,
grafico=SI: Existencia 360.00, Costo 3,512.41/3,512.42, Total
1,264,469.40 (cuadra: 360 x costo). Subtotal por origen y total general
correctos. Exportado en PDF, pantalla y Excel sin problemas. Cierre
limpio.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-29 12:44:34 -04:00
jpegueroandClaude Sonnet 5 3923c9dc01 Corregir ipprrp005 (Maestra Costo Standard): dependencias, logo y titulo
- Registrar ipfmrp005.4fd en el proyecto (form not found al abrir).
- Agregar dependencias faltantes FUNCIONESREPORT (msgrp000) para el
  papel/preview del reporte.
- selectOutput() no estaba definida en ningun modulo enlazable sin
  conflicto: la version de otrodir/vesalidaimpresora.4gl tiene una
  firma distinta (devuelve 3 valores) y la de otrodir/msgrp000.4gl
  choca con indir/defecto.4gl al traer ambas. Se extrajo a un archivo
  propio (otrodir/selectoutput_simple.4gl) la version de un solo
  valor de retorno que ya coincidia con lo que espera este programa,
  reutilizando el formulario "Configuration" ya existente.
- ipprrp005.4rp: la ruta del logo era absoluta a la maquina de
  produccion (E:\MARMOTECHC\IMAGENES\logo.png), no existia aqui -
  cambiada a ruta relativa (logo.png, ya esta en PROYECTO/bin).
- Se agrego titulo a la ventana (usaba el generico "screen").

Verificado con producto 29-668-1403-6952, año 2026: Material 3,512.42,
Labor 0.00, Gasto 0.00, Costo STD 3,512.42 - reporte bien formateado
(usa el .4rp original del programa, no uno reescrito). Cierre limpio.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-29 12:22:37 -04:00
Abel LópezandClaude Sonnet 5 6ec15cfb3d Registra noprrp044 (Carnet Empleados) y corrige ruta de logo
Se agrega noprrp044 al proyecto usando nofmrp044.4fd, reutilizando
FUNCIONESREPORT y libgre.42x.

Se corrige ruta absoluta hardcodeada en noprrp044.4rp
(file:///F:/MARMOTECHC/BIN320/IMAGENES/marmotech.png, inexistente en
este equipo) por una ruta relativa a IMAGENES/Logo.png, ya presente
en el proyecto.

Probada impresion de carnet (frente y reverso) para un empleado con
foto, verificado contra BD.

Pendiente: la opcion "NO EMPLEADOS" (generacardnet, etiquetas
genericas) usa noprrp044_1.4rp, que no existe en el proyecto (solo
una version renombrada noprrp044_1_otros_ant.4rp de origen incierto).
Se deja sin resolver hasta confirmar con el usuario cual version usar.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-28 16:39:15 -04:00
Abel LópezandClaude Sonnet 5 aeab10ce0d Registra noprrp039 (Reporte Empleados) y corrige bugs de SQL y fecha
Se agrega noprrp039 al proyecto usando nofmrp039.4fd, reutilizando
FUNCIONESREPORT y libgre.42x.

Se corrige "AND  and" duplicado (typo) en las 3 consultas dinamicas
del bloque tipoEmpleados=9 (TODOS los empleados), que producia un
error de sintaxis SQL y bloqueaba completamente esa opcion.

Se corrige CONVERT(CHAR,fech_efec,103) hacia variable DATE en las 5
consultas del programa, mismo patron de error -1205 "Invalid month
in date" ya visto en otros programas.

Se crea PROYECTO/bin/IMAGENES/EMPLEADOS (con .gitkeep), carpeta
faltante donde el programa exporta las fotos de empleados
(foto_empleado.writeFile); sin ella el reporte fallaba con error
-8087 al procesar cualquier empleado con foto guardada.

Probado con empleado especifico y con "TODOS" (activos+inactivos con
foto), verificado contra BD sobre departamento 1000.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-28 13:11:32 -04:00
Abel LópezandClaude Sonnet 5 0641c6b2be Registra noprrp003 (Herramientas de Empleados) y corrige bugs
Se agrega noprrp003 al proyecto usando nofmrp003.4fd, reutilizando
FUNCIONESREPORT y libgre.42x ya configurados para noprrp002.

Se corrige bug donde el combo "Departamento=TODOS" (valor NULL)
generaba via CONSTRUCT la condicion "e.departamento is null" en vez
de no filtrar, excluyendo a todos los empleados con departamento
asignado (confirmado con debug logging: solo empleados sin
departamento pasaban el filtro). Se agrega neutraliza_depto_null()
para neutralizar esa condicion especifica tras el CONSTRUCT.

Se corrige fila vacia sobrante al final del reporte (el FOREACH deja
un elemento extra en el arreglo dinamico; se agrega
inv.deleteElement(idx), igual que en noprrp002).

Probado con empleado especifico, todos los empleados y filtro por
departamento, verificado contra BD (94 registros totales, 12 para
CONTABILIDAD).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-28 12:09:57 -04:00