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

233 lines
8.1 KiB
Plaintext

{
-------------------------------------------------------------------------------
PROGRAMA : ACPRRP007
OBJETIVO : Listado de Activos Liquidados (Dados de baja)
PROGRAMADOR : Tadeo A. Ferreras
FECHA REALIZACION : Sept. 28, 1993
-------------------------------------------------------------------------------
}
GLOBALS "acprgb000.4gl"
##### Definicion de las variables del reporte
DEFINE act_fij7 RECORD
codigo SMALLINT,
descripcion CHAR(30),
cuenta_no CHAR(8),
fech_compra DATE,
fech_elim DATE,
vida_util SMALLINT,
tasa_cambio DECIMAL(8,2),
valor_compra DECIMAL(12,2),
depr_acum 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 acprrp007()
END MAIN
###### Funcion de busqueda de informacion
FUNCTION acprrp007()
# WHENEVER ERROR CONTINUE
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
OPEN FORM acfmrp007 FROM "acfmrp006"
DISPLAY FORM acfmrp007
# CALL pantalla()
DISPLAY "acprrp007" AT 4,3
DISPLAY "Liquidacion de Activos Fijos (Baja)" AT 6,22
LET tipo_papel = 2
CALL msgrp000(tipo_papel)
# Creando el criterio de busqueda de informacion
CONSTRUCT criterio ON c.codigo,c.cuenta_no,c.fech_elim
FROM codigo,cuenta_no,fech_elim
INPUT BY NAME fecha_corte
AFTER INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
EXIT INPUT
END INPUT
##### Selecionando la prima del dolar actual
LET selec1 =
"SELECT c.codigo,c.descripcion,c.cuenta_no,CONVERT(CHAR(10),c.fech_compra,103), ",
" c.fech_elim,c.duracion,MIN(b.tasa_cambio) ",
"FROM actb00001 c,actb00004 b ",
"WHERE c.codigo=b.codigo AND c.status_t='B' AND b.status_t IS NULL AND ",
criterio CLIPPED," GROUP BY c.codigo,c.descripcion,c.cuenta_no,c.fech_compra,c.fech_elim,c.duracion"
DISPLAY "<< Buscando Informacion ... Espere Por Favor. >>" AT 19,14
ATTRIBUTE (REVERSE,BOLD)
PREPARE busca_act FROM selec1
DECLARE activos1 SCROLL CURSOR FOR busca_act
OPEN activos1
CALL seleccionarsalida() RETURNING r_output
CALL configureoutput(r_output) RETURNING HANDLER
START REPORT bajas TO XML HANDLER handler
DISPLAY " " AT 19,14
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
AT 19,14 ATTRIBUTE (REVERSE)
WHILE STATUS != NOTFOUND
FETCH activos1 INTO act_fij7.*
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_fij7.valor_compra
FROM actb00004 a,actb00002 b
WHERE a.codigo = act_fij7.codigo AND a.status_t IS NULL AND
a.cod_mov = b.cod_mov AND b.uso = "1"
{COPIE ESTE QUERY DEL ACPRRP009}
SELECT SUM(a.monto)*-1 INTO act_fij7.depr_acum FROM actb00004 a
WHERE a.codigo = act_fij7.codigo AND a.status_t IS NULL AND
a.fecha <= fecha_corte AND a.monto < 0
{ESTE FUE EL QUERY ORIGINAL
SELECT SUM(a.monto)*-1 INTO act_fij7.depr_acum
FROM actb00004 a,actb00002 b
WHERE a.codigo = act_fij7.codigo AND a.status_t IS NULL AND
a.cod_mov = b.cod_mov AND b.uso = "2"
}
IF act_fij7.valor_compra IS NULL THEN
LET act_fij7.valor_compra = 0
END IF
IF act_fij7.depr_acum IS NULL THEN
LET act_fij7.depr_acum = 0
END IF
OUTPUT TO REPORT bajas(act_fij7.*)
END WHILE
FINISH REPORT bajas
END FUNCTION
#### Funcion que genera el reporte
REPORT bajas(x)
DEFINE x RECORD
codigo SMALLINT,
descripcion CHAR(30),
cuenta_no CHAR(8),
fech_compra DATE,
fech_elim DATE,
vida_util SMALLINT,
tasa_cambio DECIMAL(8,2),
valor_compra DECIMAL(12,2),
depr_acum 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 la informacion
ORDER BY x.cuenta_no,x.codigo
FORMAT
PAGE HEADER
LET hora = time
LET l = ( 145 - LENGTH(p_compania.nombre CLIPPED))/2
PRINT COLUMN 1, doce
PRINT COLUMN 1, "acprrp007",
COLUMN l, p_companias.nombre CLIPPED,
COLUMN 136, "Pag. ",pageno USING "###"
LET l = ( 145 - LENGTH("Sistema de Activos Fijos"))/2
PRINT COLUMN l, "Sistema de Activos Fijos",
COLUMN 136, today using "dd/mm/yyyy"
LET l = ( 145 - LENGTH("Liquidacion de Activos (Bajas)"))/2
PRINT COLUMN 48, "Liquidacion de Activos (Bajas)",
COLUMN 139, hora
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"-------------------------------------------"
PRINT COLUMN 48, "Fecha",
COLUMN 62, "Valor Adqui.",
COLUMN 82, "Deprec Acum.",
COLUMN 112, "Valor Adqui.",
COLUMN 132, "Deprec Acum."
PRINT COLUMN 1, "Activo",
COLUMN 48, "de Baja",
COLUMN 62, "Moneda Nac.",
COLUMN 82, "Moneda Nac.",
COLUMN 102, "Cambio",
COLUMN 112, "Moneda Ext.",
COLUMN 132, "Moneda Ext."
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"-------------------------------------------"
# , negrillas_off
ON EVERY ROW
PRINT COLUMN 1,x.codigo USING "&&&&&&"," ",x.descripcion CLIPPED,
COLUMN 47,x.fech_elim USING "dd/mm/yyyy",
COLUMN 60,x.valor_compra USING "###,###,###.##",
COLUMN 80,x.depr_acum USING "###,###,###.##",
COLUMN 100,x.tasa_cambio USING "###.##",
COLUMN 110,x.valor_compra/x.tasa_cambio USING "###,###,###.##",
COLUMN 130,x.depr_acum/x.tasa_cambio USING "###,###,###.##"
AFTER GROUP OF x.cuenta_no
PRINT COLUMN 1,negrillas_on
PRINT COLUMN 1,"CUENTA:",x.cuenta_no CLIPPED,
COLUMN 60, GROUP SUM(x.valor_compra) USING "###,###,###.##",
COLUMN 80, GROUP SUM(x.depr_acum) USING "###,###,###.##",
COLUMN 110, GROUP SUM(x.valor_compra/x.tasa_cambio)
USING "###,###,###.##",
COLUMN 130, GROUP SUM(x.depr_acum/x.tasa_cambio)
USING "###,###,###.##"
PRINT COLUMN 1,negrillas_off
ON LAST ROW
PRINT COLUMN 1,negrillas_on
PRINT COLUMN 1,"T O T A L GRAL ",
COLUMN 60, SUM(x.valor_compra) USING "###,###,###.##",
COLUMN 80, SUM(x.depr_acum) USING "###,###,###.##",
COLUMN 110, SUM(x.valor_compra/x.tasa_cambio)
USING "###,###,###.##",
COLUMN 130, SUM(x.depr_acum/x.tasa_cambio) USING "###,###,###.##"
PRINT COLUMN 1,negrillas_off,normal
END REPORT