{ ------------------------------------------------------------------------------- PROGRAMA : ACPRRP010 OBJETIVO : Listado del control de activos Fijos ADICIONES PROGRAMADOR : JUAN FRANCISCO SOTO FECHA REALIZACION : NOVIEMBRE 13, 2004 ------------------------------------------------------------------------------- } GLOBALS "acprgb000.4gl" ##### Registro para buscar la inforacion DEFINE act_fij RECORD codigo SMALLINT, descripcion CHAR(30), cuenta_no CHAR(8), departamento SMALLINT, dcto_compra CHAR(10) , fech_compra DATE, vida_util SMALLINT, status_t CHAR(1), valor_compra DECIMAL(12,2), depr_acum DECIMAL(12,2), valor_libro DECIMAL(12,2), deprec DECIMAL(12,2) END RECORD, fecha_inicial DATE 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 acprrp011() END MAIN #### Funcion que realiza la busqueda FUNCTION ACPRRP011() #WHENEVER ERROR CONTINUE OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21 OPEN FORM acfmrp010 FROM "acfmrp011" DISPLAY FORM acfmrp010 #CALL pantalla() DISPLAY "ACPRRP010" AT 4,3 DISPLAY "Control de Activos Fijos ADICIONES" AT 6,28 LET tipo_papel = 1 CALL msgrp000(tipo_papel) INPUT BY NAME fecha_inicial,fecha_corte 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,c.departamento FROM codigo,cuenta_no,departamento LET selec1 = "SELECT c.codigo,c.descripcion,c.cuenta_no,c.departamento,CONVERT(CHAR(10),c.fech_compra,103), ", " CONVERT(CHAR(10),c.fech_compra,103),c.duracion,c.status_t,SUM(a.monto) ", "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 between ? and ? AND a.cod_mov = b.cod_mov AND b.uso = '1' AND ", criterio CLIPPED," GROUP BY c.codigo,c.descripcion,c.cuenta_no,c.departamento,c.fech_compra, ", " c.fech_compra,c.duracion,c.status_t ORDER BY c.codigo" 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_inicial,fecha_corte CALL seleccionarsalida() RETURNING r_output CALL configureoutput(r_output) RETURNING HANDLER START REPORT controles10 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_fij.* 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 LET act_fij.depr_acum = 0 LET act_fij.deprec = 0 LET act_fij.valor_libro = 0 SELECT SUM(a.monto)*-1 INTO act_fij.depr_acum FROM actb00004 a WHERE a.codigo = act_fij.codigo AND a.status_t IS NULL AND a.fecha <= fecha_corte AND a.monto < 0 IF act_fij.depr_acum IS NULL THEN LET act_fij.depr_acum = 0 END IF SELECT SUM(a.monto)*-1 INTO act_fij.deprec FROM actb00004 a WHERE a.codigo = act_fij.codigo AND a.status_t IS NULL AND a.fecha = fecha_corte AND a.cod_mov = 5 DISPLAY " " AT 20,10 DISPLAY "Datos---> ",act_fij.codigo USING "&&&&"," ", act_fij.vida_util USING "&&&"," ", act_fij.valor_compra USING "###,###,##&.&&" AT 20,10 IF act_fij.deprec IS NULL THEN LET act_fij.deprec = 0 END IF #IF (act_fij.depr_acum+act_fij.deprec) >= (act_fij.valor_compra-1) THEN IF (act_fij.depr_acum+act_fij.deprec) > (act_fij.valor_compra) THEN LET act_fij.valor_libro = 1 LET act_fij.depr_acum = act_fij.valor_compra - 1 LET act_fij.deprec = 0 ELSE LET act_fij.valor_libro=act_fij.valor_compra-act_fij.depr_acum END IF OUTPUT TO REPORT controles10(act_fij.*) END WHILE FINISH REPORT controles10 END FUNCTION ###### Funcion que genera el reporte REPORT controles10(x) DEFINE x RECORD codigo SMALLINT, descripcion CHAR(30), cuenta_no CHAR(8), departamento SMALLINT, dcto_compra CHAR(10) , fech_compra DATE, vida_util INTEGER, status_t CHAR(1), 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 #### Sorteando la salida de informacion ORDER BY x.cuenta_no,x.departamento,x.codigo FORMAT PAGE HEADER LET hora = time LET l = (140 - LENGTH(p_compania.nombre CLIPPED))/2 PRINT COLUMN 1, comp_on,negrillas_on PRINT COLUMN 1, "acprrp001", COLUMN l, p_companias.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 SKIP 1 LINE PRINT COLUMN 1, "FECHA DE CORTE: ",fecha_corte USING "dd/mm/yy" PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------", "--------------------------------------------------" PRINT COLUMN 45, "Documento", COLUMN 57, "Fecha", COLUMN 73, "Valor", COLUMN 86, "Depreciacion", COLUMN 103, "Depreciacion", COLUMN 122, "Valor", COLUMN 137, "Vida" PRINT COLUMN 1, "Activo", COLUMN 45, "Compra", COLUMN 57, "Compra", COLUMN 73, "Original", COLUMN 86, "Acumulada", COLUMN 103, "Mes", COLUMN 122, "Libro", COLUMN 137, "Util" PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------", "--------------------------------------------------" PRINT negrillas_off ON EVERY ROW #### Realizando los cxalculos de depreciacion PRINT COLUMN 1, x.codigo USING "&&&&&&"," ",x.descripcion CLIPPED, COLUMN 45, 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, x.deprec USING "###,###.##", COLUMN 116, x.valor_libro USING "###,###,###.##", COLUMN 138, x.vida_util USING "&&" AFTER GROUP OF x.departamento PRINT COLUMN 1, negrillas_on PRINT COLUMN 5, "TOTAL DEPARTAMENTO---> ",x.departamento CLIPPED, COLUMN 67, GROUP SUM(x.valor_compra) USING "###,###,###.##", COLUMN 84, GROUP SUM(x.depr_acum) USING "###,###,###.##", COLUMN 101, GROUP SUM(x.deprec) USING "###,###,###.##", COLUMN 116, GROUP SUM(x.valor_libro) USING "###,###,###.##" PRINT COLUMN 1, negrillas_off AFTER GROUP OF x.cuenta_no PRINT COLUMN 1, negrillas_on PRINT COLUMN 5, "TOTAL CUENTA---> ",x.cuenta_no, COLUMN 67, GROUP SUM(x.valor_compra) USING "###,###,###.##", COLUMN 84, GROUP SUM(x.depr_acum) USING "###,###,###.##", COLUMN 101, GROUP SUM(x.deprec) USING "###,###,###.##", COLUMN 116, GROUP SUM(x.valor_libro) USING "###,###,###.##" PRINT COLUMN 1, negrillas_off ON LAST ROW PRINT COLUMN 1,negrillas_on PRINT COLUMN 5,"TOTAL GRAL.---> ", COLUMN 67, SUM(x.valor_compra) USING "###,###,###.##", COLUMN 84, SUM(x.depr_acum) USING "###,###,###.##", COLUMN 101, SUM(x.deprec) USING "###,###,###.##", COLUMN 116, SUM(x.valor_libro) USING "###,###,###.##" PRINT COLUMN 1,negrillas_off,normal END REPORT