{ ###################################################################### Programa : CPPRRP016 Proceso : Diferencia entre maestra de cxp y table de detalle Sistema : Cuenta Por Pagar Autor : Tadeo A. Ferreras F. Fecha : Mayo 31, 1994 ####################################################################### } GLOBALS "cpprgb000.4gl" DEFINE selec1 CHAR(1000) DEFINE fecha_in,fecha_fi DATE, cod_sp INTEGER DEFINE prt_mvto11 RECORD cod_sp LIKE cptb00003.cod_sp, cod_sp_sec LIKE cptb00003.cod_sp_sec, nom_sp CHAR(30), factura LIKE cptb00003.factura, fecha LIKE cptb00003.fecha, valor LIKE cptb00001.valor, credito LIKE cptb00003.credito END RECORD FUNCTION cpprrp016() LET int_flag = FALSE CLEAR SCREEN OPTIONS FORM LINE 8 #WHENEVER ERROR CONTINUE OPEN FORM cpfmrp016 FROM "cpfmrp016" DISPLAY FORM cpfmrp016 CALL PANTALLA() DISPLAY "cpprrp016" AT 4,3 ATTRIBUTE(blue) DISPLAY "Diferencia Entre Maestra CXP y Detalles" AT 6,20 LET tipo_papel = 1 CALL msgrp000(tipo_papel) INPUT BY NAME fecha_in,fecha_fi AFTER FIELD fecha_in IF fecha_in IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD fecha_in END IF AFTER FIELD fecha_fi IF fecha_fi IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD fecha_fi END IF IF fecha_fi < fecha_in THEN LET numero_msg = 51 CALL msg(numero_msg) NEXT FIELD fecha_in END IF END INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF LET selec = "SELECT a.cod_sp,a.cod_sp_sec,b.nom_sp,a.factura,a.fecha,c.valor,a.credito ", "FROM cptb00003 a,cotb00001 b,OUTER cptb00001 c ", "WHERE a.cod_sp = b.cod_sp AND a.cod_sp_sec = b.cod_sp_sec and ", " a.cod_sp = c.cod_sp AND a.cod_sp_sec = c.cod_sp_sec and ", " a.factura = c.num_doc AND c.tipo_doc = 'FT' AND a.status_t IS NULL ", " AND c.fecha_orig BETWEEN ? AND ? AND c.cod_sp = 23 AND ", " a.fecha BETWEEN ? AND ? AND a.cuenta_no = '2115' " DISPLAY "<< Buscando Informacion .... Espere Por Favor. >>" AT 19,14 ATTRIBUTE(REVERSE,BOLD) PREPARE comando FROM selec DECLARE movto CURSOR FOR comando OPEN movto USING fecha_in,fecha_fi,fecha_in,fecha_fi START REPORT reg_dife TO "C:\\archivo" DISPLAY "<< Impresion En Proceso .... Espere Por Favor. >>" AT 19,14 ATTRIBUTE(REVERSE,BOLD) WHILE STATUS != NOTFOUND FETCH movto INTO prt_mvto11.* 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 IF prt_mvto11.valor IS NULL THEN LET prt_mvto11.valor = 0 END IF IF prt_mvto11.credito IS NULL THEN LET prt_mvto11.credito = 0 END IF IF (prt_mvto11.valor - prt_mvto11.credito) <> 0 THEN OUTPUT TO REPORT reg_dife(prt_mvto11.*) END IF END WHILE FINISH REPORT reg_dife RUN "type C:\\archivo > %USPRINT%" END FUNCTION REPORT reg_dife(x) DEFINE x RECORD cod_sp LIKE cptb00003.cod_sp, cod_sp_sec LIKE cptb00003.cod_sp_sec, nom_sp CHAR(30), factura LIKE cptb00003.factura, fecha LIKE cptb00003.fecha, valor LIKE cptb00001.valor, credito LIKE cptb00003.credito END RECORD DEFINE reg_final RECORD cuenta_no CHAR(11), departamento INTEGER, cod_aux INTEGER, cod_sec INTEGER, num_doc CHAR(10), debito DECIMAL(12,2), credito DECIMAL(12,2) END RECORD, codigo_a CHAR(7) DEFINE fecha1,fecha2 DATE DEFINE nom_sup CHAR(45) DEFINE sale CHAR(1) DEFINE valor2,valor1,total_debito,total_credito,t_debito,t_credito, total_supl1,total_supl2,total1 DECIMAL(12,2) DEFINE comp_on CHAR(3), comp_off CHAR(3), doble_on CHAR(3), doble_off CHAR(3), negrillas_on CHAR(6), negrillas_off CHAR(6), hora CHAR(5) OUTPUT LEFT MARGIN 0 TOP MARGIN 1 BOTTOM MARGIN 4 ORDER BY x.cod_sp_sec,x.fecha,x.factura FORMAT PAGE HEADER LET negrillas_on = ASCII 27, ASCII 69 LET negrillas_off = ASCII 27, ASCII 70 LET doble_on = ASCII 14 LET doble_off = ASCII 18 LET comp_on = ASCII 15 LET comp_off = ASCII 18 LET hora = time LET lj = (82 - LENGTH(p_companias.nombre CLIPPED))/2 PRINT COLUMN 1,comp_off PRINT COLUMN 1, "cpprrp016", COLUMN lj, p_companias.nombre CLIPPED, COLUMN 75,"Pag. ", pageno using "###" PRINT COLUMN 1, negrillas_on, COLUMN 32, "SISTEMA CUENTA POR PAGAR", COLUMN 76, today using "dd/mm/yy" PRINT COLUMN 24, "Diferencia Maestra de CXP y Detalles", COLUMN 77, hora PRINT COLUMN 30,"DEL ", fecha_in USING "dd/mm/yy", " AL ",fecha_fi USING "dd/mm/yy" PRINT comp_on PRINT COLUMN 1, "----------------------------------------", "----------------------------------------", "----------------------------------------", "----------------" PRINT COLUMN 1, "Suplidor", COLUMN 40, "Factura", COLUMN 54, "Fecha", COLUMN 72, "Valor CXP", COLUMN 92, "Valor Detalle", COLUMN 112, "Diferencia" PRINT COLUMN 1, "----------------------------------------", "----------------------------------------", "----------------------------------------", "----------------" PRINT negrillas_off BEFORE GROUP OF x.cod_sp_sec LET total_supl1 = 0 LET total_supl2 = 0 PRINT COLUMN 1, x.cod_sp USING "&&","-", x.cod_sp_sec USING "&&&&"," ", x.nom_sp CLIPPED; ON EVERY ROW PRINT COLUMN 40, x.factura CLIPPED, COLUMN 54, x.fecha USING "dd/mm/yy", COLUMN 68, x.valor USING "###,###,###.##", COLUMN 88, x.credito USING "###,###,###.##", COLUMN 108, x.valor - x.credito USING "###,###,###.##" ON LAST ROW PRINT COLUMN 108, "--------------" PRINT COLUMN 108,SUM(x.valor - x.credito) USING "###,###,###.##" PRINT comp_off END REPORT