{ ===================================================================== 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