218 lines
7.1 KiB
Plaintext
218 lines
7.1 KiB
Plaintext
{
|
|
=============================================================================
|
|
PROGRAMA : IRPRRP035
|
|
OBJETIVO : IMPRIMIR LA DATA CONTENIDA EN LA TABLA IRTB01133
|
|
PROGRAMADOR : ABNER MONTALVO
|
|
FECHA : AGOSTO 5, 1997
|
|
=============================================================================
|
|
}
|
|
GLOBALS
|
|
"irprgb000.4gl"
|
|
DEFINE descrip CHAR(30)
|
|
DEFINE codigo CHAR(10)
|
|
DEFINE fecha_inicial,fecha_final DATE
|
|
DEFINE opcion1 CHAR(1)
|
|
DEFINE ano1 CHAR(4)
|
|
DEFINE mes1, total_impresos INTEGER
|
|
|
|
DEFINE datos_35 RECORD
|
|
cod_n SMALLINT,
|
|
cod_grupo SMALLINT,
|
|
cod_tipo SMALLINT,
|
|
cod_sec SMALLINT,
|
|
descrip_esp CHAR(30),
|
|
costo_st DECIMAL(12,2),
|
|
costo_compra DECIMAL(12,2),
|
|
orden_compra INTEGER
|
|
END RECORD
|
|
FUNCTION irprrp035()
|
|
OPTIONS
|
|
PROMPT LINE 10,
|
|
ERROR LINE 24,
|
|
FORM LINE 8
|
|
|
|
OPEN FORM irfmrp025 FROM "irfmrp001"
|
|
DISPLAY FORM irfmrp025
|
|
|
|
DISPLAY "irprrp035" AT 4,3
|
|
DISPLAY "Repuestos sin Costo TEMPORAL" AT 6,26
|
|
|
|
LET total_impresos = 0
|
|
LET tipo_papel = 1
|
|
CALL msgrp000(tipo_papel)
|
|
|
|
CONSTRUCT criterio ON a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec
|
|
FROM cod_n,cod_grupo,cod_tipo,cod_sec
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET numero_msg = FALSE
|
|
RETURN
|
|
END IF
|
|
|
|
LET selec =
|
|
"SELECT UNIQUE a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,b.descrip_esp, ",
|
|
" c.costo_st ",
|
|
"FROM irtb00002 a, intb00001 b, irtb01133 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.status_t IS NULL AND ",
|
|
" b.status_t IS NULL AND ",
|
|
" c.status_t IS NULL AND ",
|
|
" c.costo_st IS NULL AND ",
|
|
criterio CLIPPED,
|
|
" GROUP BY 1,2,3,4,5,6 "
|
|
|
|
DISPLAY "<< Buscando Informacion ... Espere Por Favor >>" AT 19,14
|
|
|
|
PREPARE comando FROM selec
|
|
DECLARE busca CURSOR FOR comando
|
|
|
|
START REPORT reporte_35 TO PIPE "$DBPRINT"
|
|
#START REPORT reporte_35 TO "salida"
|
|
DISPLAY "<< Reporte Generandose ... Espere Por Favor >>" AT 19,14
|
|
|
|
FOREACH busca INTO datos_35.*
|
|
LET codigo = datos_35.cod_n USING "&","-",
|
|
datos_35.cod_grupo USING "&", "-",
|
|
datos_35.cod_tipo USING "&&", "-",
|
|
datos_35.cod_sec USING "&&&"
|
|
|
|
DISPLAY codigo AT 20,35
|
|
DISPLAY datos_35.costo_compra AT 20,50
|
|
DISPLAY datos_35.orden_compra AT 20,65
|
|
|
|
LET datos_35.orden_compra = NULL
|
|
LET datos_35.costo_compra = NULL
|
|
|
|
SELECT MAX(a.num_oc) INTO datos_35.orden_compra
|
|
FROM cotb00014 a, cotb00015 b
|
|
WHERE a.status_t IS NULL AND
|
|
a.num_oc = b.num_oc AND
|
|
b.cod_n = datos_35.cod_n AND
|
|
b.cod_grupo = datos_35.cod_grupo AND
|
|
b.cod_tipo = datos_35.cod_tipo AND
|
|
b.cod_sec = datos_35.cod_sec AND
|
|
b.precio > 0
|
|
|
|
IF datos_35.orden_compra IS NOT NULL THEN
|
|
SELECT precio INTO datos_35.costo_compra
|
|
FROM cotb00015
|
|
WHERE num_oc = datos_35.orden_compra AND
|
|
cod_n = datos_35.cod_n AND
|
|
cod_grupo = datos_35.cod_grupo AND
|
|
cod_tipo = datos_35.cod_tipo AND
|
|
cod_sec = datos_35.cod_sec
|
|
ELSE
|
|
SELECT MAX(c.num_oc) INTO datos_35.orden_compra
|
|
FROM cotb00033 c, cotb00034 d
|
|
WHERE c.status_t IS NULL AND
|
|
c.num_oc = d.num_oc AND
|
|
d.cod_n = datos_35.cod_n AND
|
|
d.cod_grupo = datos_35.cod_grupo AND
|
|
d.cod_tipo = datos_35.cod_tipo AND
|
|
d.cod_sec = datos_35.cod_sec AND
|
|
d.precio > 0
|
|
|
|
IF datos_35.orden_compra IS NOT NULL THEN
|
|
SELECT precio INTO datos_35.costo_compra
|
|
FROM cotb00034
|
|
WHERE num_oc = datos_35.orden_compra AND
|
|
cod_n = datos_35.cod_n AND
|
|
cod_grupo = datos_35.cod_grupo AND
|
|
cod_tipo = datos_35.cod_tipo AND
|
|
cod_sec = datos_35.cod_sec
|
|
END IF
|
|
END IF
|
|
|
|
{ Esta parte actualiza el costo del producto al valor de su ultima compra o en
|
|
un peso si nunca se ha comprado.
|
|
|
|
IF datos_35.costo_compra > 0 THEN
|
|
UPDATE irtb01133 SET costo_st = datos_35.costo_compra
|
|
WHERE cod_n = datos_35.cod_n AND
|
|
cod_grupo = datos_35.cod_grupo AND
|
|
cod_tipo = datos_35.cod_tipo AND
|
|
cod_sec = datos_35.cod_sec
|
|
ELSE
|
|
UPDATE irtb01133 SET costo_st = 1
|
|
WHERE cod_n = datos_35.cod_n AND
|
|
cod_grupo = datos_35.cod_grupo AND
|
|
cod_tipo = datos_35.cod_tipo AND
|
|
cod_sec = datos_35.cod_sec
|
|
END IF
|
|
}
|
|
OUTPUT TO REPORT reporte_35(datos_35.*)
|
|
|
|
END FOREACH
|
|
FINISH REPORT reporte_35
|
|
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
|
|
|
|
REPORT reporte_35(x)
|
|
DEFINE x RECORD
|
|
cod_n SMALLINT,
|
|
cod_grupo SMALLINT,
|
|
cod_tipo SMALLINT,
|
|
cod_sec SMALLINT,
|
|
descrip_esp CHAR(30),
|
|
costo_st DECIMAL(12,2),
|
|
costo_compra DECIMAL(12,2),
|
|
orden_compra INTEGER
|
|
END RECORD,
|
|
doble_off,doble_on,doce CHAR(3),
|
|
unidad CHAR(3),
|
|
total_p DECIMAL(12,2)
|
|
|
|
OUTPUT LEFT MARGIN 0
|
|
FORMAT
|
|
PAGE HEADER
|
|
LET doce = ASCII 030
|
|
LET doble_on = ASCII 027, ASCII 001
|
|
LET doble_off = ASCII 027, ASCII 002
|
|
|
|
PRINT ASCII 031
|
|
PRINT COLUMN 1, "irprrp035",
|
|
COLUMN 18, "R A Y .O. V A C D O M I N I C A N A, S. A.",
|
|
COLUMN 74, "Pag. ",pageno using "###"
|
|
PRINT COLUMN 18, " SISTEMA DE REPUESTOS",
|
|
COLUMN 74, today using "dd/mm/yy"
|
|
PRINT COLUMN 27, "Repuestos sin Costo TEMPORAL",
|
|
COLUMN 74, time
|
|
PRINT COLUMN 1, "FECHA: ",TODAY using "dd/mm/yy"
|
|
|
|
PRINT
|
|
"=============================================================================",
|
|
"========================================="
|
|
PRINT COLUMN 1, "Codigo",
|
|
COLUMN 53, "Costo Real",
|
|
COLUMN 73, "Precio Ultima Compra"
|
|
PRINT
|
|
"=============================================================================",
|
|
"========="
|
|
SKIP 1 LINE
|
|
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,
|
|
COLUMN 53, x.costo_st USING "###,###,###.##",
|
|
COLUMN 73, x.costo_compra USING "###,###,###.##",
|
|
COLUMN 90, x.orden_compra USING "#######"
|
|
|
|
ON LAST ROW
|
|
PRINT
|
|
"=============================================================================",
|
|
"========="
|
|
PRINT "TOTAL REGISTRO ---> ", COUNT(*) USING "<<<,<<<,<<<"
|
|
PRINT ASCII 030
|
|
END REPORT
|
|
|
|
|