{ =============================================================================== PROGRAMA : COMNMT000 OBJETIVO : Menu de Mantenimientos del Sistema de Inventario de Materia Prima. PROGRAMADOR : JUAN SOTO FECHA REALIZACION : AGOSTO 1997 DIRECTOR PROYECTO : JOSE ALFREDO PAULINO =============================================================================== } GLOBALS "coprgb000.4gl" MAIN DEFER INTERRUPT CALL comnmt000() END MAIN FUNCTION comnmt000() DEFINE p_user CHAR(9) DEFINE luz CHAR(5) OPTIONS PROMPT LINE 8 CLEAR SCREEN CALL pantalla() DISPLAY "Mantenimientos" AT 6,33 DISPLAY "comnmt000" AT 4,3 ATTRIBUTE(blue) DISPLAY " 1- Suplidores coprmt001" AT 10,1 #DISPLAY " 2- Furgones coprmt003" AT 11,1 #DISPLAY " 3- Formas Embarque Prod. coprmt004" AT 12,1 #DISPLAY " 4- N.A.B. coprmt005" AT 13,1 DISPLAY " 2- Ordenes de Compras coprmt009" AT 11,1 DISPLAY " 3- Puertos coprmt011" AT 12,1 #DISPLAY " 8- Companias Aseguradoras coprmt014" AT 17,1 DISPLAY " 4- Terminos de Pago coprmt016" AT 13,1 DISPLAY " 5- Paises coprmt010" AT 14,1 #DISPLAY "10- Formas de Embarque coprmt017" AT 10,41 #DISPLAY "11- Poliza de Seguro coprmt018" AT 11,41 #DISPLAY "12- Maestra de Monedas coprmt019" AT 12,41 DISPLAY " 6- Abrir y/o Cerrar Orden coprmt015" AT 15,1 DISPLAY " 7- Requisiciones de Comrpas coprmt025" AT 16,1 DISPLAY " 8- Valorizacion Requisicion coprmt006" AT 17,1 #DISPLAY "14- Datos Compl. Para ITBI coprmt023" AT 14,41 #DISPLAY "15- Bienes y/ servicios Cat coprmt024" AT 15,41 DISPLAY "S- Retorna Menu Anterior " AT 21,28 ATTRIBUTE(blue) 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,"comnmt000") RETURNING luz IF luz = "roja" THEN ERROR "NO TIENE PERMISO PARA UTILIZAR OPCION" GOTO vuelve END IF END IF CASE WHEN OPT = "1" CALL coprmt001() CLEAR SCREEN CALL comnmt000() WHEN OPT = "2" CALL coprmt009() CLEAR SCREEN CALL comnmt000() WHEN OPT = "3" CALL coprmt011() CLEAR SCREEN CALL comnmt000() WHEN OPT = "4" CALL coprmt016() CLEAR SCREEN CALL comnmt000() WHEN OPT = "5" CALL coprmt010() CLEAR SCREEN CALL comnmt000() WHEN OPT = "6" CALL coprmt015() CLEAR SCREEN CALL comnmt000() WHEN OPT = "S" or OPT = "s" RETURN OTHERWISE CALL comnmt000() END CASE END FUNCTION FUNCTION pantalla() DEFINE fecha CHAR(8), hora char(5) LET fecha = today USING "dd/mm/yy" LET hora = time SELECT * INTO p_companias.* FROM companias a LET l = (80 - LENGTH(p_companias.nombre CLIPPED))/2 DISPLAY p_companias.nombre CLIPPED AT 4,l ATTRIBUTE (REVERSE,blue) DISPLAY fecha AT 4,70 ATTRIBUTE (blue) DISPLAY "Sistema de Compras" AT 5,31 DISPLAY hora AT 6,73 ATTRIBUTE(blue) CALL fgl_drawbox(5,79,3,1) CALL fgl_drawbox(1,79,22,1) END FUNCTION { ---------------------------------------------------------------------------- PROGRAMA : PRD OBJETIVO : Controlar las operaciones que se hagan anterior a una fecha de corte. REALIZADO POR : Ing. Juan Fco. Soto. FECHA : Noviembre 4, 1992. --------------------------------------------------------------------------- } FUNCTION prd() DEFINE otrab SMALLINT DEFINE numero_msg INTEGER DEFINE comp_fech,comp_fech1 DATE DEFINE mes_control CHAR(2) DEFINE mes_calc,dia SMALLINT DEFINE fecha_c DATE DEFINE c_ano,a_ano CHAR(4) DEFINE usuario1 CHAR(9) LET a_ano = year(today) LET mes_control = MONTH(today) LET mes_calc = mes_control IF mes_calc = 01 THEN LET mes_calc = 13 LET a_ano = year(today - 32) END IF #Aqui la funcion se posicionaba en dos meses para el control del documento #LET mes_calc = mes_calc - 2 IF mes_calc <= 0 THEN LET mes_calc = 12 LET a_ano = year(today) - 1 END IF LET c_ano = year(today) SELECT MIN(fecha_corte) INTO fecha_c FROM prdtable WHERE fecha_corte >= p_fechas IF STATUS = NOTFOUND THEN LET numero_msg = 57 CALL msg(numero_msg) LET bandera = 1 END IF LET dia = 0 SELECT MIN(dias_gracia) INTO dia FROM prdtable WHERE fecha_corte = fecha_c IF dia IS NULL THEN LET dia = 0 END IF SELECT UNIQUE a.usuario FROM seg0003 a WHERE a.usuario = USER IF STATUS != NOTFOUND THEN LET fecha_c = fecha_c + dia END IF LET comp_fech = fecha_c LET comp_fech1 = TODAY IF comp_fech < comp_fech1 THEN LET numero_msg = 57 CALL msg(numero_msg) LET bandera = 1 END IF END FUNCTION