412 lines
16 KiB
Plaintext
412 lines
16 KiB
Plaintext
{
|
|
==============================================================================
|
|
PROGRAMA : TEPRRP009
|
|
SISTEMA : Sistema de Tesoreria
|
|
Objetivo : Analisis del Cash Flow Real Diario
|
|
PROGRAMADOR : Tadeo A. Ferreras
|
|
FECHA : Diciembre 08, 1995
|
|
==============================================================================
|
|
}
|
|
GLOBALS
|
|
"teprgb000.4gl"
|
|
|
|
DEFINE datos_9 RECORD
|
|
codigo INTEGER,
|
|
descripcion CHAR(30),
|
|
tipo CHAR(2),
|
|
monto DECIMAL(12,4),
|
|
tipo1 CHAR(1),
|
|
monto1 DECIMAL(12,4),
|
|
monto2 DECIMAL(12,4)
|
|
END RECORD
|
|
DEFINE fecha_inicial,fecha_corte DATE
|
|
DEFINE d,i,c,ano,mes_1,mes_2 INTEGER
|
|
DEFINE tasa DECIMAL(12,4)
|
|
DEFINE balance,balance1 INTEGER
|
|
|
|
FUNCTION teprrp009()
|
|
LET int_flag = FALSE
|
|
|
|
OPTIONS
|
|
FORM LINE 8
|
|
|
|
OPEN FORM tefmrp009 FROM "tefmrp009"
|
|
DISPLAY FORM tefmrp009
|
|
DISPLAY "teprrp009" AT 4,3 ATTRIBUTE(RED)
|
|
DISPLAY "Cash Flow Real Diario" AT 6,29 ATTRIBUTE(BLACK)
|
|
|
|
LET tipo_papel = 1
|
|
CALL msgrp000(tipo_papel)
|
|
CALL defecto(impresor) RETURNING imprime,letras.*,archivo
|
|
|
|
#INPUT BY NAME fecha_corte,tasa
|
|
INPUT BY NAME ano,mes_1,tasa
|
|
ON KEY(CONTROL-P)
|
|
CALL busca_printer() RETURNING imprime,letras.*,archivo
|
|
|
|
AFTER FIELD ano
|
|
IF ano IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD ano
|
|
END IF
|
|
|
|
AFTER FIELD mes_1
|
|
IF mes_1 IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD mes_1
|
|
END IF
|
|
|
|
SELECT a.fecha_inicio,a.fecha_corte
|
|
INTO fecha_inicial,fecha_corte
|
|
FROM prdtable a
|
|
WHERE a.mes = mes_1 AND a.ano = ano
|
|
{
|
|
SELECT a.mes INTO mes_1 FROM prdtable a where a.fecha_inicio=fecha_inicial
|
|
}
|
|
AFTER FIELD tasa
|
|
IF tasa IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD tasa
|
|
END IF
|
|
|
|
END INPUT
|
|
|
|
LET parametro = "D"
|
|
CALL elijeimpresion(parametro) RETURNING orden,destino,letras.*
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
|
|
#LET ano = YEAR(fecha_corte)
|
|
#LET mes_1 = MONTH(fecha_corte)
|
|
SELECT a.valor1/1000,a.valor/1000 INTO balance,balance1 FROM tetb00007 a
|
|
WHERE a.ano = ano #- 1
|
|
{
|
|
LET ano = 2001
|
|
LET mes_1 = 3
|
|
}
|
|
display "ano ",mes_1," ",ano
|
|
|
|
IF balance IS NULL THEN
|
|
LET balance = 0
|
|
END IF
|
|
IF balance1 IS NULL THEN
|
|
LET balance1 = 0
|
|
END IF
|
|
LET selec =
|
|
"SELECT UNIQUE a.codigo,a.descripcion,a.tipo,c.valor/1000 ",
|
|
"FROM tetb00003 a,tetb00004 c ",
|
|
"WHERE (a.codigo = c.codigo) AND (a.status_t IS NULL) AND ",
|
|
" (c.ano = ?) AND (c.mes = ?) "
|
|
|
|
DISPLAY "<<<Buscando Informacion... Espere por Favor>>>" AT 19,14
|
|
ATTRIBUTE(YELLOW)
|
|
|
|
PREPARE comando FROM selec
|
|
DECLARE busco CURSOR FOR comando
|
|
OPEN busco USING ano,mes_1
|
|
|
|
START REPORT reporte_9 TO archivo #PRINTER
|
|
# START REPORT reporte_9 TO PIPE "lp -dlpt1"
|
|
DISPLAY "<<<Reporte Generandose... Espere por Favor>>>" AT 19,14
|
|
ATTRIBUTE(YELLOW)
|
|
|
|
WHILE status != NOTFOUND
|
|
FETCH busco INTO datos_9.*
|
|
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
|
|
|
|
DISPLAY datos_9.*
|
|
|
|
LET datos_9.monto1 = 0
|
|
LET datos_9.monto2 = 0
|
|
CASE
|
|
WHEN datos_9.codigo = 1
|
|
SELECT SUM(a.monto/1000) INTO datos_9.monto1 FROM tetb00001 a
|
|
WHERE (a.status_t IS NULL) AND (a.procedencia IN (1,7)) AND
|
|
(a.fecha = fecha_corte)
|
|
SELECT SUM(a.monto/1000) INTO datos_9.monto2 FROM tetb00001 a
|
|
WHERE (a.status_t IS NULL) AND (a.procedencia IN (1,7)) AND
|
|
(a.fecha BETWEEN fecha_inicial AND fecha_corte)
|
|
EXIT CASE
|
|
|
|
WHEN datos_9.codigo = 2
|
|
SELECT SUM(a.monto/1000) INTO datos_9.monto1 FROM tetb00001 a
|
|
WHERE (a.status_t IS NULL) AND (a.procedencia = 2) AND
|
|
(a.fecha = fecha_corte)
|
|
SELECT SUM(a.monto/1000) INTO datos_9.monto2 FROM tetb00001 a
|
|
WHERE (a.status_t IS NULL) AND (a.procedencia = 2) AND
|
|
(a.fecha BETWEEN fecha_inicial AND fecha_corte)
|
|
EXIT CASE
|
|
|
|
WHEN datos_9.codigo = 3
|
|
SELECT SUM(a.monto/1000) INTO datos_9.monto1 FROM tetb00001 a
|
|
WHERE (a.status_t IS NULL) AND (a.procedencia = 3) AND
|
|
(a.fecha = fecha_corte)
|
|
SELECT SUM(a.monto/1000) INTO datos_9.monto2 FROM tetb00001 a
|
|
WHERE (a.status_t IS NULL) AND (a.procedencia = 3) AND
|
|
(a.fecha BETWEEN fecha_inicial AND fecha_corte)
|
|
EXIT CASE
|
|
|
|
WHEN datos_9.codigo = 4
|
|
SELECT SUM(a.monto/1000) INTO datos_9.monto1 FROM tetb00001 a
|
|
WHERE (a.status_t IS NULL) AND (a.procedencia = 4) AND
|
|
(a.fecha = fecha_corte)
|
|
SELECT SUM(a.monto/1000) INTO datos_9.monto2 FROM tetb00001 a
|
|
WHERE (a.status_t IS NULL) AND (a.procedencia = 4) AND
|
|
(a.fecha BETWEEN fecha_inicial AND fecha_corte)
|
|
EXIT CASE
|
|
|
|
WHEN datos_9.codigo = 22
|
|
LET datos_9.monto1 = datos_9.monto/30
|
|
SELECT SUM(a.valor/1000) INTO datos_9.monto2 FROM tetb00004 a
|
|
WHERE (a.status_t IS NULL) AND (a.mes = mes_1) AND (a.ano=ano) AND
|
|
(a.codigo = 22)
|
|
EXIT CASE
|
|
OTHERWISE
|
|
SELECT SUM(a.monto/1000)*-1 INTO datos_9.monto1
|
|
FROM cgtb00005 a,tetb00006 b
|
|
WHERE a.cheque_no = b.cheque_no AND
|
|
a.status_t = "C" AND
|
|
a.cuenta_no = b.banco AND
|
|
b.codigo = datos_9.codigo AND
|
|
a.fecha = fecha_corte
|
|
|
|
SELECT SUM(a.monto/1000)*-1 INTO datos_9.monto2
|
|
FROM cgtb00005 a,tetb00006 b
|
|
WHERE a.cheque_no = b.cheque_no AND
|
|
a.status_t = "C" AND
|
|
a.cuenta_no = b.banco AND
|
|
b.codigo = datos_9.codigo AND
|
|
a.fecha BETWEEN fecha_inicial AND fecha_corte
|
|
EXIT CASE
|
|
|
|
END CASE
|
|
|
|
DISPLAY datos_9.monto1 AT 21,40
|
|
DISPLAY datos_9.monto2 AT 21,60
|
|
|
|
IF datos_9.monto IS NULL THEN
|
|
LET datos_9.monto = 0
|
|
END IF
|
|
IF datos_9.monto1 IS NULL THEN
|
|
LET datos_9.monto1 = 0
|
|
END IF
|
|
IF datos_9.monto2 IS NULL THEN
|
|
LET datos_9.monto2 = 0
|
|
END IF
|
|
|
|
IF datos_9.tipo = "DI" THEN
|
|
LET datos_9.monto = datos_9.monto
|
|
LET datos_9.monto1 = datos_9.monto1 * tasa
|
|
LET datos_9.monto2 = datos_9.monto2 * tasa
|
|
END IF
|
|
IF datos_9.tipo = "IG" THEN
|
|
LET datos_9.tipo1 = "A"
|
|
END IF
|
|
IF datos_9.tipo = "DI" THEN
|
|
LET datos_9.tipo1 = "B"
|
|
END IF
|
|
IF datos_9.tipo = "DL" THEN
|
|
LET datos_9.tipo1 = "C"
|
|
END IF
|
|
OUTPUT TO REPORT reporte_9(datos_9.*)
|
|
END WHILE
|
|
FINISH REPORT reporte_9
|
|
#RUN imprime
|
|
CALL fdestino(destino,archivo,imprime)
|
|
CLEAR SCREEN
|
|
END FUNCTION
|
|
|
|
REPORT reporte_9(x)
|
|
DEFINE x RECORD
|
|
codigo INTEGER,
|
|
descripcion CHAR(30),
|
|
tipo CHAR(2),
|
|
monto DECIMAL(12,4),
|
|
tipo1 CHAR(1),
|
|
monto1 DECIMAL(12,4),
|
|
monto2 DECIMAL(12,4)
|
|
END RECORD
|
|
|
|
## DEFINICION DE LAS VARIABLES DE IMPRESION
|
|
DEFINE numero_ch CHAR(9),
|
|
descripcion CHAR(30),
|
|
detalle1,detalle2 CHAR(40)
|
|
DEFINE hora CHAR(5)
|
|
DEFINE nombre1 ARRAY[12] OF CHAR(10)
|
|
|
|
OUTPUT
|
|
## DEFINICION DE LOS MARGENES DE IMPRESION
|
|
TOP MARGIN 0
|
|
LEFT MARGIN 0
|
|
BOTTOM MARGIN 3
|
|
ORDER BY x.tipo1,x.codigo
|
|
|
|
FORMAT
|
|
PAGE HEADER
|
|
|
|
|
|
LET hora = time
|
|
LET nombre1[1] = " ENERO "
|
|
LET nombre1[2] = " FEBRERO "
|
|
LET nombre1[3] = " MARZO "
|
|
LET nombre1[4] = " ABRIL "
|
|
LET nombre1[5] = " MAYO "
|
|
LET nombre1[6] = " JUNIO "
|
|
LET nombre1[7] = " JULIO "
|
|
LET nombre1[8] = " AGOSTO "
|
|
LET nombre1[9] = "SEPTIEMBRE"
|
|
LET nombre1[10] = " OCTUBRE "
|
|
LET nombre1[11] = "NOVIEMBRE "
|
|
LET nombre1[12] = "DICIEMBRE "
|
|
|
|
## AQUI SE INDICA LA IMPRESION DE LOS ENCABEZADOS
|
|
PRINT COLUMN 1, letras.doce,letras.negrillas_on
|
|
PRINT COLUMN 1, "teprrp009",
|
|
COLUMN 27, "R A Y . O . V A C D O M I N I C A N A, S. A.",
|
|
COLUMN 93, "Pag. ",pageno using "###"
|
|
PRINT COLUMN 27, " Sistema de Tesoreria",
|
|
COLUMN 93, today using "dd/mm/yyyy"
|
|
PRINT COLUMN 27, " Cash Flow Real Diario",
|
|
COLUMN 96, hora
|
|
PRINT COLUMN 27, " Expresados Em Miles (1000) "
|
|
SKIP 1 LINE
|
|
PRINT COLUMN 1, "Desde : ",fecha_inicial USING "dd/mm/yyyy",
|
|
" Hasta : ", fecha_corte USING "dd/mm/yyyy"
|
|
|
|
PRINT COLUMN 1, "--------------------------------------------------",
|
|
"--------------------------------------------------"
|
|
|
|
PRINT COLUMN 45, "Real Acum.",
|
|
COLUMN 58, "Movimiento",
|
|
COLUMN 71, "Real Acum.",
|
|
COLUMN 84, "Estimado"
|
|
PRINT COLUMN 1, "Partida",
|
|
COLUMN 45, "Dia Anter.",
|
|
COLUMN 58, "Dia Actual",
|
|
COLUMN 71, "Dia Actual",
|
|
COLUMN 84, "Del Mes"
|
|
PRINT COLUMN 1, "--------------------------------------------------",
|
|
"--------------------------------------------------"
|
|
PRINT letras.negrillas_off
|
|
|
|
BEFORE GROUP OF x.codigo
|
|
IF x.codigo = 1 THEN
|
|
SKIP 1 LINE
|
|
PRINT COLUMN 1,letras.negrillas_on,"INGRESOS",letras.negrillas_off
|
|
PRINT COLUMN 1,letras.negrillas_on,"========",letras.negrillas_off
|
|
END IF
|
|
IF x.codigo = 5 THEN
|
|
SKIP 1 LINE
|
|
PRINT COLUMN 1,letras.negrillas_on,"DESEMBOLSOS",letras.negrillas_off
|
|
PRINT COLUMN 1,letras.negrillas_on,"===========",letras.negrillas_off
|
|
PRINT COLUMN 1,letras.negrillas_on,"DESEMBOLSOS INTERNACIONALES (",
|
|
"TASA UTILIZADA RD$",tasa USING "<<<,<<<.<<",")",
|
|
letras.negrillas_off
|
|
SKIP 1 LINE
|
|
END IF
|
|
IF x.codigo = 14 THEN
|
|
SKIP 1 LINE
|
|
PRINT COLUMN 1,letras.negrillas_on,"DESEMBOLSOS LOCALES",
|
|
letras.negrillas_off
|
|
SKIP 1 LINE
|
|
END IF
|
|
PRINT COLUMN 1, x.codigo USING "###"," ",x.descripcion CLIPPED;
|
|
|
|
## AQUI SE INDICA LA IMPRESION DEL DETALLE
|
|
|
|
AFTER GROUP OF x.codigo
|
|
PRINT COLUMN 45, GROUP SUM(x.monto2) USING "#,###,###","|",
|
|
COLUMN 58, GROUP SUM(x.monto1) USING "#,###,###","|",
|
|
COLUMN 71, GROUP SUM(x.monto1+x.monto2)
|
|
USING "#,###,###","|",
|
|
COLUMN 84, GROUP SUM(x.monto) USING "#,###,###","|"
|
|
|
|
AFTER GROUP OF x.tipo1
|
|
PRINT COLUMN 45, "---------","|",
|
|
COLUMN 58, "---------","|",
|
|
COLUMN 71, "---------","|",
|
|
COLUMN 84, "---------","|"
|
|
|
|
IF x.tipo1 = "A" THEN
|
|
PRINT COLUMN 5, "TOTAL INGRESOS";
|
|
END IF
|
|
IF x.tipo1 = "B" THEN
|
|
PRINT COLUMN 5, "TOTAL DESEMBOLSO INT.";
|
|
END IF
|
|
IF x.tipo1 = "C" THEN
|
|
PRINT COLUMN 5, "TOTAL DESEMBOLSO LOCALES";
|
|
END IF
|
|
PRINT COLUMN 45, GROUP SUM(x.monto2) USING "#,###,###","|",
|
|
COLUMN 58, GROUP SUM(x.monto1) USING "#,###,###","|",
|
|
COLUMN 71, GROUP SUM(x.monto1+x.monto2)
|
|
USING "#,###,###","|",
|
|
COLUMN 84, GROUP SUM(x.monto) USING "#,###,###","|"
|
|
|
|
ON LAST ROW
|
|
PRINT COLUMN 45, "---------","|",
|
|
COLUMN 58, "---------","|",
|
|
COLUMN 71, "---------","|",
|
|
COLUMN 84, "---------","|"
|
|
|
|
PRINT COLUMN 5, "TOTAL DESEMBOLSO LOCALES E INT.",
|
|
COLUMN 43, SUM(x.monto2) WHERE x.tipo1 = "B" OR
|
|
x.tipo1 = "C"
|
|
USING "<,<<<,<<<","|",
|
|
COLUMN 56, SUM(x.monto1) WHERE x.tipo1 = "B" OR
|
|
x.tipo1 = "C"
|
|
USING "<,<<<,<<<","|",
|
|
COLUMN 69, SUM(x.monto1+x.monto2) WHERE x.tipo1 = "B" OR
|
|
x.tipo1 = "C"
|
|
USING "<,<<<,<<<","|",
|
|
COLUMN 82, SUM(x.monto) WHERE x.tipo1 = "B" OR
|
|
x.tipo1 = "C"
|
|
USING "<,<<<,<<<","|"
|
|
|
|
PRINT COLUMN 45, "---------","|",
|
|
COLUMN 58, "---------","|",
|
|
COLUMN 71, "---------","|",
|
|
COLUMN 84, "---------","|"
|
|
|
|
PRINT COLUMN 5, "FLUJO OPERATIVO",
|
|
COLUMN 45, SUM(x.monto2) USING "-,---,---","|",
|
|
COLUMN 58, SUM(x.monto1) USING "-,---,---","|",
|
|
COLUMN 71, SUM(x.monto1+x.monto2) USING "-,---,---","|",
|
|
COLUMN 84, SUM(x.monto) USING "-,---,---","|"
|
|
|
|
PRINT COLUMN 5, "BALANCE INICIAL",
|
|
COLUMN 45, balance1 USING "-,---,---","|",
|
|
COLUMN 71, SUM(x.monto2) + balance1 USING "-,---,---","|",
|
|
COLUMN 84, balance USING "-,---,---","|"
|
|
|
|
PRINT COLUMN 45, "---------","|",
|
|
COLUMN 58, "---------","|",
|
|
COLUMN 71, "---------","|",
|
|
COLUMN 84, "---------","|"
|
|
|
|
PRINT COLUMN 5, "BALANCE FINAL",
|
|
COLUMN 45, SUM(x.monto2)+ balance1 USING "-,---,---","|",
|
|
COLUMN 58, SUM(x.monto1) USING "-,---,---","|",
|
|
COLUMN 71, SUM(x.monto1+x.monto2) + balance1
|
|
USING "-,---,---","|",
|
|
COLUMN 84, SUM(x.monto) + balance USING "-,---,---","|"
|
|
|
|
PRINT letras.negrillas_off,letras.normal
|
|
END REPORT
|