Files

284 lines
9.5 KiB
Plaintext

{
-------------------------------------------------------------------------------
PROGRAMA : ACPRRP005
OBJETIVO : Activos C/Tasa de Adquisicion
PROGRAMADOR : Tadeo A. Ferreras
FECHA REALIZACION : Sept. 28, 1993
-------------------------------------------------------------------------------
}
DEFINE act_fij4 RECORD
codigo SMALLINT,
descripcion CHAR(30),
cuenta_no CHAR(8),
dcto_compra CHAR(10) ,
fech_compra DATE,
tasa_cambio DECIMAL(8,2),
vida_util SMALLINT,
valor_compra DECIMAL(12,2),
depr_acum DECIMAL(12,2),
valor_libro DECIMAL(12,2),
deprec DECIMAL(12,2)
END RECORD
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 acprrp005()
END MAIN
FUNCTION acprrp005()
# WHENEVER ERROR CONTINUE
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
OPEN FORM acfmrp005 FROM "acfmrp001"
DISPLAY FORM acfmrp005
# CALL pantalla()
DISPLAY "acprrp005" AT 4,3
DISPLAY "Activos c/Tasa de Adquisicion" AT 6,25
LET tipo_papel = 2
CALL msgrp000(tipo_papel)
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 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
# Preparando el criterio de busqueda de la informacion
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
LET selec1 =
"SELECT c.codigo,c.descripcion,c.cuenta_no,CONVERT(CHAR(10),c.fech_compra,103),c.fech_compra, ",
" MIN(b.tasa_cambio),c.duracion ",
"FROM actb00001 c,actb00004 b ",
"WHERE c.codigo = b.codigo AND c.status_t IS NULL AND ",
" b.status_t IS NULL AND ",criterio CLIPPED," GROUP BY 1,2,3,4,5,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
#### Enviando la informacion al printer
CALL seleccionarsalida() RETURNING r_output
CALL configureoutput(r_output) RETURNING HANDLER
START REPORT act_tasa TO XML HANDLER handler
DISPLAY " " AT 19,14
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
AT 19,14 ATTRIBUTE (REVERSE)
WHILE STATUS != NOTFOUND
FETCH activos INTO act_fij4.*
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_fij4.valor_compra
FROM actb00004 a,actb00002 b
WHERE a.codigo = act_fij4.codigo AND a.status_t IS NULL AND
a.fecha <= fecha_corte AND a.cod_mov = b.cod_mov AND
b.uso = "1"
SELECT SUM(a.monto)*-1 INTO act_fij4.depr_acum FROM actb00004 a
WHERE a.codigo = act_fij4.codigo AND a.status_t IS NULL AND
a.fecha < fecha_corte AND a.cod_mov != 5 AND a.monto < 0
IF act_fij4.valor_compra IS NULL THEN
LET act_fij4.valor_compra = 0
END IF
IF act_fij4.depr_acum IS NULL THEN
LET act_fij4.depr_acum = 0
END IF
SELECT SUM(a.monto)*-1 INTO act_fij4.deprec FROM actb00004 a
WHERE a.codigo = act_fij4.codigo AND a.status_t IS NULL AND
a.fecha = fecha_corte AND a.cod_mov = 5
IF act_fij4.valor_compra IS NULL THEN
LET act_fij4.valor_compra = 0
END IF
IF act_fij4.deprec IS NULL THEN
LET act_fij4.deprec = 0
END IF
IF (act_fij4.depr_acum+act_fij4.deprec)>=(act_fij4.valor_compra-1) THEN
LET act_fij4.valor_libro = 1
LET act_fij4.depr_acum = act_fij4.valor_compra - 1
LET act_fij4.deprec = 0
ELSE
LET act_fij4.valor_libro = act_fij4.valor_compra-act_fij4.depr_acum
-act_fij4.deprec
END IF
OUTPUT TO REPORT act_tasa(act_fij4.*)
END WHILE
FINISH REPORT act_tasa
END FUNCTION
##### Funcion que imprime el registro
REPORT act_tasa(x)
DEFINE x RECORD
codigo SMALLINT,
descripcion CHAR(30),
cuenta_no CHAR(8),
dcto_compra CHAR(10) ,
fech_compra DATE,
tasa_cambio DECIMAL(8,2),
vida_util INTEGER,
valor_compra DECIMAL(12,2),
depr_acum DECIMAL(12,2),
valor_libro DECIMAL(12,2),
deprec DECIMAL(12,2)
END RECORD
DEFINE hora CHAR(5)
OUTPUT
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 2
PAGE LENGTH 100
###### Sortenado la salida de informacion
ORDER BY x.cuenta_no,x.codigo
FORMAT
PAGE HEADER
LET hora = time
LET l = (148 - LENGTH(p_compania.nombre CLIPPED))/2
PRINT COLUMN 1, negrillas_on,doce
PRINT COLUMN 1, "acprrp005",
COLUMN l, p_companias.nombre CLIPPED,
COLUMN 153, "Pag. ",pageno USING "###"
LET l = (148 - LENGTH("Sistema de Activos Fijos"))/2
PRINT COLUMN l, "Sistema de Activos Fijos",
COLUMN 153, today using "dd/mm/yyyy"
LET l = (148 - LENGTH("Control de Activos Con Tasa de Cambio de Adquisicion"))/2
PRINT COLUMN l,
"Control de Activos Con Tasa de Cambio de Adquisicion",
COLUMN 156, hora
SKIP 1 LINE
PRINT COLUMN 1, "FECHA CORTE: ",fecha_corte USING "dd/mm/yy"
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"--------------------------------------------------",
"----------"
Print COLUMN 45, "Documento",
COLUMN 57, "Fecha",
COLUMN 73, "Tasa de",
COLUMN 86, "Valor",
COLUMN 102, "Depreciacion",
COLUMN 118, "Deprec.",
COLUMN 133, "Valor en"
PRINT COLUMN 1, "Activo",
COLUMN 45, "Compra",
COLUMN 57, "Compra",
COLUMN 73, "Cambio",
COLUMN 86, "Original",
COLUMN 102, "Acumulada",
COLUMN 118, "Mes",
COLUMN 133, "Libro",
COLUMN 143, "Duracion"
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"--------------------------------------------------",
"----------"
PRINT negrillas_off
ON EVERY ROW
##### Calculando
PRINT COLUMN 1, x.codigo USING "&&&&&&"," ",x.descripcion CLIPPED,
COLUMN 45, x.dcto_compra CLIPPED,
COLUMN 57, x.fech_compra USING "dd/mm/yyyy",
COLUMN 73, x.tasa_cambio USING "###.##",
COLUMN 80, x.valor_compra USING "###,###,###.##",
COLUMN 100, x.depr_acum USING "###,###,###.##",
COLUMN 112, x.deprec USING "###,###,###.##",
COLUMN 128, x.valor_libro USING "###,###,###.##",
COLUMN 146, 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 80, GROUP SUM(x.valor_compra) USING "###,###,###.##",
COLUMN 100, GROUP SUM(x.depr_acum) USING "###,###,###.##",
COLUMN 112, GROUP SUM(x.deprec) USING "###,###,###.##",
COLUMN 128, GROUP SUM(x.valor_libro) USING "###,###,###.##"
PRINT COLUMN 1,negrillas_off
ON LAST ROW
PRINT COLUMN 1,negrillas_on
PRINT COLUMN 5,"T O T A L GRAL ",
COLUMN 80, SUM(x.valor_compra) USING "###,###,###.##",
COLUMN 100, SUM(x.depr_acum) USING "###,###,###.##",
COLUMN 112, SUM(x.deprec) USING "###,###,###.##",
COLUMN 128, SUM(x.valor_libro) USING "###,###,###.##"
PRINT COLUMN 1,negrillas_off,normal
END REPORT