334 lines
11 KiB
Plaintext
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
|