lsoto
This commit is contained in:
@@ -0,0 +1,103 @@
|
||||
#-----------------------------------------------------------------------------
|
||||
# irbuscaprod.4gl
|
||||
# busca_prod() tomada de PROYECTOS/otrodir/funciones.4gl (3.20), que es la que
|
||||
# enlazaba irprmt020. Va aparte porque funciones_ip.4gl redefine bodegas()
|
||||
# y disponibles(), ya presentes en la libreria FUNCIONES.
|
||||
#-----------------------------------------------------------------------------
|
||||
FUNCTION busca_prod(pinventario)
|
||||
|
||||
DEFINE
|
||||
arr_prod DYNAMIC ARRAY OF RECORD
|
||||
cod_n INTEGER,
|
||||
cod_grupo INTEGER,
|
||||
cod_tipo INTEGER,
|
||||
cod_sec INTEGER,
|
||||
descrip_esp CHAR(50),
|
||||
unidad_med CHAR(4),
|
||||
existencia1 DEC(18, 4),
|
||||
cantidad_o DEC(18, 4),
|
||||
cantidad_c DEC(18, 4),
|
||||
existencia DEC(18, 4)
|
||||
END RECORD,
|
||||
selec_pt, criterio STRING,
|
||||
f, pinventario, idx SMALLINT,
|
||||
pcodn, pcodgrupo, pcodtipo, pcodsec INT,
|
||||
pdescripcion CHAR(100)
|
||||
|
||||
OPEN WINDOW busca_2
|
||||
AT 8, 4
|
||||
WITH FORM "vefmwd100"
|
||||
ATTRIBUTE(BORDER, FORM LINE FIRST + 1, PROMPT LINE LAST)
|
||||
|
||||
CONSTRUCT criterio
|
||||
ON a.cod_n, a.cod_grupo, a.cod_tipo, a.descrip_esp
|
||||
FROM cod_n, cod_grupo, cod_tipo, descrip_esp
|
||||
|
||||
IF pinventario = '02' THEN
|
||||
LET selec_pt =
|
||||
"SELECT a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,a.descrip_esp,a.unidad_med,SUM(b.cantidad_2),'0','0',SUM(b.cantidad_2) ",
|
||||
" FROM iptb00002 AS a INNER JOIN iptb00001 AS c ON a.cod_n = c.cod_n AND a.cod_grupo = c.cod_grupo AND ",
|
||||
" a.cod_tipo = c.cod_tipo and a.cod_Sec = c.cod_Sec LEFT OUTER JOIN ",
|
||||
" iptb00006 AS b ON a.cod_n = b.cod_n AND a.cod_grupo = b.cod_grupo AND ",
|
||||
" a.cod_tipo = b.cod_tipo AND a.cod_sec = b.cod_sec AND b.status_t IS NULL ",
|
||||
" WHERE a.status_t IS NULL AND ",
|
||||
CRITERIO CLIPPED,
|
||||
" GROUP BY a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,a.descrip_esp,a.unidad_med ",
|
||||
" ORDER BY a.descrip_esp "
|
||||
END IF
|
||||
|
||||
IF pinventario = '01' THEN
|
||||
LET selec_pt =
|
||||
"SELECT a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,a.descrip_esp,a.unidad_med,'0','0','0',SUM(b.cantidad_2) ",
|
||||
" FROM intb00001 AS a ",
|
||||
" LEFT OUTER JOIN ",
|
||||
" intb00006 AS b ON a.cod_n = b.cod_n AND a.cod_grupo = b.cod_grupo AND ",
|
||||
" a.cod_tipo = b.cod_tipo AND a.cod_sec = b.cod_sec AND b.status_t IS NULL ",
|
||||
" WHERE a.status_t IS NULL AND ",
|
||||
CRITERIO CLIPPED,
|
||||
" GROUP BY a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,a.descrip_esp,a.unidad_med ",
|
||||
" ORDER BY a.descrip_esp "
|
||||
END IF
|
||||
|
||||
IF pinventario = '03' THEN
|
||||
LET selec_pt =
|
||||
"SELECT a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,a.descrip_esp,a.unidad_med,'0','0','0',SUM(b.cantidad_2) ",
|
||||
" FROM irtb00002 AS a ",
|
||||
" LEFT OUTER JOIN ",
|
||||
" irtb00006 AS b ON a.cod_n = b.cod_n AND a.cod_grupo = b.cod_grupo AND ",
|
||||
" a.cod_tipo = b.cod_tipo AND a.cod_sec = b.cod_sec AND b.status_t IS NULL ",
|
||||
" WHERE a.status_t IS NULL AND ",
|
||||
CRITERIO CLIPPED,
|
||||
" GROUP BY a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,a.descrip_esp,a.unidad_med ",
|
||||
" ORDER BY a.descrip_esp "
|
||||
END IF
|
||||
|
||||
IF int_flag THEN
|
||||
LET Int_flag = FALSE
|
||||
CLOSE WINDOW busca_2
|
||||
RETURN pcodn, pcodgrupo, pcodtipo, pcodsec, pdescripcion
|
||||
END IF
|
||||
PREPARE comando_p FROM selec_pt
|
||||
DECLARE busca_2 CURSOR FOR comando_p
|
||||
|
||||
LET idx = 1
|
||||
FOREACH busca_2 INTO arr_prod[idx].*
|
||||
LET idx = idx + 1
|
||||
END FOREACH
|
||||
CALL SET_COUNT(idx - 1)
|
||||
|
||||
DISPLAY ARRAY arr_prod TO s_prod.*
|
||||
AFTER ROW
|
||||
LET idx = arr_curr()
|
||||
LET pcodn = arr_prod[idx].cod_n
|
||||
LET pcodgrupo = arr_prod[idx].cod_grupo
|
||||
LET pcodtipo = arr_prod[idx].cod_tipo
|
||||
LET pcodsec = arr_prod[idx].cod_sec
|
||||
LET pdescripcion = arr_prod[idx].descrip_esp
|
||||
AFTER DISPLAY
|
||||
EXIT DISPLAY
|
||||
END DISPLAY
|
||||
CLOSE WINDOW busca_2
|
||||
RETURN pcodn, pcodgrupo, pcodtipo, pcodsec, pdescripcion
|
||||
|
||||
END FUNCTION
|
||||
Reference in New Issue
Block a user