Compare commits

...
4 Commits
Author SHA1 Message Date
jpegueroandClaude Sonnet 5.5 dead250cf9 ipprmt002: el combo Grupo No. 1 se llenaba con el cursor equivocado (Bienes/Servicio)
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>
2026-10-21 10:28:19 -04:00
jpegueroandClaude Sonnet 5.5 4059dc92e6 ipprmt002: recalcula nombre_representante antes de grabar (Escoger lo dejaba en blanco)
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>
2026-10-21 09:40:43 -04:00
jpegueroandClaude Sonnet 5.5 ef6980358e ipprmt002: registra ipfmmt002 e ipfmwd006
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-21 09:31:27 -04:00
jpegueroandClaude Sonnet 5.5 5e5da7a926 ipprmt002: compila y enlaza (esquema de ipdir con iptb00002 de 49 columnas, funciones faltantes)
- 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>
2026-10-21 09:12:09 -04:00
4 changed files with 11160 additions and 3 deletions
+42 -3
View File
@@ -648,6 +648,10 @@ SET CONNECTION "MSSQL"
p_iptb02.cod_sec,p_iptb02.unidad_med,p_iptb01.factor_conv,
NULL,SUSER_SNAME(),GETDATE(),NULL,NULL,p_iptb01.factor_ad)
# Se puede aceptar sin pasar por num_emp (GUI): se recalcula el nombre del representante
IF p_iptb02.num_emp IS NOT NULL THEN
LET p_iptb02.nombre_representante = ui.ComboBox.forName('formonly.num_emp').getTextOf(p_iptb02.num_emp)
END IF
INSERT INTO iptb00002(cod_cia,cod_n,cod_grupo,cod_tipo,cod_Sec,descrip_esp,
descrip_ing,unidad_med,bodega,control_existencia,control_itbis,dia_llegada,exist_max,
exist_min,us_crea,fech_crea,foto_producto,porc_desc,fecha_desc,imagen,descuento_permitido,departamento,grupo1,
@@ -685,6 +689,10 @@ SET CONNECTION "MSSQL"
SET CONNECTION "IFMX"
# Se puede aceptar sin pasar por num_emp (GUI): se recalcula el nombre del representante
IF p_iptb02.num_emp IS NOT NULL THEN
LET p_iptb02.nombre_representante = ui.ComboBox.forName('formonly.num_emp').getTextOf(p_iptb02.num_emp)
END IF
INSERT INTO iptb00002(cod_cia,cod_n,cod_grupo,cod_tipo,cod_Sec,descrip_esp,
descrip_ing,unidad_med,bodega,control_existencia,control_itbis,dia_llegada,exist_max,
exist_min,imp_aduanal, us_crea,fech_crea,codid)
@@ -714,6 +722,10 @@ SET CONNECTION "MSSQL"
# PRIMERA CONEXION
SET CONNECTION "MSSQL"
# Se puede aceptar sin pasar por num_emp (GUI): se recalcula el nombre del representante
IF p_iptb02.num_emp IS NOT NULL THEN
LET p_iptb02.nombre_representante = ui.ComboBox.forName('formonly.num_emp').getTextOf(p_iptb02.num_emp)
END IF
UPDATE iptb00002 SET iptb00002.cod_cia = p_iptb02.cod_cia,
iptb00002.cod_n =p_iptb02.cod_n,
iptb00002.cod_grupo = p_iptb02.cod_grupo,
@@ -790,6 +802,10 @@ SET CONNECTION "MSSQL"
a.cod_sec = p_iptb02.cod_sec
IF STATUS <> NOTFOUND THEN
# Se puede aceptar sin pasar por num_emp (GUI): se recalcula el nombre del representante
IF p_iptb02.num_emp IS NOT NULL THEN
LET p_iptb02.nombre_representante = ui.ComboBox.forName('formonly.num_emp').getTextOf(p_iptb02.num_emp)
END IF
UPDATE iptb00002 SET iptb00002.cod_cia = p_iptb02.cod_cia,
iptb00002.descrip_esp =p_iptb02.descrip_esp,
iptb00002.descrip_ing =p_iptb02.descrip_ing,
@@ -810,6 +826,10 @@ SET CONNECTION "MSSQL"
cod_tipo = p_iptb02.cod_tipo AND
cod_Sec = p_iptb02.cod_sec
ELSE
# Se puede aceptar sin pasar por num_emp (GUI): se recalcula el nombre del representante
IF p_iptb02.num_emp IS NOT NULL THEN
LET p_iptb02.nombre_representante = ui.ComboBox.forName('formonly.num_emp').getTextOf(p_iptb02.num_emp)
END IF
INSERT INTO iptb00002(cod_cia,cod_n,cod_grupo,cod_tipo,cod_Sec,descrip_esp,
descrip_ing,unidad_med,bodega,control_existencia,control_itbis,dia_llegada,exist_max,
exist_min,imp_aduanal,us_crea,fech_crea,codid)
@@ -1170,8 +1190,27 @@ FUNCTION grupo_producto()
ORDER BY a.cod_grupo
CALL cgrupo.clear()
FOREACH btipoproductos INTO kgrupo, dgrupo
CALL cgrupo.additem(kgrupo, dgrupo)
# Se recorria btipoproductos (cursor de otra funcion): el combo mostraba Bienes/Servicio.
# iptb00002.grupo1 guarda el NOMBRE del grupo (CORALINA, TRAVERTINO...), no el codigo.
FOREACH bgrupos INTO kgrupo, dgrupo
CALL cgrupo.additem(dgrupo CLIPPED, dgrupo CLIPPED)
END FOREACH
END FUNCTION
END FUNCTION
# busca_departamento() local: la version compartida esta en FUNCIONES_IR (duplicaria el modulo)
FUNCTION busca_departamento()
DEFINE pdepartamento ui.combobox,
kdepartamento SMALLINT,kdescripcion CHAR(30)
LET pdepartamento = ui.combobox.forname("formonly.departamento")
CALL pdepartamento.clear()
DECLARE pagar_dpto CURSOR FOR
SELECT departamento, nom_dpto FROM adtb00001
WHERE status_t is null
ORDER BY nom_dpto
FOREACH pagar_dpto INTO kdepartamento,kdescripcion
CALL pdepartamento.additem(kdepartamento,kdescripcion)
END FOREACH
END FUNCTION
File diff suppressed because it is too large Load Diff
+4
View File
@@ -876,6 +876,10 @@
<Application binaryName="ipprmt002" dependencies="1763548104,-1026233879,-764824792" externalDependencies="libgre.42x" id="-960000000" label="ipprmt002">
<Configuration commandLineArguments="jpeguero Peguero2023" id="-961000000" label="Configuration"/>
<File compilerOptions="--build-rdd" filePath="ipdir/ipprmt002.4gl"/>
<File filePath="ipdir/categoria_conteo.4gl"/>
<File filePath="otrodir/gerentesmarcas.4gl"/>
<File filePath="ipdir/ipfmmt002.4fd"/>
<File filePath="ipdir/ipfmwd006.per"/>
</Application>
<Application binaryName="ipprmt003" dependencies="1763548104,-1026233879,-764824792" externalDependencies="libgre.42x" id="-960000001" label="ipprmt003">
<Configuration commandLineArguments="jpeguero Peguero2023" id="-961000001" label="Configuration"/>
+17
View File
@@ -0,0 +1,17 @@
FUNCTION gerentesmarcas()
DEFINE pgerentes ui.combobox,
knum_emp SMALLINT,knombre VARCHAR(100)
LET pgerentes = ui.combobox.forname("formonly.num_emp")
CALL pgerentes.clear()
DECLARE depto CURSOR FOR
SELECT a.num_emp, rtrim(a.nom1_emp)+' '+rtrim(a.apell1_emp) FROM adtb00003 a
WHERE a.gerentemarcas = 'SI' AND
a.status_t is null
FOREACH depto INTO knum_emp,knombre
CALL pgerentes.additem(knum_emp,knombre)
END FOREACH
END FUNCTION