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