Files
MBS/PROYECTO/ccdir/ccprmt015.4gl
T

325 lines
9.4 KiB
Plaintext

{
------------------------------------------------------------------
PROGRAMA : CCPRMT0155
OBJETIVO : Capturar, Modificar, Eliminar registros de la
Tabla de Tipos de Negocios.
PROGRAMADOR : Ing. Juan Soto
FECHA REALIZACION : Jueves, 21 Febrero, 2013
------------------------------------------------------------------
}
GLOBALS "ccprgb000.4gl"
DEFINE ultimo RECORD LIKE cctb00003.*
DEFINE secu_de,secu_a INTEGER
DEFINE cctb13 RECORD LIKE cctb00013.*,
m_descrip LIKE vetb00012.descrip
MAIN
DEFER INTERRUPT
CALL ARG_VAL(1) RETURNING usuarios
CALL ARG_VAL(2) RETURNING clave
CONNECT to "smarmotech" USER usuarios USING clave
CALL ccprmt015()
END MAIN
FUNCTION ccprmt015()
CLEAR SCREEN
OPTIONS
FORM LINE 9,
ERROR LINE 23,
COMMENT LINE 21
OPEN FORM ccfmmt015 FROM "ccfmmt015"
DISPLAY FORM ccfmmt015
MENU
ON ACTION nuevo
let int_flag = false
CLEAR FORM
let int_flag = false
CALL ccpcad015()
ON ACTION buscar
CALL ccpcmf015()
ON ACTION Salir
EXIT MENU
END MENU
END FUNCTION
FUNCTION ccpcad015()
DEFINE hoy DATE
## Captura los datos que va a contener el registro
# WHENEVER ERROR CONTINUE
LET hoy = today
INPUT BY NAME cctb13.tipo_negocio,cctb13.descripcion,cctb13.cond_pago
BEFORE INPUT
SELECT MAX(a.tipo_negocio) INTO cctb13.tipo_negocio FROM cctb00013 a
IF cctb13.tipo_negocio IS NULL THEN
LET cctb13.tipo_negocio=1
END IF
LET cctb13.tipo_negocio = cctb13.tipo_negocio + 1
DISPLAY BY NAME cctb13.tipo_negocio
AFTER FIELD tipo_negocio
IF cctb13.tipo_negocio IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD tipo_negocio
END IF
SELECT a.*
FROM cctb00013 a
WHERE a.tipo_negocio = cctb13.tipo_negocio
AND a.status_t IS NULL
IF STATUS != NOTFOUND THEN
LET numero_msg = 12
CALL msg(numero_msg)
NEXT FIELD tipo_negocio
END IF
AFTER FIELD cond_pago
IF cctb13.cond_pago IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD cond_pago
END IF
SELECT a.descrip
INTO m_descrip
FROM vetb00012 a
WHERE a.cond_pago = cctb13.cond_pago
AND a.status_t IS NULL
IF STATUS = NOTFOUND THEN
LET numero_msg = 12
CALL msg(numero_msg)
NEXT FIELD cond_pago
END IF
DISPLAY BY NAME m_descrip
AFTER INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
INSERT INTO cctb00013 (tipo_negocio,descripcion,cond_pago,us_crea,
fech_crea)
VALUES (cctb13.tipo_negocio,cctb13.descripcion,
cctb13.cond_pago,
usuarios,GETDATE())
LET numero_msg = 1
CALL msg(numero_msg)
CLEAR FORM
#NEXT FIELD tipo_negocio
END INPUT
END FUNCTION
FUNCTION ccpcmf015()
## Aqui se prepara para la captura del criterio de seleccion
#WHENEVER ERROR CONTINUE
CONSTRUCT BY NAME criterio ON a.tipo_negocio,a.descripcion
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
LET SELEC = " SELECT a.*",
" FROM cctb00013 a where ",
" a.status_t is null and ",
criterio clipped,
" ORDER BY a.tipo_negocio"
PREPARE busca FROM selec
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
DECLARE datos SCROLL CURSOR WITH HOLD FOR busca
OPEN datos
FETCH FIRST datos INTO cctb13.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
RETURN
END IF
INITIALIZE m_descrip TO NULL
SELECT a.descrip
INTO m_descrip
FROM vetb00012 a
WHERE a.cond_pago = cctb13.cond_pago
AND a.status_t IS NULL
DISPLAY BY NAME cctb13.tipo_negocio,cctb13.descripcion,
cctb13.cond_pago,m_descrip
MENU "OPCIONES "
COMMAND "Siguiente"
"Presenta en pantalla el proximo registro encontrado"
FETCH NEXT datos INTO cctb13.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 4
CALL msg(numero_msg)
NEXT OPTION "anterior"
END IF
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
INITIALIZE m_descrip TO NULL
SELECT a.descrip
INTO m_descrip
FROM vetb00012 a
WHERE a.cond_pago = cctb13.cond_pago
AND a.status_t IS NULL
DISPLAY BY NAME cctb13.tipo_negocio,cctb13.descripcion,
cctb13.cond_pago,m_descrip
COMMAND "Anterior"
"Presenta en pantalla el registro anterior encontrado"
FETCH PREVIOUS datos INTO cctb13.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 5
CALL msg(numero_msg)
NEXT OPTION "siguiente"
END IF
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
INITIALIZE m_descrip TO NULL
SELECT a.descrip
INTO m_descrip
FROM vetb00012 a
WHERE a.cond_pago = cctb13.cond_pago
AND a.status_t IS NULL
DISPLAY BY NAME cctb13.tipo_negocio,cctb13.descripcion,
cctb13.cond_pago,m_descrip
COMMAND "Primero"
"Presenta en pantalla el primer registro encontrado"
FETCH FIRST datos INTO cctb13.*
INITIALIZE m_descrip TO NULL
SELECT a.descrip
INTO m_descrip
FROM vetb00012 a
WHERE a.cond_pago = cctb13.cond_pago
AND a.status_t IS NULL
DISPLAY BY NAME cctb13.tipo_negocio,cctb13.descripcion,
cctb13.cond_pago,m_descrip
LET numero_msg = 5
CALL msg(numero_msg)
NEXT OPTION "siguiente"
COMMAND "Ultimo"
"Presenta en pantalla el ultimo registro encontrado"
FETCH LAST datos INTO cctb13.*
INITIALIZE m_descrip TO NULL
SELECT a.descrip
INTO m_descrip
FROM vetb00012 a
WHERE a.cond_pago = cctb13.cond_pago
AND a.status_t IS NULL
DISPLAY BY NAME cctb13.tipo_negocio,cctb13.descripcion,
cctb13.cond_pago,m_descrip
LET numero_msg = 4
CALL msg(numero_msg)
NEXT OPTION "anterior"
COMMAND "Escoger"
"<Esc> Actualiza Registro <Ctrl-C> Cancela Operacion"
INPUT BY NAME cctb13.descripcion,cctb13.cond_pago WITHOUT DEFAULTS
AFTER FIELD cond_pago
IF cctb13.cond_pago IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD cond_pago
END IF
SELECT a.descrip
INTO m_descrip
FROM vetb00012 a
WHERE a.cond_pago = cctb13.cond_pago
AND a.status_t IS NULL
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD cond_pago
END IF
DISPLAY BY NAME m_descrip
END INPUT
UPDATE cctb00013 SET descripcion = cctb13.descripcion,
cond_pago = cctb13.cond_pago,
us_mod = usuarios,
fech_mod = GETDATE()
WHERE cctb00013.tipo_negocio = cctb13.tipo_negocio
LET numero_msg = 13
CALL msg(numero_msg)
COMMAND KEY ("L") "eLiminar"
UPDATE cctb00013 SET status_t = "E",
us_mod = ususarios,
fech_mod = getdate()
WHERE cctb000013.tipo_negocio = cctb13.tipo_negocio
LET numero_msg = 39
CALL msg(numero_msg)
COMMAND "Retornar"
"Retorna al menu anterior"
CLEAR FORM
EXIT MENU
END MENU
END FUNCTION