294 lines
9.5 KiB
Plaintext
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
|
|
|