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