Files
MBS/PROYECTO/ccdir/ccprrp029.4gl
T

279 lines
8.6 KiB
Plaintext

{
-------------------------------------------------------------------------------
PROGRAMA : CCPRRP029
OBJETIVO : Validacion de Depositos Por Banco Y Recibos de Cobros
PROGRAMADOR : Ing. Juan F. Soto
FECHA REALIZACION : Julio 8, 1994
-------------------------------------------------------------------------------
}
GLOBALS "ccprgb000.4gl"
DEFINE fecha1,fecha2,fecha_corte DATE
##### Definicion de las variables del reporte
DEFINE deposito RECORD LIKE tetb00001.*
DEFINE pagos RECORD LIKE cctb00001.*
###### Funcion de busqueda de informteion
FUNCTION ccprrp029()
DEFINE banco CHAR(4)
DEFINE num_pago,num_doc INTEGER,
monto_pago DECIMAL(12,2),
fech_d DATE
# WHENEVER ERROR CONTINUE
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
OPEN FORM ccfmrp029 FROM "ccfmrp029"
DISPLAY FORM ccfmrp029
CALL pantalla()
DISPLAY "ccprrp029" AT 4,3
DISPLAY "Validacion de Depositos Por Banco Y Recibos de Pago" AT 6,14
LET tipo_papel = 1
CALL msgrp000(tipo_papel)
# Creando el criterio de busqueda de informteion
INPUT BY NAME fecha1,fecha2
AFTER FIELD fecha1
IF fecha1 IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha1
END IF
AFTER FIELD fecha2
IF fecha2 IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha2
END IF
IF fecha1 > fecha2 THEN
LET numero_msg = 189
CALL msg(numero_msg)
NEXT FIELD fecha1
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.banco
FROM cuenta_no,num_doc
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
## Busqueda de los recibos de pago que tengan numero de deposito
LET selec =
"SELECT b.cuenta_no,b.num_doc,a.num_doc,a.valor,a.fecha_orig ",
"FROM cctb00001 a,OUTER tetb00001 b ",
"WHERE (a.banco = b.num_doc AND a.cuenta_no = b.cuenta_no AND ",
" a.cuenta_no is not null AND a.tipo_doc != 'DE' AND ",
" a.tipo_doc = 'PG' AND ",
"a.status_t is null) AND ",
"(a.fecha_orig between ? and ?) AND ",criterio clipped,
" ORDER BY b.cuenta_no,b.num_doc,a.num_doc"
DISPLAY "<< Buscando Informacion ... Espere Por Favor. >>" AT 19,14
ATTRIBUTE (REVERSE,BOLD)
PREPARE comando FROM selec
DECLARE busca CURSOR FOR comando
OPEN busca USING fecha1,fecha2
START REPORT rep29 TO "C:\\archivo"
DISPLAY " " AT 19,14
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
AT 19,14 ATTRIBUTE (REVERSE)
FOREACH busca INTO banco,num_doc,num_pago,monto_pago,fech_d
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
IF monto_pago IS NULL THEN
LET monto_pago = 0
END IF
OUTPUT TO REPORT rep29(banco,num_doc,num_pago,monto_pago,fech_d)
END FOREACH
DISPLAY "<< Buscando Depositos... Espere Por Favor. >>" AT 19,14
ATTRIBUTE (REVERSE,BOLD)
DECLARE busca10 CURSOR FOR
SELECT * FROM tetb00001
WHERE cuenta_no != "1113" and cuenta_no != "1102" and
status_t is null and
fecha between fecha1 and fecha2 and
procedencia in (1,6)
ORDER BY cuenta_no,num_doc
FOREACH busca10 INTO deposito.*
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
SELECT unique @banco FROM cctb00001 WHERE
@banco = deposito.num_doc
and @cuenta_no = deposito.cuenta_no
and @tipo_doc = "PG" and
@status_t is null
IF status = notfound THEN
LET status = 0
LET banco = deposito.cuenta_no
LET num_doc = deposito.num_doc
LET num_pago = null
LET monto_pago = 0
LET fech_d = deposito.fecha
OUTPUT TO REPORT rep29(banco,num_doc,num_pago,monto_pago,fech_d)
END IF
END FOREACH
FINISH REPORT rep29
CLEAR SCREEN
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
#### Funcion que genera el reporte
REPORT rep29(bank,numero,pago_num,pago_monto,fecha_c)
DEFINE bank CHAR(4)
DEFINE pago_num,numero INTEGER
DEFINE nombre_cta CHAR(30),
p_cxc,p_dep,pago_monto DECIMAL(12,2),
fecha_c DATE
DEFINE doble_on CHAR(3)
DEFINE doble_off CHAR(3)
DEFINE negrillas_on CHAR(2)
DEFINE negrillas_off CHAR(2)
DEFINE comp_on CHAR(2)
DEFINE comp_off CHAR(2)
DEFINE doce CHAR(3)
DEFINE normal CHAR(2),
t_dif DECIMAL(12,2)
OUTPUT
TOP MARGIN 0
LEFT MARGIN 4
BOTTOM MARGIN 2
##### Sorteando la salida de la informteion
# ORDER BY bank,numero,pago_num
FORMAT
PAGE HEADER
LET doble_on = ASCII 001
LET doble_off = ASCII 002
LET negrillas_on = ASCII 27, ASCII 69
LET negrillas_off = ASCII 27, ASCII 69
LET comp_on = ASCII 031
LET comp_off = ASCII 18
LET doce = ASCII 30
LET normal = ASCII 029
LET lj = (80 - LENGTH(p_companias.nombre CLIPPED))/2
PRINT COLUMN 1, comp_off,normal,negrillas_on
PRINT COLUMN 1, "ccprrp029",
COLUMN lj, p_companias.nombre CLIPPED,
COLUMN 73, "Pag. ",pageno USING "###"
PRINT COLUMN 15, " Sistema de Tesoreria ",
COLUMN 73, today using "dd/mm/yy"
PRINT COLUMN 15, "Validacion Depositos Por Banco / Diferencia CxC",
COLUMN 73, time
PRINT COLUMN 26, "Del ",fecha1 USING "dd/mm/yy"," Al ",
fecha2 USING "dd/mm/yy",normal,comp_on
PRINT doce,negrillas_off
BEFORE GROUP OF bank
PRINT negrillas_off
SELECT descripcion INTO nombre_cta FROM cgtb00001
WHERE cuenta_no = bank
PRINT COLUMN 1, "Banco ",bank," ",nombre_cta
PRINT COLUMN 1, "--------------------------------------------------",
"----------------------------------------------"
PRINT COLUMN 1, "DEPOSITO",
cOLUMN 12, "RECIBO",
COLUMN 24, "FECHA",
COLUMN 53, "MONTO"
PRINT COLUMN 1, "--------------------------------------------------",
"-----------------------------------------------"
BEFORE GROUP OF numero
IF t_dif is null THEN
LET t_dif = 0
END IF
PRINT COLUMN 1, numero using "&&&&";
SELECT SUM(@monto) INTO p_dep FROM tetb00001
WHERE num_doc = numero and fecha <= fecha2
IF p_dep is null THEN
LET p_dep = 0
END IF
AFTER GROUP OF pago_num
PRINT COLUMN 12, pago_num using "&&&&&&",
COLUMN 24, fecha_c using "dd/mm/yy",
COLUMN 46, GROUP SUM(pago_monto) using "##,###,###.##"
AFTER GROUP OF bank
SKIP 1 LINE
PRINT COLUMN 12, "Total Banco ",
COLUMN 46, GROUP SUM(pago_monto) using "##,###,###.##"
AFTER GROUP OF numero
LET p_cxc = GROUP SUM(pago_monto)
IF p_cxc < 0 THEN
LET p_cxc = p_cxc * -1
END IF
SKIP 1 LINE
PRINT COLUMN 12, "Total Depositos CxC ",
COLUMN 46, p_cxc using "##,###,###.##"
PRINT COLUMN 12, "Total Depositos Tes.",
COLUMN 46, p_dep using "##,###,###.##"
PRINT COLUMN 12, "Diferencia",
COLUMN 65, p_cxc - p_dep using "(((,(((,(##.##)"
LET t_dif = t_dif + (p_cxc - p_dep)
SKIP 1 LINE
ON LAST ROW
SKIP 1 LINE
PRINT COLUMN 12, "Total General",
COLUMN 46, SUM(pago_monto) using "##,###,###.##",
COLUMN 65, t_dif using "(((,(((,(##.##)"
LET t_dif = 0
END REPORT