Files
MBS/PROYECTO/tedirbk/teprmt010.4gl
T

349 lines
12 KiB
Plaintext

{
------------------------------------------------------------------
PROGRAMA : TEPRMT010
OBJETIVO : Capturar, Modificar, Eliminar registros de la
Tabla de Comisiones Por Cobros
PROGRAMADOR : JUAN F. SOTO
FECHA REALIZACION : AGOSTO 6, 1998.
------------------------------------------------------------------
}
GLOBALS "teprgb000.4gl"
DEFINE comisiones10 RECORD LIKE cctb00008.*
FUNCTION teprmt010()
CLEAR SCREEN
OPTIONS
FORM LINE 9,
ERROR LINE 23,
MESSAGE LINE 24,
COMMENT LINE 21
OPEN FORM tefmmt010 FROM "tefmmt010"
DISPLAY FORM tefmmt010
CALL pantalla()
DISPLAY "teprmt010" AT 4,3 ATTRIBUTE(RED)
DISPLAY "Mantenimiento de Comisiones por Vendedor" at 6,20 ATTRIBUTE(BLACK)
MENU "OPCIONES"
COMMAND "Adicionar"
"<Esc> Adiciona Registro <Supr> Cancela Operacion"
HELP 5
LET INT_FLAG = FALSE
CLEAR FORM
LET INT_FLAG = FALSE
CALL tepcad010()
COMMAND "Consultar-modificar"
"<Esc> Realiza Busqueda <Supr> Cancela Operacion"
HELP 6
CALL tepcmf010()
COMMAND "Salir" "Retorna Menu Anterior"
EXIT MENU
END MENU
END FUNCTION
FUNCTION tepcad010()
DEFINE fech_ant CHAR(8)
MESSAGE ""
## Captura los datos que va a contener el registro
INPUT BY NAME comisiones10.*
AFTER FIELD sec_vend
IF comisiones10.sec_vend = 0 or
comisiones10.sec_vend is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD sec_vend
ELSE
SELECT i.nom1_emp, i.apell1_emp INTO descrip1, descrip2
FROM adtb00003 i
WHERE i.num_emp = comisiones10.sec_vend AND i.status_t is null
IF status >= 0 THEN
IF status = NOTFOUND THEN
LET numero_msg = 68
CALL msg(numero_msg)
NEXT FIELD sec_vend
END IF
LET descrip6 = descrip1 clipped," ",descrip2 clipped
DISPLAY descrip6 TO descrip6
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
END IF
END IF
## Verifica que el codigo no exista en el catalogo de comisiones. Si existe,
## entonces despliega los datos del registro existente.
AFTER FIELD cod_sec
SELECT i.descrip_esp INTO descrip1
FROM intb00001 i
WHERE i.cod_n = comisiones10.cod_n AND
i.cod_grupo = comisiones10.cod_grupo AND
i.cod_tipo = comisiones10.cod_tipo AND
i.cod_sec = comisiones10.cod_sec and
i.status_t is null
IF status >= 0 THEN
IF status = NOTFOUND THEN
LET numero_msg = 26
CALL msg(numero_msg)
NEXT FIELD cod_n
END IF
DISPLAY descrip1 TO descrip_esp
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
END IF
SELECT UNIQUE * INTO comisiones10.* FROM cctb00008
WHERE
sec_vend = comisiones10.sec_vend AND
cod_n = comisiones10.cod_n AND
cod_grupo = comisiones10.cod_grupo AND
cod_tipo = comisiones10.cod_tipo AND
cod_sec = comisiones10.cod_sec
IF status >= 0 THEN
IF status != NOTFOUND THEN
IF comisiones10.status_t = "E" THEN
LET numero_msg = 36
CALL msg(numero_msg)
NEXT FIELD sec_vend
END IF
DISPLAY BY NAME
comisiones10.us_crea,
comisiones10.fech_crea,
comisiones10.us_mod,
comisiones10.fech_mod
LET numero_msg = 12
CALL msg(numero_msg)
NEXT FIELD sec_vend
ELSE
INITIALIZE
comisiones10.us_crea,
comisiones10.fech_crea,
comisiones10.us_mod,
comisiones10.fech_mod TO NULL
DISPLAY BY NAME
comisiones10.us_crea,
comisiones10.fech_crea,
comisiones10.us_mod,
comisiones10.fech_mod
END IF
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
END IF
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
INSERT INTO cctb00008 VALUES (comisiones10.*)
UPDATE cctb00008 set us_crea = user,
fech_crea = current
WHERE sec_vend = comisiones10.sec_vend AND
cod_n = comisiones10.cod_n AND
cod_grupo = comisiones10.cod_grupo AND
cod_tipo = comisiones10.cod_tipo AND
cod_sec = comisiones10.cod_sec
LET numero_msg = 1
CALL msg(numero_msg)
END FUNCTION
FUNCTION tepcmf010()
## Aqui se prepara para la captura del criterio de seleccion
MESSAGE ""
CLEAR FORM
CONSTRUCT BY NAME criterio ON cctb00008.*
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
LET SELEC = " SELECT UNIQUE * FROM cctb00008 ",
" WHERE status_t is null AND ",criterio clipped,
" ORDER BY 1,2,3,4,5,6"
PREPARE busca FROM selec
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
DECLARE datos SCROLL CURSOR FOR busca
OPEN datos
FETCH FIRST datos INTO comisiones10.*
IF status >= 0 THEN
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
RETURN
END IF
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
END IF
DISPLAY BY NAME comisiones10.*
LET comisiones.sec_vend = comisiones10.sec_vend
CALL busca_vendedor()
LET comisiones.cod_n = comisiones10.cod_n
LET comisiones.cod_grupo = comisiones10.cod_grupo
LET comisiones.cod_tipo = comisiones10.cod_tipo
LET comisiones.cod_sec = comisiones10.cod_sec
CALL busca_nombre_articulo1()
MENU "OPCIONES "
COMMAND "Siguiente"
"Presenta en pantalla el proximo registro encontrado"
FETCH NEXT datos INTO comisiones10.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 4
CALL msg(numero_msg)
END IF
DISPLAY BY NAME comisiones10.*
LET comisiones.sec_vend = comisiones10.sec_vend
CALL busca_vendedor()
LET comisiones.cod_n = comisiones10.cod_n
LET comisiones.cod_grupo = comisiones10.cod_grupo
LET comisiones.cod_tipo = comisiones10.cod_tipo
LET comisiones.cod_sec = comisiones10.cod_sec
CALL busca_nombre_articulo1()
COMMAND "Anterior"
"Presenta en pantalla el registro anterior encontrado"
FETCH PREVIOUS datos INTO comisiones10.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 5
CALL msg(numero_msg)
END IF
DISPLAY BY NAME comisiones10.*
LET comisiones.sec_vend = comisiones10.sec_vend
CALL busca_vendedor()
LET comisiones.cod_n = comisiones10.cod_n
LET comisiones.cod_grupo = comisiones10.cod_grupo
LET comisiones.cod_tipo = comisiones10.cod_tipo
LET comisiones.cod_sec = comisiones10.cod_sec
CALL busca_nombre_articulo1()
COMMAND "Primero"
"Presenta en pantalla el primer registro encontrado"
FETCH FIRST datos INTO comisiones10.*
DISPLAY BY NAME comisiones10.*
LET comisiones.sec_vend = comisiones10.sec_vend
CALL busca_vendedor()
LET comisiones.cod_n = comisiones10.cod_n
LET comisiones.cod_grupo = comisiones10.cod_grupo
LET comisiones.cod_tipo = comisiones10.cod_tipo
LET comisiones.cod_sec = comisiones10.cod_sec
CALL busca_nombre_articulo1()
LET numero_msg = 5
CALL msg(numero_msg)
COMMAND "Ultimo"
"Presenta en pantalla el ultimo registro encontrado"
FETCH LAST datos INTO comisiones10.*
DISPLAY BY NAME comisiones10.*
LET comisiones.sec_vend = comisiones10.sec_vend
CALL busca_vendedor()
LET comisiones.cod_n = comisiones10.cod_n
LET comisiones.cod_grupo = comisiones10.cod_grupo
LET comisiones.cod_tipo = comisiones10.cod_tipo
LET comisiones.cod_sec = comisiones10.cod_sec
CALL busca_nombre_articulo1()
LET numero_msg = 4
CALL msg(numero_msg)
COMMAND "Escoger"
"<Esc> Actualiza Registro <Supr> Cancela Operacion"
INPUT BY NAME comisiones10.porc_ventas,comisiones10.porc_cobros
WITHOUT DEFAULTS
AFTER INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
UPDATE cctb00008 SET porc_ventas = comisiones10.porc_ventas,
porc_cobros = comisiones10.porc_cobros,
us_mod = USER,
fech_mod = CURRENT
WHERE
sec_vend = comisiones10.sec_vend AND
cod_n = comisiones10.cod_n AND
cod_grupo = comisiones10.cod_grupo AND
cod_tipo = comisiones10.cod_tipo AND
cod_sec = comisiones10.cod_sec
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
LET numero_msg = 13
CALL msg(numero_msg)
EXIT INPUT
END INPUT
COMMAND KEY ("L") "eLiminar"
"Elimina registro que esta en la pantalla"
UPDATE cctb00008 SET status_t = "E",
us_mod = user,
fech_mod = current
WHERE
sec_vend = comisiones10.sec_vend AND
cod_n = comisiones10.cod_n AND
cod_grupo = comisiones10.cod_grupo AND
cod_tipo = comisiones10.cod_tipo AND
cod_sec = comisiones10.cod_sec
LET numero_msg = 39
CALL msg(numero_msg)
COMMAND "Retornar"
"Retorna al menu anterior"
CLEAR FORM
EXIT MENU
END MENU
END FUNCTION