Files
MBS/PROYECTO/cgdir/cgprrp009.per
T

272 lines
8.6 KiB
Plaintext

{
==============================================================================
PROGRAMA : CGPRRP009
SISTEMA : Sistema de Contabilidad General
Objetivo : Imprimir el gastos general
PROGRAMADOR : Tadeo A. Ferreras
FECHA : Oct. 05, 1993
==============================================================================
}
GLOBALS
"cgprgb000.4gl"
DEFINE gastos RECORD
cuenta_no CHAR(8),
descripcion CHAR(30),
departamento SMALLINT,
nom_dpto CHAR(30),
debito DECIMAL(12,2),
credito DECIMAL(12,2)
END RECORD
DEFINE fecha_inicial,fecha_final DATE
FUNCTION cgprrp009()
LET int_flag = FALSE
OPTIONS
FORM LINE 9
OPEN FORM cgfmrp009 FROM "cgfmrp004"
DISPLAY FORM cgfmrp009
DISPLAY "cgprrp009" AT 4,3 ATTRIBUTE(YELLOW)
DISPLAY "Analisis de Gastos Por Departamento" AT 6,22 ATTRIBUTE(YELLOW)
LET tipo_papel = 1
CALL msgrp000(tipo_papel)
INPUT BY NAME fecha_inicial,fecha_final
AFTER FIELD fecha_inicial
IF fecha_inicial IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha_inicial
END IF
AFTER FIELD fecha_final
IF fecha_final IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha_final
END IF
IF fecha_inicial > fecha_final THEN
LET numero_msg = 51
CALL msg(numero_msg)
NEXT FIELD fecha_inicial
END IF
END INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
CONSTRUCT criterio ON a.cuenta_no,a.departamento
FROM cuenta_no,departamento
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
LET selec = "SELECT a.cuenta_no,b.descripcion, ",
" a.departamento,c.nom_dpto, ",
" a.debito,a.credito ",
"FROM cgtb00004 a,cgtb00001 b,adtb00001 c ",
"WHERE a.cuenta_no = b.cuenta_no AND ",
" a.departamento = c.departamento AND ",
" a.status_t IS NULL AND a.fecha BETWEEN ? AND ? AND ",
criterio CLIPPED
DISPLAY "<<<Buscando Informacion... Espere por Favor>>>" AT 19,14
ATTRIBUTE(YELLOW)
PREPARE comando FROM selec
DECLARE busco CURSOR FOR comando
OPEN busco USING fecha_inicial,fecha_final
START REPORT gastos_gral TO PIPE "lp -dcentral"
DISPLAY "<<<Reporte Generandose... Espere por Favor>>>" AT 19,14
ATTRIBUTE(YELLOW)
WHILE status != NOTFOUND
FETCH busco INTO gastos.*
IF STATUS = NOTFOUND THEN
EXIT WHILE
END IF
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
FINISH REPORT gastos_gral
EXIT WHILE
END IF
OUTPUT TO REPORT gastos_gral(gastos.*,fecha_inicial,fecha_final)
END WHILE
FINISH REPORT gastos_gral
CLEAR SCREEN
END FUNCTION
REPORT gastos_gral(x,fecha1,fecha2)
DEFINE x RECORD
cuenta_no CHAR(8),
descripcion CHAR(30),
departamento SMALLINT,
nom_dpto CHAR(30),
debito DECIMAL(12,2),
credito DECIMAL(12,2)
END RECORD
DEFINE fecha1,fecha2 DATE
DEFINE total1,total2,total3,total4,total5,total6,debito,credito,balance
DECIMAL(12,2)
DEFINE doble_on CHAR(2)
DEFINE doble_off CHAR(2)
DEFINE negrillas_on CHAR(2)
DEFINE negrillas_off CHAR(2)
DEFINE comp_on CHAR(2)
DEFINE comp_off CHAR(2)
DEFINE doce CHAR(2)
DEFINE normal CHAR(2)
DEFINE hora CHAR(5)
OUTPUT
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 3
ORDER BY x.departamento,x.cuenta_no,x.fecha
FORMAT
PAGE HEADER
LET doble_on = ASCII 001
LET doble_off = ASCII 002
LET negrillas_on = ASCII 027, ASCII 098
LET negrillas_off = ASCII 027, ASCII 099
LET comp_on = ASCII 31
LET comp_off = ASCII 30
LET doce = ASCII 30
LET normal = ASCII 029
LET hora = time
PRINT COLUMN 1, comp_on,
COLUMN 2, "cgprrp009",
COLUMN 14, negrillas_on,
COLUMN 15, doble_on,
COLUMN 17, "R A Y . O . V A C D O M I N I C A N A, S. A.",
COLUMN 65, negrillas_off,
COLUMN 66, doble_off,
COLUMN 83, "Pag. ",pageno using "###"
PRINT COLUMN 43, "Sistema de Contabilidad General",
COLUMN 124, today using "dd/mm/yy"
PRINT COLUMN 41, "Analisis de Gastos Por Departamento",
COLUMN 127, hora
PRINT COLUMN 47, "Del ",fecha1 USING "dd/mm/yy"," Al ",
fecha2 USING "dd/mm/yy"
PRINT COLUMN 1, "---------------------------------------------------",
"---------------------------------------------------",
"-----------------------------"
PRINT COLUMN 1, "Centro",
COLUMN 8, "Cuenta",
COLUMN 60, "Acumulado",
COLUMN 80, "Gasto dentro",
COLUMN 100,"Acumulado A"
PRINT COLUMN 1, "Costo",
COLUMN 8, "Cont.",
COLUMN 22, "Descripcion",
COLUMN 60, "Anterior",
COLUMN 80, "del Rango",
COLUMN 100,"la Fecha"
PRINT COLUMN 1, "----------------------------------------------------",
"----------------------------------------------------" ,
"-------------------------"
skip 1 line
BEFORE GROUP OF x.cuenta_no
PRINT COLUMN 1, negrillas_on
PRINT COLUMN 2, "Cuenta No. ",x.cuenta_no CLIPPED," ",
x.descripcion CLIPPED
PRINT COLUMN 1, negrillas_off
LET total3 = 0
LET total4 = 0
BEFORE GROUP OF x.departamento
LET balance = 0
SELECT SUM(b.debito - b.credito) INTO balance FROM cgtb00004 b
WHERE b.cuenta_no = x.cuenta_no AND b.departamento = x.departamento
AND b.status_t IS NULL AND b.fecha < fecha1
IF balance IS NULL THEN
LET balance = 0
END IF
PRINT COLUMN 1, negrillas_on
PRINT COLUMN 2, "Depto.: ",x.departamento USING "&&&&"," ",
x.nom_dpto CLIPPED
PRINT COLUMN 1, negrillas_off
PRINT COLUMN 1,fecha1-1 USING "dd/mm/yy",
COLUMN 11,"Resumen",
COLUMN 27,"Balance al Cierre",
COLUMN 68,balance USING "###,###,###.##",
COLUMN 90,balance - balance USING "###,###,###.##",
COLUMN 110,balance USING "(((,(((,(((.##)"
LET total1 = balance
LET total2 = 0
ON EVERY ROW
LET total1 = total1 + x.debito
LET total2 = total2 + x.credito
LET balance = balance + (x.debito - x.credito)
PRINT COLUMN 1,x.fecha USING "dd/mm/yy",
COLUMN 11,x.ref CLIPPED,
COLUMN 27,x.detalle1 CLIPPED," ",x.detalle2 CLIPPED,
COLUMN 68,x.debito USING "###,###,###.##",
COLUMN 90,x.credito USING "###,###,###.##",
COLUMN 110,balance USING "(((,(((,(((.##)"
AFTER GROUP OF x.departamento
PRINT COLUMN 68,"--------------",
COLUMN 90,"--------------",
COLUMN 110,"--------------"
PRINT COLUMN 1, "Total Departamento -->",
COLUMN 68,total1 USING "###,###,###.##",
COLUMN 90,total2 USING "###,###,###.##",
COLUMN 110,balance USING "(((,(((,(((.##)"
LET total3 = total3 + total1
LET total4 = total4 + total2
AFTER GROUP OF x.cuenta_no
PRINT COLUMN 68,"--------------",
COLUMN 90,"--------------",
COLUMN 110,"--------------"
PRINT COLUMN 1, "Total cuenta -->",
COLUMN 68,total3 USING "###,###,###.##",
COLUMN 90,total4 USING "###,###,###.##",
COLUMN 110,total3 - total4 USING "(((,(((,(((.##)"
PRINT COLUMN 68,"==============",
COLUMN 90,"==============",
COLUMN 110,"=============="
ON LAST ROW
PRINT COLUMN 1,comp_off
END REPORT