{ --------------------------------------------------------------------------- PROGRAMA : NOMNMT000 OBJETIVO : Menu de Mantenimientos del Sistema de Nomina PROGRAMADOR : Ing. Betania Guerrero Perez FECHA REALIZACION : Agosto 20, 1993 --------------------------------------------------------------------------- } GLOBALS "noprgb000.4gl" MAIN DEFER INTERRUPT CALL pantalla() CALL nomnmt000() END MAIN FUNCTION nomnmt000() CLEAR SCREEN CALL opciones_nomnmt000() END FUNCTION FUNCTION opciones_nomnmt000() DEFINE opt CHAR(2) DEFINE p_user CHAR(9) DEFINE luz CHAR(5) OPTIONS PROMPT LINE 8, ERROR LINE 24 CALL pantalla() LET formulario = "/users/rova/sysinfo/forms/nodir/" CLIPPED DISPLAY "Mantenimientos" AT 6,33 DISPLAY "nomnmt000" AT 4,3 ATTRIBUTE(blue) DISPLAY " 1-Codigos de Movimientos noprmt001" AT 10,1 DISPLAY " 2-Impuesto Sobre La Renta noprmt005" AT 11,1 DISPLAY " 3-Cotizacion Seguro Social noprmt006" AT 12,1 DISPLAY " 4-Novedades de la Nomina noprmt007" AT 13,1 DISPLAY " 5-Generacion de la Nomina noprmt008" AT 14,1 DISPLAY " 6-Control Periodos Nomina noprmt009" AT 15,1 DISPLAY " 7-Maestra Empleados noprmt003" AT 16,1 DISPLAY " 8-Control Prest. y Facturas noprmt011" AT 17,1 DISPLAY " 9-Movimientos Fijos Emp. noprmt002" AT 18,1 DISPLAY "10-Numero dias meses del ano noprmt012" AT 19,1 DISPLAY "11-Elim. Novedades en Nomina noprmt014" AT 20,1 DISPLAY "12-Anular Cheques noprmt015" AT 21,1 DISPLAY "13-Activar / Desactivar Emp. noprmt016" AT 10,40 DISPLAY "14-Equivalencia Movimiento noprmt017" AT 11,40 DISPLAY "15-Pago Prestamo En Efectivo noprmt018" AT 12,40 DISPLAY "16-Cambio de departamento noprmt019" AT 13,40 DISPLAY "17-Genera Horas Vacaciones noprmt021" AT 14,40 #DISPLAY "18-Codigos Con Balances nofmmt022" AT 15,40 DISPLAY "18-Activa Nomina nomnmt000" AT 15,40 DISPLAY "19-Porc. Accidente Trabajo noprmt020" AT 16,40 DISPLAY "20-Cierre Anual noprmt004" AT 17,40 DISPLAY "21-Eliminacion Cheques noprmt022" AT 18,40 DISPLAY "22-Maestra de Departamentos noprmt023" AT 19,40 DISPLAY "23-Maestra de Puestos noprmt024" AT 20,40 DISPLAY " S- Retorna Menu Anterior " AT 21,40 ATTRIBUTE(BOLD) #DISPLAY " 7-Registro codigo Asegurado noprmt010" AT 16,1 LABEL vuelve: PROMPT "OPCION: " attribute(blue) FOR OPT LET opt = UPSHIFT(opt) clipped IF opt != "S" THEN SELECT unique usuario INTO p_user FROM seg0001 WHERE usuario = user CALL seg000(p_user,opt,"nomnmt000") RETURNING luz IF luz = "roja" THEN ERROR "NO TIENE PERMISO PARA UTILIZAR OPCION" GOTO vuelve END IF END IF CASE WHEN OPT = "1" CALL noprmt001() CLEAR SCREEN CALL opciones_nomnmt000() WHEN OPT = "2" CALL noprmt005() CLEAR SCREEN CALL opciones_nomnmt000() WHEN OPT = "3" CALL noprmt006() CLEAR SCREEN CALL opciones_nomnmt000() WHEN OPT = "4" CALL noprmt007() CLEAR SCREEN CALL opciones_nomnmt000() WHEN OPT = "5" CALL noprmt008() CLEAR SCREEN CALL opciones_nomnmt000() WHEN OPT = "6" CALL noprmt009() CLEAR SCREEN CALL opciones_nomnmt000() WHEN OPT = "7" #CALL noprmt010() CALL noprmt003() CLEAR SCREEN CALL opciones_nomnmt000() WHEN OPT = "8" CALL noprmt011() CLEAR SCREEN CALL opciones_nomnmt000() WHEN OPT = "9" CALL noprmt002() CLEAR SCREEN CALL opciones_nomnmt000() WHEN OPT = "10" CALL noprmt012() CLEAR SCREEN CALL opciones_nomnmt000() WHEN OPT = "11" CALL noprmt014() CLEAR SCREEN CALL opciones_nomnmt000() WHEN OPT = "12" CALL noprmt015() CLEAR SCREEN CALL opciones_nomnmt000() WHEN OPT = "13" CALL noprmt016() CLEAR SCREEN CALL opciones_nomnmt000() WHEN OPT = "14" CALL noprmt017() CLEAR SCREEN CALL opciones_nomnmt000() WHEN OPT = "15" CALL noprmt018() CLEAR SCREEN CALL opciones_nomnmt000() WHEN OPT = "16" CALL noprmt019() CLEAR SCREEN CALL opciones_nomnmt000() WHEN OPT = "17" CALL noprmt021() CLEAR SCREEN CALL opciones_nomnmt000() WHEN OPT = "18" CALL proceso() CLEAR SCREEN CALL opciones_nomnmt000() WHEN OPT = "19" CALL noprmt020() CLEAR SCREEN CALL opciones_nomnmt000() WHEN OPT = "20" RUN "fglgo noprmt004" CLEAR SCREEN CALL opciones_nomnmt000() WHEN OPT = "21" CALL noprmt022() CLEAR SCREEN CALL opciones_nomnmt000() WHEN OPT = "22" CALL noprmt023() CLEAR SCREEN CALL opciones_nomnmt000() WHEN OPT = "23" CALL noprmt024() CLEAR SCREEN CALL opciones_nomnmt000() WHEN OPT = "S" or OPT = "s" RETURN OTHERWISE CALL opciones_nomnmt000() END CASE END FUNCTION FUNCTION busca_movimientos() OPEN WINDOW busqueda AT 5,5 WITH FORM "nofmwd001" ATTRIBUTE (BORDER,FORM LINE FIRST + 2, comment line last) CONSTRUCT criterio ON notb00002.descrip_mov FROM notb00002.descrip_mov LET selec3 = "SELECT cod_mov,descrip_mov,cantidad_cia,cantidad_emp ", "FROM notb00002 ", " WHERE ", " status_t is null AND ", criterio clipped, "ORDER BY 1 " PREPARE busca3 FROM selec3 DECLARE local CURSOR FOR busca3 LET idx = 1 FOREACH local INTO buscar_movi[idx].* IF status = NOTFOUND THEN LET numero_msg = 3 CALL msg(numero_msg) EXIT FOREACH END IF LET despl_movi[idx].cod_mov = buscar_movi[idx].cod_mov LET despl_movi[idx].descrip_mov = buscar_movi[idx].descrip_mov clipped LET despl_movi[idx].cantidad_cia = buscar_movi[idx].cantidad_cia LET despl_movi[idx].cantidad_emp = buscar_movi[idx].cantidad_emp LET idx = idx + 1 END FOREACH CALL set_count(idx-1) DISPLAY ARRAY despl_movi TO s_movimiento.* LET curr = arr_curr() LET arr_fijo[curr1].cod_mov = despl_movi[curr].cod_mov LET mov_nomi.descrip_mov = despl_movi[curr].descrip_mov LET mov_nomi.cantidad_cia = despl_movi[curr].cantidad_cia LET mov_nomi.cantidad_emp = despl_movi[curr].cantidad_emp CLOSE WINDOW busqueda END FUNCTION FUNCTION busca_empleado() OPEN WINDOW busqueda1 AT 7,10 WITH FORM "adfmwd004" ATTRIBUTE (BORDER,FORM LINE FIRST + 2, comment line last) CONSTRUCT criterio ON petb00003.nom1_emp,petb00003.nom2_emp, petb00003.apell1_emp,petb00003.apell2_emp FROM nom1_emp,apell1_emp LET selec1 = "SELECT num_emp,departamento,nivel_emp,cod_puesto, ", "nom1_emp,apell1_emp FROM petb00003 ", " WHERE ", " status_t is null AND ", criterio clipped, "ORDER BY 1,2,3,4" PREPARE busca1 FROM selec1 DECLARE local1 CURSOR FOR busca1 LET idx = 1 FOREACH local1 INTO buscar_emp[idx].* IF status = NOTFOUND THEN LET numero_msg = 3 CALL msg(numero_msg) EXIT FOREACH END IF LET despl_emp[idx].num_emp = buscar_emp[idx].num_emp LET despl_emp[idx].departamento = buscar_emp[idx].departamento LET despl_emp[idx].nivel_emp = buscar_emp[idx].nivel_emp LET despl_emp[idx].cod_puesto = buscar_emp[idx].cod_puesto LET despl_emp[idx].nom1_emp = buscar_emp[idx].nom1_emp clipped LET despl_emp[idx].nom2_emp = buscar_emp[idx].nom2_emp clipped LET despl_emp[idx].apell1_emp = buscar_emp[idx].apell1_emp clipped LET despl_emp[idx].apell2_emp = buscar_emp[idx].apell2_emp clipped LET idx = idx + 1 END FOREACH CALL set_count(idx-1) DISPLAY ARRAY despl_emp TO s_empleado.* LET curr = arr_curr() LET nombre = despl_emp[curr].nom1_emp clipped," ",despl_emp[curr].nom2_emp clipped," ", despl_emp[curr].apell1_emp clipped," ",despl_emp[curr].apell2_emp clipped CLOSE WINDOW busqueda1 END FUNCTION FUNCTION pantalla() DEFINE fecha CHAR(8), hora char(5) LET fecha = today USING "dd/mm/yy" LET hora = time SELECT * INTO p_companias.* FROM companias LET l = (80 - LENGTH(p_companias.nombre CLIPPED))/2 DISPLAY p_companias.nombre CLIPPED AT 4,l ATTRIBUTE (REVERSE,blue) DISPLAY fecha AT 4,70 ATTRIBUTE (blue) DISPLAY "Sistema de Nomina" AT 5,31 DISPLAY hora AT 6,73 ATTRIBUTE(blue) CALL fgl_drawbox(5,79,3,1) #CALL fgl_drawbox(1,79,22,1) END FUNCTION FUNCTION second_scr() CALL fgl_drawbox(8,79,22,1) # CALL fgl_drawbox(5,79,3,1) END FUNCTION FUNCTION integridad() IF sqlca.sqlcode < 0 THEN LET numero_msg = sqlca.sqlcode CALL msg(numero_msg) DISPLAY numero_msg AT 23,70 LET bandera = 1 SLEEP 2 RETURN END IF END FUNCTION FUNCTION proceso() LET formulario = NULL #LET formulario = FGL_GETENV("FORMS") CLIPPED,"\\nodir\\" CLIPPED,"nofmrp001" OPEN WINDOW procesa AT 13,8 WITH FORM "nofmpc001" ATTRIBUTE(BORDER, FORM LINE FIRST + 1, MESSAGE LINE LAST) #LET formulario = FGL_GETENV("FORMS") CLIPPED,"\\nodir\\" LET per_nomi.num_nomi = NULL LET per_nomi.tipo_emp = NULL INPUT BY NAME per_nomi.num_nomi,per_nomi.tipo_emp AFTER FIELD tipo_emp SELECT UNIQUE a.tipo_emp FROM notb00010 a WHERE a.num_nomi = per_nomi.num_nomi AND a.tipo_emp = per_nomi.tipo_emp IF STATUS = NOTFOUND THEN LET numero_msg = 3 CALL msg(numero_msg) NEXT FIELD tipo_emp END IF END INPUT IF not int_flag THEN MESSAGE "En Proceso..." UPDATE notb00010 SET status_t = NULL, us_mod = user, fech_mod = current WHERE num_nomi = per_nomi.num_nomi AND tipo_emp = per_nomi.tipo_emp END IF MESSAGE " " CLOSE WINDOW procesa END FUNCTION