Files
MBS/PROYECTOS/indir/inprcs004.4gl
T

115 lines
3.5 KiB
Plaintext

{
-------------------------------------------------------------------------------
PROGRAMA : INPRCS004
OBJETIVO : Consulta Maestra de Materia Prima
PROGRAMADOR : Ing. Betania Guerrero Perez
FECHA REALIZACION : Agosto 14, 1992
-------------------------------------------------------------------------------
}
GLOBALS "inprgb000.4gl"
MAIN
DEFER INTERRUPT
SELECT * INTO p_companias.* FROM companias
CALL inprcs004()
END MAIN
FUNCTION inprcs004()
#WHENEVER ERROR CONTINUE
CLEAR SCREEN
OPTIONS
FORM LINE 7,
ERROR LINE 23,
COMMENT LINE 22
OPEN FORM infmcs004 FROM "infmcs004"
DISPLAY FORM infmcs004
CALL PANTALLA()
DISPLAY "inprcs004" AT 4,3
DISPLAY "Catalogo Materia Prima" AT 6,29
DISPLAY "<Esc> Continua Consultando" AT 2,7 ATTRIBUTE (YELLOW,REVERSE)
DISPLAY "<CTRL-C> Cancela Operacion" AT 2,50 ATTRIBUTE (YELLOW,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,c.bodega,SUM(d.cantidad_2),c.pto_reorden, ",
" c.dia_llegada,MAX(b.precio),c.pto_reorden ",
"FROM intb00001 a, intb00006 d,OUTER intb00002 c, OUTER cotb00015 b ",
"WHERE 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 ",
" 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 AND ",
" a.cod_n = d.cod_n AND a.cod_grupo = d.cod_grupo AND ",
" a.cod_tipo = d.cod_tipo AND a.cod_sec = d.cod_sec AND ",
" a.status_t is null AND d.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,c.bodega,c.pto_reorden, ",
" c.dia_llegada,c.pto_reorden ORDER BY a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec "
PREPARE busca FROM selec
DECLARE accion CURSOR FOR busca
## Busca los registros con la condicion dada y verifica si el articulo existe
## en el catalogo de bienes y servicios.
LET idx = 1
LET general = 0
FOREACH accion INTO art[idx].*
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
SLEEP 2
RETURN
END IF
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
# Calcula el valor total promedio de la existencia de una materia prima en base
# al producto de la existencia de la materia prima por el costo promedio que
# tiene esa materia prima
LET art[idx].valor = 0
LET art[idx].valor = art[idx].existencia * art[idx].precio
# Calcula la sumatoria del valor total promedio de la existencia de una materia
# prima
LET general = general + art[idx].valor
LET idx = idx + 1
END FOREACH
DISPLAY "Total General = " AT 24,40
DISPLAY general using "##,###,###.##" AT 24,58
CALL set_count (idx-1)
DISPLAY ARRAY art 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