843 lines
30 KiB
Plaintext
843 lines
30 KiB
Plaintext
{
|
|
-----------------------------------------------------------------------
|
|
PROGRAMA : ADPRMT019
|
|
OBJETIVO : Capturar, Modificar, Eliminar registros de la
|
|
Tabla de Adiestramientos al Personal
|
|
PROGRAMADOR : Ing. Betania Guerrero Perez
|
|
FECHA REALIZACION : Junio 10, 1993
|
|
-----------------------------------------------------------------------
|
|
}
|
|
GLOBALS "adprgb000.4gl"
|
|
MAIN
|
|
DEFER INTERRUPT
|
|
CALL ARG_VAL(1) RETURNING usuarios
|
|
CALL ARG_VAL(2) RETURNING clave
|
|
CALL ARG_VAL(3) RETURNING impresor
|
|
let usuarios = "kpolanco"
|
|
let clave = "RevolutionX3"
|
|
CONNECT to "smarmotech" USER usuarios USING clave
|
|
SELECT a.* INTO p_companias.* FROM companias a
|
|
CALL adprmt019()
|
|
END MAIN
|
|
|
|
FUNCTION adprmt019()
|
|
CLEAR SCREEN
|
|
OPTIONS
|
|
FORM LINE 9,
|
|
ERROR LINE 24,
|
|
COMMENT LINE 23
|
|
|
|
OPEN FORM adfmmt019 FROM "adfmmt019"
|
|
DISPLAY FORM adfmmt019
|
|
|
|
DISPLAY "adprmt019" AT 4,3 ATTRIBUTE(RED)
|
|
DISPLAY "Adiestramientos y Capacitacion" AT 6,27 ATTRIBUTE(BLACK)
|
|
|
|
MENU
|
|
ON ACTION nuevo
|
|
|
|
let int_flag = false
|
|
INITIALIZE emplea.* TO NULL
|
|
CALL adpcmf019()
|
|
ON ACTION buscar
|
|
let int_flag = false
|
|
CALL adpcad019()
|
|
ON ACTION Salir
|
|
EXIT MENU
|
|
END MENU
|
|
END FUNCTION
|
|
|
|
FUNCTION adpcad019()
|
|
WHENEVER ERROR CONTINUE
|
|
## CAPTURA LOS DATOS QUE VA A CONTENER EL REGISTRO
|
|
|
|
INPUT BY NAME adiestra.*
|
|
|
|
## VENTANA QUE BUSCA LOS EMPLEDOS Y LAS PROFESIONES
|
|
ON KEY (CONTROL-W)
|
|
CASE
|
|
WHEN INFIELD (num_emp)
|
|
CALL busca_empleado()
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
NEXT FIELD num_emp
|
|
END IF
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD num_emp
|
|
END IF
|
|
|
|
LET descrip1 = nombre
|
|
LET adiestra.num_emp = despl_emp[curr1].num_emp
|
|
LET adiestra.departamento = despl_emp[curr1].departamento
|
|
LET adiestra.nivel_emp = despl_emp[curr1].nivel_emp
|
|
LET adiestra.cod_puesto = despl_emp[curr1].cod_puesto
|
|
|
|
DISPLAY BY NAME adiestra.num_emp,adiestra.departamento,
|
|
adiestra.nivel_emp,adiestra.cod_puesto,
|
|
descrip1
|
|
NEXT FIELD cod_prof
|
|
|
|
WHEN INFIELD (cod_prof)
|
|
CALL carrera()
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
NEXT FIELD cod_prof
|
|
END IF
|
|
LET adiestra.cod_prof = basico.cod_prof
|
|
SELECT nom_prof INTO profesion.nom_prof FROM adtb00010
|
|
WHERE cod_prof = basico.cod_prof
|
|
|
|
DISPLAY BY NAME adiestra.cod_prof,profesion.nom_prof
|
|
NEXT FIELD evento
|
|
|
|
WHEN INFIELD (num1_emp)
|
|
CALL busca_empleado()
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
NEXT FIELD num1_emp
|
|
END IF
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD num1_emp
|
|
END IF
|
|
|
|
LET descrip2 = nombre
|
|
LET adiestra.num1_emp = despl_emp[curr1].num_emp
|
|
LET adiestra.departamento1 = despl_emp[curr1].departamento
|
|
LET adiestra.nivel1_emp = despl_emp[curr1].nivel_emp
|
|
LET adiestra.cod1_puesto = despl_emp[curr1].cod_puesto
|
|
|
|
DISPLAY BY NAME adiestra.num1_emp,adiestra.departamento1,
|
|
adiestra.nivel1_emp,adiestra.cod1_puesto,
|
|
descrip2
|
|
NEXT FIELD num2_emp
|
|
|
|
WHEN INFIELD (num2_emp)
|
|
CALL busca_empleado()
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
NEXT FIELD num2_emp
|
|
END IF
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD num2_emp
|
|
END IF
|
|
|
|
LET descrip3 = nombre
|
|
LET adiestra.num2_emp = despl_emp[curr1].num_emp
|
|
LET adiestra.departamento2 = despl_emp[curr1].departamento
|
|
LET adiestra.nivel2_emp = despl_emp[curr1].nivel_emp
|
|
LET adiestra.cod2_puesto = despl_emp[curr1].cod_puesto
|
|
|
|
DISPLAY BY NAME adiestra.num2_emp,adiestra.departamento2,
|
|
adiestra.nivel2_emp,adiestra.cod2_puesto,
|
|
descrip3
|
|
|
|
NEXT FIELD num3_emp
|
|
|
|
WHEN INFIELD (num3_emp)
|
|
CALL busca_empleado()
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
NEXT FIELD num3_emp
|
|
END IF
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD num3_emp
|
|
END IF
|
|
|
|
LET descrip4 = nombre
|
|
LET adiestra.num3_emp = despl_emp[curr1].num_emp
|
|
LET adiestra.departamento3 = despl_emp[curr1].departamento
|
|
LET adiestra.nivel3_emp = despl_emp[curr1].nivel_emp
|
|
LET adiestra.cod3_puesto = despl_emp[curr1].cod_puesto
|
|
|
|
DISPLAY BY NAME adiestra.num3_emp,adiestra.departamento3,
|
|
adiestra.nivel3_emp,adiestra.cod3_puesto,
|
|
descrip4
|
|
END CASE
|
|
|
|
BEFORE FIELD fecha
|
|
LET adiestra.fecha = today using "dd/mm/yyyy"
|
|
DISPLAY BY NAME adiestra.fecha
|
|
|
|
## VERIFICA QUE EL EMPLEADO EXISTA EN EL CATALOGO DE EMPLEADOS
|
|
AFTER FIELD num_emp
|
|
IF adiestra.num_emp IS NOT NULL THEN
|
|
SELECT departamento,nivel_emp,cod_puesto,nom1_emp,nom2_emp,
|
|
apell1_emp,apell2_emp
|
|
INTO adiestra.departamento,adiestra.nivel_emp,
|
|
adiestra.cod_puesto,nombre1,nombre2,apellido1,apellido2
|
|
FROM adtb00003
|
|
WHERE num_emp = adiestra.num_emp and status_t is null
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD num_emp
|
|
END IF
|
|
ELSE
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD num_emp
|
|
END IF
|
|
|
|
LET descrip1 = nombre1 clipped," ",nombre2 clipped," ",
|
|
apellido1 clipped," ",apellido2 clipped
|
|
|
|
DISPLAY BY NAME adiestra.departamento,adiestra.nivel_emp,
|
|
adiestra.cod_puesto,descrip1
|
|
NEXT FIELD cod_prof
|
|
|
|
## VERIFICA QUE LA PROFESION EXISTA EN EL CATALOGO DE PROFESIONES
|
|
AFTER FIELD cod_prof
|
|
IF adiestra.cod_prof IS NOT NULL THEN
|
|
SELECT nom_prof INTO profesion.nom_prof FROM adtb00010
|
|
WHERE cod_prof = adiestra.cod_prof and status_t is null
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD cod_prof
|
|
END IF
|
|
DISPLAY BY NAME profesion.nom_prof
|
|
END IF
|
|
|
|
AFTER FIELD evento
|
|
IF adiestra.evento IS NOT NULL THEN
|
|
IF adiestra.evento = 1 THEN
|
|
LET descrip = "SEMINARIO"
|
|
END IF
|
|
IF adiestra.evento = 2 THEN
|
|
LET descrip = "CURSO"
|
|
END IF
|
|
IF adiestra.evento = 3 THEN
|
|
LET descrip = "TALLER"
|
|
END IF
|
|
IF adiestra.evento = 4 THEN
|
|
LET descrip = "CONFERENCIA"
|
|
END IF
|
|
ELSE
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD evento
|
|
END IF
|
|
DISPLAY BY NAME descrip
|
|
|
|
## VERIFICA QUE EL REGISTRO NO ESTE DUPLICADO
|
|
AFTER FIELD nom_evento
|
|
IF adiestra.nom_evento IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD nom_evento
|
|
ELSE
|
|
SELECT UNIQUE num_emp FROM adtb00022
|
|
WHERE @num_emp = adiestra.num_emp and
|
|
@departamento = adiestra.departamento and
|
|
nivel_emp = adiestra.nivel_emp and
|
|
cod_puesto = adiestra.cod_puesto and
|
|
nom_evento matches adiestra.nom_evento
|
|
|
|
IF STATUS >= 0 THEN
|
|
IF STATUS != NOTFOUND THEN
|
|
IF adiestra.status_t = "E" THEN
|
|
LET numero_msg = 36
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD fecha
|
|
END IF
|
|
|
|
DISPLAY BY NAME adiestra.*
|
|
LET numero_msg = 12
|
|
CALL msg(numero_msg)
|
|
INITIALIZE adiestra.* TO NULL
|
|
CLEAR FORM
|
|
NEXT FIELD fecha
|
|
END IF
|
|
ELSE
|
|
|
|
IF bandera = 1 THEN
|
|
CLEAR SCREEN
|
|
RETURN
|
|
END IF
|
|
END IF
|
|
END IF
|
|
|
|
AFTER FIELD fech_evento
|
|
IF adiestra.fech_evento IS NOT NULL THEN
|
|
IF adiestra.fecha > adiestra.fech_evento THEN
|
|
LET numero_msg = 51
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD fech_evento
|
|
END IF
|
|
END IF
|
|
|
|
AFTER FIELD costo_evento
|
|
IF adiestra.costo_evento IS NULL THEN
|
|
LET adiestra.costo_evento = 0
|
|
END IF
|
|
|
|
## CHEQUEA QUE EL EMPLEADO EXISTA EN LA TABLA DE EMPLEADOS Y ADEMAS QUE
|
|
## EL EMPLEADO QUE FIRMA ES EL MISMO QUE SOLICITA EL ADIESTRAMIENTO
|
|
BEFORE FIELD num1_emp
|
|
LET adiestra.num1_emp = adiestra.num_emp
|
|
LET adiestra.departamento1 = adiestra.departamento
|
|
LET adiestra.nivel1_emp = adiestra.nivel_emp
|
|
LET adiestra.cod1_puesto = adiestra.cod_puesto
|
|
DISPLAY BY NAME adiestra.num1_emp,adiestra.departamento1,
|
|
adiestra.nivel1_emp,adiestra.cod1_puesto
|
|
AFTER FIELD num1_emp
|
|
IF adiestra.num1_emp IS NOT NULL THEN
|
|
SELECT departamento,nivel_emp,cod_puesto,nom1_emp,nom2_emp,
|
|
apell1_emp,apell2_emp
|
|
INTO adiestra.departamento1,adiestra.nivel1_emp,
|
|
adiestra.cod1_puesto,nombre3,nombre4,apellido3,apellido4
|
|
FROM adtb00003
|
|
WHERE num_emp = adiestra.num1_emp and status_t is null
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD num1_emp
|
|
END IF
|
|
ELSE
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD num1_emp
|
|
END IF
|
|
|
|
LET descrip2 = nombre3 clipped," ",nombre4 clipped," ",
|
|
apellido3 clipped," ",apellido4 clipped
|
|
DISPLAY BY NAME adiestra.departamento1,adiestra.nivel1_emp,
|
|
adiestra.cod1_puesto,descrip2
|
|
NEXT FIELD num2_emp
|
|
|
|
AFTER FIELD num2_emp
|
|
IF adiestra.num2_emp IS NOT NULL THEN
|
|
SELECT departamento,nivel_emp,cod_puesto,nom1_emp,nom2_emp,
|
|
apell1_emp,apell2_emp
|
|
INTO adiestra.departamento2,adiestra.nivel2_emp,
|
|
adiestra.cod2_puesto,nombre3,nombre4,apellido3,apellido4
|
|
FROM adtb00003
|
|
WHERE num_emp = adiestra.num2_emp and status_t is null
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD num2_emp
|
|
END IF
|
|
ELSE
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD num2_emp
|
|
END IF
|
|
|
|
LET descrip3 = nombre3 clipped," ",nombre4 clipped," ",
|
|
apellido3 clipped," ",apellido4 clipped
|
|
DISPLAY BY NAME adiestra.departamento2,adiestra.nivel2_emp,
|
|
adiestra.cod2_puesto,descrip3
|
|
NEXT FIELD num3_emp
|
|
|
|
AFTER FIELD num3_emp
|
|
IF adiestra.num3_emp IS NOT NULL THEN
|
|
SELECT departamento,nivel_emp,cod_puesto,nom1_emp,nom2_emp,
|
|
apell1_emp,apell2_emp
|
|
INTO adiestra.departamento3,adiestra.nivel3_emp,
|
|
adiestra.cod3_puesto,nombre5,nombre6,apellido5,apellido6
|
|
FROM adtb00003
|
|
WHERE num_emp = adiestra.num3_emp and status_t is null
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD num3_emp
|
|
END IF
|
|
ELSE
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD num3_emp
|
|
END IF
|
|
|
|
LET descrip4 = nombre5 clipped," ",nombre6 clipped," ",
|
|
apellido5 clipped," ",apellido6 clipped
|
|
DISPLAY BY NAME adiestra.departamento3,adiestra.nivel3_emp,
|
|
adiestra.cod3_puesto,descrip4
|
|
|
|
AFTER INPUT
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
|
|
IF adiestra.fecha IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD fecha
|
|
END IF
|
|
|
|
IF adiestra.num_emp IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD num_emp
|
|
END IF
|
|
|
|
IF adiestra.evento IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD evento
|
|
END IF
|
|
|
|
IF adiestra.nom_evento IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD nom_evento
|
|
END IF
|
|
|
|
IF adiestra.fech_evento IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD fech_evento
|
|
END IF
|
|
|
|
IF adiestra.costo_evento IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD costo_evento
|
|
END IF
|
|
|
|
IF adiestra.num1_emp IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD num1_emp
|
|
END IF
|
|
|
|
IF adiestra.num2_emp IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD num2_emp
|
|
END IF
|
|
|
|
IF adiestra.num3_emp IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD num3_emp
|
|
END IF
|
|
|
|
## SI NO OCURRE NINGUN ERROR SE PROCEDE A INSERTAR EL REGISTRO
|
|
IF adiestra.num_emp IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD num_emp
|
|
ELSE
|
|
INSERT INTO adtb00022
|
|
VALUES (adiestra.fecha,adiestra.num_emp,adiestra.departamento,
|
|
adiestra.nivel_emp,adiestra.cod_puesto,adiestra.cod_prof,
|
|
adiestra.evento,adiestra.nom_evento,adiestra.fech_evento,
|
|
adiestra.costo_evento,adiestra.num1_emp,
|
|
adiestra.departamento1,adiestra.nivel1_emp,
|
|
adiestra.cod1_puesto,adiestra.num2_emp,
|
|
adiestra.departamento2,adiestra.nivel2_emp,
|
|
adiestra.cod2_puesto,adiestra.num3_emp,
|
|
adiestra.departamento3,adiestra.nivel3_emp,
|
|
adiestra.cod3_puesto,null,SUSER_SNAME (),GETDATE (),null,null)
|
|
|
|
LET numero_msg = 1
|
|
CALL msg(numero_msg)
|
|
CLEAR FORM
|
|
INITIALIZE adiestra.* TO NULL
|
|
NEXT FIELD fecha
|
|
|
|
END IF
|
|
EXIT INPUT
|
|
END INPUT
|
|
|
|
END FUNCTION
|
|
|
|
FUNCTION adpcmf019()
|
|
## AQUI SE PREPARA PARA LA CAPTURA DEL CRITERIO DE SELECCION PARA LA
|
|
## MODIFICACION DE REGISTROS
|
|
|
|
WHENEVER ERROR CONTINUE
|
|
CONSTRUCT criterio ON fecha,num_emp,departamento,nivel_emp,cod_puesto
|
|
FROM adtb00022.fecha,adtb00022.num_emp,
|
|
adtb00022.departamento,adtb00022.nivel_emp,
|
|
adtb00022.cod_puesto
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
|
|
LET SELEC = "SELECT UNIQUE * FROM adtb00022 ",
|
|
"WHERE status_t is null and ",criterio clipped,
|
|
" ORDER BY 2,3,4,5"
|
|
|
|
PREPARE busca FROM selec
|
|
|
|
|
|
IF bandera = 1 THEN
|
|
CLEAR SCREEN
|
|
RETURN
|
|
END IF
|
|
|
|
DECLARE datos SCROLL CURSOR FOR busca
|
|
OPEN datos
|
|
|
|
FETCH FIRST datos INTO adiestra.*
|
|
|
|
IF STATUS >= 0 THEN
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
RETURN
|
|
END IF
|
|
ELSE
|
|
|
|
|
|
IF bandera = 1 THEN
|
|
CLEAR SCREEN
|
|
RETURN
|
|
END IF
|
|
END IF
|
|
|
|
CALL muestra()
|
|
|
|
MENU "OPCIONES "
|
|
COMMAND "Siguiente" "Presenta en pantalla el proximo registro encontrado"
|
|
FETCH NEXT datos INTO adiestra.*
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 4
|
|
CALL msg(numero_msg)
|
|
END IF
|
|
CALL muestra()
|
|
|
|
COMMAND "Anterior" "Presenta en pantalla el registro anterior encontrado"
|
|
FETCH PREVIOUS datos INTO adiestra.*
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 5
|
|
CALL msg(numero_msg)
|
|
END IF
|
|
CALL muestra()
|
|
|
|
COMMAND "Primero" "Presenta en pantalla el primer registro encontrado"
|
|
FETCH FIRST datos INTO adiestra.*
|
|
CALL muestra()
|
|
LET numero_msg = 5
|
|
CALL msg(numero_msg)
|
|
|
|
COMMAND "Ultimo" "Presenta en pantalla el ultimo registro encontrado"
|
|
FETCH LAST datos INTO adiestra.*
|
|
CALL muestra()
|
|
LET numero_msg = 4
|
|
CALL msg(numero_msg)
|
|
|
|
COMMAND "Escoger" "<Esc> Actualiza Registro <Ctrl-C> Cancela Operacion"
|
|
IF adiestra.status_t = "E" THEN
|
|
LET numero_msg = 39
|
|
CALL msg(numero_msg)
|
|
RETURN
|
|
END IF
|
|
|
|
## SE SELECCIONAN LOS CAMPOS QUE SE PUEDEN MODIFICAR
|
|
INPUT BY NAME adiestra.cod_prof,adiestra.evento,adiestra.nom_evento,
|
|
adiestra.fech_evento,adiestra.costo_evento,
|
|
adiestra.num2_emp,adiestra.num3_emp
|
|
WITHOUT DEFAULTS
|
|
|
|
## VENTANA QUE BUSCA LAS PROFESIONES
|
|
ON KEY (CONTROL-W)
|
|
CASE
|
|
WHEN INFIELD (cod_prof)
|
|
CALL carrera()
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
NEXT FIELD cod_prof
|
|
END IF
|
|
LET adiestra.cod_prof = basico.cod_prof
|
|
SELECT nom_prof INTO profesion.nom_prof FROM adtb00010
|
|
WHERE cod_prof = basico.cod_prof
|
|
|
|
DISPLAY BY NAME adiestra.cod_prof,profesion.nom_prof
|
|
NEXT FIELD evento
|
|
|
|
WHEN INFIELD (num2_emp)
|
|
CALL busca_empleado()
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
NEXT FIELD num2_emp
|
|
END IF
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD num2_emp
|
|
END IF
|
|
|
|
LET descrip3 = nombre
|
|
LET adiestra.num2_emp = despl_emp[curr1].num_emp
|
|
LET adiestra.departamento2 = despl_emp[curr1].departamento
|
|
LET adiestra.nivel2_emp = despl_emp[curr1].nivel_emp
|
|
LET adiestra.cod2_puesto = despl_emp[curr1].cod_puesto
|
|
|
|
DISPLAY BY NAME adiestra.num2_emp,adiestra.departamento2,
|
|
adiestra.nivel2_emp,adiestra.cod2_puesto,
|
|
descrip3
|
|
NEXT FIELD num3_emp
|
|
|
|
WHEN INFIELD (num3_emp)
|
|
CALL busca_empleado()
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
NEXT FIELD num3_emp
|
|
END IF
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD num3_emp
|
|
END IF
|
|
|
|
LET descrip4 = nombre
|
|
LET adiestra.num3_emp = despl_emp[curr1].num_emp
|
|
LET adiestra.departamento3 = despl_emp[curr1].departamento
|
|
LET adiestra.nivel3_emp = despl_emp[curr1].nivel_emp
|
|
LET adiestra.cod3_puesto = despl_emp[curr1].cod_puesto
|
|
|
|
DISPLAY BY NAME adiestra.num3_emp,adiestra.departamento3,
|
|
adiestra.nivel3_emp,adiestra.cod3_puesto,
|
|
descrip4
|
|
END CASE
|
|
|
|
## VERIFICA QUE LA PROFESION EXISTA EN EL CATALOGO DE PROFESIONES
|
|
AFTER FIELD cod_prof
|
|
IF adiestra.cod_prof IS NOT NULL THEN
|
|
SELECT nom_prof INTO profesion.nom_prof FROM adtb00010
|
|
WHERE cod_prof = adiestra.cod_prof and status_t is null
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD cod_prof
|
|
END IF
|
|
DISPLAY BY NAME profesion.nom_prof
|
|
END IF
|
|
|
|
AFTER FIELD evento
|
|
IF adiestra.evento IS NOT NULL THEN
|
|
IF adiestra.evento = 1 THEN
|
|
LET descrip = "SEMINARIO"
|
|
END IF
|
|
IF adiestra.evento = 2 THEN
|
|
LET descrip = "CURSO"
|
|
END IF
|
|
IF adiestra.evento = 3 THEN
|
|
LET descrip = "TALLER"
|
|
END IF
|
|
IF adiestra.evento = 4 THEN
|
|
LET descrip = "CONFERENCIA"
|
|
END IF
|
|
ELSE
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD evento
|
|
END IF
|
|
DISPLAY BY NAME descrip
|
|
|
|
AFTER FIELD nom_evento
|
|
IF adiestra.nom_evento IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD nom_evento
|
|
END IF
|
|
|
|
AFTER FIELD fech_evento
|
|
IF adiestra.fech_evento IS NOT NULL THEN
|
|
IF adiestra.fecha > adiestra.fech_evento THEN
|
|
LET numero_msg = 51
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD fech_evento
|
|
END IF
|
|
END IF
|
|
|
|
AFTER FIELD costo_evento
|
|
IF adiestra.costo_evento IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD costo_evento
|
|
END IF
|
|
|
|
AFTER FIELD num2_emp
|
|
IF adiestra.num2_emp IS NOT NULL THEN
|
|
SELECT departamento,nivel_emp,cod_puesto,nom1_emp,nom2_emp,
|
|
apell1_emp,apell2_emp
|
|
INTO adiestra.departamento2,adiestra.nivel2_emp,
|
|
adiestra.cod2_puesto,nombre3,nombre4,apellido3,apellido4
|
|
FROM adtb00003
|
|
WHERE num_emp = adiestra.num2_emp and status_t is null
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD num2_emp
|
|
END IF
|
|
ELSE
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD num2_emp
|
|
END IF
|
|
|
|
LET descrip3 = nombre3 clipped," ",nombre4 clipped," ",
|
|
apellido3 clipped," ",apellido4 clipped
|
|
DISPLAY BY NAME adiestra.departamento2,adiestra.nivel2_emp,
|
|
adiestra.cod2_puesto,descrip3
|
|
NEXT FIELD num3_emp
|
|
|
|
AFTER FIELD num3_emp
|
|
IF adiestra.num3_emp IS NOT NULL THEN
|
|
SELECT departamento,nivel_emp,cod_puesto,nom1_emp,nom2_emp,
|
|
apell1_emp,apell2_emp
|
|
INTO adiestra.departamento3,adiestra.nivel3_emp,
|
|
adiestra.cod3_puesto,nombre5,nombre6,apellido5,apellido6
|
|
FROM adtb00003
|
|
WHERE num_emp = adiestra.num3_emp and status_t is null
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD num3_emp
|
|
END IF
|
|
ELSE
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD num3_emp
|
|
END IF
|
|
|
|
LET descrip4 = nombre5 clipped," ",nombre6 clipped," ",
|
|
apellido5 clipped," ",apellido6 clipped
|
|
DISPLAY BY NAME adiestra.departamento3,adiestra.nivel3_emp,
|
|
adiestra.cod3_puesto,descrip4
|
|
|
|
#### Verifica si el usuario presiono la tecla <Ctrl-C>
|
|
|
|
AFTER INPUT
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
CLEAR FORM
|
|
RETURN
|
|
END IF
|
|
|
|
|
|
IF bandera = 1 THEN
|
|
CLEAR SCREEN
|
|
RETURN
|
|
END IF
|
|
|
|
## AQUI SE ACTUALIZA EL REGISTRO
|
|
UPDATE adtb00022 SET cod_prof = adiestra.cod_prof,
|
|
evento = adiestra.evento,
|
|
nom_evento = adiestra.nom_evento,
|
|
fech_evento = adiestra.fech_evento,
|
|
costo_evento = adiestra.costo_evento,
|
|
num2_emp = adiestra.num2_emp,
|
|
departamento2 = adiestra.departamento2,
|
|
nivel2_emp = adiestra.nivel2_emp,
|
|
cod2_puesto = adiestra.cod2_puesto,
|
|
num3_emp = adiestra.num3_emp,
|
|
departamento3 = adiestra.departamento3,
|
|
nivel3_emp = adiestra.nivel3_emp,
|
|
cod3_puesto = adiestra.cod3_puesto,
|
|
us_mod = SUSER_SNAME (),
|
|
fech_mod = GETDATE ()
|
|
WHERE fecha = adiestra.fecha and num_emp = adiestra.num_emp
|
|
|
|
LET numero_msg = 13
|
|
CALL msg(numero_msg)
|
|
|
|
EXIT INPUT
|
|
END INPUT
|
|
|
|
COMMAND KEY ("L") "eLiminar"
|
|
UPDATE adtb00022 SET (status_t,us_mod,fech_mod) = ("E",SUSER_SNAME (),GETDATE ())
|
|
WHERE fecha = adiestra.fecha and num_emp = adiestra.num_emp
|
|
|
|
LET numero_msg = 39
|
|
CALL msg(numero_msg)
|
|
|
|
COMMAND "Retornar" "Retorna al menu anterior"
|
|
CLEAR FORM
|
|
EXIT MENU
|
|
END MENU
|
|
END FUNCTION
|
|
|
|
## SELECCIONA Y DESPLIEGA LOS DATOS DEL REGISTRO ESCOGIDO
|
|
FUNCTION muestra()
|
|
|
|
SELECT nom1_emp,nom2_emp,apell1_emp,apell2_emp
|
|
INTO nombre1,nombre2,apellido1,apellido2
|
|
FROM adtb00003 WHERE num_emp = adiestra.num_emp
|
|
LET descrip1 = nombre1 clipped," ",nombre2 clipped," ",apellido1 clipped,
|
|
" ",apellido2 clipped
|
|
|
|
SELECT nom_prof INTO profesion.nom_prof FROM adtb00010
|
|
WHERE cod_prof = adiestra.cod_prof
|
|
|
|
IF adiestra.evento = 1 THEN
|
|
LET descrip = "SEMINARIO"
|
|
END IF
|
|
IF adiestra.evento = 2 THEN
|
|
LET descrip = "CURSO"
|
|
END IF
|
|
IF adiestra.evento = 3 THEN
|
|
LET descrip = "TALLER"
|
|
END IF
|
|
IF adiestra.evento = 4 THEN
|
|
LET descrip = "CONFERENCIA"
|
|
END IF
|
|
|
|
SELECT nom1_emp,nom2_emp,apell1_emp,apell2_emp
|
|
INTO nombre1,nombre2,apellido1,apellido2
|
|
FROM adtb00003 WHERE num_emp=adiestra.num1_emp
|
|
LET descrip2 = nombre1 clipped," ",nombre2 clipped," ",apellido1 clipped,
|
|
" ",apellido2 clipped
|
|
|
|
SELECT nom1_emp,nom2_emp,apell1_emp,apell2_emp
|
|
INTO nombre3,nombre4,apellido3,apellido4
|
|
FROM adtb00003 WHERE num_emp = adiestra.num2_emp
|
|
LET descrip3 = nombre3 clipped," ",nombre4 clipped," ",apellido3 clipped,
|
|
" ",apellido4 clipped
|
|
|
|
SELECT nom1_emp,nom2_emp,apell1_emp,apell2_emp
|
|
INTO nombre5,nombre6,apellido5,apellido6
|
|
FROM adtb00003 WHERE num_emp = adiestra.num3_emp
|
|
LET descrip4 = nombre5 clipped," ",nombre6 clipped," ",apellido5 clipped,
|
|
" ",apellido6 clipped
|
|
|
|
DISPLAY BY NAME adiestra.*,descrip1,profesion.nom_prof,descrip,
|
|
descrip2,descrip3,descrip4
|
|
|
|
END FUNCTION
|