{ ============================================================================= PROGRAMA : IRPRRP038 OBJETIVO : IMPRIMIR REPUESTOS, COSTO REAL, ORDEN COMPRA, PRECIO, MONEDA PROGRAMADOR : ABNER MONTALVO FECHA : JUNIO 24, 1997 ============================================================================= } GLOBALS "irprgb000.4gl" DEFINE descrip CHAR(30) DEFINE fecha_inicial,fecha_final DATE DEFINE opcion1 CHAR(1) DEFINE ano1,ano2 CHAR(4) DEFINE mes1, total_impresos INTEGER DEFINE datos_38 RECORD cod_n SMALLINT, cod_grupo SMALLINT, cod_tipo SMALLINT, cod_sec SMALLINT, existencia DECIMAL(10,2), costo_act DECIMAL(16,4), costo_pro DECIMAL(16,4) END RECORD FUNCTION irprrp038() OPTIONS PROMPT LINE 10, ERROR LINE 24, FORM LINE 8 OPEN FORM irfmrp038 FROM "irfmrp038" DISPLAY FORM irfmrp038 DISPLAY "irprrp038" AT 4,3 DISPLAY "Actualizacion Nuevos Costos de Repuestos" AT 6,20 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 LET fecha_inicial = TODAY INPUT BY NAME fecha_inicial IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET numero_msg = FALSE RETURN END IF LET ano2 = YEAR(TODAY) USING "&&&&" LET selec = "SELECT UNIQUE a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec, ", " SUM(c.cantidad_2) ", "FROM irtb00002 a, irtb00006 c ", "WHERE a.cod_n = 5 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 ", " c.status_t IS NULL AND ", " c.fecha <= ? ", " GROUP BY 1,2,3,4 " DISPLAY "<< Buscando Informacion ... Espere Por Favor >>" AT 19,14 PREPARE comando FROM selec DECLARE busca CURSOR FOR comando OPEN busca USING fecha_inicial FOREACH busca INTO datos_38.* LET datos_38.costo_act = null LET datos_38.costo_pro = null DISPLAY datos_38.cod_n USING "&" AT 21,35 DISPLAY "-" AT 21,36 DISPLAY datos_38.cod_grupo USING "&" AT 21,37 DISPLAY "-" AT 21,38 DISPLAY datos_38.cod_tipo USING "&&" AT 21,39 DISPLAY "-" AT 21,41 DISPLAY datos_38.cod_sec USING "&&&" AT 21,42 IF datos_38.existencia <= 0 OR datos_38.existencia IS NULL THEN DELETE FROM irtb01133 WHERE cod_n = datos_38.cod_n AND cod_grupo = datos_38.cod_grupo AND cod_tipo = datos_38.cod_tipo AND cod_sec = datos_38.cod_sec CONTINUE FOREACH END IF SELECT MAX(ano) INTO ano1 FROM irtb00013 WHERE cod_n = datos_38.cod_n AND cod_grupo = datos_38.cod_grupo AND cod_tipo = datos_38.cod_tipo AND cod_sec = datos_38.cod_sec AND status_t IS NULL IF status != NOTFOUND THEN SELECT AVG(costo_st) INTO datos_38.costo_act FROM irtb00013 WHERE cod_n = datos_38.cod_n AND cod_grupo = datos_38.cod_grupo AND cod_tipo = datos_38.cod_tipo AND cod_sec = datos_38.cod_sec AND ano = ano1 AND status_t IS NULL ELSE LET datos_38.costo_act = NULL END IF SELECT costo_st INTO datos_38.costo_pro FROM irtb01133 WHERE cod_n = datos_38.cod_n AND cod_grupo = datos_38.cod_grupo AND cod_tipo = datos_38.cod_tipo AND cod_sec = datos_38.cod_sec AND status_t IS NULL IF (datos_38.costo_pro IS NULL OR datos_38.costo_pro <= 0) AND (datos_38.costo_act IS NULL OR datos_38.costo_act <= 0) THEN INSERT INTO irtb01133 (mes_ini, mes_fin, ano, cod_n, cod_grupo, cod_tipo, cod_sec, costo_st, us_crea, fech_crea) VALUES (01,12,ano2,datos_38.cod_n, datos_38.cod_grupo, datos_38.cod_tipo, datos_38.cod_sec, 1, USER, CURRENT) END IF IF (datos_38.costo_pro IS NULL OR datos_38.costo_pro <= 0) AND datos_38.costo_act >= 0 THEN INSERT INTO irtb01133 (mes_ini, mes_fin, ano, cod_n, cod_grupo, cod_tipo, cod_sec, costo_st, us_crea, fech_crea) VALUES (01,12,ano2,datos_38.cod_n, datos_38.cod_grupo, datos_38.cod_tipo, datos_38.cod_sec, datos_38.costo_act, USER, CURRENT) END IF END FOREACH RUN "type C:\\archivo > %USPRINT%" END FUNCTION