279 lines
8.6 KiB
Plaintext
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
|
|
|