Files
MBS/PROYECTO/ctdir/ctmnrp000.4gl
T

238 lines
7.1 KiB
Plaintext

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