Files
MBS/PROYECTO/acdir/acprrp002.4gl
T

240 lines
7.7 KiB
Plaintext

{
-------------------------------------------------------------------------------
PROGRAMA : ACPRRP002
OBJETIVO : Listado de depreciacion por tipo
PROGRAMADOR : Tadeo A. Ferreras
FECHA REALIZACION : Sept. 28, 1993
-------------------------------------------------------------------------------
}
GLOBALS "acprgb000.4gl"
##### Definicion de las variables del reporte
DEFINE act_fij2 RECORD
codigo SMALLINT,
descripcion CHAR(30),
cuenta_no CHAR(8),
vida_util DECIMAL(12,2),
valor_compra DECIMAL(12,2),
deprec DECIMAL(12,2),
status_t CHAR(1)
END RECORD
DEFINE tasa1 DECIMAL (8,2)
MAIN
DEFER INTERRUPT
CALL ARG_VAL(1) RETURNING usuarios
CALL ARG_VAL(2) RETURNING clave
CONNECT to "smarmotech" user usuarios USING clave
SELECT a.* INTO p_companias.* FROM companias a
CALL acprrp002()
END MAIN
###### Funcion de busqueda de informacion
FUNCTION acprrp002()
# WHENEVER ERROR CONTINUE
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
OPEN FORM acfmrp002 FROM "acfmrp001"
DISPLAY FORM acfmrp002
DISPLAY "acprrp002" AT 4,3
DISPLAY "Depreciacion por tipo" AT 6,29
# Creando el criterio de busqueda de informacion
INPUT BY NAME p_ano1,p_mes1
AFTER FIELD p_ano1
IF p_ano1 IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD p_ano1
END IF
AFTER FIELD p_mes1
IF p_mes1 IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD p_mes1
END IF
SELECT a.fecha_corte INTO fecha_corte FROM prdtable a
WHERE a.ano = p_ano1 AND a.mes = p_mes1
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD p_ano1
END IF
END INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
CONSTRUCT criterio ON c.codigo,c.cuenta_no
FROM codigo,cuenta_no
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
SELECT prima INTO tasa1 FROM vetb00019 WHERE disponible = "S"
LET selec1 =
"SELECT c.codigo,c.descripcion,c.cuenta_no,c.duracion,SUM(a.monto),c.status_t ",
"FROM actb00001 c,actb00004 a,actb00002 b ",
"WHERE c.codigo=a.codigo AND (c.status_t IS NULL) AND a.status_t IS NULL AND ",
" a.fecha <= ? AND a.cod_mov = b.cod_mov AND b.uso = '1' AND ",
criterio CLIPPED, "GROUP BY c.codigo,c.descripcion,c.cuenta_no,c.duracion,c.status_t"
DISPLAY "<< Buscando Informacion ... Espere Por Favor. >>" AT 19,14
ATTRIBUTE (REVERSE,BOLD)
PREPARE busca_act FROM selec1
DECLARE activos1 SCROLL CURSOR FOR busca_act
OPEN activos1 USING fecha_corte
CALL seleccionarsalida() RETURNING r_output
CALL configureoutput(r_output) RETURNING HANDLER
START REPORT depreciacion TO XML HANDLER handler
DISPLAY " " AT 19,14
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
AT 19,14 ATTRIBUTE (REVERSE)
WHILE STATUS != NOTFOUND
FETCH activos1 INTO act_fij2.*
IF STATUS = NOTFOUND THEN
EXIT WHILE
END IF
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
SELECT SUM(a.monto) INTO act_fij2.deprec FROM actb00004 a
WHERE a.status_t IS NULL AND a.codigo = act_fij2.codigo AND
a.fecha = fecha_corte AND a.cod_mov = 5
IF act_fij2.deprec IS NULL THEN
LET act_fij2.deprec = 0
END IF
###### Si al articulo se le dio de baja la depreciacion es igual a CERO(0)
OUTPUT TO REPORT depreciacion(act_fij2.*)
END WHILE
FINISH REPORT depreciacion
END FUNCTION
#### Funcion que genera el reporte
REPORT depreciacion(x)
DEFINE x RECORD
codigo SMALLINT,
descripcion CHAR(30),
cuenta_no CHAR(8),
vida_util DECIMAL(12,2),
valor_compra DECIMAL(12,2),
deprec DECIMAL(12,2),
status_t CHAR(1)
END RECORD
DEFINE hora CHAR(5)
OUTPUT
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 2
PAGE LENGTH 100
##### Sorteando la salida de la informacion
ORDER BY x.cuenta_no,x.codigo
FORMAT
PAGE HEADER
LET hora = time
LET l = (130 - LENGTH(p_compania.nombre CLIPPED))/2
PRINT COLUMN 1, comp_on
PRINT COLUMN 1, "acprrp002",
COLUMN l, p_companias.nombre CLIPPED,
COLUMN 125, "Pag. ",pageno USING "###"
LET l = (130 - LENGTH("Sistema De Activo Fino"))/2
PRINT COLUMN l, "Sistema De Activo Fino",
COLUMN 125, today using "dd/mm/yyyy"
LET l = (130 - LENGTH("Depreciacion por Tipo"))/2
PRINT COLUMN l, "Depreciacion por Tipo",
COLUMN 128, hora
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"--------------------------------"
PRINT COLUMN 45, "Deprec. Mes",
COLUMN 62, "Deprec. Trim.",
COLUMN 103, "Deprec. Mes",
COLUMN 120, "Deprec. Trim."
PRINT COLUMN 1, "Activo",
COLUMN 45, "Moneda Nac.",
COLUMN 62, "Moneda Nac.",
COLUMN 85, "Cambio",
COLUMN 103, "Moneda Ext.",
COLUMN 120, "Moneda Ext."
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"--------------------------------"
# , negrillas_off
ON EVERY ROW
#### Acumulando los totales de las columnas por cuenta
PRINT COLUMN 1,x.codigo USING "&&&&&&"," ",x.descripcion CLIPPED,
COLUMN 44,x.deprec USING "###,###.##",
COLUMN 62,x.deprec * 3 USING "###,###.##",
COLUMN 85,tasa1 USING "###.##",
COLUMN 103,x.deprec/tasa1 USING "###.##",
COLUMN 120,(x.deprec*3)/tasa1 USING "###,###.##"
AFTER GROUP OF x.cuenta_no
PRINT COLUMN 1,negrillas_on
PRINT COLUMN 5,"T O T A L CUENTA ",x.cuenta_no CLIPPED,
COLUMN 41,GROUP SUM(x.deprec) USING "##,###,###.##",
COLUMN 59,GROUP SUM(x.deprec * 3) USING "##,###,###.##",
COLUMN 96,GROUP SUM(x.deprec)/tasa1 USING "##,###,###.##",
COLUMN 117,GROUP SUM(x.deprec*3)/tasa1 USING "##,###,###.##"
PRINT COLUMN 1,negrillas_off
ON LAST ROW
PRINT COLUMN 1,negrillas_on
PRINT COLUMN 5,"T O T A L GRAL. ",
COLUMN 41,SUM(x.deprec) USING "##,###,###.##",
COLUMN 59,SUM(x.deprec*3) USING "##,###,###.##",
COLUMN 96,SUM(x.deprec)/tasa1 USING "##,###,###.##",
COLUMN 117,SUM(x.deprec*3)/tasa1 USING "##,###,###.##"
PRINT COLUMN 1,negrillas_off,normal
END REPORT