Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
@@ -0,0 +1,245 @@
|
||||
{
|
||||
=============================================================================
|
||||
PROGRAMA : IRPRRP026
|
||||
OBJETIVO : LISTAR PRECIOS PROMEDIOS LOCALES DE LOS REPUESTOS COMPRADOS
|
||||
EN UN RANGO DE FECHA.
|
||||
PROGRAMADOR: JUAN F. SOTO
|
||||
FECHA : FEBRERO 20, 1995.
|
||||
==============================================================================
|
||||
}
|
||||
GLOBALS
|
||||
"irprgb000.4gl"
|
||||
|
||||
DEFINE fecha3,fecha4 DATE
|
||||
#DEFINE p,real1,cuenta1,cuenta INTEGER
|
||||
#DEFINE p_real DECIMAL(8,2)
|
||||
DEFINE j,mes_ini,mes_fin,p_ano SMALLINT
|
||||
DEFINE promedio DECIMAL(12,2)
|
||||
|
||||
MAIN
|
||||
DEFER INTERRUPT
|
||||
SELECT * INTO p_companias.* FROM companias
|
||||
CALL irprrp026()
|
||||
END MAIN
|
||||
|
||||
FUNCTION irprrp026()
|
||||
|
||||
DEFINE p_datos RECORD
|
||||
cod_n SMALLINT,
|
||||
cod_grupo SMALLINT,
|
||||
cod_tipo SMALLINT,
|
||||
cod_sec SMALLINT,
|
||||
descrip CHAR(30),
|
||||
unidad CHAR(3),
|
||||
existencia DECIMAL(12,2),
|
||||
mes SMALLINT,
|
||||
precio DECIMAL(9,3),
|
||||
clave CHAR(10)
|
||||
END RECORD
|
||||
|
||||
OPTIONS
|
||||
ERROR LINE 24,
|
||||
FORM LINE 8
|
||||
|
||||
OPEN FORM irfmrp026 FROM "irfmrp026"
|
||||
DISPLAY FORM irfmrp026
|
||||
DISPLAY "irprrp026" AT 4,3
|
||||
DISPLAY "Historial Precio Local" AT 6,28
|
||||
|
||||
CALL pantalla()
|
||||
LET tipo_papel = 2
|
||||
CALL msgrp000(tipo_papel)
|
||||
|
||||
INPUT BY NAME p_ano,mes_ini,mes_fin
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = false
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
CONSTRUCT BY NAME criterio ON a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec
|
||||
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,15 ATTRIBUTE(REVERSE)
|
||||
LET selec =
|
||||
"SELECT a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,b.descrip_esp, ",
|
||||
" b.unidad_med,MAX(c.costo_st) ",
|
||||
"FROM irtb00002 a, intb00001 b,OUTER irtb00013 c ",
|
||||
"WHERE a.cod_n = b.cod_n AND a.cod_grupo = b.cod_grupo AND ",
|
||||
" a.cod_tipo = b.cod_tipo AND a.cod_Sec = b.cod_sec AND ",
|
||||
" a.cod_n = c.cod_n AND a.cod_grupo = c.cod_grupo AND ",
|
||||
" a.cod_tipo = c.cod_tipo AND a.cod_Sec = c.cod_sec AND ",
|
||||
criterio clipped," AND a.status_t is null AND c.status_t IS NULL AND ",
|
||||
" c.ano = ? AND c.mes_ini <= ? AND c.mes_fin >= ? ",
|
||||
"GROUP BY 1,2,3,4,5,6 ORDER BY 1,2,3,4 "
|
||||
|
||||
PREPARE comando FROM selec
|
||||
DECLARE busca CURSOR FOR comando
|
||||
OPEN busca USING p_ano,mes_fin,mes_fin
|
||||
|
||||
LET selec1 = "SELECT COUNT(*) FROM irtb00002 a,intb00001 b ",
|
||||
"WHERE (a.cod_n = b.cod_n and ",
|
||||
" a.cod_grupo = b.cod_grupo and ",
|
||||
" a.cod_tipo = b.cod_tipo and ",
|
||||
" a.cod_sec = b.cod_sec and ",
|
||||
criterio clipped,") AND a.status_t is null"
|
||||
|
||||
PREPARE comando1 FROM selec1
|
||||
DECLARE busca1 CURSOR FOR comando1
|
||||
OPEN busca1
|
||||
FETCH busca1 INTO regi
|
||||
DISPLAY " " AT 17,10
|
||||
|
||||
#LET p_real = cuenta / 33
|
||||
#LET real1 = p_real using "#####"
|
||||
|
||||
START REPORT irrp26 TO PIPE "lp -dcentral"
|
||||
|
||||
#LET p = 24
|
||||
#LET cuenta = 0
|
||||
#LET cuenta1 = 0
|
||||
#DISPLAY " " AT 20,p ATTRIBUTE(REVERSE)
|
||||
#LET p = p + 1
|
||||
LET p_param = "S"
|
||||
FOREACH busca INTO p_datos.*
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = false
|
||||
RETURN
|
||||
END IF
|
||||
CALL termometro(regi,p_param)
|
||||
LET p_param = "N"
|
||||
|
||||
{
|
||||
IF cuenta >= real1 THEN
|
||||
LET cuenta = 0
|
||||
DISPLAY " " AT 20,p ATTRIBUTE(REVERSE)
|
||||
LET p = p + 1
|
||||
END IF
|
||||
LET cuenta = cuenta + 1
|
||||
}
|
||||
FOR idx = 1 TO mes_fin
|
||||
|
||||
SELECT fecha_inicio,fecha_corte INTO fecha3,fecha4
|
||||
FROM prdtable
|
||||
WHERE ano = p_ano AND mes = idx
|
||||
|
||||
LET p_datos.precio = 0
|
||||
SELECT AVG(precio) INTO p_datos.precio
|
||||
FROM cotb00015 a,cotb00014 b
|
||||
WHERE (a.num_oc = b.num_oc AND a.tipo = b.tipo) and
|
||||
(a.cod_n = p_datos.cod_n AND a.cod_grupo = p_datos.cod_grupo and
|
||||
a.cod_tipo = p_datos.cod_tipo AND a.cod_sec = p_datos.cod_sec) and
|
||||
(b.fech_oc between fecha3 AND fecha4) AND a.status_t is null
|
||||
|
||||
IF p_datos.precio is null THEN
|
||||
LET p_datos.precio = 0
|
||||
END IF
|
||||
|
||||
LET p_datos.clave = p_datos.cod_n using "&","-",
|
||||
p_datos.cod_grupo using "&","-",
|
||||
p_datos.cod_tipo using "&&","-",
|
||||
p_datos.cod_sec using "&&&"
|
||||
LET p_datos.mes = idx
|
||||
OUTPUT TO REPORT irrp26(p_datos.*)
|
||||
LET p_datos.precio = 0
|
||||
END FOR
|
||||
END FOREACH
|
||||
FINISH REPORT irrp26
|
||||
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
|
||||
|
||||
REPORT irrp26(x)
|
||||
|
||||
DEFINE x RECORD
|
||||
cod_n SMALLINT,
|
||||
cod_grupo SMALLINT,
|
||||
cod_tipo SMALLINT,
|
||||
cod_sec SMALLINT,
|
||||
descrip CHAR(30),
|
||||
unidad CHAR(3),
|
||||
existencia DECIMAL(12,2),
|
||||
mes SMALLINT,
|
||||
precio DECIMAL(9,3),
|
||||
clave CHAR(10)
|
||||
END RECORD,
|
||||
nomb1,nomb2 CHAR(10)
|
||||
|
||||
DEFINE comp_on CHAR(3)
|
||||
|
||||
OUTPUT
|
||||
LEFT MARGIN 0
|
||||
|
||||
FORMAT
|
||||
PAGE HEADER
|
||||
LET comp_on = ASCII 031
|
||||
PRINT comp_on
|
||||
PRINT COLUMN 1,"irprrp026",
|
||||
COLUMN 85, "R A Y .O. V A C D O M I N I C A N A, S. A.",
|
||||
COLUMN 202, "PAG. ",pageno using "###"
|
||||
PRINT COLUMN 85, " SISTEMA DE REPUESTOS",
|
||||
COLUMN 202, TODAY USING "DD/MM/YY"
|
||||
PRINT COLUMN 85, " HISTORIAL PRECIOS REALES LOCALES",
|
||||
COLUMN 202, TIME
|
||||
SKIP 1 LINE
|
||||
SELECT descrip INTO nomb1
|
||||
FROM mestable
|
||||
WHERE mes = mes_ini
|
||||
|
||||
SELECT descrip INTO nomb2
|
||||
FROM mestable
|
||||
WHERE mes = mes_fin
|
||||
|
||||
PRINT "PERIODO: ",nomb1 clipped," - ",nomb2 clipped," DE ",p_ano
|
||||
|
||||
PRINT "======================================================================",
|
||||
"======================================================================",
|
||||
"======================================================================",
|
||||
"==============="
|
||||
|
||||
PRINT COLUMN 1, "REPUESTOS",
|
||||
COLUMN 57, " STD",
|
||||
COLUMN 71, " ENERO",
|
||||
COLUMN 81, " FEBRERO",
|
||||
COLUMN 91, " MARZO",
|
||||
COLUMN 101, " ABRIL",
|
||||
COLUMN 111, " MAYO",
|
||||
COLUMN 121, " JUNIO",
|
||||
COLUMN 131, " JULIO",
|
||||
COLUMN 141, " AGOSTO",
|
||||
COLUMN 151, "SEPTIEMB.",
|
||||
COLUMN 161, " OCTUBRE",
|
||||
COLUMN 171, " NOVIEMB.",
|
||||
COLUMN 181, "DICIEMBRE",
|
||||
COLUMN 191, " PROMEDIO ",
|
||||
COLUMN 201, "DIFERENC."
|
||||
|
||||
PRINT "======================================================================",
|
||||
"======================================================================",
|
||||
"======================================================================",
|
||||
"==============="
|
||||
BEFORE GROUP OF x.clave
|
||||
IF x.existencia IS NULL THEN
|
||||
LET x.existencia = 0
|
||||
END IF
|
||||
PRINT COLUMN 1,x.clave," ",x.descrip CLIPPED," ",x.unidad CLIPPED,
|
||||
COLUMN 52, x.existencia USING "###,###,###.##";
|
||||
LET j = 71
|
||||
|
||||
ON EVERY ROW
|
||||
PRINT COLUMN j, x.precio using "#,###.##";
|
||||
LET j = j + 10
|
||||
AFTER GROUP OF x.clave
|
||||
PRINT COLUMN 191, GROUP AVG(x.precio) WHERE x.precio <> 0
|
||||
USING "#,###.##",
|
||||
COLUMN 201, x.existencia-(GROUP AVG(x.precio) WHERE x.precio<>0)
|
||||
USING "((,((#.##)"
|
||||
END REPORT
|
||||
|
||||
Reference in New Issue
Block a user