Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
@@ -0,0 +1,321 @@
|
||||
{
|
||||
=============================================================================
|
||||
PROGRAMA : IRPRPC001
|
||||
OBJETIVO : LLENAR TABLA TEMPORA DE COSTO ESTANDAR (IRTB01133)
|
||||
PROGRAMADOR : ABNER MONTALVO
|
||||
FECHA : AGOSTO 5, 1997
|
||||
=============================================================================
|
||||
}
|
||||
GLOBALS
|
||||
"irprgb000.4gl"
|
||||
DEFINE descrip CHAR(30)
|
||||
DEFINE codigo CHAR(10)
|
||||
DEFINE fecha_inicial,fecha_final DATE
|
||||
DEFINE opcion1 CHAR(1)
|
||||
DEFINE ano1 CHAR(4)
|
||||
DEFINE mes1, total_impresos INTEGER
|
||||
|
||||
DEFINE datos_pc001 RECORD
|
||||
cod_n SMALLINT,
|
||||
cod_grupo SMALLINT,
|
||||
cod_tipo SMALLINT,
|
||||
cod_sec SMALLINT,
|
||||
descrip_esp CHAR(30),
|
||||
unidad_med CHAR(3),
|
||||
existencia DECIMAL(10,2),
|
||||
num_oc INTEGER,
|
||||
costo_lq DECIMAL(16,4),
|
||||
precio DECIMAL(12,2),
|
||||
fecha_lq DATE,
|
||||
cod_mon INTEGER,
|
||||
descrip_mon CHAR(30),
|
||||
tasa_cambio DECIMAL(12,2)
|
||||
END RECORD
|
||||
FUNCTION irprpc001()
|
||||
WHENEVER ERROR CONTINUE
|
||||
|
||||
OPTIONS
|
||||
PROMPT LINE 10,
|
||||
ERROR LINE 24,
|
||||
FORM LINE 8
|
||||
|
||||
OPEN FORM irfmrp025 FROM "irfmrp001"
|
||||
DISPLAY FORM irfmrp025
|
||||
|
||||
DISPLAY "irprpc001" AT 4,3
|
||||
DISPLAY "Llenar Tabla Temporal Costos de Repuestos" AT 6,20
|
||||
|
||||
DISPLAY "Este proceso llena la tabla temporal de costos " AT 11,15
|
||||
DISPLAY "de repuestos (irtb01133). Los registros de esta" AT 12,15
|
||||
DISPLAY "tabla cumplen con las siguiente regla : " AT 13,15
|
||||
DISPLAY "Son registros que tienen existencia en el Inven" AT 14,15
|
||||
DISPLAY "tario de repuestos. Fecha de Corte < 07/08/97. " AT 15,15
|
||||
|
||||
LET total_impresos = 0
|
||||
# LET tipo_papel = 1
|
||||
# CALL msgrp000(tipo_papel)
|
||||
|
||||
CONSTRUCT criterio ON a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec
|
||||
FROM cod_n,cod_grupo,cod_tipo,cod_sec
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET numero_msg = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
LET selec =
|
||||
"SELECT UNIQUE a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,b.descrip_esp, ",
|
||||
" b.unidad_med, SUM(c.cantidad_2) ",
|
||||
"FROM irtb00002 a, intb00001 b, irtb00006 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 ",
|
||||
" c.fecha < '07/08/97' AND ",
|
||||
" a.status_t IS NULL AND ",
|
||||
" b.status_t IS NULL AND ",
|
||||
" c.status_t IS NULL AND ",
|
||||
criterio CLIPPED,
|
||||
" GROUP BY 1,2,3,4,5,6 "
|
||||
|
||||
DISPLAY "<< Buscando Informacion ... Espere Por Favor >>" AT 19,14
|
||||
|
||||
PREPARE comando FROM selec
|
||||
DECLARE busca CURSOR FOR comando
|
||||
|
||||
#START REPORT reporte_pc001 TO PIPE "$DBPRINT"
|
||||
#START REPORT reporte_pc001 TO PIPE "salida"
|
||||
DISPLAY "<< Proceso Generandose ... Espere Por Favor >>" AT 19,14
|
||||
|
||||
FOREACH busca INTO datos_pc001.*
|
||||
LET datos_pc001.cod_mon = null
|
||||
LET datos_pc001.descrip_mon = null
|
||||
LET datos_pc001.fecha_lq = null
|
||||
LET datos_pc001.costo_lq = null
|
||||
|
||||
LET codigo = datos_pc001.cod_n USING "&","-",
|
||||
datos_pc001.cod_grupo USING "&", "-",
|
||||
datos_pc001.cod_tipo USING "&&", "-",
|
||||
datos_pc001.cod_sec USING "&&&"
|
||||
|
||||
DISPLAY codigo AT 20,35
|
||||
|
||||
SELECT MAX(fecha_lq) INTO datos_pc001.fecha_lq
|
||||
FROM cttb00013 d
|
||||
WHERE d.cod_n = datos_pc001.cod_n AND
|
||||
d.cod_grupo = datos_pc001.cod_grupo AND
|
||||
d.cod_tipo = datos_pc001.cod_tipo AND
|
||||
d.cod_sec = datos_pc001.cod_sec AND
|
||||
d.fecha < "07/08/97" AND
|
||||
d.status_t IS NULL
|
||||
|
||||
IF status = NOTFOUND THEN
|
||||
LET datos_pc001.fecha_lq = null
|
||||
LET datos_pc001.costo_lq = null
|
||||
ELSE
|
||||
SELECT AVG(costo_lq) INTO datos_pc001.costo_lq
|
||||
FROM cttb00013 d
|
||||
WHERE d.cod_n = datos_pc001.cod_n AND
|
||||
d.cod_grupo = datos_pc001.cod_grupo AND
|
||||
d.cod_tipo = datos_pc001.cod_tipo AND
|
||||
d.cod_sec = datos_pc001.cod_sec AND
|
||||
d.fecha_lq = datos_pc001.fecha_lq AND
|
||||
d.status_t IS NULL
|
||||
END IF
|
||||
|
||||
|
||||
IF datos_pc001.costo_lq is null OR datos_pc001.costo_lq = 0 THEN
|
||||
LET datos_pc001.num_oc = null
|
||||
LET datos_pc001.precio = null
|
||||
SELECT MAX(a.num_oc) INTO datos_pc001.num_oc FROM cotb00015 a
|
||||
WHERE a.cod_n = datos_pc001.cod_n AND
|
||||
a.cod_grupo = datos_pc001.cod_grupo AND
|
||||
a.cod_tipo = datos_pc001.cod_tipo AND
|
||||
a.cod_sec = datos_pc001.cod_sec AND
|
||||
a.status_t IS NULL
|
||||
|
||||
IF status = NOTFOUND THEN
|
||||
LET datos_pc001.num_oc = null
|
||||
LET datos_pc001.precio = null
|
||||
ELSE
|
||||
LET datos_pc001.precio = 0
|
||||
SELECT AVG(a.precio) INTO datos_pc001.precio FROM cotb00015 a
|
||||
WHERE a.cod_n = datos_pc001.cod_n AND
|
||||
a.cod_grupo = datos_pc001.cod_grupo AND
|
||||
a.cod_tipo = datos_pc001.cod_tipo AND
|
||||
a.cod_sec = datos_pc001.cod_sec AND
|
||||
a.num_oc = datos_pc001.num_oc AND
|
||||
a.status_t IS NULL
|
||||
|
||||
SELECT UNIQUE a.cod_mon, b.descrip_mon, b.tasa_cambio INTO
|
||||
datos_pc001.cod_mon, datos_pc001.descrip_mon,
|
||||
datos_pc001.tasa_cambio
|
||||
FROM cotb00015 a, cotb00031 b
|
||||
WHERE a.cod_n = datos_pc001.cod_n AND
|
||||
a.cod_grupo = datos_pc001.cod_grupo AND
|
||||
a.cod_tipo = datos_pc001.cod_tipo AND
|
||||
a.cod_sec = datos_pc001.cod_sec AND
|
||||
a.num_oc = datos_pc001.num_oc AND
|
||||
a.cod_mon = b.cod_mon AND
|
||||
b.status_t IS NULL AND
|
||||
a.status_t IS NULL
|
||||
END IF
|
||||
END IF
|
||||
|
||||
IF datos_pc001.precio is null OR datos_pc001.precio = 0 THEN
|
||||
LET datos_pc001.num_oc = null
|
||||
LET datos_pc001.precio = null
|
||||
SELECT MAX(a.num_oc) INTO datos_pc001.num_oc FROM cotb00034 a
|
||||
WHERE a.cod_n = datos_pc001.cod_n AND
|
||||
a.cod_grupo = datos_pc001.cod_grupo AND
|
||||
a.cod_tipo = datos_pc001.cod_tipo AND
|
||||
a.cod_sec = datos_pc001.cod_sec AND
|
||||
a.status_t IS NULL
|
||||
|
||||
IF status = NOTFOUND THEN
|
||||
LET datos_pc001.num_oc = null
|
||||
LET datos_pc001.precio = null
|
||||
ELSE
|
||||
SELECT AVG(a.precio) INTO datos_pc001.precio FROM cotb00034 a
|
||||
WHERE a.cod_n = datos_pc001.cod_n AND
|
||||
a.cod_grupo = datos_pc001.cod_grupo AND
|
||||
a.cod_tipo = datos_pc001.cod_tipo AND
|
||||
a.cod_sec = datos_pc001.cod_sec AND
|
||||
a.num_oc = datos_pc001.num_oc AND
|
||||
a.status_t IS NULL
|
||||
|
||||
SELECT UNIQUE a.cod_mon, b.descrip_mon, b.tasa_cambio INTO
|
||||
datos_pc001.cod_mon, datos_pc001.descrip_mon,
|
||||
datos_pc001.tasa_cambio
|
||||
FROM cotb00034 a, cotb00031 b
|
||||
WHERE a.cod_n = datos_pc001.cod_n AND
|
||||
a.cod_grupo = datos_pc001.cod_grupo AND
|
||||
a.cod_tipo = datos_pc001.cod_tipo AND
|
||||
a.cod_sec = datos_pc001.cod_sec AND
|
||||
a.num_oc = datos_pc001.num_oc AND
|
||||
a.cod_mon = b.cod_mon AND
|
||||
b.status_t IS NULL AND
|
||||
a.status_t IS NULL
|
||||
END IF
|
||||
END IF
|
||||
|
||||
# IF datos_pc001.costo_lq is not null THEN
|
||||
# LET datos_pc001.costo_lq =
|
||||
# datos_pc001.costo_lq * datos_pc001.tasa_cambio * 1.08
|
||||
# END IF
|
||||
|
||||
# IF datos_pc001.costo_lq is null THEN
|
||||
# LET datos_pc001.costo_lq = 0
|
||||
# END IF
|
||||
|
||||
IF datos_pc001.costo_lq > 0 THEN
|
||||
LET datos_pc001.precio = 0
|
||||
END IF
|
||||
|
||||
IF datos_pc001.precio > 0 THEN
|
||||
LET datos_pc001.costo_lq = datos_pc001.precio * datos_pc001.tasa_cambio
|
||||
END IF
|
||||
|
||||
IF datos_pc001.existencia > 0 THEN
|
||||
INSERT INTO irtb01133 VALUES (01,12,1997,
|
||||
datos_pc001.cod_n,
|
||||
datos_pc001.cod_grupo,
|
||||
datos_pc001.cod_tipo,
|
||||
datos_pc001.cod_sec,
|
||||
datos_pc001.costo_lq,
|
||||
null,user,current,null,null)
|
||||
|
||||
# OUTPUT TO REPORT reporte_pc001(datos_pc001.*)
|
||||
END IF
|
||||
|
||||
END FOREACH
|
||||
#FINISH REPORT reporte_pc001
|
||||
END FUNCTION
|
||||
|
||||
{REPORT reporte_pc001(x)
|
||||
DEFINE x RECORD
|
||||
cod_n SMALLINT,
|
||||
cod_grupo SMALLINT,
|
||||
cod_tipo SMALLINT,
|
||||
cod_sec SMALLINT,
|
||||
descrip_esp CHAR(30),
|
||||
unidad_med CHAR(3),
|
||||
existencia DECIMAL(10,2),
|
||||
num_oc INTEGER,
|
||||
costo_lq DECIMAL(16,4),
|
||||
precio DECIMAL(12,2),
|
||||
fecha_lq DATE,
|
||||
cod_mon INTEGER,
|
||||
descrip_mon CHAR(30)
|
||||
END RECORD,
|
||||
doble_off,doble_on,doce CHAR(3),
|
||||
unidad CHAR(3),
|
||||
total_p DECIMAL(12,2)
|
||||
|
||||
OUTPUT LEFT MARGIN 0
|
||||
FORMAT
|
||||
PAGE HEADER
|
||||
LET doce = ASCII 030
|
||||
LET doble_on = ASCII 027, ASCII 001
|
||||
LET doble_off = ASCII 027, ASCII 002
|
||||
PRINT ASCII 031
|
||||
PRINT COLUMN 1, "irprpc001",
|
||||
COLUMN 18, "R A Y .O. V A C D O M I N I C A N A, S. A.",
|
||||
COLUMN 74, "Pag. ",pageno using "###"
|
||||
PRINT COLUMN 18, " SISTEMA DE REPUESTOS",
|
||||
COLUMN 74, today using "dd/mm/yy"
|
||||
PRINT COLUMN 27, "Repuestos sin Costos Reales",
|
||||
COLUMN 74, time
|
||||
PRINT COLUMN 1, "FECHA: ",TODAY using "dd/mm/yy"
|
||||
|
||||
PRINT
|
||||
"=============================================================================",
|
||||
"========================================="
|
||||
PRINT COLUMN 1, "Codigo",
|
||||
COLUMN 53, "Costo Real",
|
||||
COLUMN 64, "O.Compra",
|
||||
COLUMN 75, "PRECIO",
|
||||
COLUMN 83, "MONEDA"
|
||||
PRINT
|
||||
"=============================================================================",
|
||||
"========================================="
|
||||
SKIP 1 LINE
|
||||
ON EVERY ROW
|
||||
|
||||
IF x.costo_lq > 0 THEN
|
||||
LET x.num_oc = null
|
||||
LET x.precio = null
|
||||
ELSE
|
||||
LET x.costo_lq = null
|
||||
END IF
|
||||
|
||||
IF x.precio = 0 THEN
|
||||
LET x.precio = null
|
||||
END IF
|
||||
|
||||
IF x.costo_lq is null AND x.precio is null THEN
|
||||
PRINT COLUMN 1, x.cod_n USING "&","-",x.cod_grupo USING "&","-",
|
||||
x.cod_tipo USING "&&","-",x.cod_sec USING "&&&"," ",
|
||||
x.descrip_esp," ",x.unidad_med,
|
||||
COLUMN 47, x.costo_lq USING "###,###,###.####",
|
||||
COLUMN 64, x.num_oc USING "######",
|
||||
COLUMN 71, x.precio USING "####,###.##",
|
||||
COLUMN 83, x.cod_mon USING "##"," ",x.descrip_mon
|
||||
LET total_impresos = total_impresos + 1
|
||||
END IF
|
||||
|
||||
ON LAST ROW
|
||||
PRINT
|
||||
"=============================================================================",
|
||||
"========================================="
|
||||
PRINT "TOTAL REGISTRO ---> ", total_impresos USING "<<<,<<<,<<<"
|
||||
PRINT ASCII 030
|
||||
END REPORT
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user