Files
MBS/PROYECTO/addir/adprrp041.old.txt
T

284 lines
8.5 KiB
Plaintext

{
-------------------------------------------------------------------------------
PROGRAMA : adprrp041
OBJETIVO : LISTAR EL SEGURO DE VIDA POR EMPLEADO
PROGRAMADOR : Oscar Castillo
FECHA REALIZACION : Tuesday, 28 November, 2000
-------------------------------------------------------------------------------
}
GLOBALS "adprgb000.4gl"
FUNCTION adprrp041()
## DEFINICION DEL REGISTRO DE BUSQUEDA CON LOS CAMPOS NECESARIOS PARA
## EL REPORTE
DEFINE c_plan LIKE adtb00003.cod_plan
DEFINE sueldo LIKE adtb00003.sueldo_ac
DEFINE adtb40 RECORD LIKE adtb00040.*
DEFINE empleado LIKE adtb00003.num_emp
DEFINE seguro RECORD LIKE adtb00003.*,
nom1,nom2,apell1,apell2 CHAR(15),
depto LIKE adtb00003.departamento,
nomina LIKE notb00008.num_nomi,
m_v98,m_v22 DECIMAL (10,2),
l_porc_vida,vida,myd,comision DECIMAL(12,2),
nombre CHAR(60)
WHENEVER ERROR CONTINUE
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
CLEAR SCREEN
OPEN FORM adfmrp041 FROM "adfmrp041"
DISPLAY FORM adfmrp041
CALL pantalla()
DISPLAY "adprrp041" AT 4,3 ATTRIBUTE(RED)
DISPLAY "Seguro De Vida " AT 6,31 ATTRIBUTE(BLACK)
## 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)
CALL defecto(impresor) RETURNING imprime, letras.*, archivo
## AQUI SE INDICA EL CRITERIO DE BUSQUEDA DEL REPORTE
CONSTRUCT BY NAME criterio ON a.cod_plan,a.departamento
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
## SE SELECCIONAN LOS CAMPOS NECESARIOS PARA EL REPORTE
LET SELEC = " SELECT a.* ",
" FROM adtb00003 a ",
" WHERE a.status_t IS NULL AND ",
" a.cod_plan IS NOT NULL AND ",
criterio clipped," ORDER BY 1 "
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
PREPARE busca FROM selec
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
## SE DECLARA EL CURSOR PARA BUSCAR LA INFORMACION SELECCIONADA
DECLARE accion CURSOR FOR busca
OPEN accion
DISPLAY " " AT 19,14
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
AT 19,14 ATTRIBUTE (REVERSE)
START REPORT list_seg1 TO archivo
## SE BUSCA LA INFORMACION DE LOS CAMPOS DEL REGISTRO PARA DARLE
## SALIDA AL REPORTE
FOREACH accion INTO seguro.*
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
IF status = NOTFOUND THEN
EXIT FOREACH
ELSE
LET nombre = seguro.nom1_emp CLIPPED," ",seguro.nom2_emp CLIPPED,
" ",seguro.apell1_emp CLIPPED," ",seguro.apell2_emp clipped
#DISPLAY " PLAN :",seguro.cod_plan
IF seguro.sueldo_ac IS NULL THEN
LET seguro.sueldo_ac = 0
END IF
#display "sueldo ",seguro.sueldo_ac
SELECT a.*
INTO adtb40.*
FROM adtb00040 a
WHERE a.cod_plan = seguro.cod_plan
AND a.status_t IS NULL
IF STATUS != NOTFOUND THEN
IF adtb40.porc_vida IS NULL THEN
LET adtb40.porc_vida = 0
END IF
IF adtb40.porc_mid IS NULL THEN
LET adtb40.porc_mid = 0
END IF
IF adtb40.porc_comision IS NULL THEN
LET adtb40.porc_comision = 0
END IF
#display "ad ",adtb40.porc_comision
LET vida = (seguro.sueldo_ac * (adtb40.porc_vida / 100))
LET myd = (seguro.sueldo_ac * (adtb40.porc_mid / 100))
LET comision = (seguro.sueldo_ac * (adtb40.porc_comision / 100))
OUTPUT TO REPORT list_seg1(seguro.*,nombre,vida,myd,comision,adtb40.*)
END IF
END IF
END FOREACH
FINISH REPORT list_seg1
RUN imprime
CLEAR SCREEN
END FUNCTION
## DEFINICION DEL REGISTRO DE IMPRESION CON LOS CAMPOS NECESARIOS PARA
## EL REPORTE
REPORT list_seg1(x,p_nombre,p_vida,p_myd,p_comision,p)
DEFINE x RECORD LIKE adtb00003.*
DEFINE p RECORD LIKE adtb00040.*
DEFINE p_depto LIKE adtb00003.departamento
DEFINE nom_dep LIKE adtb00033.nom_dpto
DEFINE p_sueldo LIKE adtb00003.sueldo_ac
DEFINE p_plan LIKE adtb00003.cod_plan
DEFINE p_emp LIKE adtb00003.num_emp
DEFINE p_nombre CHAR(60),
v98,v22,tt_v98,t_v98,tt_v22,t_v22 DECIMAL(10,2),
p_vida,p_myd,p_comision DECIMAL(12,2)
## DEFINICION DE LAS VARIABLES DE IMPRESION
DEFINE hora CHAR(5)
OUTPUT
## DEFINICION DE LOS MARGENES DE IMPRESION
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 3
ORDER BY x.cod_plan,x.departamento,x.num_emp
FORMAT
PAGE HEADER
LET hora = time
## AQUI SE INDICA LA IMPRESION DE LOS ENCABEZADOS
PRINT COLUMN 1, letras.normal,letras.negrillas_on,letras.doble_on,letras.comp_on
PRINT COLUMN 2, "adprrp041",
COLUMN 42, "R A Y . O . V A C D O M I N I C A N A, S. A.",
COLUMN 128, "Pag. ",pageno using "###"
PRINT COLUMN 42, " Sistema de Administracion de Personal",
COLUMN 128, today using "dd/mm/yyyy"
PRINT COLUMN 42, " Seguro De Vida ",
COLUMN 133, hora
SKIP 2 LINES
PRINT COLUMN 2, "---------------------------------------------------",
"---------------------------------------------",
"-------------------------------------------"
PRINT COLUMN 2, "Departamento",
COLUMN 16, "Ficha Empleado",
COLUMN 32, " Nombre",
COLUMN 87, "% Vida",
COLUMN 105, "% MyD",
COLUMN 123, "% Comision"
PRINT COLUMN 2, "----------------------------------------------------",
"--------------------------------------------",
"-------------------------------------------"
PRINT letras.negrillas_off
## AQUI SE INDICA LA IMPRESION DEL DETALLE
BEFORE GROUP OF x.cod_plan
PRINT letras.negrillas_on
PRINT COLUMN 2, x.cod_plan USING "#####"," ",p.plan_descrip CLIPPED
PRINT letras.negrillas_off
SKIP 1 LINE
BEFORE GROUP OF x.departamento
SELECT a.nom_dpto
INTO nom_dep
FROM adtb00033 a
WHERE a.departamento = x.departamento
AND a.status_t IS NULL
PRINT letras.negrillas_on
PRINT COLUMN 7, x.departamento USING "#####"," ",nom_dep CLIPPED
PRINT letras.negrillas_off
#BEFORE GROUP OF x.num_emp
ON EVERY ROW
#display "porsien ",p_vida," - ",p_myd," - ",p_comision," - "
PRINT COLUMN 20, x.num_emp USING "###",
COLUMN 35, p_nombre CLIPPED,
COLUMN 86, p_vida USING "###,###.##",
COLUMN 104, p_myd USING "###,###.##",
COLUMN 121, p_comision USING "###,###.##"
AFTER GROUP OF x.departamento
SKIP 2 LINES
PRINT COLUMN 10, "Total Por Departamento : ",
COLUMN 86, GROUP SUM(p_vida) USING "#,###,###.##",
COLUMN 104, GROUP SUM(p_myd) USING "#,###,###.##",
COLUMN 121, GROUP SUM(p_comision) USING "#,###,###.##"
ON LAST ROW
SKIP 2 LINE
PRINT COLUMN 10, "Total General : ",
COLUMN 86, SUM(p_vida) USING "#,###,###.##",
COLUMN 104, SUM(p_myd) USING "#,###,###.##",
COLUMN 121, SUM(p_comision) USING "#,###,###.##"
END REPORT