- Mueve todo el contenido de PROYECTOS/indir y varias funciones compartidas de PROYECTOS/otrodir hacia PROYECTO, siguiendo instruccion de Johnny (PROYECTOS se va a eliminar). - inprmt002: agrega campo Desglose faltante, corrige typo "eLiminar". - inprmt005: agrega formulario y 3 campos faltantes (Consumo, Requiere Autorizacion, Requisiciones), corrige typo "eLiminar". - inprmt013: agrega formulario, titulo, corrige typo "eLiminar". - inprmt046: agrega formulario y varias funciones/dependencias faltantes (cincodmov, clasf_bloque, medidas, defecto, buscaEmp, consultaTransportista, busca_departamento); corrige nombres de campo desalineados con el codigo (depto_a, bodega) y los convierte a ComboBox donde el codigo lo requiere. - Corrige dependencia faltante de FORMULARIOS_IN a la libreria Database (bloqueaba todo el modulo de MATERIA PRIMA).
164 lines
5.3 KiB
Plaintext
164 lines
5.3 KiB
Plaintext
{
|
|
============================================================================
|
|
PROGRAMA : INPRRP012
|
|
OBJETIVO : ESTABLECER DIFERENCIAS DE VALORIZACION DE COSTOS ENTRE DOS
|
|
ANOS DADOS.
|
|
PROGRAMADOR : JUAN F. SOTO
|
|
FECHA : FEBRERO 9, 1995
|
|
============================================================================
|
|
}
|
|
GLOBALS
|
|
"inprgb000.4gl"
|
|
DEFINE cost_ant RECORD LIKE intb00013.*
|
|
DEFINE cost_act RECORD LIKE intb00013.*
|
|
DEFINE p_ano,p_ano_act SMALLINT
|
|
|
|
MAIN
|
|
DEFER INTERRUPT
|
|
SELECT * INTO p_companias.* FROM companias
|
|
CALL inprrp012()
|
|
END MAIN
|
|
|
|
|
|
FUNCTION inprrp012()
|
|
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 "inprrp012" 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 intb00013
|
|
WHERE ano = p_ano and mes_fin = 12
|
|
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 intb00013
|
|
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
|
|
@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,"inprrp012",
|
|
COLUMN lj, p_companias.nombre CLIPPED,
|
|
COLUMN 127, "Pag. ",pageno using "###"
|
|
PRINT COLUMN 44, " Sistema de Inventario Materia Prima",
|
|
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 intb00001
|
|
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 intb00006
|
|
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.costo_st
|
|
LET costo_act = cost_act.costo_st
|
|
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 80, 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
|