{ ------------------------------------------------------------------------------- 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