Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
@@ -0,0 +1,842 @@
|
||||
{
|
||||
-----------------------------------------------------------------------
|
||||
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
|
||||
Reference in New Issue
Block a user