Files
MBS/PROYECTO/addir/adprmt023.4gl
T

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