{ ---------------------------------------------------------------- PROGRAMA : CTMNRP000 OBJETIVO : Menu de Reportes del Sistema de Costos. PROGRAMADOR : Tadeo A. Ferreras FECHA REALIZACION : Junio 23, 1993. ---------------------------------------------------------------- } GLOBALS "ctprgb000.4gl" MAIN DEFER INTERRUPT CALL ctmnrp000() END MAIN # Funcion que desplega y controla las opciones del sistema FUNCTION ctmnrp000() DEFINE p_user CHAR(9) DEFINE luz CHAR(5) OPTIONS PROMPT LINE 8, MESSAGE LINE 24 CLEAR SCREEN CALL pantalla() DISPLAY "Reportes" AT 6,36 DISPLAY "ctmnrp000" AT 4,3 ATTRIBUTE(blue) DISPLAY "1-Menu Consumo Materiales ctmnrp001" AT 10,1 DISPLAY "2-Inventario Ptos. En Proceso ctprrp003" AT 11,1 DISPLAY "3-Reporte Produccion Diaria ctprrp004" AT 12,1 DISPLAY "4-Costo Unitario Real ctprrp007" AT 13,1 DISPLAY "5-Historial de Precios Reales ctprrp008" AT 14,1 DISPLAY "6-Consumo de Materiales ctprrp013" AT 15,1 DISPLAY "7-Costo Unitario Real(Prod.) ctprrp015" AT 16,1 DISPLAY "8-Costo Unitario Real(Acumu) ctprrp016" AT 17,1 DISPLAY "9-Anal. Mov. Mat. Prima ctprrp019" AT 10,41 DISPLAY "10-Rel. Prod.Term y Semi-Elab ctprrp020" AT 11,41 DISPLAY "11-Histor. Precios Reales Pt. ctprrp029" AT 12,41 DISPLAY "12-Desperdicios de Materiales ctprrp033" AT 13,41 DISPLAY "13-Conteo Semi-Elaborado ctprrp031.ace" AT 14,41 DISPLAY "14-Formulacion Semi-Elaborado ctprrp032" AT 15,41 DISPLAY "15-Reporte Produccion Mensual ctprrp014" AT 15,41 DISPLAY " S- Retorna Menu Anterior " AT 23,27 ATTRIBUTE (BOLD) #DISPLAY "2-Analisis Variacion Precio ctprrp002" AT 10,1 #DISPLAY "9-Conteo Semi-Elaborados ctprrp031" AT 16,1 #DISPLAY "11-Anal. Mov. Prod. Terminado ctprrp011" AT 17,1 #DISPLAY "12-Anal. Rentabil. Por Prod. ctprrp012" AT 18,1 #DISPLAY "14-Reporte Produccion Mensual ctprrp014" AT 20,1 #DISPLAY "17-Anal. Rentabil. Prod. Acum ctprrp017" AT 9,41 #DISPLAY "23-Anal. Mov. Materia Prima ctprrp024" AT 12,41 #DISPLAY "24-Conteo Materiales (.ace) ctprrp032" AT 13,41 #DISPLAY "25-Costos Unit Comp. Std-Real ctprrp028" AT 14,41 #DISPLAY "27-Valid. Costo Real de Pilas ctprrp030" AT 16,41 #DISPLAY "28-Validacion Factor Semi-Ela ctprrp021" AT 17,41 #DISPLAY "30-Precios Reales Semi-elab ctprrp010" AT 19,41 #DISPLAY "31-Comparativo Costos Semi-el ctprrp034" AT 20,41 # Captura de la opcion para la eleccion de lo requerimientos del usuario LET opcion = NULL LABEL vuelve: PROMPT " OPCION: " FOR opcion HELP 2 LET opcion = upshift (opcion) clipped IF opcion != "S" THEN SELECT unique usuario INTO p_user FROM seg0001 WHERE usuario = user CALL seg000(p_user,opcion,"ctmnrp000") RETURNING luz IF luz = "roja" THEN ERROR "NO TIENE PERMISO PARA UTILIZAR OPCION" GOTO vuelve END IF END IF # Rutina para bifulcar el sistema dependiendo de lo elejido por el usuario CASE WHEN opcion = "1" RUN "fglrun %FGLPROG%\\ctmnrp001" CALL ctmnrp000() WHEN opcion = "2" CALL ctprrp003() CALL ctmnrp000() WHEN opcion = "3" CALL ctprrp004() CALL ctmnrp000() WHEN opcion = "4" CALL ctprrp007() CALL ctmnrp000() WHEN opcion = "5" CALL ctprrp008() CALL ctmnrp000() WHEN opcion = "6" CALL ctprrp013() CALL ctmnrp000() WHEN opcion = "7" CALL ctprrp015() CALL ctmnrp000() WHEN opcion = "8" CALL ctprrp016() CALL ctmnrp000() WHEN opcion = "9" CALL ctprrp019() CALL ctmnrp000() WHEN opcion = "10" CALL ctprrp020() CALL ctmnrp000() WHEN opcion = "11" CALL ctprrp029() CALL ctmnrp000() WHEN opcion = "12" CALL ctprrp033() CALL ctmnrp000() WHEN opcion = "13" DISPLAY "En Proceso... Espere" AT 23,1 RUN "isql -rr ctprrp031" DISPLAY " " AT 23,1 CALL ctmnrp000() WHEN opcion = "14" CALL ctprrp032() CALL ctmnrp000() WHEN opcion = "15" CALL ctprrp014() CALL ctmnrp000() WHEN opcion = "S" or opcion = "s" RETURN OTHERWISE CALL ctmnrp000() END CASE END FUNCTION FUNCTION pantalla() DEFINE fecha CHAR(8), hora char(5) SELECT * INTO p_compania.* FROM companias LET l = (80 - LENGTH(p_compania.nombre CLIPPED)) / 2 LET fecha = today USING "dd/mm/yy" LET hora = time DISPLAY p_compania.nombre CLIPPED AT 4,l ATTRIBUTE (REVERSE,blue) DISPLAY fecha AT 4,70 ATTRIBUTE (blue) DISPLAY "Sistema de Costos" 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 FUNCTION integridad() IF sqlca.sqlcode < 0 THEN LET numero_msg = sqlca.sqlcode CALL msg(numero_msg) DISPLAY numero_msg AT 23,70 LET bandera = 1 SLEEP 2 RETURN END IF 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 bandera SMALLINT 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) LET bandera = 0 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