Files
MBS/PROYECTO/nodir/noprrp034.4gl
T

338 lines
12 KiB
Plaintext

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