Files
MBS/PROYECTO/vedir/veprmt044.4gl
T

223 lines
6.3 KiB
Plaintext

{
------------------------------------------------------------------------------
PROGRAMA : VEPRMT044
OBJETIVO : Mantenimiento Presupuesto Por Zona
PROGRAMADOR : Ing. Juan F. Soto
FECHA REALIZACION : Septiembre 11, 1997.
------------------------------------------------------------------------------
}
GLOBALS
"veprgb000.4gl"
DEFINE nombre_mes CHAR(20),
pcod_n LIKE vetb00044.cod_n,
pmes LIKE vetb00044.mes,
pano LIKE vetb00044.ano
FUNCTION veprmt044()
OPTIONS
FORM LINE 9,
ERROR LINE 24,
COMMENT LINE 23
CALL pantalla()
OPEN FORM vefmmt044 FROM "vefmmt044"
DISPLAY FORM vefmmt044
CLEAR FORM
DISPLAY "veprmt044" AT 4,3
DISPLAY "Presupuesto De Ventas Por Zona" AT 6,25
MENU "OPCION"
COMMAND "Adicionar" "<Esc> Adiciona Registro <Ctrl-C> Cancela Operacion"
LET int_flag = false
CALL vepcad44()
COMMAND "Consultar-modificar"
"<Esc> Busca Registro <Ctrl-C> Cancela Operacion"
CALL vepcmod44()
COMMAND "Salir"
EXIT MENU
END MENU
END FUNCTION
FUNCTION vepcad44()
# Captura de informacion
INITIALIZE p_vetb44.* TO NULL
LET nombre_m = NULL
DISPLAY BY NAME nombre_m
INPUT BY NAME p_vetb44.* WITHOUT DEFAULTS ATTRIBUTE (BOLD)
AFTER FIELD cod_n
SELECT a.producto INTO nombre_m FROM iptb00020 a
WHERE a.cod_n = p_vetb44.cod_n and a.status_t is null
IF status = notfound THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD cod_n
END IF
DISPLAY BY NAME nombre_m ATTRIBUTE(CYAN)
AFTER FIELD mes
SELECT a.descrip INTO nombre_mes FROM mestable a
WHERE a.mes = p_vetb44.mes
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD mes
END IF
SELECT UNIQUE * FROM vetb00044 a
WHERE a.ano = p_vetb44.ano AND a.mes = p_vetb44.mes
IF STATUS != NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD mes
END IF
DISPLAY BY NAME nombre_mes ATTRIBUTE(CYAN)
AFTER INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
INSERT INTO vetb00044 values (p_vetb44.*)
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
UPDATE vetb00044 set us_crea = user,
fech_crea = current
WHERE @cod_n = p_vetb44.cod_n AND
@mes = p_vetb44.mes AND
@ano = p_vetb44.ano
LET numero_msg = 1
CALL msg(numero_msg)
NEXT FIELD ano
EXIT INPUT
END INPUT
END FUNCTION
FUNCTION vepcmod44()
# Captura del criterio de seleccion
CONSTRUCT BY NAME criterio ON vetb00044.*
LET selec2 =
"SELECT * FROM vetb00044 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 p_vetb44.*
IF status = notfound THEN
LET numero_msg = 3
CALL msg(numero_msg)
RETURN
END IF
DISPLAY BY NAME p_vetb44.* ATTRIBUTE(CYAN)
CALL busca_c()
MENU "OPCION"
COMMAND "Siguiente"
"Presenta en pantalla el proximo registro encontrado"
FETCH NEXT busca INTO p_vetb44.*
IF status = notfound THEN
LET numero_msg = 4
CALL msg(numero_msg)
END IF
DISPLAY BY NAME p_vetb44.* ATTRIBUTE(CYAN)
CALL busca_c()
COMMAND "Anterior"
"Presenta en pantalla el registro anterior encontrado"
FETCH PREVIOUS busca INTO p_vetb44.*
IF status = notfound THEN
LET numero_msg = 5
CALL msg(numero_msg)
END IF
DISPLAY BY NAME p_vetb44.* ATTRIBUTE(CYAN)
CALL busca_c()
COMMAND "Primero"
"Presenta en pantalla el primer registro encontrado"
FETCH FIRST busca INTO p_vetb44.*
LET numero_msg = 5
CALL msg(numero_msg)
DISPLAY BY NAME p_vetb44.* ATTRIBUTE(CYAN)
CALL busca_c()
COMMAND "Ultimo"
"Presenta en pantalla el ultimo registro encontrado"
FETCH FIRST busca INTO p_vetb44.*
LET numero_msg = 4
CALL msg(numero_msg)
DISPLAY BY NAME p_vetb44.* ATTRIBUTE(CYAN)
CALL busca_c()
COMMAND "Escoger"
"<Esc> Actualiza Registro <Ctrl-C> Cancela Operacion"
IF p_vetb44.status_t = "E" THEN
LET numero_msg = 39
CALL msg(numero_msg)
RETURN
END IF
INPUT BY NAME p_vetb44.cantidad WITHOUT DEFAULTS ATTRIBUTE (BOLD)
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
LET pcod_n = p_vetb44.cod_n
LET pmes = p_vetb44.mes
LET pano = p_vetb44.ano
UPDATE vetb00044 set cantidad = p_vetb44.cantidad,
us_mod = user,
fech_mod = current
WHERE @cod_n = pcod_n AND
@mes = pmes AND
@ano = pano
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
LET numero_msg = 13
CALL msg(numero_msg)
COMMAND KEY("L") "eLiminar"
LET pcod_n = p_vetb44.cod_n
LET pmes = p_vetb44.mes
LET pano = p_vetb44.ano
DELETE FROM vetb00044
WHERE @cod_n = pcod_n AND
@mes = pmes AND
@ano = pano
LET numero_msg = 39
CALL msg(numero_msg)
COMMAND "Retornar"
EXIT MENU
END MENU
END FUNCTION
FUNCTION busca_c()
SELECT a.producto INTO nombre_m FROM iptb00020 a
WHERE a.cod_n = p_vetb44.cod_n and a.status_t is null
DISPLAY BY NAME nombre_m ATTRIBUTE(CYAN)
END FUNCTION