Instruccion de Johnny: todos los directorios de fuentes de inventario deben migrarse de la carpeta temporal PROYECTOS a la carpeta real PROYECTO, ya que PROYECTOS sera eliminada. Se elimino tambien un archivo suelto sin relacion llamado "ipdir" que existia en PROYECTO (del commit inicial) y bloqueaba el nombre de la carpeta. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
165 lines
5.4 KiB
Plaintext
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
|