{ ------------------------------------------------------------------------------- PROGRAMA : IRPRRP005 OBJETIVO : REPORTE EXISTENCIAS PROGRAMADOR : Ing. Juan Fco. Soto. FECHA REALIZACION : Marzo 1, 1993. Modificado por : Johnny Soto Fecha Modificacion : 22 Enero 1995 ------------------------------------------------------------------------------- } GLOBALS "irprgb000.4gl" DEFINE ano_c CHAR(4), p_mes INTEGER, nomb1 CHAR(12), t_existe,t_valor DECIMAL(12,2), opt5 CHAR(1) MAIN DEFER INTERRUPT CALL arg_val(1) RETURNING usuarios CALL arg_val(2) RETURNING Clave CALL arg_val(3) RETURNING impresor CONNECT TO "smarmotech" USER usuarios USING clave SELECT * INTO p_companias.* FROM companias CALL irprrp005() END MAIN FUNCTION irprrp005() DEFINE mes CHAR(2) DEFINE idx_ant,idx_cos,idx_act SMALLINT DEFINE salir,primera CHAR(1) DEFINE balance_in DECIMAL(12,2) DEFINE existe RECORD cod_n LIKE intb00001.cod_n, cod_grupo LIKE intb00001.cod_grupo, cod_tipo LIKE intb00001.cod_tipo, cod_sec LIKE intb00001.cod_sec, descrip_esp LIKE intb00001.descrip_esp, unidad_med LIKE intb00001.unidad_med, codigo LIKE irtb00010.codigo, nombre LIKE irtb00010.nombre, existe_act DECIMAL(10,2), costo LIKE intb00013.costo_st END RECORD DEFINE select_cost,select_act,select_ant CHAR(1000) OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21 OPEN FORM infmrp005 FROM "irfmrp005" DISPLAY FORM infmrp005 INPUT BY NAME datos_cons.fech_fi AFTER FIELD fech_fi IF datos_cons.fech_fi IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD fech_fi END IF AFTER INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF EXIT INPUT END INPUT CONSTRUCT criterio ON d.cod_n,d.cod_grupo,d.cod_tipo,d.cod_sec FROM cod_n,cod_grupo,cod_tipo,cod_sec LET select_cost = "SELECT d.cod_n,d.cod_grupo,d.cod_tipo,d.cod_sec,d.descrip_esp, ", " d.unidad_med,a.codigo,a.nombre ", "FROM irtb00002 d,irtb00010 a ", "WHERE ",criterio CLIPPED," AND d.status_t is null ", " AND d.cod_tipo = a.codigo ", " ORDER BY a.codigo,d.cod_n,d.cod_grupo,d.cod_tipo,d.cod_Sec " DISPLAY "<< Estoy Buscando Los Costos Actuales >>" AT 17,14 ATTRIBUTE (REVERSE,BOLD) CALL seleccionarsalida() RETURNING r_output LET handler = configureOutput(r_output) START REPORT reporte_5 TO XML HANDLER handler PREPARE busca_costo FROM select_cost DECLARE material_costo SCROLL CURSOR FOR busca_costo OPEN material_costo FOREACH material_costo INTO existe.* LET existe.existe_act = 0 LET existe.costo = 0 IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF LET p_param = "N" LET ano_c = YEAR(datos_cons.fech_fi) SELECT MAX(a.mes_fin) INTO p_mes FROM irtb00013 a WHERE (a.cod_n = existe.cod_n and a.cod_grupo = existe.cod_grupo and a.cod_tipo = existe.cod_tipo and a.cod_sec = existe.cod_sec) and (a.ano = ano_c) and a.status_t is null SELECT a.costo_st INTO existe.costo FROM irtb00013 a WHERE (a.cod_n = existe.cod_n and a.cod_grupo = existe.cod_grupo and a.cod_tipo = existe.cod_tipo and a.cod_sec = existe.cod_sec) and (a.ano = ano_c and a.mes_fin = p_mes) and a.status_t is null IF existe.costo IS NULL THEN LET existe.costo = 0 END IF SELECT SUM(a.cantidad_2) INTO existe.existe_act FROM irtb00006 a WHERE a.cod_n = existe.cod_n and a.cod_grupo = existe.cod_grupo and a.cod_tipo = existe.cod_tipo and a.cod_sec = existe.cod_sec and a.fecha <= datos_cons.fech_fi and a.status_t is null IF existe.existe_act IS NULL THEN LET existe.existe_act = 0 END IF OUTPUT TO REPORT reporte_5(existe.*) END FOREACH FINISH REPORT reporte_5 END FUNCTION REPORT reporte_5(x) DEFINE x RECORD cod_n LIKE intb00001.cod_n, cod_grupo LIKE intb00001.cod_grupo, cod_tipo LIKE intb00001.cod_tipo, cod_sec LIKE intb00001.cod_sec, descrip_esp LIKE intb00001.descrip_esp, unidad_med LIKE intb00001.unidad_med, codigo LIKE irtb00010.codigo, nombre LIKE irtb00010.nombre, existe_act DECIMAL(10,2), costo LIKE intb00013.costo_st END RECORD, no_reg SMALLINT DEFINE total_c,total_p DECIMAL (12,2) DEFINE doble_on CHAR(2) DEFINE doble_off CHAR(2) DEFINE negrillas_on CHAR(2) DEFINE negrillas_off CHAR(2) DEFINE comp_on CHAR(3) DEFINE comp_off CHAR(2) DEFINE doce CHAR(3) DEFINE hora CHAR(5) OUTPUT TOP MARGIN 0 LEFT MARGIN 0 BOTTOM MARGIN 2 PAGE LENGTH 150 FORMAT PAGE HEADER LET hora = time PRINT COLUMN 1, doce PRINT COLUMN 1, "irprrp005", COLUMN 24, " M A R M O T E C H S. A.", COLUMN 89, "Pag. ",pageno using "###" PRINT COLUMN 1, COLUMN 24, " Sistema de Inventario de Repuestos", COLUMN 89, today using "dd/mm/yyyy" PRINT COLUMN 24, " Valorizacion Inventario Al ",datos_cons.fech_fi USING "dd/mm/yyyy", COLUMN 92, hora SKIP 1 LINES PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------", "----------------------------------------" PRINT COLUMN 96, "Costo" PRINT COLUMN 1, "Codigo", COLUMN 12, "Descripcion", COLUMN 82, "Existencia", COLUMN 96, "Standard", COLUMN 115, "Total" PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------", "----------------------------------------" IF t_existe is null THEN LET t_existe = 0 END IF IF t_valor is null THEN LET t_valor = 0 END IF SKIP 1 LINE BEFORE GROUP OF x.codigo SKIP 1 LINE PRINT negrillas_on, x.nombre,negrillas_off SKIP 1 LINE ON EVERY ROW IF x.existe_act <> 0 THEN IF no_reg is null THEN LET no_reg = 0 END IF PRINT COLUMN 1, x.cod_n USING "&","-",x.cod_grupo USING "&&&","-", x.cod_tipo USING "&&&","-",x.cod_sec USING "&&&&&&", " ",x.descrip_esp WORDWRAP RIGHT MARGIN 70 , ' ', x.unidad_med CLIPPED, COLUMN 79, x.existe_act USING "---,---,---.##", COLUMN 94, x.costo USING "#,###,###.####", COLUMN 109, x.existe_act * x.costo USING "---,---,---.##" LET no_reg = no_reg + 1 LET t_existe = t_existe + x.existe_act END IF ON LAST ROW LET t_valor = SUM(x.existe_act * x.costo) PRINT COLUMN 109, "--------------" PRINT COLUMN 109, t_valor USING "(((,(((,(##.##)" PRINT COLUMN 1, "==================================================", "==================================================", "=========" PRINT COLUMN 4, "Total Registros Impresos =", no_reg USING "<<<<" PRINT COLUMN 1, "==================================================", "==================================================", "=========" PRINT COLUMN 4, comp_off END REPORT