{ ============================================================================ PROGRAMA : INPRRP012 OBJETIVO : ESTABLECER DIFERENCIAS DE VALORIZACION DE COSTOS ENTRE DOS ANOS DADOS. PROGRAMADOR : JUAN F. SOTO FECHA : FEBRERO 9, 1995 ============================================================================ } GLOBALS "ipprgb000.4gl" DEFINE cost_ant RECORD LIKE iptb00004.* DEFINE cost_act RECORD LIKE iptb00004.* DEFINE p_ano,p_ano_act SMALLINT MAIN DEFER INTERRUPT SELECT * INTO p_companias.* FROM companias CALL ipprrp012() END MAIN FUNCTION ipprrp012() DEFINE tipo_papel SMALLINT OPTIONS FORM LINE 8, ERROR LINE 24 OPEN FORM infmrp012 FROM "infmrp012" DISPLAY FORM infmrp012 CALL pantalla() DISPLAY "Costos Comparativo Anuales" at 6,27 DISPLAY "ipprrp012" at 4,3 LET tipo_papel = 1 CALL msgrp000(tipo_papel) INPUT BY NAME p_ano,p_ano_act IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF DISPLAY "Buscando Informacion ... Espere Por Favor" AT 17,14 DECLARE busca1 CURSOR FOR SELECT unique * FROM iptb00004 WHERE ano = p_ano and mes_fin = 12 AND ventas = "1" ORDER BY cod_n,cod_grupo,cod_tipo,cod_sec DISPLAY "Reporte Generandose ... Espere Por Favor" AT 17,14 START REPORT costos1 TO "C:\\archivo" FOREACH busca1 INTO cost_ant.* IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF SELECT *INTO cost_act.* FROM iptb00004 WHERE @cod_n = cost_ant.cod_n and @cod_grupo = cost_ant.cod_grupo and @cod_tipo = cost_ant.cod_tipo and @cod_sec = cost_ant.cod_sec and @ano = p_ano_act and ventas = 1 AND @status_t is null ORDER BY cod_n,cod_grupo,cod_tipo,cod_Sec OUTPUT TO REPORT costos1() END FOREACH FINISH REPORT costos1 RUN "type C:\\archivo > %USPRINT%" END FUNCTION REPORT costos1() DEFINE comp_on,comp_off CHAR(3) DEFINE fecha_final DATE DEFINE existencia DECIMAL(12,2) DEFINE costo_ant,costo_act DECIMAL(10,4) OUTPUT LEFT MARGIN 0 FORMAT PAGE HEADER LET comp_on = ASCII 15 LET comp_off = ASCII 18 LET lj = (134 - LENGTH(p_companias.nombre CLIPPED))/2 PRINT comp_on PRINT COLUMN 1,"ipprrp012", COLUMN lj, p_companias.nombre CLIPPED, COLUMN 127, "Pag. ",pageno using "###" PRINT COLUMN 44, " Sistema de Inventario Productos Terminados", COLUMN 127, today using "dd/mm/yyyy" PRINT COLUMN 44, " Diferencia en Costos Anuales", COLUMN 127, time PRINT COLUMN 1, "==================================================", "==================================================", "==================================" PRINT COLUMN 1, "ARTICULOS...", COLUMN 50, "EXISTENCIA", COLUMN 72, p_ano using "####", COLUMN 87, "VALOR", COLUMN 100, p_ano_act using "####", COLUMN 115, "VALOR", COLUMN 132, "DIF" PRINT COLUMN 1, "==================================================", "==================================================", "==================================" ON EVERY ROW SELECT * INTO articulos.* FROM iptb00002 WHERE @cod_n = cost_ant.cod_n and @cod_grupo = cost_ant.cod_grupo and @cod_tipo = cost_ant.cod_tipo and @cod_sec = cost_ant.cod_sec and @status_t is null SELECT Max(fecha_corte) INTO fecha_final FROM prdtable WHERE ano = p_ano SELECT SUM(cantidad_2) INTO existencia FROM iptb00006 WHERE (fecha <= fecha_final) and (@cod_n = cost_ant.cod_n) and (@cod_grupo = cost_ant.cod_grupo) and (@cod_tipo = cost_ant.cod_tipo) and (@cod_sec = cost_ant.cod_sec) and @status_t is null IF existencia is null THEN LET existencia = 0 END IF LET costo_ant = cost_ant.material+cost_ant.labor+cost_ant.gastos LET costo_act = cost_act.material+cost_act.labor+cost_act.gastos IF costo_ant is null THEN LET costo_ant = 0 END IF IF costo_act is null THEN LET costo_act = 0 END IF PRINT COLUMN 1, cost_ant.cod_n using "&","-", cost_ant.cod_grupo using "&","-", cost_ant.cod_tipo using "&&","-", cost_ant.cod_sec using "&&&"," ", articulos.descrip_esp," ",articulos.unidad_med, COLUMN 50, existencia using "(((,((#,#&&.##)", COLUMN 65, costo_ant using "##,###.##&&", COLUMN 78, costo_ant * existencia using "((((,(((,((#.##)", COLUMN 95, costo_act using "#,###.##&&", COLUMN 106, costo_act * existencia using "(((,(((,((#.##)", COLUMN 122, (costo_ant * existencia) - (costo_act * existencia) USING "((,(((,(&&.##)" ON LAST ROW PRINT COLUMN 1, "==================================================", "==================================================", "==================================" PRINT "TOTAL REGISTROS===> ", COUNT(*) USING "###", COLUMN 78, SUM(costo_ant*existencia) USING "(((,(((,(##.##)", COLUMN 106, SUM(costo_act * existencia) using "(((,(((,(&&.##)", COLUMN 122, SUM((costo_ant*existencia) - (costo_act*existencia)) USING "((,(((,(&&.##)" PRINT comp_off END REPORT