Files
MBS/PROYECTO/gedir/geprrp007.4gl
T

238 lines
7.7 KiB
Plaintext

{
=======================================================================
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