238 lines
7.7 KiB
Plaintext
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
|