Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
@@ -0,0 +1,207 @@
|
||||
{
|
||||
===============================================================================
|
||||
PROGRAMA : NOPRCS004
|
||||
SISTEMA : Sistema de Nomina
|
||||
OBJETIVO : Consulta de los datos concerniente al acumulado por tipo
|
||||
de movimiento y por cada empleado.
|
||||
PROGRAMADOR : Tadeo A. Ferreras F.
|
||||
FECHA : Agosto 23, 1993
|
||||
===============================================================================
|
||||
}
|
||||
GLOBALS "noprgb000.4gl"
|
||||
|
||||
DEFINE empl RECORD
|
||||
tipo VARCHAR(1),
|
||||
num_emp SMALLINT,
|
||||
departamento SMALLINT,
|
||||
nivel_emp SMALLINT,
|
||||
cod_puesto SMALLINT,
|
||||
nombre CHAR(30),
|
||||
apellido CHAR(30),
|
||||
nom_dpto CHAR(30),
|
||||
fecha_entrada DATE
|
||||
END RECORD
|
||||
|
||||
DEFINE empl1 RECORD
|
||||
num_emp SMALLINT,
|
||||
departamento SMALLINT,
|
||||
nivel_emp SMALLINT,
|
||||
cod_puesto SMALLINT,
|
||||
nombre CHAR(30),
|
||||
nom_dpto CHAR(30)
|
||||
END RECORD
|
||||
DEFINE acumul DYNAMIC ARRAY OF RECORD
|
||||
cod_mov INTEGER,
|
||||
descrip_mov CHAR(30),
|
||||
valor DECIMAL(12,2)
|
||||
END RECORD,
|
||||
pfecha1,pfecha2 DATE,
|
||||
psueldo,psalario_dia DEC(12,2)
|
||||
|
||||
|
||||
MAIN
|
||||
DEFER INTERRUPT
|
||||
CALL ARG_VAL(1) RETURNING usuarios
|
||||
CALL ARG_VAL(2) RETURNING clave
|
||||
|
||||
CONNECT to "smarmotech" USER usuarios USING clave
|
||||
SELECT a.* INTO p_companias.* FROM companias a
|
||||
CALL noprcs004()
|
||||
END MAIN
|
||||
|
||||
FUNCTION noprcs004()
|
||||
CLEAR SCREEN
|
||||
OPTIONS
|
||||
FORM LINE 9,
|
||||
ERROR LINE 23,
|
||||
COMMENT LINE 21
|
||||
|
||||
OPEN FORM nofmcs004 FROM "nofmcs004"
|
||||
DISPLAY FORM nofmcs004
|
||||
|
||||
DISPLAY "noprcs004" AT 4,3
|
||||
DISPLAY "Acumulado Por Empleados" AT 6,28
|
||||
|
||||
MENU "OPCIONES"
|
||||
COMMAND "Consultar"
|
||||
"<Esc> Realiza Busqueda <CTRL-C> Cancela Operacion"
|
||||
let int_flag = false
|
||||
CALL consulta4()
|
||||
COMMAND "Salir" "Retorna Menu Anterior"
|
||||
EXIT MENU
|
||||
END MENU
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION consulta4()
|
||||
CLEAR FORM
|
||||
## Aqui se prepara para la captura del criterio de seleccion
|
||||
INPUT BY NAME pfecha1,pfecha2
|
||||
BEFORE INPUT
|
||||
LET pfecha2 = TODAY
|
||||
DISPLAY BY NAME pfecha2
|
||||
AFTER INPUT
|
||||
IF INT_FLAG THEN
|
||||
CALL msg(2)
|
||||
LET INT_FLAG=FALSE
|
||||
RETURN
|
||||
END IF
|
||||
END INPUT
|
||||
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 DISTINCT a.tipo_emp,a.num_emp,a.departamento,a.nivel_emp,a.cod_puesto, ",
|
||||
" b.nom1_emp,b.apell1_emp,c.nom_dpto,CONVERT(CHAR(10),b.fech_efec,103) ",
|
||||
"FROM notb00008 a,adtb00003 b,adtb00001 c ",
|
||||
"WHERE a.num_emp = b.num_emp ",
|
||||
"AND a.departamento = c.departamento ",
|
||||
"AND a.status_t IS NULL AND ",
|
||||
criterio CLIPPED, " ORDER BY a.num_emp"
|
||||
|
||||
PREPARE comando FROM selec
|
||||
DECLARE busco SCROLL CURSOR FOR comando
|
||||
OPEN busco
|
||||
|
||||
FETCH FIRST busco INTO empl.*
|
||||
|
||||
LET empl1.num_emp = empl.num_emp
|
||||
LET empl1.departamento = empl.departamento
|
||||
LET empl1.nivel_emp = empl.nivel_emp
|
||||
LET empl1.cod_puesto = empl.cod_puesto
|
||||
LET empl1.nombre = empl.nombre CLIPPED," ",empl.apellido CLIPPED
|
||||
LET empl1.nom_dpto = empl.nom_dpto
|
||||
|
||||
CALL calcula_salarios(empl.tipo,empl.num_emp,pfecha2) RETURNING psalario_dia,psueldo
|
||||
DISPLAY BY NAME empl1.*,psalario_dia,empl.fecha_entrada
|
||||
|
||||
MENU "OPCIONES"
|
||||
COMMAND "Siguiente" "Ver Sigte. Registro"
|
||||
FETCH NEXT busco INTO empl.*
|
||||
|
||||
LET empl1.num_emp = empl.num_emp
|
||||
LET empl1.departamento = empl.departamento
|
||||
LET empl1.nivel_emp = empl.nivel_emp
|
||||
LET empl1.cod_puesto = empl.cod_puesto
|
||||
LET empl1.nombre = empl.nombre CLIPPED," ",empl.apellido CLIPPED
|
||||
LET empl1.nom_dpto = empl.nom_dpto
|
||||
|
||||
CALL calcula_salarios(empl.tipo,empl.num_emp,pfecha2) RETURNING psalario_dia,psueldo
|
||||
DISPLAY BY NAME empl1.*,psalario_dia,empl.fecha_entrada
|
||||
|
||||
|
||||
COMMAND "Anterior" "Ver Registro Anterior"
|
||||
FETCH PREVIOUS busco INTO empl.*
|
||||
|
||||
LET empl1.num_emp = empl.num_emp
|
||||
LET empl1.departamento = empl.departamento
|
||||
LET empl1.nivel_emp = empl.nivel_emp
|
||||
LET empl1.cod_puesto = empl.cod_puesto
|
||||
LET empl1.nombre = empl.nombre CLIPPED," ",empl.apellido CLIPPED
|
||||
LET empl1.nom_dpto = empl.nom_dpto
|
||||
|
||||
|
||||
CALL calcula_salarios(empl.tipo,empl.num_emp,pfecha2) RETURNING psalario_dia,psueldo
|
||||
DISPLAY BY NAME empl1.*,psalario_dia,empl.fecha_entrada
|
||||
|
||||
COMMAND "Primero" "Ver Primer Registro"
|
||||
FETCH FIRST busco INTO empl.*
|
||||
|
||||
LET empl1.num_emp = empl.num_emp
|
||||
LET empl1.departamento = empl.departamento
|
||||
LET empl1.nivel_emp = empl.nivel_emp
|
||||
LET empl1.cod_puesto = empl.cod_puesto
|
||||
LET empl1.nombre = empl.nombre CLIPPED," ",empl.apellido CLIPPED
|
||||
LET empl1.nom_dpto = empl.nom_dpto
|
||||
|
||||
CALL calcula_salarios(empl.tipo,empl.num_emp,pfecha2) RETURNING psalario_dia,psueldo
|
||||
DISPLAY BY NAME empl1.*,psalario_dia,empl.fecha_entrada
|
||||
|
||||
LET numero_msg = 5
|
||||
CALL msg(numero_msg)
|
||||
|
||||
COMMAND "Ultimo" "Ver Ultimo Registro"
|
||||
FETCH LAST busco INTO empl.*
|
||||
|
||||
LET empl1.num_emp = empl.num_emp
|
||||
LET empl1.departamento = empl.departamento
|
||||
LET empl1.nivel_emp = empl.nivel_emp
|
||||
LET empl1.cod_puesto = empl.cod_puesto
|
||||
LET empl1.nombre = empl.nombre CLIPPED," ",empl.apellido CLIPPED
|
||||
LET empl1.nom_dpto = empl.nom_dpto
|
||||
|
||||
CALL calcula_salarios(empl.tipo,empl.num_emp,pfecha2) RETURNING psalario_dia,psueldo
|
||||
DISPLAY BY NAME empl1.*,psalario_dia,empl.fecha_entrada
|
||||
|
||||
LET numero_msg = 4
|
||||
CALL msg(numero_msg)
|
||||
|
||||
COMMAND "Ver" "Presione ESC o CTRL-C para volver al menu"
|
||||
|
||||
DECLARE busca CURSOR FOR
|
||||
SELECT UNIQUE a.cod_mov,b.descrip_mov,SUM(a.valor),a.clase_mov
|
||||
FROM notb00008 a,notb00002 b
|
||||
WHERE a.cod_mov = b.cod_mov AND
|
||||
a.status_t IS NULL AND
|
||||
a.num_emp = empl.num_emp AND
|
||||
a.fecha BETWEEN pfecha1 AND pfecha2
|
||||
GROUP BY a.cod_mov,b.descrip_mov,a.clase_mov ORDER BY a.clase_mov DESC,a.cod_mov
|
||||
|
||||
LET idx =1
|
||||
FOREACH busca INTO acumul[idx].*
|
||||
LET idx = idx + 1
|
||||
END FOREACH
|
||||
CALL SET_COUNT(idx - 1)
|
||||
|
||||
DISPLAY ARRAY acumul TO acumul1.*
|
||||
|
||||
COMMAND "Retornar"
|
||||
EXIT MENU
|
||||
CLEAR FORM
|
||||
END MENU
|
||||
END FUNCTION
|
||||
Reference in New Issue
Block a user