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

160 lines
4.7 KiB
Plaintext

{
---------------------------------------------------------------------------
PROGRAMA : IPMNMT000
OBJETIVO : Menu de Mantenimientos del Sistema
de Inventario de Producto.
PROGRAMADOR : Juan Fco. Soto (Johnny)
FECHA REALIZACION : Agosto, 1997.
ASESOR : JOSE ALFREDO PAULINO
---------------------------------------------------------------------------
}
GLOBALS "ipprgb000.4gl"
# DEFINE numero_msg LIKE msgtable.cod_msg
DEFINE l SMALLINT
MAIN
DEFER INTERRUPT
CALL ipmnmt000()
END MAIN
FUNCTION ipmnmt000()
CLEAR SCREEN
CALL opciones_ipmnmt000()
END FUNCTION
FUNCTION opciones_ipmnmt000()
DEFINE oip CHAR(2)
DEFINE p_user CHAR(9)
DEFINE luz CHAR(5),
opt CHAR(2)
OPTIONS
PROMPT LINE 8,
ERROR LINE 24
CALL pantalla()
DISPLAY " Mantenimientos " AT 6,22
DISPLAY "ipmnmt000" AT 4,3 ATTRIBUTE(BLUE)
DISPLAY " 1- Catalogo De Productos ipprmt002" AT 10,6
DISPLAY " 2- Catalogo De Movimientos ipprmt003" AT 11,6
DISPLAY " 3- Movimientos del Inventario ipmnmt001" AT 12,6
DISPLAY " 4- Conteo Fisico y Ajuste (es) ipprmt008" AT 13,6
DISPLAY " 5- Costos Estandares ipprmt013" AT 14,6
DISPLAY " 6- Precios Productos ipprmt017" AT 15,6
DISPLAY " 7- Tipo Producto ipprmt010" AT 16,6
DISPLAY " 8- Factor de Conversion ipprmt018" AT 17,6
DISPLAY " 9- Catalogo de Origen Productos ipprmt004" AT 18,6
DISPLAY "S- Retorna Menu Anterior " AT 20,6
ATTRIBUTE(BOLD)
LABEL vuelve:
PROMPT "OPCION: " attribute(BLUE) FOR OPT
LET opt = UPSHIFT(opt)
IF opt != "S" THEN
SELECT unique usuario INTO p_user FROM seg0001
WHERE usuario = user
CALL seg000(p_user,opt,"ipmnmt000") RETURNING luz
IF luz = "roja" THEN
ERROR "NO TIENE PERMISO PARA UTILIZAR OPCION"
# GOTO vuelve
END IF
END IF
CASE
WHEN OPT = "1"
CALL ipprmt002()
CLEAR SCREEN
CALL opciones_ipmnmt000()
WHEN OPT = "2"
CALL ipprmt003()
CLEAR SCREEN
CALL opciones_ipmnmt000()
WHEN OPT = "3"
CALL ipmnmt001()
CLEAR SCREEN
CALL opciones_ipmnmt000()
WHEN OPT = "4"
CALL ipprmt008()
CLEAR SCREEN
CALL opciones_ipmnmt000()
WHEN OPT = "5"
CALL ipprmt013()
CLEAR SCREEN
CALL opciones_ipmnmt000()
WHEN OPT = "6"
CALL ipprmt017()
CLEAR SCREEN
CALL opciones_ipmnmt000()
WHEN OPT = "7"
CALL ipprmt010()
CLEAR SCREEN
CALL opciones_ipmnmt000()
WHEN OPT = "8"
CALL ipprmt018()
CLEAR SCREEN
CALL opciones_ipmnmt000()
WHEN OPT = "9"
CALL ipprmt004()
CLEAR SCREEN
CALL opciones_ipmnmt000()
WHEN OPT = "S" or OPT = "s"
RETURN
OTHERWISE
CALL opciones_ipmnmt000()
END CASE
END FUNCTION
FUNCTION pantalla()
DEFINE fecha CHAR(10),
hora char(5)
SELECT a.* INTO p_companias.* FROM companias a
LET fecha = today USING "dd/mm/yyyy"
LET hora = time
LET l = (80 - LENGTH(p_companias.nombre CLIPPED))/2
DISPLAY p_companias.nombre CLIPPED AT 4,l ATTRIBUTE (REVERSE,BLUE)
DISPLAY fecha AT 4,68 ATTRIBUTE (BLUE)
DISPLAY "Sistema Inventario de Productos" AT 5,25
DISPLAY hora AT 6,73 ATTRIBUTE(BLUE)
CALL fgl_drawbox(5,79,3,1)
# CALL fgl_drawbox(1,79,22,1)
END FUNCTION
FUNCTION integridad()
IF sqlca.sqlcode < 0 THEN
LET numero_msg = sqlca.sqlcode
CALL msg(numero_msg)
LET bandera = 1
SLEEP 2
RETURN
END IF
END FUNCTION
FUNCTION busca_cliente()
LET int_flag = FALSE
OPEN WINDOW cliente AT 10,9 WITH FORM "ipfmwd009"
ATTRIBUTE(BORDER,FORM LINE FIRST + 2)
CONSTRUCT BY NAME criterio ON a.tipo_cliente,a.sec_cliente,a.nombre
LET selec = "SELECT a.tipo_cliente,a.sec_cliente,a.nombre FROM vetb00004 a ",
"WHERE a.status_t IS NULL AND ",criterio CLIPPED, "ORDER BY 1,2"
PREPARE comando3 FROM selec
DECLARE comp3 CURSOR FOR comando3
LET idx = 1
FOREACH comp3 INTO clientes[idx].*
LET idx = idx + 1
IF idx = 49 THEN
EXIT FOREACH
END IF
END FOREACH
CALL SET_COUNT(idx - 1)
DISPLAY ARRAY clientes TO s_cliente.*
LET idx = ARR_CURR()
CLOSE WINDOW cliente
END FUNCTION