{ ======================================================================= Programa : GEPRRP007 Sistema : Sistema de Informacion Gerencia Proceso : Compra Mayor a x cantidad en un rango de fechas. Autor : Tadeo A. Ferreras Fecha : Enero 03,1994 ======================================================================= } GLOBALS "geprgb000.4gl" DEFINE ger_rep07 RECORD cod_sp SMALLINT, cod_sp_sec SMALLINT, nom_sp CHAR(30), valor DECIMAL(10,2) END RECORD DEFINE fecha_1,fecha_2 DATE, tipo_rep,salir CHAR(1), cod1 SMALLINT, cant_may DECIMAL(12,2) FUNCTION geprrp007() LET int_flag = FALSE OPTIONS FORM LINE 8 OPEN FORM gefmrp007 FROM "gefmrp007" CALL pantalla() DISPLAY "geprrp007" AT 4,3 ATTRIBUTE(RED) DISPLAY "Compra Mayor a X Cantidad en un Rango de Fechas" AT 6,16 ATTRIBUTE(BLACK) DISPLAY FORM gefmrp007 LET tipo_papel = 1 CALL msgrp000(tipo_papel) CALL defecto(impresor) RETURNING imprime, letras.*, archivo LET cant_may = 0 INPUT BY NAME fecha_1,fecha_2,cant_may,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 IF cant_may IS NULL THEN LET cant_may = 0 END IF IF tipo_rep = "M" THEN LET selec = "SELECT a.cod_sp,a.cod_sp_sec,d.nom_sp,SUM(a.cantidad_2 * (b.precio / ", " c.base)) ", "FROM intb00006 a, cotb00015 b, intb00002 c,cotb00001 d ", "WHERE (a.cod_sp = d.cod_sp AND a.cod_sp_sec = d.cod_sp_sec) AND ", " (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.fecha BETWEEN ? AND ?) AND (a.cod_mov IN (34,35)) ", "GROUP BY 1,2,3 HAVING SUM(a.cantidad_2*(b.precio/c.base)) > ? " DISPLAY "Buscando Compras... Espere por Favor" AT 19,14 END IF IF tipo_rep = "R" THEN LET selec = "SELECT a.cod_sp,a.cod_sp_sec,d.nom_sp,SUM(a.cantidad_2 * b.precio) ", "FROM irtb00006 a, cotb00015 b, cotb00001 d ", "WHERE (a.cod_sp = d.cod_sp AND a.cod_sp_sec = d.cod_sp_sec) AND ", " (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.fecha BETWEEN ? AND ?) AND (a.cod_mov IN (1,2)) AND ", " (a.cod_sp=5) ", "GROUP BY 1,2,3 HAVING SUM(a.cantidad_2*b.precio) > ? " DISPLAY "Buscando Compras... Espere por Favor" AT 19,14 END IF IF tipo_rep = "H" THEN LET selec = "SELECT a.cod_sp,a.cod_sp_sec,d.nom_sp,SUM(a.cantidad_2 * b.precio) ", "FROM ihtb00006 a, cotb00015 b, cotb00001 d ", "WHERE (a.cod_sp = d.cod_sp AND a.cod_sp_sec = d.cod_sp_sec) AND ", " (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.fecha BETWEEN ? AND ?) AND (a.cod_mov IN (1,2)) ", "GROUP BY 1,2,3 HAVING SUM(a.cantidad_2*b.precio) > ? " DISPLAY "Buscando Compras... Espere por Favor" AT 19,14 END IF IF tipo_rep = "S" THEN LET selec = "SELECT a.cod_sp,a.cod_sp_sec,d.nom_sp,SUM(a.cantidad_2 * b.precio) ", "FROM istb00006 a, cotb00015 b, cotb00001 d ", "WHERE (a.cod_sp = d.cod_sp AND a.cod_sp_sec = d.cod_sp_sec) AND ", " (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.fecha BETWEEN ? AND ?) AND (a.cod_mov IN (1,34)) ", "GROUP BY 1,2,3 HAVING SUM(a.cantidad_2*b.precio) > ? " 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,cant_may START REPORT gerencia07 TO archivo DISPLAY "Reporte Generandose... Espere por Favor" AT 19,14 ATTRIBUTE(BOLD) LET salir = "N" WHILE salir != "S" FETCH busca INTO ger_rep07.* 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 OUTPUT TO REPORT gerencia07(ger_rep07.*) END WHILE FINISH REPORT gerencia07 RUN imprime END FUNCTION REPORT gerencia07(x) DEFINE x RECORD cod_sp SMALLINT, cod_sp_sec SMALLINT, nom_sp CHAR(30), valor DECIMAL(10,2) END RECORD DEFINE cant DECIMAL(12,2) DEFINE total DECIMAL(12,2) DEFINE descrip CHAR(11) DEFINE hora CHAR(5) OUTPUT LEFT MARGIN 2 TOP MARGIN 1 ORDER BY x.valor DESC,x.cod_sp,x.cod_sp_sec FORMAT PAGE HEADER LET hora = time PRINT COLUMN 1, "geprrp007", COLUMN 17, "R A Y . O . V A C D O M I N I C A N A, S. A.", COLUMN 73,"Pag. ", pageno using "###" PRINT COLUMN 17, " Sistema de Informacion Gerencial ", COLUMN 73, today using "dd/mm/yyyy" PRINT COLUMN 24,"Compras Mayores a ", cant_may USING "###,###,###.##", COLUMN 76, 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 1, "Suplidor", COLUMN 73, "Valor" PRINT COLUMN 1, "-----------------------------------------------", "----------------------------------" ON EVERY ROW PRINT COLUMN 01, x.cod_sp USING "&&","-",x.cod_sp_sec USING "&&&&"," ", x.nom_sp CLIPPED, COLUMN 65, x.valor USING "###,###,###.##" ON LAST ROW PRINT COLUMN 65,"______________" PRINT COLUMN 40,"Total General ==> ", COLUMN 65, SUM(x.valor) USING "###,###,###.##" END REPORT