{ ###################################################################### Programa : CPPRRP010 Proceso : Facturas con pagos sin existir Sistema : Cuenta Por Pagar Autor : Johnny Soto Fecha : Abril 26, 1994 ####################################################################### } GLOBALS "cpprgb000.4gl" DEFINE mvto RECORD fecha_in DATE, fecha_fi DATE, cod_sp SMALLINT END RECORD DEFINE prt_mvto RECORD tipo_doc LIKE cptb00001.tipo_doc, num_doc LIKE cptb00001.num_doc, cod_sp LIKE cptb00001.cod_sp, cod_sp_sec LIKE cptb00001.cod_sp_sec, nom_sup CHAR(45), fecha_orig LIKE cptb00001.fecha_orig, aplica_a LIKE cptb00001.aplica_a, detalle LIKE cptb00001.detalle, valor LIKE cptb00001.valor END RECORD FUNCTION cpprrp010() CLEAR SCREEN OPTIONS FORM LINE 8 #WHENEVER ERROR CONTINUE OPEN FORM cpfmrp010 FROM "cpfmrp010" CALL PANTALLA() DISPLAY "cpprrp010" AT 4,3 ATTRIBUTE(blue) DISPLAY "PAGOS A FACTURAS NO EXISTENTES" AT 6,25 DISPLAY FORM cpfmrp010 LET int_flag = FALSE LET tipo_papel = 1 CALL msgrp000(tipo_papel) INPUT BY NAME mvto.* 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 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.tipo_doc,a.num_doc,a.cod_sp,a.cod_sp_sec,b.nom_sp, ", " a.fecha_orig,a.aplica_a,a.detalle,SUM(a.valor) ", "FROM cptb00001 a,cotb00001 b ", "WHERE a.cod_sp = b.cod_sp AND a.cod_sp_sec = b.cod_sp_sec and ", " a.status_t IS NULL AND a.fecha_orig BETWEEN ? AND ? AND ", " a.cod_sp = ? AND a.tipo_doc='CK' GROUP BY 1,2,3,4,5,6,7,8" DISPLAY "<< Buscando Informacion .... Espere Por Favor. >>" AT 19,14 ATTRIBUTE(REVERSE,BOLD) PREPARE comando FROM selec DECLARE movto CURSOR FOR comando OPEN movto USING mvto.fecha_in,mvto.fecha_fi,mvto.cod_sp DISPLAY "<< " AT 19,14 DISPLAY "<< Impresion En Proceso .... Espere Por Favor. >>" AT 19,14 ATTRIBUTE(REVERSE,BOLD) START REPORT ft_no TO "C:\\archivo" WHILE status != NOTFOUND FETCH movto INTO prt_mvto.* IF STATUS = NOTFOUND THEN EXIT WHILE END IF OUTPUT TO REPORT ft_no(prt_mvto.*,mvto.fecha_in,mvto.fecha_fi) END WHILE FINISH REPORT ft_no RUN "type C:\\archivo > %USPRINT%" END FUNCTION REPORT ft_no(x,fecha1,fecha2) DEFINE x RECORD tipo_doc LIKE cptb00001.tipo_doc, num_doc LIKE cptb00001.num_doc, cod_sp LIKE cptb00001.cod_sp, cod_sp_sec LIKE cptb00001.cod_sp_sec, nom_sup CHAR(45), fecha_orig LIKE cptb00001.fecha_orig, aplica_a LIKE cptb00001.aplica_a, detalle LIKE cptb00001.detalle, valor LIKE cptb00001.valor END RECORD DEFINE fecha1,fecha2 DATE DEFINE nom_sup CHAR(45) DEFINE sale CHAR(1) DEFINE valor2,valor1 DECIMAL(12,2) DEFINE doce CHAR(2), comp_on CHAR(2), comp_off CHAR(2), doble_on CHAR(2), doble_off CHAR(2), negrillas_on CHAR(6), negrillas_off CHAR(6), normal CHAR(6), hora CHAR(5) OUTPUT LEFT MARGIN 0 TOP MARGIN 1 BOTTOM MARGIN 4 ORDER BY x.num_doc,x.aplica_a FORMAT PAGE HEADER LET doble_on = ASCII 14 LET doble_off = ASCII 20 LET negrillas_on = ASCII 27, ASCII 69 LET negrillas_off = ASCII 27, ASCII 70 LET comp_on = ASCII 15 LET comp_off = ASCII 18 LET doce = ASCII 27, ASCII 77 LET normal = ASCII 27, ASCII 80 LET lj = (89 - LENGTH(p_companias.nombre CLIPPED))/2 LET hora = time PRINT COLUMN 1,comp_off PRINT COLUMN 1, "cpprrp010", COLUMN lj, p_companias.nombre CLIPPED, COLUMN 82, "Pag. ", pageno using "###" PRINT COLUMN 1, negrillas_on, COLUMN 36, "SISTEMA CUENTA POR PAGAR", COLUMN 82, today using "dd/mm/yy" PRINT COLUMN 31, "Pagos a Facturas No Existentes", COLUMN 83, hora PRINT COLUMN 34, "DEL ", fecha1 USING "dd/mm/yy"," AL ", fecha2 USING "dd/mm/yy" PRINT COLUMN 1,comp_on PRINT COLUMN 2, "-------------------------------------", "-------------------------------------", "-------------------------------------", "-------------------" PRINT COLUMN 3, "Documento", COLUMN 15, "Fecha", COLUMN 27, "Concepto", COLUMN 60, "Proveedor", COLUMN 110,"Aplica a", COLUMN 127,"Valor" PRINT COLUMN 2, "-------------------------------------", "-------------------------------------", "-------------------------------------", "-------------------", negrillas_off SKIP 1 LINE BEFORE GROUP OF x.num_doc LET sale = "N" LET valor1 = 0 AFTER GROUP OF x.aplica_a # ON EVERY ROW IF valor1 IS NULL THEN LET valor1 = 0 END IF LET sale = "N" SELECT unique a.tipo_doc FROM cptb00001 a WHERE a.cod_sp = x.cod_sp and a.cod_sp_sec = x.cod_sp_sec and a.tipo_doc = "FT" and a.num_doc = x.aplica_a IF status = notfound THEN PRINT COLUMN 3, x.tipo_doc CLIPPED,"-",x.num_doc clipped, COLUMN 15, x.fecha_orig USING "dd/mm/yy", COLUMN 27, x.detalle CLIPPED, COLUMN 60,x.cod_sp USING "&&","-", x.cod_sp_sec USING "&&&&"," ", x.nom_sup CLIPPED, COLUMN 110,x.aplica_a clipped, COLUMN 118,x.valor USING "---,---,---.&&" LET sale = "S" IF valor2 IS NULL THEN LET valor2 = 0 END IF LET valor1 = valor1 + x.valor LET valor2 = valor2 + x.valor END IF AFTER GROUP OF x.num_doc IF valor1 <> 0 THEN PRINT COLUMN 1,negrillas_on, COLUMN 104,"TOTAL DCTO. -->", COLUMN 121,valor1 USING "---,---,---.&&", negrillas_off END IF ON LAST ROW IF valor2 <> 0 THEN # IF sale = "S" THEN SKIP 1 LINE PRINT COLUMN 1,negrillas_on, COLUMN 104,"TOTAL -->", COLUMN 121,valor2 USING "---,---,---.&&", negrillas_off END IF LET valor1 = 0 LET valor2 = 0 LET x.valor = 0 PAGE TRAILER PRINT COLUMN 3, "CK = CHEQUE CP = PREPAGO NC = NOTA DE CREDITO ND = NOTA DE DEBITO", normal END REPORT