Files
MBS/PROYECTO/nodir/noprmt015.4gl
T

246 lines
7.1 KiB
Plaintext

{
------------------------------------------------------------------------------
PROGRAMA : NOPRMT015
OBJETIVO : Anular Cheques de Pago
PROGRAMADOR : Ing. Juan F. Soto
FECHA REALIZACION : Enero 15, 1993.
------------------------------------------------------------------------------
}
GLOBALS
"noprgb000.4gl"
DEFINE concilia RECORD
cuenta_no CHAR(8),
descripcion LIKE cgtb00001.descripcion,
cheque_no INTEGER,
fecha DATE,
portador LIKE cgtb00005.portador,
monto LIKE cgtb00005.monto,
status_t CHAR(1)
END RECORD
DEFINE descrip_st CHAR (15)
FUNCTION noprmt015()
OPTIONS
FORM LINE 9,
ERROR LINE 24,
COMMENT LINE 23
CALL pantalla()
LET formulario = formulario CLIPPED,"nofmmt015"
OPEN FORM nofmmt015 FROM "nofmmt015"
DISPLAY FORM nofmmt015
DISPLAY "noprmt015" AT 4,3
DISPLAY "Anular Cheques" AT 6,33
CLEAR FORM
MENU "OPCION"
COMMAND "Anular" "<Esc> Conciliacion <CTRL-C> Cancela Operacion"
LET int_flag = false
CALL cgpcad11()
COMMAND "Salir"
EXIT MENU
END MENU
END FUNCTION
FUNCTION cgpcad11()
# Captura de informacion
INITIALIZE concilia.* TO NULL
INPUT BY NAME concilia.* WITHOUT DEFAULTS ATTRIBUTE (BOLD)
AFTER FIELD cuenta_no
IF concilia.cuenta_no is not null THEN
SELECT descripcion INTO concilia.descripcion FROM cgtb00001
WHERE cuenta_no = concilia.cuenta_no and
status_t is null
# Chequeo si el registro existe, si existe desplega las informaciones
IF status = notfound THEN
LET numero_msg = 12
CALL msg(numero_msg)
DISPLAY BY NAME concilia.*
INITIALIZE concilia.* TO NULL
NEXT FIELD cuenta_no
END IF
DISPLAY BY NAME concilia.descripcion
END IF
AFTER FIELD cheque_no
IF concilia.cheque_no is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD cheque_no
END IF
SELECT fecha,portador,monto,status_t INTO concilia.fecha,concilia.portador,
concilia.monto,concilia.status_t FROM cgtb00005
WHERE cuenta_no = concilia.cuenta_no and
cheque_no = concilia.cheque_no
IF status = notfound THEN
LET numero_msg = 177
CALL msg(numero_msg)
NEXT FIELD cheque_no
END IF
LET descrip_st = null
CASE
WHEN concilia.status_t = "E"
LET descrip_st = "ELIMINADO"
EXIT CASE
WHEN concilia.status_t = "C"
LET descrip_st = "CONCILIADO"
EXIT CASE
WHEN concilia.status_t = "N"
LET descrip_st = "NULO"
EXIT CASE
END CASE
DISPLAY BY NAME concilia.fecha,concilia.portador,
concilia.monto,concilia.status_t,
descrip_st
AFTER INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
UPDATE cgtb00005 set status_t = concilia.status_t
WHERE cheque_no = concilia.cheque_no and
cuenta_no = concilia.cuenta_no
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
#---------------------------------------------------------------------------
# Quita el estatus de procesada a la nomina que pertenece este cheque.
# Esto para que pueda generar nuevos cheques que sustituyan los anulados.
#---------------------------------------------------------------------------
# UPDATE notb00010 set status_t = null
# WHERE fecha_del <= concilia.fecha and
# fecha_al >= concilia.fecha and
# Esta linea no va.---> tipo_emp = "S" and
# status_t = "P"
# CALL integridad()
# IF bandera = 1 THEN
# LET bandera = 0
# RETURN
# END IF
LET numero_msg = 1
CALL msg(numero_msg)
INITIALIZE concilia.* TO NULL
CLEAR FORM
NEXT FIELD cuenta_no
EXIT INPUT
END INPUT
END FUNCTION
{
FUNCTION cgpcmod10()
# Captura del criterio de seleccion
CONSTRUCT BY NAME criterio ON cgtb00011.*
LET selec2 = "SELECT * FROM cgtb00011 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 entradas.*
IF status = notfound THEN
LET numero_msg = 3
CALL msg(numero_msg)
RETURN
END IF
DISPLAY BY NAME entradas.*
MENU "OPCION"
COMMAND "Siguiente"
"Presenta en pantalla el proximo registro encontrado"
FETCH NEXT busca INTO entradas.*
IF status = notfound THEN
LET numero_msg = 4
CALL msg(numero_msg)
END IF
DISPLAY BY NAME entradas.*
COMMAND "Anterior"
"Presenta en pantalla el registro anterior encontrado"
FETCH PREVIOUS busca INTO entradas.*
IF status = notfound THEN
LET numero_msg = 5
CALL msg(numero_msg)
END IF
DISPLAY BY NAME entradas.*
COMMAND "Primero"
"Presenta en pantalla el primer registro encontrado"
FETCH FIRST busca INTO entradas.*
LET numero_msg = 5
CALL msg(numero_msg)
DISPLAY BY NAME entradas.*
COMMAND "Ultimo"
"Presenta en pantalla el ultimo registro encontrado"
FETCH FIRST busca INTO entradas.*
LET numero_msg = 4
CALL msg(numero_msg)
DISPLAY BY NAME entradas.*
COMMAND "Escoger"
"<Esc> Actualiza Registro <CTRL-C> Cancela Operacion"
IF entradas.status_t = "E" THEN
LET numero_msg = 39
CALL msg(numero_msg)
RETURN
END IF
INPUT BY NAME entradas.* WITHOUT DEFAULTS ATTRIBUTE (BOLD)
BEFORE FIELD entrada_no
NEXT FIELD descripcion
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 cgtb00011 set descripcion = entradas.descripcion,
prog_4gl = entradas.prog_4gl
WHERE entrada_no = entradas.entrada_no
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
LET numero_msg = 13
CALL msg(numero_msg)
COMMAND KEY("L") "eLiminar"
UPDATE cgtb00011 set status_t = "E"
WHERE entrada_no = entradas.entrada_no
LET numero_msg = 39
CALL msg(numero_msg)
COMMAND "Retornar"
EXIT MENU
END MENU
END FUNCTION}