Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
@@ -0,0 +1,320 @@
|
||||
{
|
||||
-------------------------------------------------------------------------
|
||||
PROGRAMA : ADPRRP034
|
||||
OBJETIVO : Tardanzas de los Empleados
|
||||
Reporte de todos los empleados con tardanzas
|
||||
para enviar a la Gerencia General
|
||||
PROGRAMADOR : Juan F. Soto
|
||||
FECHA : Septiembre 29, 1994.
|
||||
-------------------------------------------------------------------------
|
||||
}
|
||||
GLOBALS
|
||||
"adprgb000.4gl"
|
||||
DEFINE ch_depto1 CHAR(4)
|
||||
DEFINE nombre_dpto1 CHAR(30)
|
||||
DEFINE fecha1 DATE
|
||||
DEFINE mes_del,mes_al,p_ano,depto1,cant_dia INTEGER
|
||||
DEFINE datos_34 RECORD
|
||||
num_emp SMALLINT,
|
||||
departamento INTEGER,
|
||||
nom_emp CHAR(14),
|
||||
apell CHAR(14),
|
||||
fecha DATE,
|
||||
hora_ent LIKE adtb00023.hora_ent,
|
||||
hora_sal LIKE adtb00023.hora_sal
|
||||
END RECORD,
|
||||
hora_control LIKE adtb00023.hora_ent,
|
||||
l,m,mi,j,v SMALLINT
|
||||
|
||||
DEFINE salida ARRAY[100] OF RECORD
|
||||
lunes CHAR(30),
|
||||
martes CHAR(30),
|
||||
miercoles CHAR(30),
|
||||
jueves CHAR(30),
|
||||
viernes CHAR(30)
|
||||
END RECORD
|
||||
|
||||
DEFINE semana_del,semana_al DATE
|
||||
DEFINE dias_1 INTEGER
|
||||
|
||||
FUNCTION adprrp034()
|
||||
OPTIONS
|
||||
ERROR LINE 24,
|
||||
FORM LINE 8
|
||||
|
||||
CALL pantalla()
|
||||
DISPLAY "adprrp034" AT 4,3 ATTRIBUTE(RED)
|
||||
DISPLAY "Tardanzas de Mensual Empleados" AT 6,25 ATTRIBUTE(BLACK)
|
||||
OPEN FORM adfmrp034 FROM "adfmrp034"
|
||||
DISPLAY FORM adfmrp034
|
||||
|
||||
LET tipo_papel = 1
|
||||
CALL msgrp000(tipo_papel)
|
||||
CALL defecto(impresor) RETURNING imprime, letras.*, archivo
|
||||
|
||||
|
||||
## SE SELECCIONA EL CRITERIO DE EMPLEADOS PARA EL REPORTE
|
||||
|
||||
CONSTRUCT criterio ON a.num_emp FROM num_emp
|
||||
|
||||
ON KEY(CONTROL-P)
|
||||
CALL busca_printer() RETURNING imprime, letras.*, archivo
|
||||
AFTER CONSTRUCT
|
||||
EXIT CONSTRUCT
|
||||
END CONSTRUCT
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
# INPUT BY NAME emplea.num_emp,p_ano,mes_del,mes_al
|
||||
INPUT BY NAME p_ano,mes_del,mes_al
|
||||
|
||||
ON KEY(CONTROL-P)
|
||||
CALL busca_printer() RETURNING imprime, letras.*, archivo
|
||||
|
||||
|
||||
{ AFTER FIELD num_emp
|
||||
IF emplea.num_emp IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD emplea.num_empl
|
||||
END IF
|
||||
|
||||
SELECT UNIQUE a.num_emp,a.departamento,a.nom1_emp,a.apell1_emp
|
||||
INTO emplea.num_emp,emplea.departamento,emplea.nom1_emp,emplea.apell1_emp
|
||||
FROM adtb00003 a
|
||||
WHERE a.num_emp = emplea.num_emp
|
||||
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD mes_al
|
||||
END IF
|
||||
|
||||
DISPLAY BY NAME emplea.departamento,emplea.nom1_emp,emplea.apell1_emp
|
||||
}
|
||||
AFTER FIELD mes_del
|
||||
IF mes_del IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD mes_del
|
||||
END IF
|
||||
|
||||
SELECT a.descrip INTO descrip1 FROM mestable a WHERE a.mes = mes_del
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD mes_del
|
||||
END IF
|
||||
|
||||
AFTER FIELD mes_al
|
||||
IF mes_al IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD mes_al
|
||||
END IF
|
||||
|
||||
IF mes_del > mes_al THEN
|
||||
LET numero_msg = 86
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD mes_del
|
||||
END IF
|
||||
|
||||
SELECT a.descrip INTO descrip2 FROM mestable a WHERE a.mes = mes_al
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD mes_al
|
||||
END IF
|
||||
|
||||
AFTER INPUT
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = false
|
||||
RETURN
|
||||
END IF
|
||||
EXIT INPUT
|
||||
END INPUT
|
||||
|
||||
{ DISPLAY "Buscando Informacion... Espere Por Favor" AT 19,14
|
||||
LET SELEC = "SELECT UNIQUE a.num_emp,a.departamento, ",
|
||||
" a.nom1_emp,a.apell1_emp,b.fecha, ",
|
||||
" min(b.hora_ent),MAX(b.hora_sal) ",
|
||||
" FROM adtb00003 a,adtb00023 b ",
|
||||
" WHERE a.num_emp = b.num_emp AND ",
|
||||
" a.nivel_emp != 1 AND ",
|
||||
" YEAR(b.fecha) = p_ano AND ",
|
||||
" MONTH(b.fecha) BETWEEN mes_del AND mes_al AND ",
|
||||
" a.departamento > 0 AND ",
|
||||
criterio CLIPPED,
|
||||
" GROUP BY 1,2,3,4,5 ORDER BY 1,5 "
|
||||
}
|
||||
|
||||
LET SELEC = "SELECT UNIQUE a.num_emp,a.departamento, ",
|
||||
" a.nom1_emp,a.apell1_emp,b.fecha, ",
|
||||
" min(b.hora_ent),MAX(b.hora_sal) ",
|
||||
" FROM adtb00003 a,adtb00023 b ",
|
||||
" WHERE a.num_emp = b.num_emp AND ",
|
||||
#" a.nivel_emp != 1 AND ",
|
||||
" YEAR(b.fecha) = ? AND ",
|
||||
" MONTH(b.fecha) BETWEEN ? AND ? AND ",
|
||||
" a.departamento > 0 AND ",
|
||||
criterio CLIPPED,
|
||||
" GROUP BY 1,2,3,4,5 ORDER BY 1,5 "
|
||||
|
||||
DISPLAY "Buscando Informacion... Espere Por Favor" AT 19,14
|
||||
|
||||
PREPARE busca FROM SELEC
|
||||
DECLARE accion CURSOR FOR busca
|
||||
OPEN accion USING p_ano, mes_del, mes_al
|
||||
|
||||
START REPORT reporte34 TO archivo
|
||||
DISPLAY "Impresion en Proceso... Espere Por Favor" AT 19,14
|
||||
|
||||
# FOREACH busca INTO datos_34.*
|
||||
|
||||
WHILE STATUS != NOTFOUND
|
||||
FETCH accion INTO datos_34.*
|
||||
|
||||
IF STATUS = NOTFOUND THEN
|
||||
EXIT WHILE
|
||||
END IF
|
||||
|
||||
LET fecha1 = NULL
|
||||
LET cant_dia = 0
|
||||
|
||||
IF datos_34.hora_ent > "08:10" THEN
|
||||
SELECT MAX(a.fecha) INTO fecha1
|
||||
FROM adtb00032 a
|
||||
WHERE a.num_emp = datos_34.num_emp AND
|
||||
a.cod_mov = 9 AND
|
||||
a.sec_mov = 99 AND
|
||||
a.fecha <= datos_34.fecha
|
||||
|
||||
SELECT a.num_dia INTO cant_dia
|
||||
FROM adtb00032 a
|
||||
WHERE a.num_emp=datos_34.num_emp AND
|
||||
a.cod_mov = 9 AND
|
||||
a.sec_mov = 99 AND
|
||||
a.fecha = fecha1
|
||||
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET STATUS = 0
|
||||
END IF
|
||||
IF cant_dia IS NULL THEN
|
||||
LET cant_dia = 0
|
||||
END IF
|
||||
|
||||
IF cant_dia IS NULL THEN
|
||||
LET cant_dia = 0
|
||||
END IF
|
||||
|
||||
IF fecha1 IS NULL THEN
|
||||
LET fecha1 = datos_34.fecha - 1
|
||||
END IF
|
||||
|
||||
IF datos_34.fecha >= fecha1 AND
|
||||
datos_34.fecha <= (fecha1+cant_dia) THEN
|
||||
LET fecha1 = datos_34.fecha + 10
|
||||
ELSE
|
||||
LET fecha1 = datos_34.fecha - 10
|
||||
END IF
|
||||
|
||||
IF fecha1 < datos_34.fecha THEN
|
||||
OUTPUT TO REPORT reporte34(datos_34.*)
|
||||
END IF
|
||||
END IF
|
||||
END WHILE
|
||||
# END FOREACH
|
||||
|
||||
FINISH REPORT reporte34
|
||||
RUN imprime
|
||||
END FUNCTION
|
||||
|
||||
REPORT reporte34(x)
|
||||
DEFINE x RECORD
|
||||
num_emp SMALLINT,
|
||||
departamento INTEGER,
|
||||
nom_emp CHAR(14),
|
||||
apell CHAR(14),
|
||||
fecha DATE,
|
||||
hora_ent LIKE adtb00023.hora_ent,
|
||||
hora_sal LIKE adtb00023.hora_sal
|
||||
END RECORD
|
||||
|
||||
|
||||
DEFINE nombre1,apellidos11,apellidos1,nombre,apellidos CHAR(20)
|
||||
DEFINE x_depto1 SMALLINT
|
||||
DEFINE cc_dpto,cc_dpto1 CHAR(1)
|
||||
DEFINE dias_2 SMALLINT,
|
||||
hora CHAR(5)
|
||||
|
||||
OUTPUT
|
||||
LEFT MARGIN 3
|
||||
|
||||
FORMAT
|
||||
PAGE HEADER
|
||||
|
||||
|
||||
LET hora = TIME
|
||||
|
||||
PRINT letras.negrillas_on
|
||||
PRINT COLUMN 1, "adprrp034",
|
||||
COLUMN 17, "R A Y . O . V A C D O M I N I C A N A, S. A.",
|
||||
COLUMN 73, "Pag. ", PAGENO USING "###"
|
||||
PRINT COLUMN 17, " Sistema de Administracion de Personal",
|
||||
COLUMN 73, TODAY USING "dd/mm/yyyy"
|
||||
PRINT COLUMN 17, " Tardanzas Mensual de Empleados",
|
||||
COLUMN 76, hora
|
||||
|
||||
SKIP 1 LINE
|
||||
PRINT COLUMN 1, "De ",descrip1 CLIPPED," A ",descrip2 CLIPPED,
|
||||
" Del ", p_ano USING "&&&&"
|
||||
PRINT COLUMN 1, "----------------------------------------",
|
||||
"----------------------------------------"
|
||||
PRINT COLUMN 30, "Hora",
|
||||
COLUMN 50, "Hora"
|
||||
PRINT COLUMN 1, "Fecha",
|
||||
COLUMN 30, "Entrada",
|
||||
COLUMN 50, "Salida"
|
||||
PRINT COLUMN 1, "----------------------------------------",
|
||||
"----------------------------------------"
|
||||
PRINT letras.negrillas_off
|
||||
|
||||
BEFORE GROUP OF x.num_emp
|
||||
PRINT COLUMN 1, letras.negrillas_on
|
||||
PRINT COLUMN 1,"(",x.num_emp USING "<<<<",")"," ",
|
||||
x.nom_emp CLIPPED," ",x.apell CLIPPED,letras.negrillas_off
|
||||
|
||||
ON EVERY ROW
|
||||
PRINT COLUMN 1, x.fecha USING "dd/mm/yyyy";
|
||||
IF x.hora_ent >= "08:10" THEN
|
||||
PRINT COLUMN 30, x.hora_ent;
|
||||
ELSE
|
||||
PRINT COLUMN 30, " ";
|
||||
END IF
|
||||
IF x.hora_sal <= "04:59" THEN
|
||||
PRINT COLUMN 50, x.hora_sal
|
||||
ELSE
|
||||
PRINT COLUMN 50, " "
|
||||
END IF
|
||||
|
||||
AFTER GROUP OF x.num_emp
|
||||
PRINT COLUMN 10,"Total ---> ", GROUP COUNT(*)
|
||||
WHERE x.hora_ent > "08:09"
|
||||
USING "<<<,<<<"
|
||||
|
||||
ON LAST ROW
|
||||
PRINT letras.negrillas_on
|
||||
PRINT COLUMN 1,"Total Tardanzas ---> ", COUNT(*)
|
||||
WHERE x.hora_ent > "08:09"
|
||||
USING "<<<,<<<"
|
||||
PRINT letras.negrillas_off
|
||||
|
||||
END REPORT
|
||||
|
||||
Reference in New Issue
Block a user