Files
MBS/PROYECTOS/ipdir/ipprrp012.4gl
T

165 lines
5.4 KiB
Plaintext

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