436 lines
12 KiB
Plaintext
436 lines
12 KiB
Plaintext
{
|
|
===========================================================================
|
|
PROGRAMA : PRPRRP002
|
|
SISTEMA : PRODUCCION
|
|
OBJETIVO : VALIDACION REGISTRO HORAS PERSONAL NO PRODUCTIVO.
|
|
AUTOR : Tadeo. A. Ferreras F.
|
|
FECHA : SEPT. 15, 1994
|
|
===========================================================================
|
|
}
|
|
|
|
GLOBALS
|
|
"prprgb000.4gl"
|
|
DEFINE t_hn_dir,t_hn_ind,t_he_dir,t_he_ind DECIMAL(10,2)
|
|
DEFINE tt_hn_dir,tt_hn_ind,tt_he_dir,tt_he_ind DECIMAL(10,2)
|
|
DEFINE repor_2 RECORD
|
|
num_emp SMALLINT,
|
|
departamento SMALLINT,
|
|
nom1_emp CHAR(10),
|
|
nom2_emp CHAR(14),
|
|
apell1_emp CHAR(14),
|
|
apell2_emp CHAR(14),
|
|
nom_puesto CHAR(28),
|
|
cod_puesto SMALLINT
|
|
END RECORD
|
|
|
|
FUNCTION prprrp002()
|
|
DEFINE opcion CHAR(1)
|
|
|
|
OPTIONS
|
|
PROMPT LINE 23,
|
|
FORM LINE 8,
|
|
ERROR LINE 23
|
|
|
|
OPEN FORM prfmrp002 FROM "prfmrp001"
|
|
DISPLAY FORM prfmrp002
|
|
|
|
LET tipo_papel = 2
|
|
CALL msgrp000(tipo_papel)
|
|
|
|
INPUT BY NAME prtb02.num_semana
|
|
|
|
AFTER FIELD num_semana
|
|
IF prtb02.num_semana IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD num_semana
|
|
END IF
|
|
|
|
SELECT UNIQUE a.semana_del,a.semana_al INTO prtb02.semana_del,prtb02.semana_al
|
|
FROM prtb00002 a
|
|
WHERE a.num_semana = prtb02.num_semana AND
|
|
a.status_t IS NULL
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD num_semana
|
|
END IF
|
|
|
|
DISPLAY BY NAME prtb02.semana_del,prtb02.semana_al
|
|
END INPUT
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
|
|
PROMPT "Es el rango de fecha deseado [S/N]...? " FOR CHAR opcion
|
|
LET opcion = UPSHIFT(opcion)
|
|
|
|
IF opcion = "S" THEN
|
|
START REPORT reporte_2 TO "C:\\archivo"
|
|
|
|
DECLARE busca CURSOR FOR
|
|
SELECT UNIQUE a.num_emp,a.departamento,b.nom1_emp,b.nom2_emp,b.apell1_emp,
|
|
b.apell2_emp,c.nom_puesto,b.cod_puesto
|
|
FROM prtb00003 a,adtb00003 b,adtb00004 c
|
|
WHERE (a.num_semana = prtb02.num_semana and
|
|
a.departamento between 6000 and 6500 and
|
|
a.num_emp = b.num_emp and
|
|
b.nivel_emp != 2 and
|
|
a.status_t is null) and
|
|
b.cod_puesto = c.cod_puesto
|
|
|
|
DISPLAY "Buscando Informacion... Espere Por Favor" AT 17,14
|
|
|
|
|
|
DISPLAY "Reporte Generandose ... Espere Por Favor" AT 17,14
|
|
|
|
FOREACH busca INTO repor_2.*
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
|
|
OUTPUT TO REPORT reporte_2(repor_2.*)
|
|
END FOREACH
|
|
|
|
DECLARE busca1 CURSOR FOR
|
|
SELECT UNIQUE a.num_emp,'6199',b.nom1_emp,b.nom2_emp,b.apell1_emp,
|
|
b.apell2_emp,c.nom_puesto,b.cod_puesto
|
|
FROM prtb00003 a,adtb00003 b,adtb00004 c
|
|
WHERE (a.num_semana = prtb02.num_semana and
|
|
a.departamento between 6000 and 6500 and
|
|
a.num_emp = b.num_emp and
|
|
b.nivel_emp = 2 and
|
|
a.status_t is null) and
|
|
b.cod_puesto = c.cod_puesto
|
|
|
|
FOREACH busca1 INTO repor_2.*
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
|
|
OUTPUT TO REPORT reporte_2(repor_2.*)
|
|
END FOREACH
|
|
FINISH REPORT reporte_2
|
|
END IF
|
|
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
|
|
|
|
REPORT reporte_2(x)
|
|
DEFINE x RECORD
|
|
num_emp SMALLINT,
|
|
departamento SMALLINT,
|
|
nom1_emp CHAR(10),
|
|
nom2_emp CHAR(14),
|
|
apell1_emp CHAR(14),
|
|
apell2_emp CHAR(14),
|
|
nom_puesto CHAR(28),
|
|
cod_puesto SMALLINT
|
|
END RECORD,
|
|
id SMALLINT
|
|
|
|
OUTPUT
|
|
LEFT MARGIN 0
|
|
|
|
ORDER BY x.departamento,x.cod_puesto
|
|
|
|
format
|
|
page header
|
|
let comp_on = ascii 15
|
|
let comp_off = ascii 18
|
|
let doce = ascii 27, ascii 77
|
|
let doble_on = ascii 14
|
|
let doble_off = ascii 20
|
|
let hora = time
|
|
|
|
PRINT comp_on
|
|
PRINT COLUMN 1, "prprrp002",
|
|
COLUMN 49, " R A Y .O. V A C D O M I N I C A N A, S. A.",
|
|
COLUMN 141, "Pag. ",pageno USING "###"
|
|
PRINT COLUMN 49, " SISTEMA DE PRODUCCION ",
|
|
COLUMN 141, today using "dd/mm/yy"
|
|
PRINT COLUMN 49, "VALIDACION HORAS DIARIAS ADM Y PERSONAL NO DE PRODUCCION",
|
|
COLUMN 144, hora
|
|
PRINT COLUMN 1, "NUMERO SEMANA: ",prtb02.num_semana USING "&&&&"," ",
|
|
": DEL ",prtb02.semana_del USING "dd/mm/yy",
|
|
" AL ",prtb02.semana_al USING "dd/mm/yy"
|
|
|
|
PRINT "====================================================================",
|
|
"====================================================================",
|
|
"============"
|
|
PRINT COLUMN 64,
|
|
"| H O R A S I N D I R E C T A S ",
|
|
" |"
|
|
|
|
PRINT COLUMN 64, "| NORMALES |",
|
|
COLUMN 120, " EXTRAS |"
|
|
|
|
PRINT COLUMN 64,"|",
|
|
COLUMN 67, "S",
|
|
5 spaces, "D",
|
|
5 spaces, "L",
|
|
5 spaces, "M",
|
|
5 spaces, "M",
|
|
5 spaces, "J",
|
|
5 spaces, "V |",
|
|
|
|
2 spaces, "S",
|
|
5 spaces, "D",
|
|
5 spaces, "L",
|
|
5 spaces, "M",
|
|
5 spaces, "M",
|
|
5 spaces, "J",
|
|
5 spaces, "V |"
|
|
|
|
PRINT "====================================================================",
|
|
"====================================================================",
|
|
"============"
|
|
|
|
BEFORE GROUP OF x.departamento
|
|
IF x.departamento != 6199 THEN
|
|
SELECT a.nom_dpto INTO nom_dpto FROM adtb00001 a
|
|
WHERE a.departamento = x.departamento AND a.status_t IS NULL
|
|
END IF
|
|
IF x.departamento = 6199 THEN
|
|
LET nom_dpto = "SUPERVISORES"
|
|
END IF
|
|
|
|
LET t_hn_ind = 0
|
|
LET t_he_ind = 0
|
|
LET idx = 0
|
|
|
|
BEFORE GROUP OF x.cod_puesto
|
|
IF x.departamento >= 6000 and
|
|
x.departamento <= 6199 THEN
|
|
|
|
IF x.cod_puesto = 3 OR x.cod_puesto = 27 OR x.cod_puesto = 13 OR
|
|
x.cod_puesto = 14 THEN
|
|
LET idx = idx + 1
|
|
|
|
IF idx = 1 THEN
|
|
PRINT doble_on,nom_dpto clipped,doble_off
|
|
SKIP 1 LINE
|
|
END IF
|
|
END IF
|
|
END IF
|
|
|
|
IF x.departamento >= 6199 THEN
|
|
|
|
LET idx = idx + 1
|
|
|
|
IF idx = 1 THEN
|
|
PRINT doble_on,nom_dpto clipped,doble_off
|
|
SKIP 1 LINE
|
|
END IF
|
|
END IF
|
|
|
|
ON EVERY ROW
|
|
IF x.departamento >= 6000 AND
|
|
x.departamento < 6199 THEN
|
|
PRINT COLUMN 64, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|"
|
|
|
|
IF x.cod_puesto = 3 OR x.cod_puesto = 27 OR x.cod_puesto = 13 OR
|
|
x.cod_puesto = 14 THEN
|
|
|
|
PRINT COLUMN 1,x.num_emp using "&&&"," ",x.nom1_emp clipped,
|
|
" ",x.apell1_emp CLIPPED,
|
|
COLUMN 35, x.nom_puesto CLIPPED,
|
|
COLUMN 64, "|";
|
|
|
|
LET t_hn_ind = 0
|
|
LET t_he_ind = 0
|
|
LET prtb03.fecha = prtb02.semana_del
|
|
LET l = 65
|
|
|
|
LET prtb03.fecha = prtb02.semana_del
|
|
FOR j = 1 TO 7
|
|
LET prtb03.hn_ind = 0
|
|
IF x.departamento != 6199 THEN
|
|
SELECT a.hn_ind INTO prtb03.hn_ind FROM prtb00003 a
|
|
WHERE a.departamento = x.departamento AND a.num_emp = x.num_emp AND
|
|
a.fecha = prtb03.fecha AND a.status_t IS NULL
|
|
END IF
|
|
IF x.departamento = 6199 THEN
|
|
SELECT a.hn_ind INTO prtb03.hn_ind FROM prtb00003 a
|
|
WHERE a.num_emp = x.num_emp AND
|
|
a.fecha = prtb03.fecha AND a.status_t IS NULL
|
|
END IF
|
|
IF prtb03.hn_ind IS NULL THEN
|
|
LET prtb03.hn_ind = 0
|
|
END IF
|
|
|
|
PRINT COLUMN l, prtb03.hn_ind USING "##.##","|";
|
|
LET l = l + 6
|
|
LET t_hn_ind = t_hn_ind + prtb03.hn_ind
|
|
LET tt_hn_ind = tt_hn_ind + prtb03.hn_ind
|
|
LET prtb03.fecha = prtb03.fecha + 1
|
|
END FOR
|
|
|
|
LET prtb03.fecha = prtb02.semana_del
|
|
FOR j = 1 TO 7
|
|
LET prtb03.he_ind = 0
|
|
|
|
IF x.departamento != 6199 THEN
|
|
SELECT a.he_ind INTO prtb03.he_ind FROM prtb00003 a
|
|
WHERE a.departamento = x.departamento AND a.num_emp = x.num_emp AND
|
|
a.fecha = prtb03.fecha AND a.status_t IS NULL
|
|
END IF
|
|
|
|
IF x.departamento = 6199 THEN
|
|
SELECT a.he_ind INTO prtb03.he_ind FROM prtb00003 a
|
|
WHERE a.num_emp = x.num_emp AND
|
|
a.fecha = prtb03.fecha AND a.status_t IS NULL
|
|
END IF
|
|
|
|
IF prtb03.he_ind IS NULL THEN
|
|
LET prtb03.he_ind = 0
|
|
END IF
|
|
|
|
PRINT COLUMN l, prtb03.he_ind USING "##.##","|";
|
|
LET l = l + 6
|
|
LET t_he_ind = t_he_ind + prtb03.he_ind
|
|
LET tt_he_ind = tt_he_ind + prtb03.he_ind
|
|
LET prtb03.fecha = prtb03.fecha + 1
|
|
END FOR
|
|
PRINT COLUMN l," "
|
|
PRINT "--------------------------------------------------------------------",
|
|
"--------------------------------------------------------------------",
|
|
"------------"
|
|
END IF
|
|
END IF
|
|
|
|
IF x.departamento >= 6199 THEN
|
|
|
|
PRINT COLUMN 64, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|",
|
|
5 spaces, "|"
|
|
|
|
PRINT COLUMN 1,x.num_emp using "&&&&"," ",x.nom1_emp clipped,", ",x.apell1_emp,
|
|
COLUMN 35, x.nom_puesto CLIPPED,
|
|
COLUMN 64, "|";
|
|
|
|
LET t_hn_ind = 0
|
|
LET t_he_ind = 0
|
|
LET prtb03.fecha = prtb02.semana_del
|
|
LET l = 65
|
|
|
|
LET prtb03.fecha = prtb02.semana_del
|
|
FOR j = 1 TO 7
|
|
LET prtb03.hn_ind = 0
|
|
|
|
IF x.departamento != 6199 THEN
|
|
SELECT a.hn_ind INTO prtb03.hn_ind FROM prtb00003 a
|
|
WHERE a.departamento = x.departamento AND a.num_emp = x.num_emp AND
|
|
a.fecha = prtb03.fecha AND a.status_t IS NULL
|
|
END IF
|
|
|
|
IF x.departamento = 6199 THEN
|
|
SELECT a.hn_ind INTO prtb03.hn_ind FROM prtb00003 a
|
|
WHERE a.num_emp = x.num_emp AND
|
|
a.fecha = prtb03.fecha AND a.status_t IS NULL
|
|
END IF
|
|
|
|
IF prtb03.hn_ind IS NULL THEN
|
|
LET prtb03.hn_ind = 0
|
|
END IF
|
|
|
|
PRINT COLUMN l, prtb03.hn_ind USING "##.##","|";
|
|
LET l = l + 6
|
|
LET t_hn_ind = t_hn_ind + prtb03.hn_ind
|
|
LET tt_hn_ind = tt_hn_ind + prtb03.hn_ind
|
|
LET prtb03.fecha = prtb03.fecha + 1
|
|
END FOR
|
|
|
|
LET prtb03.fecha = prtb02.semana_del
|
|
FOR j = 1 TO 7
|
|
LET prtb03.he_ind = 0
|
|
IF x.departamento != 6199 THEN
|
|
SELECT a.he_ind INTO prtb03.he_ind FROM prtb00003 a
|
|
WHERE a.departamento = x.departamento AND a.num_emp = x.num_emp AND
|
|
a.fecha = prtb03.fecha AND a.status_t IS NULL
|
|
END IF
|
|
|
|
IF x.departamento = 6199 THEN
|
|
SELECT a.he_ind INTO prtb03.he_ind FROM prtb00003 a
|
|
WHERE a.num_emp = x.num_emp AND
|
|
a.fecha = prtb03.fecha AND a.status_t IS NULL
|
|
END IF
|
|
IF prtb03.he_ind IS NULL THEN
|
|
LET prtb03.he_ind = 0
|
|
END IF
|
|
|
|
PRINT COLUMN l, prtb03.he_ind USING "##.##","|";
|
|
LET l = l + 6
|
|
LET t_he_ind = t_he_ind + prtb03.he_ind
|
|
LET tt_he_ind = tt_he_ind + prtb03.he_ind
|
|
LET prtb03.fecha = prtb03.fecha + 1
|
|
END FOR
|
|
PRINT COLUMN l," "
|
|
PRINT "--------------------------------------------------------------------",
|
|
"--------------------------------------------------------------------",
|
|
"------------"
|
|
END IF
|
|
|
|
AFTER GROUP OF x.departamento
|
|
IF x.departamento >= 6000 AND
|
|
x.departamento <= 6199 THEN
|
|
|
|
IF x.cod_puesto = 3 OR x.cod_puesto = 27 OR x.cod_puesto = 13 OR
|
|
x.cod_puesto = 14 THEN
|
|
|
|
PRINT "-----------------------------------------------------------------",
|
|
"-----------------------------------------------------------------",
|
|
"------------------"
|
|
END IF
|
|
END IF
|
|
|
|
IF x.departamento >= 6199 THEN
|
|
|
|
PRINT "-----------------------------------------------------------------",
|
|
"-----------------------------------------------------------------",
|
|
"------------------"
|
|
END IF
|
|
|
|
ON LAST ROW
|
|
SKIP 1 LINE
|
|
PRINT "Total Registros Impresos===> ",COUNT(*) USING "####"
|
|
print comp_off
|
|
END REPORT
|