{ ###################################################################### Programa : CPPRRP011 Proceso : Validacion Cuentas Afectadas en Facturacion Sistema : Cuenta Por Pagar Autor : Tadeo A. Ferreras F. Fecha : Mayo 31, 1994 ####################################################################### } GLOBALS "cpprgb000.4gl" DEFINE mvto RECORD fecha_in DATE, fecha_fi DATE, cod_sp SMALLINT END RECORD, decide CHAR(1), entrada CHAR(14), detalle1 CHAR(30) DEFINE prt_mvto11 RECORD factura CHAR(10), cod_sp SMALLINT, cod_sp_sec SMALLINT, fecha DATE, cuenta_no CHAR(11), departamento SMALLINT, cod_aux SMALLINT, cod_sec SMALLINT, refer CHAR(10), debito DECIMAL(12,2), credito DECIMAL(12,2), id INTEGER, nom_sp CHAR(45), valor_fac DECIMAL(12,2) END RECORD MAIN DEFER INTERRUPT CALL ARG_VAL(1) RETURNING usuarios CALL ARG_VAL(2) RETURNING clave CALL ARG_VAL(3) RETURNING impresor CONNECT to "smarmotech" user usuarios USING clave SELECT a.* INTO p_companias.* FROM companias a CALL cpprrp011() END MAIN FUNCTION cpprrp011() CLEAR SCREEN OPTIONS FORM LINE 8 #WHENEVER ERROR CONTINUE OPEN FORM cpfmrp011 FROM "cpfmrp010" #CALL PANTALLA() DISPLAY "cpprrp011" AT 4,3 ATTRIBUTE(blue) DISPLAY "Validacion Cuentas Afectadas Por Facturacion " AT 6,17 DISPLAY FORM cpfmrp011 LET int_flag = FALSE LET tipo_papel = 1 CALL msgrp000(tipo_papel) INPUT BY NAME mvto.*,decide,entrada,detalle1 AFTER FIELD decide IF decide = "N" THEN EXIT INPUT END IF AFTER FIELD entrada SELECT UNIQUE a.ref FROM cgtb00004 a WHERE a.ref = entrada IF STATUS != NOTFOUND THEN LET numero_msg = 3 CALL msg(numero_msg) NEXT FIELD entrada END IF AFTER FIELD fecha_in IF mvto.fecha_in IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD fecha_in END IF AFTER FIELD fecha_fi IF mvto.fecha_fi IS NULL THEN LET mvto.fecha_fi = today END IF DISPLAY BY NAME mvto.fecha_fi IF mvto.fecha_fi < mvto.fecha_in THEN LET numero_msg = 51 CALL msg(numero_msg) NEXT FIELD fecha_in END IF AFTER FIELD cod_sp IF mvto.cod_sp IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD cod_sp END IF AFTER INPUT IF decide = "S" THEN LET bandera = 0 CALL prd(mvto.fecha_fi,usuarios) RETURNING bandera IF bandera = 1 THEN CALL msg(3) NEXT FIELD fecha END IF END IF END INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF CALL configureoutput("SVG") RETURNING handler START REPORT cuenta_ft TO XML HANDLER handler DECLARE movto CURSOR FOR SELECT a.factura,a.cod_sp,a.cod_sp_sec,a.fecha,a.cuenta_no, a.departamento,a.cod_aux,a.cod_sec,a.num_doc,a.debito,a.credito FROM cptb00003 a WHERE (a.cod_sp = mvto.cod_sp AND a.cod_sp_sec = a.cod_sp_sec and a.factura = a.factura AND a.cuenta_no = a.cuenta_no AND a.fecha BETWEEN mvto.fecha_in AND mvto.fecha_fi ) AND a.status_t IS NULL ORDER BY a.cod_sp,a.cod_sp_sec,a.factura,a.cuenta_no DISPLAY "<< Buscando Informacion .... Espere Por Favor. >>" AT 19,14 ATTRIBUTE(REVERSE,BOLD) DISPLAY "<< " AT 19,14 DISPLAY "<< Impresion En Proceso .... Espere Por Favor. >>" AT 19,14 ATTRIBUTE(REVERSE,BOLD) FOREACH movto INTO prt_mvto11.* # Busca El Valor De La Factura SELECT UNIQUE a.valor INTO prt_mvto11.valor_fac FROM cptb00001 a WHERE a.cod_sp = prt_mvto11.cod_sp AND a.cod_sp_sec = prt_mvto11.cod_sp_sec AND a.num_doc = prt_mvto11.factura AND a.tipo_doc = "FT" SELECT UNIQUE a.nom_sp INTO prt_mvto11.nom_sp FROM cotb00001 a WHERE a.cod_sp = prt_mvto11.cod_sp AND a.cod_sp_sec = prt_mvto11.cod_sp_sec OUTPUT TO REPORT cuenta_ft(prt_mvto11.*,mvto.fecha_in,mvto.fecha_fi) END FOREACH FINISH REPORT cuenta_ft END FUNCTION REPORT cuenta_ft(x,fecha1,fecha2) DEFINE x RECORD factura CHAR(10), cod_sp SMALLINT, cod_sp_sec SMALLINT, fecha DATE, cuenta_no CHAR(11), departamento SMALLINT, cod_aux SMALLINT, cod_sec SMALLINT, refer CHAR(10), debito DECIMAL(12,2), credito DECIMAL(12,2), id INTEGER, nom_sp CHAR(45), valor_fac DECIMAL(12,2) END RECORD DEFINE reg_final RECORD cuenta_no CHAR(8), departamento SMALLINT, cod_aux SMALLINT, cod_sec SMALLINT, 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), doce CHAR(3), doble_on CHAR(3), doble_off CHAR(3), negrillas_on CHAR(6), negrillas_off CHAR(6), hora CHAR(5) OUTPUT PAGE LENGTH 150 #ORDER BY x.cod_sp_sec,x.factura,x.cuenta_no,x.id FORMAT PAGE HEADER { LET negrillas_on = ASCII 27, ASCII 69 LET negrillas_off = ASCII 27, ASCII 70 LET doble_on = ASCII 27, ASCII 14 LET doble_off = ASCII 27, ASCII 20 LET doce = ASCII 27, ASCII 77 LET comp_on = ASCII 15 LET comp_off = ASCII 18} LET hora = time LET lj = (83 - LENGTH(p_companias.nombre CLIPPED))/2 PRINT COLUMN 1,comp_off,doce PRINT COLUMN 1, "cpprrp011", COLUMN lj, p_companias.nombre CLIPPED, COLUMN 76,"Pag. ", pageno using "###" PRINT COLUMN 1, negrillas_on, COLUMN 32, "SISTEMA CUENTA POR PAGAR", COLUMN 76, today using "dd/mm/yy" PRINT COLUMN 20, "Validacion Cuentas Afectadas Por Facturacion", COLUMN 79, hora PRINT COLUMN 30,"DEL ", fecha1 USING "dd/mm/yy"," AL ", fecha2 USING "dd/mm/yy" PRINT comp_on PRINT COLUMN 1, "----------------------------------------", "----------------------------------------", "----------------------------------------", "----------------" PRINT COLUMN 1, "Suplidor", COLUMN 40, "Factura", COLUMN 52, "Fecha", COLUMN 62, "Valor Fact.", COLUMN 75, "Cuenta", COLUMN 85, "Dpto. ", COLUMN 91, "Cta. Aux.", COLUMN 99, "Refer.", COLUMN 115, "Debe", COLUMN 131, "Haber" 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; BEFORE GROUP OF x.factura LET total_debito = 0 LET total_credito = 0 PRINT COLUMN 40, x.factura CLIPPED, COLUMN 52, x.fecha USING "dd/mm/yy", COLUMN 62, x.valor_fac USING "#,###,###.##"; ON EVERY ROW IF x.debito IS NULL THEN LET x.debito = 0 END IF IF x.credito IS NULL THEN LET x.credito = 0 END IF LET total_debito = total_debito + x.debito LET total_credito = total_credito + x.credito LET total_supl1 = total_supl1 + x.debito LET total_supl2 = total_supl2 + x.credito IF x.cod_aux IS NOT NULL THEN LET codigo_a = x.cod_aux USING "##","-",x.cod_sec USING "####" ELSE LET codigo_a = null END IF PRINT COLUMN 75, x.cuenta_no CLIPPED, COLUMN 85, x.departamento USING "####", COLUMN 91, codigo_a CLIPPED, COLUMN 99, x.refer CLIPPED, COLUMN 111, x.debito USING "###,###,###.##", COLUMN 126, x.credito USING "###,###,###.##" AFTER GROUP OF x.factura PRINT COLUMN 111, "--------------", COLUMN 126, "--------------" PRINT COLUMN 111, GROUP SUM(x.debito) USING "###,###,###.##", COLUMN 126, GROUP SUM(x.credito) USING "###,###,###.##" SKIP 1 LINE IF total1 IS NULL THEN LET total1 = 0 END IF LET total1 = total1 + x.valor_fac AFTER GROUP OF x.cod_sp_sec PRINT COLUMN 111, "--------------", COLUMN 126, "--------------" PRINT COLUMN 111, GROUP SUM(x.debito) USING "###,###,###.##", COLUMN 126, GROUP SUM(x.credito) USING "###,###,###.##" PRINT COLUMN 111, "==============", COLUMN 126, "==============" SKIP 2 LINE ON LAST ROW PRINT COLUMN 1, "-------------------------------------", "-------------------------------------", "-------------------------------------", "-----------------------" SKIP 1 LINE PRINT COLUMN 50, "Total Por Cuentas" SKIP 1 LINE DECLARE busca1 CURSOR FOR SELECT a.cuenta_no,a.departamento,a.cod_aux,a.cod_sec,a.num_doc, SUM(a.debito) debito,SUM(a.credito) FROM cptb00003 a WHERE a.status_t IS NULL AND a.fecha BETWEEN fecha1 AND fecha2 AND a.cod_sp = mvto.cod_sp GROUP BY a.cuenta_no,a.departamento,a.cod_aux,a.cod_sec,a.num_doc ORDER BY a.num_Doc DESC,debito DESC,a.departamento LET t_debito = 0 LET t_credito = 0 FOREACH busca1 INTO reg_final.* LET t_debito = t_debito + reg_final.debito LET t_credito = t_credito + reg_final.credito IF decide = "S" THEN INSERT INTO cgtb00004 (fecha, tipo, ref, cuenta_no,departamento, num_doc, cod_aux, cod_sec, detalles, detalle_1, detalle_2, debito, credito, status_t, us_crea, fech_crea, us_mod, fech_mod) VALUES(MVTO.fecha_fi,1,entrada,reg_final.cuenta_no,reg_final.departamento, reg_final.num_doc,reg_final.cod_aux,reg_final.cod_sec,null, detalle1,null,reg_final.debito,reg_final.credito,null,suser_sname(),GETDATE(),null,null) display "INSERTE" END IF PRINT COLUMN 75, reg_final.cuenta_no CLIPPED, COLUMN 85, reg_final.departamento USING "####", COLUMN 91, reg_final.cod_aux USING "&&"," ", reg_final.cod_sec USING "&&&&", COLUMN 99, reg_final.num_doc CLIPPED, COLUMN 111, reg_final.debito USING "###,###,###.##", COLUMN 126, reg_final.credito USING "###,###,###.##" END FOREACH PRINT COLUMN 111, "--------------", COLUMN 126, "--------------" PRINT COLUMN 45, "Total General --->", COLUMN 65, total1 USING "###,###,###.##", COLUMN 111, t_debito USING "###,###,###.##", COLUMN 126, t_credito USING "###,###,###.##" LET total1 = 0 LET t_debito = 0 LET t_credito = 0 PRINT comp_off END REPORT