{ ======================================================================= Programa : GEPRRP008 Sistema : Sistema de Informacion Gerencia Proceso : Cantidad de Bienes Y/O servicios Comprado en un Rango Autor : Tadeo A. Ferreras Fecha : Enero 03,1994 ======================================================================= } GLOBALS "geprgb000.4gl" DEFINE cod1 SMALLINT DEFINE ger_rep08 RECORD cod_n SMALLINT, cod_grupo SMALLINT, cod_tipo SMALLINT, cod_sec SMALLINT, descrip_esp CHAR(30), unidad_med CHAR(3), cantidad DECIMAL(10,2), valor DECIMAL(10,2), cantidad1 DECIMAL(10,2), valor1 DECIMAL(10,2) END RECORD DEFINE fecha_1,fecha_2,fecha_3,fecha_4 DATE, tipo_rep,salir CHAR(1) FUNCTION geprrp008() LET int_flag = FALSE OPTIONS FORM LINE 8 OPEN FORM gefmrp008 FROM "gefmrp008" CALL pantalla() DISPLAY "geprrp008" AT 4,3 ATTRIBUTE(RED) DISPLAY "Cantidad de Bien/Serv. Comprado En Un Rango de Fecha" AT 6,14 ATTRIBUTE(BLACK) DISPLAY FORM gefmrp008 LET tipo_papel = 1 CALL msgrp000(tipo_papel) CALL defecto(impresor) RETURNING imprime, letras.*, archivo INPUT BY NAME fecha_1,fecha_2,tipo_rep ON KEY(CONTROL-P) CALL busca_printer() RETURNING imprime,letras.*, archivo AFTER FIELD fecha_1 IF fecha_1 IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD fecha_1 END IF BEFORE FIELD fecha_2 LET fecha_2 = today AFTER FIELD fecha_2 IF fecha_2 IS NULL THEN LET fecha_2 = today END IF IF fecha_2 < fecha_1 THEN LET numero_msg = 51 CALL msg(numero_msg) NEXT FIELD fecha_2 END IF DISPLAY BY NAME fecha_2 AFTER FIELD tipo_rep IF tipo_rep IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD tipo_rep END IF END INPUT IF int_flag tHEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF LET fecha_3 = fecha_1 - 365 LET fecha_4 = fecha_2 - 365 IF tipo_rep = "M" THEN LET selec = "SELECT a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,d.descrip_esp, ", " d.unidad_med,SUM(a.cantidad_2),SUM(a.cantidad_2 * (b.precio / ", " c.base)) ", "FROM intb00006 a, cotb00015 b, intb00002 c,intb00001 d ", "WHERE (a.cod_n = b.cod_n AND a.cod_grupo = b.cod_grupo AND ", " a.cod_tipo = b.cod_tipo AND a.cod_sec = b.cod_sec) AND ", " (a.orden_compra = b.num_oc AND a.tipo = b.tipo) AND ", " (a.cod_n = c.cod_n AND a.cod_grupo = c.cod_grupo AND ", " a.cod_tipo = c.cod_tipo AND a.cod_sec = c.cod_sec) AND ", " (a.cod_n = d.cod_n AND a.cod_grupo = d.cod_grupo AND ", " a.cod_tipo = d.cod_tipo AND a.cod_sec = d.cod_sec) AND ", " (a.fecha BETWEEN ? AND ?) AND (a.cod_mov IN (34,35)) ", "GROUP BY 1,2,3,4,5,6 HAVING SUM(a.cantidad_2) > 0 ORDER BY 1,2,3,4 " DISPLAY "Buscando Compras... Espere por Favor" AT 19,14 END IF IF tipo_rep = "R" THEN LET selec = "SELECT a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,d.descrip_esp, ", " d.unidad_med,SUM(a.cantidad_2),SUM(a.cantidad_2*b.precio) ", "FROM irtb00006 a, cotb00015 b, intb00001 d ", "WHERE (a.cod_n = b.cod_n AND a.cod_grupo = b.cod_grupo AND ", " a.cod_tipo = b.cod_tipo AND a.cod_sec = b.cod_sec) AND ", " (a.orden_compra = b.num_oc AND a.tipo = b.tipo) AND ", " (a.cod_n = d.cod_n AND a.cod_grupo = d.cod_grupo AND ", " a.cod_tipo = d.cod_tipo AND a.cod_sec = d.cod_sec) AND ", " (a.fecha BETWEEN ? AND ?) AND (a.cod_mov IN (1,2)) AND ", " (a.cod_n=5) ", "GROUP BY 1,2,3,4,5,6 HAVING SUM(a.cantidad_2) > 0 ORDER BY 1,2,3,4 " DISPLAY "Buscando Compras... Espere por Favor" AT 19,14 END IF IF tipo_rep = "H" THEN LET selec = "SELECT a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,d.descrip_esp, ", " d.unidad_med,SUM(a.cantidad_2),SUM(a.cantidad_2*b.precio) ", "FROM ihtb00006 a, cotb00015 b, intb00001 d ", "WHERE (a.cod_n = b.cod_n AND a.cod_grupo = b.cod_grupo AND ", " a.cod_tipo = b.cod_tipo AND a.cod_sec = b.cod_sec) AND ", " (a.orden_compra = b.num_oc AND a.tipo = b.tipo) AND ", " (a.cod_n = d.cod_n AND a.cod_grupo = d.cod_grupo AND ", " a.cod_tipo = d.cod_tipo AND a.cod_sec = d.cod_sec) AND ", " (a.fecha BETWEEN ? AND ?) AND (a.cod_mov IN (1,2)) ", "GROUP BY 1,2,3,4,5,6 HAVING SUM(a.cantidad_2) > 0 ORDER BY 1,2,3,4 " DISPLAY "Buscando Compras... Espere por Favor" AT 19,14 END IF IF tipo_rep = "S" THEN LET selec = "SELECT a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,d.descrip_esp, ", " d.unidad_med,SUM(a.cantidad_2),SUM(a.cantidad_2*b.precio) ", "FROM istb00006 a, cotb00015 b, intb00001 d ", "WHERE (a.cod_n = b.cod_n AND a.cod_grupo = b.cod_grupo AND ", " a.cod_tipo = b.cod_tipo AND a.cod_sec = b.cod_sec) AND ", " (a.orden_compra = b.num_oc AND a.tipo = b.tipo) AND ", " (a.cod_n = d.cod_n AND a.cod_grupo = d.cod_grupo AND ", " a.cod_tipo = d.cod_tipo AND a.cod_sec = d.cod_sec) AND ", " (a.fecha BETWEEN ? AND ?) AND (a.cod_mov IN (34,1)) ", "GROUP BY 1,2,3,4,5,6 HAVING SUM(a.cantidad_2) > 0 ORDER BY 1,2,3,4 " DISPLAY "Buscando Compras... Espere por Favor" AT 19,14 END IF IF tipo_rep = "P" THEN LET selec = "SELECT a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,d.descrip_esp, ", " d.unidad_med,SUM(a.cantidad_2),SUM(a.cantidad_2*b.precio) ", "FROM iptb00006 a, cotb00015 b, intb00001 d ", "WHERE (a.cod_n = b.cod_n AND a.cod_grupo = b.cod_grupo AND ", " a.cod_tipo = b.cod_tipo AND a.cod_sec = b.cod_sec) AND ", " (a.orden_compra = b.num_oc AND a.tipo = b.tipo) AND ", " (a.cod_n = d.cod_n AND a.cod_grupo = d.cod_grupo AND ", " a.cod_tipo = d.cod_tipo AND a.cod_sec = d.cod_sec) AND ", " (a.fecha BETWEEN ? AND ?) AND (a.cod_mov = 10) ", "GROUP BY 1,2,3,4,5,6 HAVING SUM(a.cantidad_2) > 0 ORDER BY 1,2,3,4 " DISPLAY "Buscando Compras... Espere por Favor" AT 19,14 END IF PREPARE comando FROM selec DECLARE busca CURSOR FOR comando OPEN busca USING fecha_1,fecha_2 START REPORT gerencia08 TO archivo DISPLAY "Reporte Generandose... Espere por Favor" AT 19,14 ATTRIBUTE(BOLD) LET salir = "N" WHILE salir != "S" FETCH busca INTO ger_rep08.* IF STATUS = NOTFOUND THEN LET salir = "S" EXIT WHILE END IF IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF LET ger_rep08.cantidad1 = 0 LET ger_rep08.valor1 = 0 CASE WHEN tipo_rep = "M" SELECT SUM(a.cantidad_2),SUM(a.cantidad_2 * (b.precio / c.base)) INTO ger_rep08.cantidad1,ger_rep08.valor1 FROM intb00006 a, cotb00015 b, intb00002 c WHERE (a.cod_n = b.cod_n AND a.cod_grupo = b.cod_grupo AND a.cod_tipo = b.cod_tipo AND a.cod_sec = b.cod_sec) AND (a.cod_n = c.cod_n AND a.cod_grupo = c.cod_grupo AND a.cod_tipo = c.cod_tipo AND a.cod_sec = c.cod_sec) AND (a.cod_n=ger_rep08.cod_n AND a.cod_grupo=ger_rep08.cod_grupo AND a.cod_tipo=ger_rep08.cod_tipo AND a.cod_sec=ger_rep08.cod_sec) AND (a.orden_compra = b.num_oc AND a.tipo = b.tipo) AND (a.fecha BETWEEN fecha_3 AND fecha_4) AND (a.cod_mov IN (34,35)) EXIT CASE WHEN tipo_rep = "H" SELECT SUM(a.cantidad_2),SUM(a.cantidad_2*b.precio) INTO ger_rep08.cantidad1,ger_rep08.valor1 FROM ihtb00006 a, cotb00015 b WHERE (a.cod_n = b.cod_n AND a.cod_grupo = b.cod_grupo AND a.cod_tipo = b.cod_tipo AND a.cod_sec = b.cod_sec) AND (a.cod_n=ger_rep08.cod_n AND a.cod_grupo=ger_rep08.cod_grupo AND a.cod_tipo=ger_rep08.cod_tipo AND a.cod_sec=ger_rep08.cod_sec) AND (a.orden_compra = b.num_oc AND a.tipo = b.tipo) AND (a.fecha BETWEEN fecha_3 AND fecha_4) AND (a.cod_mov IN (1,2)) EXIT CASE WHEN tipo_rep = "R" SELECT SUM(a.cantidad_2),SUM(a.cantidad_2*b.precio) INTO ger_rep08.cantidad1,ger_rep08.valor1 FROM irtb00006 a, cotb00015 b WHERE (a.cod_n = b.cod_n AND a.cod_grupo = b.cod_grupo AND a.cod_tipo = b.cod_tipo AND a.cod_sec = b.cod_sec) AND (a.cod_n=ger_rep08.cod_n AND a.cod_grupo=ger_rep08.cod_grupo AND a.cod_tipo=ger_rep08.cod_tipo AND a.cod_sec=ger_rep08.cod_sec) AND (a.orden_compra = b.num_oc AND a.tipo = b.tipo) AND (a.fecha BETWEEN fecha_3 AND fecha_4) AND (a.cod_mov IN (1,2)) EXIT CASE WHEN tipo_rep = "S" SELECT SUM(a.cantidad_2),SUM(a.cantidad_2*b.precio) INTO ger_rep08.cantidad1,ger_rep08.valor1 FROM istb00006 a, cotb00015 b WHERE (a.cod_n = b.cod_n AND a.cod_grupo = b.cod_grupo AND a.cod_tipo = b.cod_tipo AND a.cod_sec = b.cod_sec) AND (a.cod_n=ger_rep08.cod_n AND a.cod_grupo=ger_rep08.cod_grupo AND a.cod_tipo=ger_rep08.cod_tipo AND a.cod_sec=ger_rep08.cod_sec) AND (a.orden_compra = b.num_oc AND a.tipo = b.tipo) AND (a.fecha BETWEEN fecha_3 AND fecha_4) AND (a.cod_mov IN (1,34)) EXIT CASE WHEN tipo_rep = "P" SELECT SUM(a.cantidad_2),SUM(a.cantidad_2*b.precio) INTO ger_rep08.cantidad1,ger_rep08.valor1 FROM iptb00006 a, cotb00015 b WHERE (a.cod_n = b.cod_n AND a.cod_grupo = b.cod_grupo AND a.cod_tipo = b.cod_tipo AND a.cod_sec = b.cod_sec) AND (a.cod_n=ger_rep08.cod_n AND a.cod_grupo=ger_rep08.cod_grupo AND a.cod_tipo=ger_rep08.cod_tipo AND a.cod_sec=ger_rep08.cod_sec) AND (a.orden_compra = b.num_oc AND a.tipo = b.tipo) AND (a.fecha BETWEEN fecha_3 AND fecha_4) AND (a.cod_mov = 10) EXIT CASE END CASE OUTPUT TO REPORT gerencia08(ger_rep08.*) END WHILE FINISH REPORT gerencia08 RUN imprime END FUNCTION REPORT gerencia08(x) DEFINE x RECORD cod_n SMALLINT, cod_grupo SMALLINT, cod_tipo SMALLINT, cod_sec SMALLINT, descrip_esp CHAR(30), unidad_med CHAR(3), cantidad DECIMAL(10,2), valor DECIMAL(10,2), cantidad1 DECIMAL(10,2), valor1 DECIMAL(10,2) END RECORD DEFINE descrip CHAR(11) DEFINE hora CHAR(5) OUTPUT LEFT MARGIN 2 TOP MARGIN 1 ORDER BY x.cod_n,x.cod_grupo,x.cod_tipo,x.cod_sec FORMAT PAGE HEADER LET hora = time PRINT letras.comp_on,letras.negrillas_on PRINT COLUMN 1, "geprrp008", COLUMN 38, "R A Y . O . V A C D O M I N I C A N A, S. A.", COLUMN 116, "Pag. ", pageno using "###" PRINT COLUMN 38, " Sistema de Informacion Gerencial ", COLUMN 116, today using "dd/mm/yyyy" PRINT COLUMN 36, "Cantidad de Bien/Serv. Comprado En Rango de Fecha", COLUMN 119, hora IF tipo_rep = "M" THEN LET descrip = " MATERIAL " END IF IF tipo_rep = "R" THEN LET descrip = " REPUESTO " END IF IF tipo_rep = "H" THEN LET descrip = "HERRAMIENTA" END IF IF tipo_rep = "S" THEN LET descrip = "SUMINISTRO" END IF PRINT COLUMN 35, descrip PRINT COLUMN 1, "Fecha: Del ", fecha_1 USING "dd/mm/yyyy"," Al ", fecha_2 USING "dd/mm/yyyy" PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------", "-----------------------" PRINT COLUMN 64, "ANO ACTUAL", COLUMN 104, "ANO ANTEIOR" PRINT COLUMN 1, "Material", COLUMN 56, "Cantidad", COLUMN 76, "Valor", COLUMN 96, "Cantidad", COLUMN 119, "Valor" PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------", "-----------------------" PRINT letras.negrillas_off ON EVERY ROW PRINT COLUMN 1, x.cod_n USING "&","-",x.cod_grupo USING "&","-", x.cod_tipo USING "&&","-",x.cod_sec USING "&&&"," ", x.descrip_esp CLIPPED," ",x.unidad_med CLIPPED, COLUMN 50, x.cantidad USING "###,###,###.##", COLUMN 70, x.valor USING "###,###,###.##", COLUMN 90, x.cantidad1 USING "###,###,###.##", COLUMN 110, x.valor1 USING "###,###,###.##" ON LAST ROW PRINT letras.negrillas_on PRINT COLUMN 76, "--------------", COLUMN 110, "--------------" PRINT COLUMN 40,"Total General ==> ", COLUMN 76, SUM(x.valor) USING "###,###,###.##", COLUMN 110, SUM(x.valor1) USING "###,###,###.##" PRINT letras.comp_off,letras.negrillas_off END REPORT