{ ============================================================================= PROGRAMA : IRPRRP025 OBJETIVO : IMPRIMIR REPUESTOS CON COMPRA Y SIN COSTO PROGRAMADOR : TADEO A. FERRERAS F. FECHA : FEBRERO 17, 1995 ============================================================================= } GLOBALS "irprgb000.4gl" DEFINE descrip CHAR(30) DEFINE fecha_inicial,fecha_final DATE DEFINE opcion1 CHAR(1) DEFINE ano1 CHAR(4) DEFINE mes1 INTEGER DEFINE datos_25 RECORD cod_n SMALLINT, cod_grupo SMALLINT, cod_tipo SMALLINT, cod_sec SMALLINT, descrip_esp CHAR(30), unidad_med CHAR(3), costo_st DECIMAL(16,4), num_oc INTEGER, precio DECIMAL(12,2) END RECORD FUNCTION irprrp025() OPTIONS PROMPT LINE 10, ERROR LINE 24, FORM LINE 8 OPEN FORM irfmrp025 FROM "irfmrp001" DISPLAY FORM irfmrp025 DISPLAY "irprrp025" AT 4,3 DISPLAY "Repuestos Con Compra y Sin Costo Std." AT 6,21 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 LABEL pregunta: PROMPT "Deseas Actualizar Costos Standard... [S/N]? " FOR CHAR opcion1 LET opcion1 = UPSHIFT(opcion1) IF (opcion1 != "S" AND opcion1 != "N") OR (opcion1 IS NULL) THEN GOTO pregunta END IF LET ano1 = YEAR(TODAY) USING "&&&&" SELECT MAX(a.mes) INTO mes1 FROM prdtable a WHERE MONTH(a.fecha_corte)=MONTH(TODAY) AND YEAR(a.fecha_corte)=YEAR(TODAY) LET selec = "SELECT UNIQUE a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,b.descrip_esp, ", " b.unidad_med,MAX(d.costo_st),MAX(c.num_oc) ", "FROM irtb00002 a, OUTER cotb00015 c,intb00001 b,OUTER irtb00013 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.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 ", criterio CLIPPED," AND a.status_t IS NULL AND c.status_t IS NULL AND ", " b.status_t IS NULL 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_25 TO PIPE "lp -dcentral" DISPLAY "<< Reporte Generandose ... Espere Por Favor >>" AT 19,14 FOREACH busca INTO datos_25.* IF datos_25.costo_st is null OR datos_25.costo_st = 0 THEN LET datos_25.precio = 0 SELECT MAX(a.precio) INTO datos_25.precio FROM cotb00015 a WHERE a.status_t IS NULL AND a.cod_n = datos_25.cod_n AND a.cod_grupo=datos_25.cod_grupo AND a.cod_tipo = datos_25.cod_tipo AND a.cod_sec = datos_25.cod_sec AND a.num_oc = datos_25.num_oc IF datos_25.precio is not null THEN LET datos_25.costo_st = (datos_25.precio * 1.08) LET datos_25.costo_st = (datos_25.costo_st * 1.05) END IF IF datos_25.precio is null THEN LET datos_25.precio = 0 END IF IF datos_25.costo_st is null OR datos_25.costo_st = 0 THEN LET datos_25.costo_st = 1 END IF OUTPUT TO REPORT reporte_25(datos_25.*) END IF END FOREACH FINISH REPORT reporte_25 RUN "type C:\\archivo > %USPRINT%" END FUNCTION REPORT reporte_25(x) DEFINE x RECORD cod_n SMALLINT, cod_grupo SMALLINT, cod_tipo SMALLINT, cod_sec SMALLINT, descrip_esp CHAR(30), unidad_med CHAR(3), costo_st DECIMAL(16,4), num_oc INTEGER, precio DECIMAL(12,2) 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 doce PRINT COLUMN 1, "irprrp025", 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 17, "REPUESTOS SIN COSTO STANDARD CON O SIN COMPRAS", COLUMN 74, time PRINT COLUMN 1, "FECHA: ",TODAY using "dd/mm/yy" PRINT "=============================================================================", "========" PRINT COLUMN 1, "CODIGO", COLUMN 55, "COSTO STD", COLUMN 75, "PRECIO" 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," ",x.unidad_med, COLUMN 48, x.costo_st USING "###,###,###.####", COLUMN 70, x.precio USING "###,###,###.##" IF opcion1 = "S" THEN IF x.costo_st > 0 THEN INSERT INTO irtb00013 VALUES (01,12,ano1,x.cod_n,x.cod_grupo, x.cod_tipo,x.cod_sec,x.costo_st, NULL,USER,CURRENT,NULL,NULL) END IF END IF ON LAST ROW PRINT "=============================================================================", "========" PRINT "TOTAL REGISTRO ---> ", COUNT(*) USING "<<<,<<<,<<<" PRINT ASCII 031 END REPORT