Files
MBS/PROYECTO/cgdir/cgmnmt002.4gl
T

165 lines
4.0 KiB
Plaintext

{
----------------------------------------------------------------
PROGRAMA : CGMNMT002
OBJETIVO : Menu de Mantenimientos Entrega de Cheques
PROGRAMADOR : Ing. Juan Soto.
FECHA REALIZACION : Diciembre 5, 1995
----------------------------------------------------------------
}
GLOBALS "cgprgb000.4gl"
MAIN
DEFER INTERRUPT
CALL cgmnmt002()
END MAIN
FUNCTION cgmnmt002()
DEFINE p_user CHAR(9)
DEFINE luz CHAR(5)
OPTIONS
PROMPT LINE 8,
HELP FILE "cgpray000.exe",
HELP KEY CONTROL-W,
MESSAGE LINE 24
CLEAR SCREEN
CALL pantalla()
DISPLAY "Mantenimientos" AT 6,32
DISPLAY "cgmnmt002" AT 4,3 ATTRIBUTE(blue)
DISPLAY " 1- Maestra Catalogo Cronologico cgprmt009" AT 10,1
DISPLAY " 2- Entrega de Cheques cgprmt007" AT 11,1
DISPLAY " 3- Entrega de Otros Cheques cgprmt012" AT 12,1
DISPLAY "S- Retorna Menu Anterior " AT 21,1
ATTRIBUTE (BOLD)
LET opcion = NULL
LABEL vuelve:
PROMPT " OPCION: " FOR opcion HELP 2
LET opcion = upshift(opcion)
IF opcion != "S" THEN
SELECT unique @usuario INTO p_user FROM seg0001
WHERE @usuario = user
CALL seg000(p_user,opcion,"cgmnmt002") RETURNING luz
IF luz = "roja" THEN
ERROR "NO TIENE PERMISO PARA UTILIZAR OPCION"
GOTO vuelve
END IF
END IF
CASE
WHEN opcion = "1"
CALL cgprmt009()
CALL cgmnmt002()
WHEN opcion = "2"
CALL cgprmt007()
CALL cgmnmt002()
WHEN opcion = "3"
CALL cgprmt012()
CALL cgmnmt002()
WHEN opcion = "S" or opcion = "s"
RETURN
OTHERWISE
CALL cgmnmt002()
END CASE
END FUNCTION
# Desplega pantalla con logo de la compania
FUNCTION pantalla()
DEFINE fecha CHAR(8),
hora char(5) ,
p_compania RECORD LIKE companias.*,
l SMALLINT
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 AT 4,l
ATTRIBUTE (blue)
DISPLAY fecha AT 4,70 ATTRIBUTE (blue)
DISPLAY " Sistema Entrega de Cheques " AT 5,24
DISPLAY hora AT 6,73 ATTRIBUTE(blue)
CALL fgl_drawbox(5,79,3,1)
CALL fgl_drawbox(1,79,22,1)
END FUNCTION
# Funcion que chequea los errores
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
LET status = 0
SLEEP 2
RETURN
END IF
RETURN
END FUNCTION
FUNCTION prd()
DEFINE controla CHAR(1)
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)
{IF a_ano != c_ano THEN
LET numero_msg = 59
CALL msg(numero_msg)
LET bandera = 1
RETURN
END IF}
SELECT MIN(fecha_corte) INTO fecha_c FROM prdtable
WHERE fecha_corte >= p_fechas
IF status = notfound THEN
LET numero_msg = 58
CALL msg(numero_msg)
LET bandera = 1
END IF
SELECT MIN(dias_gracia) INTO dia FROM prdtable
WHERE fecha_corte = fecha_c
IF status = notfound THEN
LET numero_msg = 58
CALL msg(numero_msg)
LET bandera = 1
END IF
IF dia IS NULL THEN
LET dia = 0
END IF
SELECT 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