Files

334 lines
11 KiB
Plaintext

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