Files
MBS/PROYECTO/indir/inprrp012.4gl
T
jpeguero efdf8953dd Reorganiza MATERIA PRIMA a PROYECTO y avanza inprmt002/005/013/046
- 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).
2026-08-26 13:31:09 -04:00

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