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

294 lines
9.5 KiB
Plaintext

{
-------------------------------------------------------------------------------
PROGRAMA : ACPRRP008
OBJETIVO : Listado del control de activos Fijos
PROGRAMADOR : Tadeo A. Ferreras
FECHA REALIZACION : Sept. 28, 1993
-------------------------------------------------------------------------------
}
GLOBALS "acprgb000.4gl"
##### Registro para buscar la inforacion
DEFINE act_fij8 RECORD
codigo SMALLINT,
codigo_n SMALLINT,
descripcion CHAR(30),
cuenta_no CHAR(8),
dcto_compra CHAR(10) ,
fech_compra DATE,
vida_util SMALLINT,
valor_compra DECIMAL(12,2),
depr_acum DECIMAL(12,2)
END RECORD
#### Funcion que realiza la busqueda
FUNCTION acprrp008()
# WHENEVER ERROR CONTINUE
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
OPEN FORM acfmrp008 FROM "acfmrp001"
DISPLAY FORM acfmrp008
CALL pantalla()
DISPLAY "acprrp008" AT 4,3
DISPLAY "Control de Activos Fijos" AT 6,28
LET tipo_papel = 2
CALL msgrp000(tipo_papel)
INPUT BY NAME p_ano1,p_mes1
BEFORE FIELD p_ano1
LET p_ano1 = YEAR(TODAY)
DISPLAY BY NAME p_ano1
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 UNIQUE 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
# Creando criterio de busqueda de inforacion de los activos
CONSTRUCT criterio ON c.codigo,c.cuenta_no
FROM codigo,cuenta_no
LET selec1 =
"SELECT c.codigo,c.codigo_n,c.descripcion,c.cuenta_no,c.fech_compra, ",
" c.fech_compra,c.duracion,SUM(a.monto) ",
"FROM actb00005 c,actb00004 a,actb00002 b ",
"WHERE a.codigo = c.codigo AND a.status_t IS NULL AND c.status_t IS NULL ",
" AND a.fecha <= ? AND a.cod_mov = b.cod_mov AND ",
" b.uso = '1' AND ",criterio CLIPPED," GROUP BY 1,2,3,4,5,6,7"
DISPLAY "<< Buscando Informacion ... Espere Por Favor. >>" AT 19,14
ATTRIBUTE (REVERSE,BOLD)
PREPARE busca_act FROM selec1
DECLARE activos SCROLL CURSOR FOR busca_act
OPEN activos USING fecha_corte
START REPORT reporte_8 TO "C:\\archivo"
DISPLAY " " AT 19,14
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
AT 19,14 ATTRIBUTE (REVERSE)
WHILE STATUS != NOTFOUND
FETCH activos INTO act_fij8.*
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_fij8.depr_acum
FROM actb00004 a,actb00002 b
WHERE a.codigo = act_fij8.codigo AND a.status_t IS NULL AND
a.fecha <= fecha_corte AND a.cod_mov = b.cod_mov AND
b.uso = '2'
IF act_fij8.depr_acum IS NULL THEN
LET act_fij8.depr_acum = 0
END IF
OUTPUT TO REPORT reporte_8(act_fij8.*, fecha_corte)
END WHILE
FINISH REPORT reporte_8
CLEAR SCREEN
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
###### Funcion que genera el reporte
REPORT reporte_8(x,fecha5)
DEFINE x RECORD
codigo SMALLINT,
codigo_n SMALLINT,
descripcion CHAR(30),
cuenta_no CHAR(8),
dcto_compra CHAR(10) ,
fech_compra DATE,
vida_util INTEGER,
valor_compra DECIMAL(12,2),
depr_acum DECIMAL(12,2)
END RECORD
DEFINE hora CHAR(5)
DEFINE fecha5,fecha6 DATE
DEFINE dias INTEGER
DEFINE deprec DECIMAL(8,2)
DEFINE valor_libro,depr_acum,total1,total2,total3,total4,total5,
total6,total7,total8,total9,total10 DECIMAL(12,2)
OUTPUT
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 2
#### Sorteando la salida de informacion
ORDER BY x.cuenta_no,x.codigo
FORMAT
PAGE HEADER
LET hora = time
LET l = ( 140 - LENGTH(p_compania.nombre CLIPPED))/2
PRINT COLUMN 1, comp_on
PRINT COLUMN 1, "acprrp008",
COLUMN l,p_compania.nombre CLIPPED,
COLUMN 133, "Pag. ",pageno USING "###"
LET l = (140 - LENGTH("Sistema de Activos Fijos"))/2
PRINT COLUMN l, "Sistema de Activos Fijos",
COLUMN 133, today using "dd/mm/yy"
LET l = (140 - LENGTH("Control de Activos"))/2
PRINT COLUMN l, "Control de Activos",
COLUMN 136, hora
LET l = (140 - LENGTH("dddddddddddd"))/2
PRINT COLUMN l, "Al ",fecha5 USING "dd/mm/yy"
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"--------------------------------------------------"
PRINT COLUMN 1, "Codigo",
COLUMN 8, "Codigo",
COLUMN 46, "Documento",
COLUMN 57, "Fecha",
COLUMN 73, "Valor",
COLUMN 86, "Depreciacion",
COLUMN 103, "Depreciacion",
COLUMN 122, "Valor",
COLUMN 137, "Vida"
PRINT COLUMN 1, "Viejo",
COLUMN 8, "Nuevo",
COLUMN 46, "Compra",
COLUMN 57, "Compra",
COLUMN 73, "Original",
COLUMN 86, "Acumulada",
COLUMN 103, "Mes",
COLUMN 122, "Libro",
COLUMN 137, "Util"
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"--------------------------------------------------"
# , negrillas_off
BEFORE GROUP OF x.cuenta_no
LET total1 = 0
LET total2 = 0
LET total3 = 0
LET total4 = 0
LET total5 = 0
ON EVERY ROW
#### Realizando los cxalculos de depreciacion
IF x.vida_util IS NULL OR x.vida_util = 0 THEN
LET deprec = 0
ELSE
LET deprec = (x.valor_compra/x.vida_util)/12
END IF
LET valor_libro = (x.valor_compra-x.depr_acum)
IF x.depr_acum > x.valor_compra THEN
LET valor_libro = 1
LET depr_acum = x.valor_compra - 1
LET deprec = 0
END IF
IF total6 IS NULL THEN
LET total6 = 0
END IF
IF total7 IS NULL THEN
LET total7 = 0
END IF
IF total8 IS NULL THEN
LET total8 = 0
END IF
IF total9 IS NULL THEN
LET total9 = 0
END IF
IF total10 IS NULL THEN
LET total10 = 0
END IF
LET total1 = total1 + x.valor_compra
LET total2 = total2 + valor_libro
LET total3 = total3 + x.depr_acum
LET total4 = total4 + deprec
LET total6 = total6 + x.valor_compra
LET total7 = total7 + valor_libro
LET total8 = total8 + x.depr_acum
LET total9 = total9 + deprec
PRINT COLUMN 1,x.codigo USING "&&&&&&",
COLUMN 8,x.codigo_n USING "&&&&&&"," ",x.descripcion CLIPPED,
COLUMN 46,x.dcto_compra CLIPPED,
COLUMN 57,x.fech_compra USING "dd/mm/yy",
COLUMN 67,x.valor_compra USING "###,###,###.##",
COLUMN 84,x.depr_acum USING "###,###,###.##",
COLUMN 105,deprec USING "###,###.##",
COLUMN 116,valor_libro USING "###,###,###.##",
COLUMN 138,x.vida_util 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 67,total1 USING "###,###,###.##",
COLUMN 84,total3 USING "###,###,###.##",
COLUMN 101,total4 USING "###,###,###.##",
COLUMN 116,total2 USING "###,###,###.##"
PRINT COLUMN 1,negrillas_off
ON LAST ROW
PRINT COLUMN 1,negrillas_on
PRINT COLUMN 5,"T O T A L GRAL ",
COLUMN 67,total6 USING "###,###,###.##",
COLUMN 84,total8 USING "###,###,###.##",
COLUMN 101,total9 USING "###,###,###.##",
COLUMN 116,total7 USING "###,###,###.##"
PRINT COLUMN 1,negrillas_off,normal
LET total6 = 0
LET total7 = 0
LET total8 = 0
LET total9 = 0
END REPORT