{ --------------------------------------------------------------------------- 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