{ ------------------------------------------------------------------------------- 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