423 lines
17 KiB
Plaintext
423 lines
17 KiB
Plaintext
|
|
DEFINE datos RECORD
|
|
cod_n int,cod_grupo int,cod_tipo int,cod_Sec int,
|
|
sku varchar(50) ,
|
|
descripcion varchar(255) ,
|
|
frecuencia_compra decimal(18, 2) ,
|
|
frecuencia_ventas decimal(18, 2) ,
|
|
volumen_compra decimal(18, 2) ,
|
|
volumen_venta decimal(18, 2) ,
|
|
frecuencia_transacciones_entrada decimal(18, 2) ,
|
|
volumen_transaccion_entrada decimal(18, 2) ,
|
|
frecuencia_transaccion_salida,volumen_transaccion_salida decimal(18, 2) ,
|
|
ano INT,
|
|
unidad_med VARCHAR(4),
|
|
existencia DEC(12,5),
|
|
bodega VARCHAR(100),
|
|
categoria VARCHAR(10)
|
|
END RECORD
|
|
|
|
DEFINE pano INT,
|
|
fecha_ini,fecha_fin DATE
|
|
MAIN
|
|
CALL ARG_VAL(1) RETURNING pano
|
|
|
|
CONNECT TO "smarmotech" USER 'jsoto' USING 'lmmjvsd2014'
|
|
SELECT MIN(fecha_inicio),MAX(fecha_corte) INTO fecha_ini,fecha_fin FROM prdtable WHERE ano = pano
|
|
|
|
LET fecha_ini = '01/01/2024'
|
|
LET fecha_fin = '06/30/2025'
|
|
DISPLAY "RANGO FECHA ",fecha_ini," ",fecha_fin
|
|
CALL frecuencia()
|
|
|
|
END MAIN
|
|
|
|
FUNCTION frecuencia()
|
|
|
|
DELETE FROM tmpdata_inventario WHERE ano = pano
|
|
|
|
# FRECUENCIA COMPRAS
|
|
DECLARE f1 CURSOR FOR
|
|
select
|
|
a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,
|
|
CAST(a.cod_n AS CHAR(5))+'-'+CAST(a.cod_grupo AS char(5))+'-'+CAST(a.cod_tipo AS CHAR(5))+'-'+CAST(a.cod_sec AS CHAR(5)),b.descrip_esp,
|
|
count(*),'0','0','0','0','0','0','0','0',b.unidad_med,'0','ALM GENERAL',b.categoria
|
|
from iptb00006 a,iptb00002 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
|
|
a.fecha between fecha_ini and fecha_fin
|
|
and a.status_t is NULL AND a.cod_mov IN (10,35) AND a.bodega = 4 AND
|
|
b.cod_n IN (3, 14, 36, 42, 60, 106, 115, 116, 152, 167, 168, 169,
|
|
37, 43, 45, 46, 52, 53, 56, 63, 145,74,75,76,77,78,79,80,81,83,84,85,87,88,
|
|
89,90,91,92,93,94,95,96, 104, 112, 117, 118, 119,
|
|
35,64,65,66,67,68,69,70,71,72,101,107,108,120,134,135,137,138)
|
|
|
|
|
|
|
|
group by a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,b.descrip_esp,b.unidad_med,b.categoria
|
|
order by a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,b.descrip_esp
|
|
|
|
DISPLAY "INSERTANDO FRECUENCIA COMPRAS..."
|
|
FOREACH f1 INTO datos.*
|
|
LET datos.ano = pano
|
|
LET datos.sku = datos.cod_n USING "&&&&","-",datos.cod_grupo USING "&&&&&&","-",datos.cod_tipo USING "&&&&&&",
|
|
"-",datos.cod_Sec USING "&&&&&&&&"
|
|
INSERT INTO tmpdata_inventario VALUES (datos.*)
|
|
END FOREACH
|
|
|
|
# VOLUMEN COMPRA
|
|
DECLARE f2 CURSOR FOR
|
|
select
|
|
a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,
|
|
CAST(a.cod_n AS CHAR(5))+'-'+CAST(a.cod_grupo AS char(5))+'-'+CAST(a.cod_tipo AS CHAR(5))+'-'+CAST(a.cod_sec AS CHAR(5)),b.descrip_esp,
|
|
'0','0',SUM(a.cantidad_2),'0','0','0','0','0','0',b.unidad_med,'0','ALM GENERAL',b.categoria
|
|
from iptb00006 a,iptb00002 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
|
|
a.fecha between fecha_ini and fecha_fin AND a.cod_mov IN (10,35) and
|
|
a.status_t is null AND a.bodega =4 AND
|
|
b.cod_n IN (3, 14, 36, 42, 60, 106, 115, 116, 152, 167, 168, 169,
|
|
37, 43, 45, 46, 52, 53, 56, 63, 145,74,75,76,77,78,79,80,81,83,84,85,87,88,
|
|
89,90,91,92,93,94,95,96, 104, 112, 117, 118, 119,
|
|
35,64,65,66,67,68,69,70,71,72,101,107,108,120,134,135,137,138)
|
|
|
|
group by a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,b.descrip_esp,b.unidad_med,b.categoria
|
|
order by a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,b.descrip_esp
|
|
|
|
DISPLAY "INSERTANDO VOLUMEN COMPRAS..."
|
|
FOREACH f2 INTO datos.*
|
|
LET datos.ano = pano
|
|
LET datos.sku = datos.cod_n USING "&&&&","-",datos.cod_grupo USING "&&&&&&","-",datos.cod_tipo USING "&&&&&&",
|
|
"-",datos.cod_Sec USING "&&&&&&&&"
|
|
SELECT DISTINCT a.cod_n FROM tmpdata_inventario a
|
|
WHERE a.cod_n = datos.cod_n AND
|
|
a.cod_grupo = datos.cod_grupo AND
|
|
a.cod_tipo = datos.cod_tipo AND
|
|
a.cod_sec = datos.cod_sec AND
|
|
a.ano = pano
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
INSERT INTO tmpdata_inventario VALUES (datos.*)
|
|
ELSE
|
|
UPDATE tmpdata_inventario SET volumen_compra = datos.volumen_compra
|
|
WHERE cod_n = datos.cod_n AND
|
|
cod_grupo = datos.cod_grupo AND
|
|
cod_tipo = datos.cod_tipo AND
|
|
cod_sec = datos.cod_sec AND
|
|
ano = pano
|
|
|
|
END IF
|
|
END FOREACH
|
|
|
|
#FRECUENCIA VENTAS
|
|
DECLARE f3 CURSOR FOR
|
|
select
|
|
a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,
|
|
CAST(a.cod_n AS CHAR(5))+'-'+CAST(a.cod_grupo AS char(5))+'-'+CAST(a.cod_tipo AS CHAR(5))+'-'+CAST(a.cod_sec AS CHAR(5)),b.descrip_esp,
|
|
'0',count(*),'0','0','0','0','0','0','0',b.unidad_med,'0','ALM GENERAL',b.categoria
|
|
from iptb00006 a,iptb00002 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
|
|
a.fecha between fecha_ini and fecha_fin
|
|
and a.status_t is null AND a.cod_mov IN (30,31,55,56) and
|
|
a.bodega=4 AND
|
|
b.cod_n IN (3, 14, 36, 42, 60, 106, 115, 116, 152, 167, 168, 169,
|
|
37, 43, 45, 46, 52, 53, 56, 63, 145,74,75,76,77,78,79,80,81,83,84,85,87,88,
|
|
89,90,91,92,93,94,95,96, 104, 112, 117, 118, 119,
|
|
35,64,65,66,67,68,69,70,71,72,101,107,108,120,134,135,137,138)
|
|
|
|
group by a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,b.descrip_esp,b.unidad_med,b.categoria
|
|
order by a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,b.descrip_esp
|
|
|
|
|
|
DISPLAY "INSERTANDO FRECUENCIA VENTAS..."
|
|
FOREACH f3 INTO datos.*
|
|
LET datos.ano = pano
|
|
LET datos.sku = datos.cod_n USING "&&&&","-",datos.cod_grupo USING "&&&&&&","-",datos.cod_tipo USING "&&&&&&",
|
|
"-",datos.cod_Sec USING "&&&&&&&&"
|
|
SELECT DISTINCT a.cod_n FROM tmpdata_inventario a
|
|
WHERE a.cod_n = datos.cod_n AND
|
|
a.cod_grupo = datos.cod_grupo AND
|
|
a.cod_tipo = datos.cod_tipo AND
|
|
a.cod_sec = datos.cod_sec AND
|
|
a.ano = pano
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
INSERT INTO tmpdata_inventario VALUES (datos.*)
|
|
ELSE
|
|
UPDATE tmpdata_inventario SET frecuencia_ventas = datos.frecuencia_ventas
|
|
WHERE cod_n = datos.cod_n AND
|
|
cod_grupo = datos.cod_grupo AND
|
|
cod_tipo = datos.cod_tipo AND
|
|
cod_sec = datos.cod_sec AND
|
|
ano = pano
|
|
|
|
END IF
|
|
END FOREACH
|
|
|
|
DECLARE f4 CURSOR FOR
|
|
#VOLUMEN VENTAS
|
|
select
|
|
a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,
|
|
CAST(a.cod_n AS CHAR(5))+'-'+CAST(a.cod_grupo AS char(5))+'-'+CAST(a.cod_tipo AS CHAR(5))+'-'+CAST(a.cod_sec AS CHAR(5)),b.descrip_esp,
|
|
'0','0','0',SUM(a.cantidad_2),'0','0','0','0','0',b.unidad_med,'0','ALM GENERAL',b.categoria
|
|
from iptb00006 a,iptb00002 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
|
|
a.fecha between fecha_ini and fecha_fin
|
|
and a.status_t is null AND a.cod_mov IN (30,31,55,56) and
|
|
a.bodega=4 AND
|
|
b.cod_n IN (3, 14, 36, 42, 60, 106, 115, 116, 152, 167, 168, 169,
|
|
37, 43, 45, 46, 52, 53, 56, 63, 145,74,75,76,77,78,79,80,81,83,84,85,87,88,
|
|
89,90,91,92,93,94,95,96, 104, 112, 117, 118, 119,
|
|
35,64,65,66,67,68,69,70,71,72,101,107,108,120,134,135,137,138)
|
|
|
|
|
|
group by a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,b.descrip_esp,b.unidad_med,b.categoria
|
|
order by a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,b.descrip_esp
|
|
|
|
|
|
DISPLAY "INSERTANDO VOLUMEN VENTAS..."
|
|
FOREACH f4 INTO datos.*
|
|
LET datos.ano = pano
|
|
LET datos.volumen_venta = datos.volumen_venta * -1
|
|
LET datos.sku = datos.cod_n USING "&&&&","-",datos.cod_grupo USING "&&&&&&","-",datos.cod_tipo USING "&&&&&&",
|
|
"-",datos.cod_Sec USING "&&&&&&&&"
|
|
SELECT DISTINCT a.cod_n FROM tmpdata_inventario a
|
|
WHERE a.cod_n = datos.cod_n AND
|
|
a.cod_grupo = datos.cod_grupo AND
|
|
a.cod_tipo = datos.cod_tipo AND
|
|
a.cod_sec = datos.cod_sec AND
|
|
a.ano = pano
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
INSERT INTO tmpdata_inventario VALUES (datos.*)
|
|
ELSE
|
|
UPDATE tmpdata_inventario SET volumen_venta = datos.volumen_venta
|
|
WHERE cod_n = datos.cod_n AND
|
|
cod_grupo = datos.cod_grupo AND
|
|
cod_tipo = datos.cod_tipo AND
|
|
cod_sec = datos.cod_sec AND
|
|
ano = pano
|
|
|
|
END IF
|
|
END FOREACH
|
|
|
|
#FRECUENCIA TRANSFERENCIA ENTRADAS
|
|
# COD MOV 80
|
|
DECLARE f5 CURSOR FOR
|
|
select
|
|
a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,
|
|
CAST(a.cod_n AS CHAR(5))+'-'+CAST(a.cod_grupo AS char(5))+'-'+CAST(a.cod_tipo AS CHAR(5))+'-'+CAST(a.cod_sec AS CHAR(5)),b.descrip_esp,
|
|
'0','0','0','0',count(*),'0','0','0','0',b.unidad_med,'0','ALM GENERAL',b.categoria
|
|
from iptb00006 a,iptb00002 b where
|
|
a.cod_n = b.cod_n and a.cod_grupo = a.cod_grupo and a.cod_tipo = b.cod_tipo and a.cod_Sec = b.cod_sec AND
|
|
a.fecha between fecha_ini and fecha_fin
|
|
and a.status_t is null and
|
|
a.bodega=4 AND a.cod_mov = 80 AND
|
|
b.cod_n IN (3, 14, 36, 42, 60, 106, 115, 116, 152, 167, 168, 169,
|
|
37, 43, 45, 46, 52, 53, 56, 63, 145,74,75,76,77,78,79,80,81,83,84,85,87,88,
|
|
89,90,91,92,93,94,95,96, 104, 112, 117, 118, 119,
|
|
35,64,65,66,67,68,69,70,71,72,101,107,108,120,134,135,137,138)
|
|
|
|
group by a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,b.descrip_esp,b.unidad_med,b.categoria
|
|
order by a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,b.descrip_esp
|
|
|
|
DISPLAY "INSERTANDO FRECUENCIA TRANSFERENCIA ENTRADAS..."
|
|
FOREACH f5 INTO datos.*
|
|
LET datos.ano = pano
|
|
LET datos.sku = datos.cod_n USING "&&&&","-",datos.cod_grupo USING "&&&&&&","-",datos.cod_tipo USING "&&&&&&",
|
|
"-",datos.cod_Sec USING "&&&&&&&&"
|
|
SELECT DISTINCT a.cod_n FROM tmpdata_inventario a
|
|
WHERE a.cod_n = datos.cod_n AND
|
|
a.cod_grupo = datos.cod_grupo AND
|
|
a.cod_tipo = datos.cod_tipo AND
|
|
a.cod_sec = datos.cod_sec AND
|
|
a.ano = pano
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
INSERT INTO tmpdata_inventario VALUES (datos.*)
|
|
ELSE
|
|
UPDATE tmpdata_inventario SET frecuencia_transacciones_entrada = datos.frecuencia_transacciones_entrada
|
|
WHERE cod_n = datos.cod_n AND
|
|
cod_grupo = datos.cod_grupo AND
|
|
cod_tipo = datos.cod_tipo AND
|
|
cod_sec = datos.cod_sec AND
|
|
ano = pano
|
|
|
|
END IF
|
|
END FOREACH
|
|
|
|
|
|
#VOLUMEN TRANSFERENCIA ENTRADAS
|
|
#COD MOV 80
|
|
DECLARE f6 CURSOR FOR
|
|
select
|
|
a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,
|
|
CAST(a.cod_n AS CHAR(5))+'-'+CAST(a.cod_grupo AS char(5))+'-'+CAST(a.cod_tipo AS CHAR(5))+'-'+CAST(a.cod_sec AS CHAR(5)),b.descrip_esp,
|
|
'0','0','0','0','0',SUM(a.cantidad_2),'0','0','0',b.unidad_med,'0','ALM GENERAL',b.categoria
|
|
from iptb00006 a,iptb00002 b where
|
|
a.cod_n = b.cod_n and a.cod_grupo = a.cod_grupo and a.cod_tipo = b.cod_tipo and a.cod_Sec = b.cod_sec AND
|
|
a.fecha between fecha_ini and fecha_fin
|
|
and a.status_t is null and
|
|
a.bodega=4 AND a.cod_mov = 80 AND
|
|
b.cod_n IN (3, 14, 36, 42, 60, 106, 115, 116, 152, 167, 168, 169,
|
|
37, 43, 45, 46, 52, 53, 56, 63, 145,74,75,76,77,78,79,80,81,83,84,85,87,88,
|
|
89,90,91,92,93,94,95,96, 104, 112, 117, 118, 119,
|
|
35,64,65,66,67,68,69,70,71,72,101,107,108,120,134,135,137,138)
|
|
|
|
group by a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,b.descrip_esp,b.unidad_med,b.categoria
|
|
order by a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,b.descrip_esp
|
|
|
|
|
|
|
|
DISPLAY "INSERTANDO VOLUMEN TRANSFERENCIA ENTRADAS..."
|
|
FOREACH f6 INTO datos.*
|
|
LET datos.ano = pano
|
|
LET datos.sku = datos.cod_n USING "&&&&","-",datos.cod_grupo USING "&&&&&&","-",datos.cod_tipo USING "&&&&&&",
|
|
"-",datos.cod_Sec USING "&&&&&&&&"
|
|
SELECT DISTINCT a.cod_n FROM tmpdata_inventario a
|
|
WHERE a.cod_n = datos.cod_n AND
|
|
a.cod_grupo = datos.cod_grupo AND
|
|
a.cod_tipo = datos.cod_tipo AND
|
|
a.cod_sec = datos.cod_sec AND
|
|
a.ano = pano
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
INSERT INTO tmpdata_inventario VALUES (datos.*)
|
|
ELSE
|
|
UPDATE tmpdata_inventario SET volumen_transaccion_entrada = datos.volumen_transaccion_entrada
|
|
WHERE cod_n = datos.cod_n AND
|
|
cod_grupo = datos.cod_grupo AND
|
|
cod_tipo = datos.cod_tipo AND
|
|
cod_sec = datos.cod_sec AND
|
|
ano = pano
|
|
|
|
END IF
|
|
END FOREACH
|
|
|
|
#FRECUENCIA TRANSFERENCIA SALIDAS
|
|
# COD MOV 79
|
|
DECLARE f7 CURSOR FOR
|
|
select
|
|
a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,
|
|
CAST(a.cod_n AS CHAR(5))+'-'+CAST(a.cod_grupo AS char(5))+'-'+CAST(a.cod_tipo AS CHAR(5))+'-'+CAST(a.cod_sec AS CHAR(5)),b.descrip_esp,
|
|
'0','0','0','0','0','0',count(*),'0','0',b.unidad_med,'0','ALM GENERAL',b.categoria
|
|
from iptb00006 a,iptb00002 b where
|
|
a.cod_n = b.cod_n and a.cod_grupo = a.cod_grupo and a.cod_tipo = b.cod_tipo and a.cod_Sec = b.cod_sec AND
|
|
a.fecha between fecha_ini and fecha_fin
|
|
and a.status_t is null and
|
|
a.bodega=4 AND a.cod_mov = 79 AND
|
|
b.cod_n IN (3, 14, 36, 42, 60, 106, 115, 116, 152, 167, 168, 169,
|
|
37, 43, 45, 46, 52, 53, 56, 63, 145,74,75,76,77,78,79,80,81,83,84,85,87,88,
|
|
89,90,91,92,93,94,95,96, 104, 112, 117, 118, 119,
|
|
35,64,65,66,67,68,69,70,71,72,101,107,108,120,134,135,137,138)
|
|
|
|
|
|
group by a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,b.descrip_esp,b.unidad_med,b.categoria
|
|
order by a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,b.descrip_esp
|
|
|
|
DISPLAY "INSERTANDO FRECUENCIA TRANSFERENCIA SALIDAS..."
|
|
FOREACH f7 INTO datos.*
|
|
LET datos.ano = pano
|
|
LET datos.sku = datos.cod_n USING "&&&&","-",datos.cod_grupo USING "&&&&&&","-",datos.cod_tipo USING "&&&&&&",
|
|
"-",datos.cod_Sec USING "&&&&&&&&"
|
|
SELECT DISTINCT a.cod_n FROM tmpdata_inventario a
|
|
WHERE a.cod_n = datos.cod_n AND
|
|
a.cod_grupo = datos.cod_grupo AND
|
|
a.cod_tipo = datos.cod_tipo AND
|
|
a.cod_sec = datos.cod_sec AND
|
|
a.ano = pano
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
INSERT INTO tmpdata_inventario VALUES (datos.*)
|
|
ELSE
|
|
UPDATE tmpdata_inventario SET frecuencia_transaccion_salida = datos.frecuencia_transaccion_salida
|
|
WHERE cod_n = datos.cod_n AND
|
|
cod_grupo = datos.cod_grupo AND
|
|
cod_tipo = datos.cod_tipo AND
|
|
cod_sec = datos.cod_sec AND
|
|
ano = pano
|
|
|
|
END IF
|
|
END FOREACH
|
|
|
|
#VOLUMEN TRANSFERENCIA SALIDAS
|
|
#COD MOV 79
|
|
DECLARE f8 CURSOR FOR
|
|
select
|
|
a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,
|
|
CAST(a.cod_n AS CHAR(5))+'-'+CAST(a.cod_grupo AS char(5))+'-'+CAST(a.cod_tipo AS CHAR(5))+'-'+CAST(a.cod_sec AS CHAR(5)),b.descrip_esp,
|
|
'0','0','0','0','0','0','0',SUM(a.cantidad_2),'0',b.unidad_med ,'0','ALM GENERAL',b.categoria
|
|
from iptb00006 a,iptb00002 b where
|
|
a.cod_n = b.cod_n and a.cod_grupo = a.cod_grupo and a.cod_tipo = b.cod_tipo and a.cod_Sec = b.cod_sec AND
|
|
a.fecha between fecha_ini and fecha_fin
|
|
and a.status_t is null and
|
|
a.bodega=4 AND a.cod_mov = 79 AND
|
|
b.cod_n IN (3, 14, 36, 42, 60, 106, 115, 116, 152, 167, 168, 169,
|
|
37, 43, 45, 46, 52, 53, 56, 63, 145,74,75,76,77,78,79,80,81,83,84,85,87,88,
|
|
89,90,91,92,93,94,95,96, 104, 112, 117, 118, 119,
|
|
35,64,65,66,67,68,69,70,71,72,101,107,108,120,134,135,137,138)
|
|
|
|
group by a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,b.descrip_esp,b.unidad_med,b.categoria
|
|
order by a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,b.descrip_esp
|
|
|
|
|
|
DISPLAY "INSERTANDO VOLUMEN TRANSFERENCIA SALIDAS..."
|
|
FOREACH f8 INTO datos.*
|
|
LET datos.ano = pano
|
|
LET datos.sku = datos.cod_n USING "&&&&","-",datos.cod_grupo USING "&&&&&&","-",datos.cod_tipo USING "&&&&&&",
|
|
"-",datos.cod_Sec USING "&&&&&&&&"
|
|
LET datos.volumen_transaccion_salida = datos.volumen_transaccion_salida * -1
|
|
SELECT DISTINCT a.cod_n FROM tmpdata_inventario a
|
|
WHERE a.cod_n = datos.cod_n AND
|
|
a.cod_grupo = datos.cod_grupo AND
|
|
a.cod_tipo = datos.cod_tipo AND
|
|
a.cod_sec = datos.cod_sec AND
|
|
a.ano = pano
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
INSERT INTO tmpdata_inventario VALUES (datos.*)
|
|
ELSE
|
|
UPDATE tmpdata_inventario SET volumen_transaccion_salida = datos.volumen_transaccion_salida
|
|
WHERE cod_n = datos.cod_n AND
|
|
cod_grupo = datos.cod_grupo AND
|
|
cod_tipo = datos.cod_tipo AND
|
|
cod_sec = datos.cod_sec AND
|
|
ano = pano
|
|
|
|
END IF
|
|
END FOREACH
|
|
|
|
#EXISTENCIA
|
|
DECLARE f10 CURSOR FOR
|
|
select
|
|
a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,
|
|
CAST(a.cod_n AS CHAR(5))+'-'+CAST(a.cod_grupo AS char(5))+'-'+CAST(a.cod_tipo AS CHAR(5))+'-'+CAST(a.cod_sec AS CHAR(5)),b.descrip_esp,
|
|
'0','0','0','0','0','0','0','0','0',b.unidad_med ,SUM(a.cantidad_2),'ALM GENERAL',b.categoria
|
|
from iptb00006 a,iptb00002 b where
|
|
a.cod_n = b.cod_n and a.cod_grupo = a.cod_grupo and a.cod_tipo = b.cod_tipo and a.cod_Sec = b.cod_sec AND
|
|
a.fecha <= fecha_fin
|
|
and a.status_t is null and
|
|
a.bodega=4 AND
|
|
b.cod_n IN (3, 14, 36, 42, 60, 106, 115, 116, 152, 167, 168, 169,
|
|
37, 43, 45, 46, 52, 53, 56, 63, 145,74,75,76,77,78,79,80,81,83,84,85,87,88,
|
|
89,90,91,92,93,94,95,96, 104, 112, 117, 118, 119,
|
|
35,64,65,66,67,68,69,70,71,72,101,107,108,120,134,135,137,138)
|
|
|
|
group by a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,b.descrip_esp,b.unidad_med,b.categoria
|
|
order by a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,b.descrip_esp
|
|
|
|
|
|
DISPLAY "EXISTENCIAS..."
|
|
FOREACH f10 INTO datos.*
|
|
UPDATE tmpdata_inventario SET existencia = datos.existencia
|
|
WHERE cod_n = datos.cod_n AND
|
|
cod_grupo = datos.cod_grupo AND
|
|
cod_tipo = datos.cod_tipo AND
|
|
cod_sec = datos.cod_sec AND
|
|
ano = pano
|
|
|
|
|
|
END FOREACH
|
|
|
|
DISPLAY "PROCESO TERMINADO"
|
|
|
|
END FUNCTION |