293 lines
7.8 KiB
Plaintext
293 lines
7.8 KiB
Plaintext
{
|
|
=====================================================================
|
|
SISTEMA : ADMINISTRACION DE PERSONAL
|
|
PROGRAMA : ADPRMT023.4GL
|
|
FUNCION : REGISTRO DE AUTORIZACION DE TARDANZAS
|
|
AUTOR : TADEO A. FERRERAS F.
|
|
FECHA : OCT. 18, 1994
|
|
======================================================================
|
|
}
|
|
GLOBALS
|
|
"adprgb000.4gl"
|
|
|
|
DEFINE tardanza RECORD
|
|
num_emp SMALLINT,
|
|
fecha DATE,
|
|
num_dia INTEGER,
|
|
status_t CHAR(1),
|
|
us_crea CHAR(9),
|
|
fech_crea LIKE adtb00032.fech_crea,
|
|
us_mod CHAR(9),
|
|
fech_mod LIKE adtb00032.fech_crea
|
|
END RECORD
|
|
|
|
DEFINE apellido CHAR(15)
|
|
DEFINE fecha1 DATE
|
|
|
|
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 adprmt023()
|
|
END MAIN
|
|
|
|
FUNCTION adprmt023()
|
|
LET int_flag = FALSE
|
|
OPTIONS
|
|
FORM LINE 8,
|
|
PROMPT LINE 23
|
|
|
|
DISPLAY "adprmt023" AT 4,3 ATTRIBUTE(RED)
|
|
DISPLAY "Permiso Para Tardanzas" AT 6,29 ATTRIBUTE(BLACK)
|
|
OPEN FORM adfmmt023 FROM "adfmmt023"
|
|
DISPLAY FORM adfmmt023
|
|
|
|
MENU "Mant.:"
|
|
COMMAND "Adicionar" "Presione ESC Para Adicionar CTRL-C Para Cancelar"
|
|
CLEAR FORM
|
|
CALL adprad023()
|
|
|
|
COMMAND "Consultar/Modificar"
|
|
"Presione ESC Para Adicionar CTRL-C Para Cancelar"
|
|
CLEAR FORM
|
|
CALL adprfm023()
|
|
|
|
COMMAND "Salir"
|
|
EXIT MENU
|
|
END MENU
|
|
END FUNCTION
|
|
|
|
FUNCTION adprad023()
|
|
|
|
INPUT BY NAME tardanza.*
|
|
|
|
AFTER FIELD num_emp
|
|
IF tardanza.num_emp IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD num_emp
|
|
END IF
|
|
|
|
SELECT a.nom1_emp,apell1_emp INTO nombre,apellido FROM adtb00003 a
|
|
WHERE a.num_emp = tardanza.num_emp AND (a.status_t IS NULL OR
|
|
a.status_t NOT IN ("T","E","D"))
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD num_emp
|
|
END IF
|
|
|
|
LET nombre = nombre CLIPPED," ",apellido CLIPPED
|
|
DISPLAY BY NAME nombre
|
|
|
|
AFTER FIELD fecha
|
|
IF tardanza.fecha IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD fecha
|
|
END IF
|
|
|
|
AFTER FIELD num_dia
|
|
IF tardanza.num_dia IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD num_dia
|
|
END IF
|
|
|
|
AFTER INPUT
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
|
|
IF tardanza.num_emp IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD num_emp
|
|
END IF
|
|
|
|
SELECT a.nom1_emp,apell1_emp INTO nombre,apellido FROM adtb00003 a
|
|
WHERE a.num_emp = tardanza.num_emp AND (a.status_t IS NULL OR
|
|
a.status_t NOT IN ("T","E","D"))
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD num_emp
|
|
END IF
|
|
|
|
LET nombre = nombre CLIPPED," ",apellido CLIPPED
|
|
DISPLAY BY NAME nombre
|
|
|
|
IF tardanza.fecha IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD fecha
|
|
END IF
|
|
|
|
IF tardanza.num_dia IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD num_dia
|
|
END IF
|
|
END INPUT
|
|
|
|
DELETE FROM adtb00032 WHERE @num_emp = tardanza.num_emp AND
|
|
@cod_mov = 9 AND @sec_mov = 99 and
|
|
@fecha = tardanza.fecha
|
|
|
|
INSERT INTO adtb00032 VALUES (NULL,tardanza.num_emp,9,99,tardanza.fecha,
|
|
tardanza.num_dia,NULL,SUSER_SNAME (),GETDATE (),NULL,NULL)
|
|
|
|
LET numero_msg = 1
|
|
CALL msg(numero_msg)
|
|
END FUNCTION
|
|
|
|
FUNCTION adprfm023()
|
|
|
|
CONSTRUCT criterio ON a.num_emp,a.fecha,a.num_dia FROM num_emp,fecha,num_dia
|
|
|
|
LET selec =
|
|
"SELECT a.num_emp,Convert(char(10),a.fecha,103),a.num_dia,a.status_t,a.us_crea,a.fech_crea, ",
|
|
" a.us_mod,a.fech_mod ",
|
|
"FROM adtb00032 a ",
|
|
"WHERE a.status_t IS NULL AND a.cod_mov = 9 AND a.sec_mov = 99 AND ",
|
|
criterio CLIPPED," ORDER BY a.num_emp,a.fecha "
|
|
|
|
PREPARE comando FROM selec
|
|
DECLARE busca SCROLL CURSOR FOR comando
|
|
OPEN busca
|
|
|
|
FETCH FIRST busca INTO tardanza.*
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
RETURN
|
|
END IF
|
|
|
|
SELECT a.nom1_emp,apell1_emp INTO nombre,apellido FROM adtb00003 a
|
|
WHERE a.num_emp = tardanza.num_emp AND (a.status_t IS NULL OR
|
|
a.status_t NOT IN ("T","E","D"))
|
|
|
|
LET nombre = nombre CLIPPED," ",apellido CLIPPED
|
|
DISPLAY BY NAME tardanza.*,nombre
|
|
|
|
MENU "Mant."
|
|
COMMAND "Siguiente"
|
|
FETCH NEXT busca INTO tardanza.*
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 5
|
|
CALL msg(numero_msg)
|
|
END IF
|
|
|
|
SELECT a.nom1_emp,apell1_emp INTO nombre,apellido FROM adtb00003 a
|
|
WHERE a.num_emp = tardanza.num_emp AND (a.status_t IS NULL OR
|
|
a.status_t NOT IN ("T","E","D"))
|
|
|
|
LET nombre = nombre CLIPPED," ",apellido CLIPPED
|
|
DISPLAY BY NAME tardanza.*,nombre
|
|
|
|
COMMAND "Anterior"
|
|
FETCH PREVIOUS busca INTO tardanza.*
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 6
|
|
CALL msg(numero_msg)
|
|
END IF
|
|
|
|
SELECT a.nom1_emp,apell1_emp INTO nombre,apellido FROM adtb00003 a
|
|
WHERE a.num_emp = tardanza.num_emp AND (a.status_t IS NULL OR
|
|
a.status_t NOT IN ("T","E","D"))
|
|
|
|
LET nombre = nombre CLIPPED," ",apellido CLIPPED
|
|
DISPLAY BY NAME tardanza.*,nombre
|
|
|
|
COMMAND "Primero"
|
|
FETCH FIRST busca INTO tardanza.*
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 6
|
|
CALL msg(numero_msg)
|
|
END IF
|
|
|
|
SELECT a.nom1_emp,apell1_emp INTO nombre,apellido FROM adtb00003 a
|
|
WHERE a.num_emp = tardanza.num_emp AND (a.status_t IS NULL OR
|
|
a.status_t NOT IN ("T","E","D"))
|
|
|
|
LET nombre = nombre CLIPPED," ",apellido CLIPPED
|
|
DISPLAY BY NAME tardanza.*,nombre
|
|
|
|
COMMAND "Ultimo"
|
|
FETCH LAST busca INTO tardanza.*
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 6
|
|
CALL msg(numero_msg)
|
|
END IF
|
|
|
|
SELECT a.nom1_emp,apell1_emp INTO nombre,apellido FROM adtb00003 a
|
|
WHERE a.num_emp = tardanza.num_emp AND (a.status_t IS NULL OR
|
|
a.status_t NOT IN ("T","E","D"))
|
|
|
|
LET nombre = nombre CLIPPED," ",apellido CLIPPED
|
|
DISPLAY BY NAME tardanza.*,nombre
|
|
|
|
COMMAND "Escoger"
|
|
|
|
INPUT BY NAME tardanza.fecha THRU tardanza.fech_mod WITHOUT DEFAULTS
|
|
|
|
AFTER FIELD fecha
|
|
IF tardanza.fecha IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD fecha
|
|
END IF
|
|
|
|
AFTER FIELD num_dia
|
|
IF tardanza.num_dia IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD num_dia
|
|
END IF
|
|
|
|
AFTER INPUT
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
|
|
IF tardanza.fecha IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD fecha
|
|
END IF
|
|
|
|
IF tardanza.num_dia IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD num_dia
|
|
END IF
|
|
END INPUT
|
|
|
|
DELETE FROM adtb00032 WHERE @num_emp = tardanza.num_emp AND
|
|
@cod_mov = 9 AND @sec_mov = 99 and
|
|
@fecha = tardanza.fecha
|
|
|
|
INSERT INTO adtb00032 VALUES (NULL,tardanza.num_emp,9,99,tardanza.fecha,
|
|
tardanza.num_dia,NULL,SUSER_SNAME (),GETDATE (),NULL,NULL)
|
|
|
|
LET numero_msg = 13
|
|
CALL msg(numero_msg)
|
|
|
|
COMMAND "Retornar"
|
|
EXIT MENU
|
|
END MENU
|
|
END FUNCTION
|