355 lines
14 KiB
Plaintext
355 lines
14 KiB
Plaintext
{
|
|
=======================================================================
|
|
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
|