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

251 lines
7.0 KiB
Plaintext

{
------------------------------------------------------------------------------
PROGRAMA : CGPRMT008
OBJETIVO : Mantenimiento de Cuentas para el calculo de BENEFICIOS NETO
DEL REPORTE CGPRRP008(MAYOR ANALITICO)
PROGRAMADOR : Ing. Juan F. Soto
FECHA REALIZACION : Noviembre 9, 1995.
------------------------------------------------------------------------------
}
GLOBALS
"cgprgb000.4gl"
DEFINE b_cuentas RECORD LIKE cgtb00014.*
FUNCTION cgprmt008()
OPTIONS
FORM LINE 9,
ERROR LINE 24,
COMMENT LINE 23
CALL pantalla()
OPEN FORM cgfmmt008 FROM "cgfmmt008"
DISPLAY FORM cgfmmt008
CLEAR FORM
DISPLAY "cgprmt008" AT 4,3
DISPLAY "Maestra Cuentas Beneficios Neto" AT 6,23
MENU "OPCION"
COMMAND "Adicionar" "<Esc> Adiciona Registro <Ctrl-C> Cancela Operacion"
LET int_flag = false
CALL cgpcad08()
COMMAND "Consultar-modificar"
"<Esc> Busca Registro <Ctrl-C> Cancela Operacion"
CALL cgpcmod08()
COMMAND "Salir"
EXIT MENU
END MENU
END FUNCTION
FUNCTION cgpcad08()
# Captura de informacion
INITIALIZE b_cuentas.* TO NULL
INPUT BY NAME b_cuentas.* WITHOUT DEFAULTS ATTRIBUTE (BOLD)
AFTER FIELD cuenta_no
IF b_cuentas.cuenta_no is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
END IF
SELECT descripcion INTO nombre
FROM cgtb00001
WHERE cuenta_no = b_cuentas.cuenta_no
# Chequeo del registro si esta en la tabla de cuentas contables
IF status = notfound THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD cuenta_no
END IF
# Busca la cuenta en la tabla cgtb00014 para saber si existe
SELECT * INTO b_cuentas.*
FROM cgtb00014
WHERE cuenta_no = b_cuentas.cuenta_no
IF status != notfound THEN
SELECT descripcion INTO nombre
FROM cgtb00001
WHERE cuenta_no = b_cuentas.cuenta_no
DISPLAY BY NAME b_cuentas.*,nombre
LET numero_msg = 12
CALL msg(numero_msg)
NEXT FIELD cuenta_no
END IF
DISPLAY BY NAME nombre
AFTER INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
INSERT INTO cgtb00014 values
(b_cuentas.*)
UPDATE cgtb00014 set us_crea = user,
fech_crea = current
WHERE cuenta_no = b_cuentas.cuenta_no
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
LET numero_msg = 1
CALL msg(numero_msg)
INITIALIZE b_cuentas.* TO NULL
CLEAR FORM
NEXT FIELD cuenta_no
EXIT INPUT
END INPUT
END FUNCTION
FUNCTION cgpcmod08()
DEFINE id INTEGER
# Captura del criterio de seleccion
CLEAR FORM
CONSTRUCT BY NAME criterio ON cgtb00014.*
LET selec2 =
"SELECT *,rowid FROM cgtb00014 WHERE ",
criterio clipped," and status_t is null ",
" ORDER BY 1"
PREPARE comando FROM selec2
DECLARE busca SCROLL CURSOR FOR comando
OPEN busca
FETCH FIRST busca INTO b_cuentas.*,id
IF status = notfound THEN
LET numero_msg = 3
CALL msg(numero_msg)
RETURN
END IF
SELECT descripcion INTO nombre
FROM cgtb00001
WHERE cuenta_no = b_cuentas.cuenta_no
DISPLAY BY NAME b_cuentas.*,nombre
MENU "OPCION"
COMMAND "Siguiente"
"Presenta en pantalla el proximo registro encontrado"
FETCH NEXT busca INTO b_cuentas.*,id
IF status = notfound THEN
LET numero_msg = 4
CALL msg(numero_msg)
END IF
SELECT descripcion INTO nombre
FROM cgtb00001
WHERE cuenta_no = b_cuentas.cuenta_no
DISPLAY BY NAME b_cuentas.*,nombre
COMMAND "Anterior"
"Presenta en pantalla el registro anterior encontrado"
FETCH PREVIOUS busca INTO b_cuentas.*,id
IF status = notfound THEN
LET numero_msg = 5
CALL msg(numero_msg)
END IF
SELECT descripcion INTO nombre
FROM cgtb00001
WHERE cuenta_no = b_cuentas.cuenta_no
DISPLAY BY NAME b_cuentas.*,nombre
COMMAND "Primero"
"Presenta en pantalla el primer registro encontrado"
FETCH FIRST busca INTO b_cuentas.*,id
LET numero_msg = 5
CALL msg(numero_msg)
SELECT descripcion INTO nombre
FROM cgtb00001
WHERE cuenta_no = b_cuentas.cuenta_no
DISPLAY BY NAME b_cuentas.*,nombre
COMMAND "Ultimo"
"Presenta en pantalla el ultimo registro encontrado"
FETCH FIRST busca INTO b_cuentas.*,id
LET numero_msg = 4
CALL msg(numero_msg)
SELECT descripcion INTO nombre
FROM cgtb00001
WHERE cuenta_no = b_cuentas.cuenta_no
DISPLAY BY NAME b_cuentas.*,nombre
{
COMMAND "Escoger"
"<Esc> Actualiza Registro <Ctrl-C> Cancela Operacion"
IF b_cuentas.status_t = "E" THEN
LET numero_msg = 39
CALL msg(numero_msg)
RETURN
END IF
INPUT BY NAME b_cuentas.* WITHOUT DEFAULTS ATTRIBUTE (BOLD)
AFTER FIELD cuenta_no
IF b_cuentas.cuenta_no is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
END IF
SELECT descripcion INTO nombre
FROM cgtb00001
WHERE cuenta_no = b_cuentas.cuenta_no
# Chequeo del registro si esta en la tabla de cuentas contables
IF status = notfound THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD cuenta_no
END IF
DISPLAY BY NAME nombre
AFTER INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
EXIT INPUT
END INPUT
UPDATE cgtb00014 set cgtb00014.* = b_cuentas.*
WHERE rowid = id
UPDATE cgtb00014 set us_mod = user,
fech_mod = current
WHERE rowid = id
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
LET numero_msg = 13
CALL msg(numero_msg)
}
COMMAND KEY("L") "eLiminar"
DELETE FROM cgtb00014 where rowid = id
LET numero_msg = 39
CALL msg(numero_msg)
COMMAND "Retornar"
EXIT MENU
END MENU
END FUNCTION