Files
MBS/PROYECTOS/ipdir/ipprcs002.4gl
T

97 lines
2.8 KiB
Plaintext

{
-------------------------------------------------------------------------------
PROGRAMA : IPPRCS002
OBJETIVO : Consulta Maestra de Productos
PROGRAMADOR : JUAN SOTO
FECHA REALIZACION : Febrero 1997
DIRECTOR PROYECTO : JOSE ALFREDO PAULINO ALEJO
-------------------------------------------------------------------------------
}
GLOBALS "ipprgb000.4gl"
MAIN
DEFER INTERRUPT
SELECT * INTO p_companias.* FROM companias
CALL ipprcs002()
END MAIN
FUNCTION ipprcs002()
#WHENEVER ERROR CONTINUE
CLEAR SCREEN
OPTIONS
FORM LINE 7,
ERROR LINE 24,
COMMENT LINE 23
OPEN FORM ipfmcs002 FROM "ipfmcs002"
DISPLAY FORM ipfmcs002
CALL PANTALLA()
DISPLAY "ipprcs002" AT 4,3
DISPLAY "Catalogo Productos " AT 6,28
DISPLAY "<Esc> Continua Consultando" AT 2,2 ATTRIBUTE (BLUE,REVERSE)
DISPLAY "<Delete> Cancela Operacion" AT 2,56 ATTRIBUTE (BLUE,REVERSE)
## Aqui se prepara el criterio de seleccion
LABEL volver:
CONSTRUCT criterio ON a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec
FROM cod_n,cod_grupo, cod_tipo,cod_sec
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
LET SELEC =
"SELECT a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,a.descrip_esp,a.unidad_med, ",
" a.bodega,a.cod_grupo,a.cod_cia,a.exist_max,a.exist_min, ",
" a.dia_llegada,a.descrip_ing ",
"FROM iptb00002 a ",
"WHERE a.status_t is null AND ",criterio CLIPPED," ORDER BY 1,2,3,4 "
PREPARE busca FROM selec
DECLARE accion CURSOR FOR busca
## Busca los registros con la condicion dada y verifica si el producto terminado
## existe en el catalogo de bienes y servicios.
LET idx = 1
FOREACH accion INTO prod[idx].*,descrip1
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
LET prod[idx].existencia = 0
SELECT SUM(a.cantidad_2) INTO prod[idx].existencia FROM iptb00006 a
WHERE a.cod_n = prod[idx].cod_n1 AND a.cod_grupo=prod[idx].cod_grupo1 AND
a.cod_tipo=prod[idx].cod_tipo1 AND a.cod_sec=prod[idx].cod_sec1 AND
a.status_t IS NULL
IF prod[idx].existencia IS NULL THEN
LET prod[idx].existencia = 0
END IF
LET prod[idx].descrip_esp1 = prod[idx].descrip_esp1 CLIPPED
LET idx = idx + 1
END FOREACH
CALL set_count (idx-1)
DISPLAY ARRAY prod TO consart.*
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
ELSE
CLEAR FORM
GOTO volver
END IF
END FUNCTION