{ ------------------------------------------------------------------------------- PROGRAMA : NOPRRP034 OBJETIVO : LISTAR LAS HORAS EXTRAS DE LOS EMPLEADOS(FORMULARIO) PROGRAMADOR : Ing. JUAN F. SOTO FECHA REALIZACION : Febrero 20, 1997. ------------------------------------------------------------------------------- } GLOBALS "noprgb000.4gl" DEFINE fecha_inicial,fecha_final,fecha_formulario DATE, formulario_no INTEGER DEFINE tipo CHAR(1) DEFINE h_35,h_100,v_35,v_100 DECIMAL(12,2), primera CHAR(1) FUNCTION noprrp034() DEFINE fecha1,fecha2 DATE ## DEFINICION DEL REGISTRO DE BUSQUEDA CON LOS CAMPOS NECESARIOS PARA ## EL REPORTE DEFINE extras RECORD num_emp LIKE adtb00003.num_emp, departamento LIKE adtb00003.departamento, nivel LIKE adtb00003.nivel_emp, cod_puesto LIKE adtb00003.cod_puesto, nom1_emp CHAR(10), apell1_emp CHAR(10), cedula LIKE adtb00003.cedula, serie LIKE adtb00003.serie, cod_mov LIKE notb00008.cod_mov, cantidad LIKE notb00008.cantidad, valor LIKE notb00008.valor END RECORD # WHENEVER ERROR CONTINUE OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21 CLEAR SCREEN OPEN FORM nofmrp034 FROM "nofmrp034" DISPLAY FORM nofmrp034 CALL pantalla() DISPLAY "noprrp034" AT 4,3 DISPLAY "Horas Extras Empleados" AT 6,32 ## INDICA EL TIPO DE PAPEL NECESARIO PARA EL REPORTE. 1 - PAPEL 9 1/2 X 11 ## 2 - PAPEL 14 7/8 X 11 LET tipo_papel = 1 CALL msgrp000(tipo_papel) ## AQUI SE INDICA EL CRITERIO DE BUSQUEDA DEL REPORTE INPUT BY NAME fecha_inicial,fecha_final,formulario_no,fecha_formulario AFTER INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF IF fecha_inicial > fecha_final THEN LET numero_msg = 86 CALL msg(numero_msg) NEXT FIELD fecha_inicial END IF EXIT INPUT END INPUT ## SE SELECCIONAN LOS CAMPOS NECESARIOS PARA EL REPORTE DECLARE buscar CURSOR FOR SELECT a.num_emp,b.departamento,b.nivel_emp,b.cod_puesto,b.nom1_emp, b.apell1_emp,b.cedula,b.serie,a.cod_mov,SUM(a.cantidad),SUM(a.valor) FROM adtb00003 b,notb00008 a WHERE a.num_emp = b.num_emp AND a.cod_mov IN (2,3) AND a.fecha BETWEEN fecha_inicial AND fecha_final AND a.status_t IS NULL GROUP BY 1,2,3,4,5,6,7,8,9 IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF DISPLAY "Buscando Informacion ... Espere Por Favor" AT 19,14 ATTRIBUTE (REVERSE,BOLD) ## SE PREPARA LA INFORMACION SELECCIONADA DISPLAY " " AT 19,14 DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>" AT 19,14 ATTRIBUTE (REVERSE) START REPORT form_extras TO "C:\\archivo" ## SE BUSCA LA INFORMACION DE LOS CAMPOS DEL REGISTRO PARA DARLE ## SALIDA AL REPORTE FOREACH buscar INTO extras.* IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF OUTPUT TO REPORT form_extras(extras.*,fecha1,fecha2) END FOREACH FINISH REPORT form_extras CLEAR SCREEN RUN "type C:\\archivo > %USPRINT%" END FUNCTION ## DEFINICION DEL REGISTRO DE IMPRESION CON LOS CAMPOS NECESARIOS PARA ## EL REPORTE REPORT form_extras(x,fech1,fech2) DEFINE x RECORD num_emp LIKE notb00008.num_emp, departamento LIKE adtb00003.departamento, nivel LIKE adtb00003.nivel_emp, cod_puesto LIKE adtb00003.cod_puesto, nom1_emp CHAR(10), apell1_emp CHAR(10), cedula LIKE adtb00003.cedula, serie LIKE adtb00003.serie, cod_mov LIKE notb00008.cod_mov, cantidad LIKE notb00008.cantidad, valor LIKE notb00008.valor END RECORD ## DEFINICION DE LAS VARIABLES DE IMPRESION DEFINE doble_on CHAR(2) DEFINE doble_off CHAR(2) DEFINE negrillas_on CHAR(2) DEFINE negrillas_off CHAR(2) DEFINE comp_on CHAR(2) DEFINE comp_off CHAR(2) DEFINE doce CHAR(2) DEFINE normal CHAR(2) DEFINE hora CHAR(5) DEFINE l smallint DEFINE varia CHAR(11) DEFINE fech1,fech2 DATE DEFINE descu,descuento,porciento1,porciento2,acumulado DECIMAL(5,2) DEFINE acumulado1,total,total1,total2,total3,total4 DECIMAL(12,2) DEFINE descuento1,porcentaje1,porcentaje2,acumula,acumula1 DECIMAL(5,2) OUTPUT ## DEFINICION DE LOS MARGENES DE IMPRESION TOP MARGIN 0 LEFT MARGIN 0 BOTTOM MARGIN 3 ORDER BY x.num_emp,x.cod_mov FORMAT PAGE HEADER LET doble_on = ASCII 14 LET doble_off = ASCII 20 LET negrillas_on = ASCII 27, ASCII 69 LET negrillas_off = ASCII 27, ASCII 70 LET comp_on = ASCII 15 LET comp_off = ASCII 18 LET doce = ASCII 27, ASCII 77 LET normal = ASCII 27, ASCII 80 LET hora = time IF tipo = "Q" THEN LET varia = "QUINCENALES" END IF IF tipo = "S" THEN LET varia = "SEMANALES" END IF ## SE CALCULA LA LONGITUD DE LA VARIABLE -VARIA- LET l = (90 - LENGTH(varia))/2 LET primera = "S" ## AQUI SE INDICA LA IMPRESION DE LOS ENCABEZADOS PRINT COLUMN 1,doce, negrillas_on PRINT COLUMN 2, "FORM.DGT-2", COLUMN 52, " Republica Dominicana " PRINT COLUMN 52, " SECRETARIA DE ESTADO DE TRABAJO " PRINT PRINT COLUMN 52, " CARTEL DE HORAS EXTRAORDINARIAS DE TRABAJO " PRINT COLUMN 1, "No. DE REGISTRO: ",negrillas_off,"7332/82",negrillas_on, COLUMN 53, "(De conformidad con el Art. 203 del Codigo de Trabajo", COLUMN 148, " No. : ", formulario_no using "######" PRINT COLUMN 1, "No. PLANILLA : ",negrillas_off,"13.003",negrillas_on, COLUMN 55, " y el Art.26 del Reglamento No.258-93) ", COLUMN 148, " Fecha : ", fecha_formulario using "dd/mm/yy" PRINT PRINT COLUMN 1, "NOMBRE DEL ESTABLECIMIENTO : ",negrillas_off,"RAY-O-VAC DOMINICANA, S.A.",negrillas_on PRINT PRINT COLUMN 1, "DIRECCION : ",negrillas_off, "AVE. ROMULO BETANCOURT, ZONA INDUSTRI", "AL DE HERRERA", COLUMN 146, negrillas_on,"TELEFONO: ",negrillas_off,"530-5409" PRINT negrillas_on PRINT COLUMN 1, "CLASE EMPRESA : ",negrillas_off,"INDUSTRIAL ", COLUMN 40, negrillas_on, "RAMA DE ACTIVIDAD ECONOMICA: ",negrillas_off, "FABRICACION Y VENTAS DE", " PILAS SECAS" PRINT COLUMN 2, "---------------------------------------------", "---------------------------------------------", "---------------------------------------------", "-------------------------" PRINT COLUMN 5, " IDENTIFICACION DEL TRABAJADOR ", COLUMN 69, "|", COLUMN 81, "| HORAS TRABAJADAS |", COLUMN 105, "|PORC. HORAS|" PRINT COLUMN 2, "----------------------------------", "---------------------------------|", COLUMN 81, "|--------------------|", COLUMN 105, "|-----------|", COLUMN 120, "Causa de la" PRINT COLUMN 2, "Nombre", COLUMN 53, "|", COLUMN 56, "Cedula-Serie", COLUMN 69, "|", COLUMN 71, "Fecha", COLUMN 81, "|Manana", COLUMN 89, "Tarde ", COLUMN 96, "Noche |", COLUMN 105, "| 35%", COLUMN 112, " 100%|", COLUMN 120, "prolongacion", COLUMN 146, "Pago Total" PRINT COLUMN 2, "---------------------------------------------", "---------------------------------------------", "---------------------------------------------", "-------------------------",negrillas_off PRINT COLUMN 1,negrillas_off ## AQUI COMIENZA LA IMPRESION DEL DETALLE BEFORE GROUP OF x.num_emp LET total = 0 PRINT COLUMN 1, " ",x.nom1_emp CLIPPED," ",x.apell1_emp CLIPPED, COLUMN 58, x.cedula USING "<<<<<<<<","-",x.serie USING "<<<", COLUMN 71, nombre_mes, COLUMN 80, "|______|", # COLUMN 88, "______|", COLUMN 88, '___"__|', COLUMN 95, "______|"; ON EVERY ROW LET total = total + x.valor IF h_35 IS NULL THEN LET h_35 = 0 END IF IF h_100 IS NULL THEN LET h_100 = 0 END IF IF v_35 IS NULL THEN LET v_35 = 0 END IF IF v_100 IS NULL THEN LET v_100 = 0 END IF IF x.cod_mov = 2 THEN LET h_35 = h_35 + x.cantidad LET v_35 = v_35 + x.valor PRINT COLUMN 105, x.cantidad USING "###.##"; ELSE LET h_100 = h_100 + x.cantidad LET v_100 = v_100 + x.valor PRINT COLUMN 112, x.cantidad USING "###.##"; END IF AFTER GROUP OF x.num_emp IF primera = "S" THEN PRINT COLUMN 120, " PRODUCCION "; LET primera = "N" ELSE PRINT COLUMN 120, ' " ' ; END IF PRINT COLUMN 145, total USING "##,###.##" PRINT COLUMN 81, "| |", COLUMN 88, " |", COLUMN 95, " |" ON LAST ROW SKIP 1 LINES PRINT COLUMN 1, negrillas_on PRINT COLUMN 2, "TOTAL HORAS", COLUMN 101, h_35 using "###,###.##", COLUMN 108, h_100 using "###,###.##", COLUMN 144, v_35 + v_100 using "###,###.##" PRINT COLUMN 2, "---------------------------------------------", "---------------------------------------------", "---------------------------------------------", "-------------------------" PRINT COLUMN 2, "Registrado por:" SKIP 4 LINES PRINT COLUMN 1, " JUANA CRUZ ORTEGA " PRINT COLUMN 1, " GERENTE DE PERSONAL " PRINT COLUMN 1, "_______________________________________", COLUMN 123, "_______________________________________" PRINT COLUMN 1, " FIRMA DEL EMPLEADOR O REPRESENTANTE ", COLUMN 123, " FUNCIONARIO RESPONSABLE " SKIP 3 LINES PRINT COLUMN 22, "NOTA: 1.- Este cartel debera ser comunicado a la D", COLUMN 72, "ireccion General de Trabajo durante los diez (10) di", COLUMN 124, "as subsiguientes a cada mes." PRINT PRINT COLUMN 22, " 2.- Ante requerimiento debera ser presentado", COLUMN 72, " a las autoridades de trabajo." PRINT PRINT COLUMN 22, "DISTRIBUCION: Original al Interesado." PRINT COLUMN 22, " Original al Distrito o Representacio", COLUMN 72, "n Local de Trabajo." LET h_35 = 0 LET h_100 = 0 LET v_35 = 0 LET v_100 = 0 END REPORT