115 lines
3.5 KiB
Plaintext
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
|
|
|
|
|