{ ------------------------------------------------------------------ PROGRAMA : NOPRMT010 OBJETIVO : Actualizar los campos que se refieren al codi- go de asegurado asignado por el seguro social en la Maestra de Empleado. PROGRAMADOR : Tadeo A. Ferreras FECHA REALIZACION : Agosto 19, 1993 ------------------------------------------------------------------ } GLOBALS "noprgb000.4gl" DEFINE seguro RECORD num_emp SMALLINT, departamento SMALLINT, nivel_emp SMALLINT, cod_puesto SMALLINT, nombre CHAR(14), nom_dpto CHAR(30), cod_seg1 SMALLINT, cod_seg2 SMALLINT, cod_seg3 SMALLINT, status_t CHAR(1), us_crea LIKE adtb00003.us_crea, fech_crea LIKE adtb00003.fech_crea, us_mod LIKE adtb00003.us_mod, fech_mod LIKE adtb00003.fech_mod END RECORD, nomb CHAR(15) FUNCTION noprmt010() CLEAR SCREEN OPTIONS FORM LINE 9, ERROR LINE 23, COMMENT LINE 21 LET formulario = formulario CLIPPED,"nofmmt010" OPEN FORM nofmmt010 FROM "nofmmt010" DISPLAY FORM nofmmt010 CALL pantalla() DISPLAY "noprmt010" AT 4,3 DISPLAY "Codigo de Asegurados" AT 6,30 MENU "OPCIONES" COMMAND "Consultar-modificar" " Realiza Busqueda Cancela Operacion" let int_flag = false CALL nopcmf010() COMMAND "Salir" "Retorna Menu Anterior" EXIT MENU END MENU END FUNCTION FUNCTION nopcmf010() ## Aqui se prepara para la captura del criterio de seleccion WHENEVER ERROR CONTINUE CONSTRUCT criterio ON a.num_emp,a.departamento FROM num_emp,departamento IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF LET SELEC = "SELECT a.num_emp,a.departamento,a.nivel_emp,a.cod_puesto,a.nom1_emp, ", " b.nom_dpto,a.cod_seg1,a.cod_seg2,a.cod_seg3,a.status_t, ", " a.us_crea,a.fech_crea,a.us_mod,a.fech_mod,a.apell1_emp ", "FROM adtb00003 a,adtb00001 b WHERE a.departamento = b.departamento AND ", "a.status_t IS NULL AND ", criterio CLIPPED," Order by 1" PREPARE busca FROM selec CALL integridad() IF bandera = 1 THEN CLEAR FORM RETURN END IF DECLARE datos SCROLL CURSOR FOR busca OPEN datos FETCH FIRST datos INTO seguro.*,nomb IF status >= 0 THEN IF STATUS = NOTFOUND THEN LET numero_msg = 3 CALL msg(numero_msg) RETURN END IF ELSE CALL integridad() IF bandera = 1 THEN CLEAR FORM RETURN END IF END IF LET seguro.nombre = seguro.nombre CLIPPED," ",nomb DISPLAY BY NAME seguro.* MENU "OPCIONES " COMMAND "Siguiente" "Presenta en pantalla el proximo registro encontrado" FETCH NEXT datos INTO seguro.*,nomb IF STATUS = NOTFOUND THEN LET numero_msg = 4 CALL msg(numero_msg) END IF LET seguro.nombre = seguro.nombre CLIPPED," ",nomb DISPLAY BY NAME seguro.* COMMAND "Anterior" "Presenta en pantalla el registro anterior encontrado" FETCH PREVIOUS datos INTO seguro.*,nomb IF STATUS = NOTFOUND THEN LET numero_msg = 5 CALL msg(numero_msg) END IF LET seguro.nombre = seguro.nombre CLIPPED," ",nomb DISPLAY BY NAME seguro.* COMMAND "Primero" "Presenta en pantalla el primer registro encontrado" FETCH FIRST datos INTO seguro.*,nomb LET seguro.nombre = seguro.nombre CLIPPED," ",nomb DISPLAY BY NAME seguro.* LET numero_msg = 5 CALL msg(numero_msg) COMMAND "Ultimo" "Presenta en pantalla el ultimo registro encontrado" FETCH LAST datos INTO seguro.*,nomb LET seguro.nombre = seguro.nombre CLIPPED," ",nomb DISPLAY BY NAME seguro.* LET numero_msg = 4 CALL msg(numero_msg) COMMAND "Escoger" " Actualiza Registro Cancela Operacion" INPUT BY NAME seguro.* WITHOUT DEFAULTS AFTER FIELD cod_seg1 IF seguro.cod_seg1 IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD cod_seg1 END IF AFTER FIELD cod_seg2 IF seguro.cod_seg2 IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD cod_seg2 END IF AFTER FIELD cod_seg3 IF seguro.cod_seg3 IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD cod_seg3 END IF SELECT UNIQUE a.cod_seg1,a.cod_seg2,a.cod_seg3 FROM adtb00003 a WHERE a.num_emp <> seguro.num_emp AND a.cod_seg1 = seguro.cod_seg1 AND a.cod_seg2 = seguro.cod_seg2 AND a.cod_seg3 = seguro.cod_seg3 IF STATUS != NOTFOUND THEN LET numero_msg = 12 CALL msg(numero_msg) NEXT FIELD cod_seg3 END IF END INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE CLEAR FORM RETURN END IF CALL integridad() IF bandera = 1 THEN CLEAR FORM RETURN END IF UPDATE adtb00003 SET (paga_seg,cod_seg1,cod_seg2,cod_seg3, us_mod,fech_mod) = ("S",seguro.cod_seg1,seguro.cod_seg2, seguro.cod_seg3,USER,CURRENT) WHERE @num_emp = seguro.num_emp LET numero_msg = 13 CALL msg(numero_msg) COMMAND "Retornar" "Retorna al menu anterior" CLEAR FORM EXIT MENU END MENU END FUNCTION