378 lines
14 KiB
Plaintext
378 lines
14 KiB
Plaintext
MAIN
|
|
CONNECT TO "smarmotech" USER 'jsoto' USING 'lmmjvsd2014'
|
|
CALL actualizaExistencia()
|
|
#CALL verificadocumento()
|
|
# CALL actualizaFecha()
|
|
#CALL genera()
|
|
#CALL ACTIVADOC()
|
|
# CALL generaServicio()
|
|
#CALL actualiza()
|
|
END MAIN
|
|
FUNCTION genera()
|
|
DEFINE xbodega,idx,idx1,idx2,idx3 INT
|
|
DECLARE busca CURSOR FOR
|
|
SELECT a.cod_bodega FROM intb00009 a WHERE cod_bodega = 4
|
|
ORDER BY a.cod_bodega
|
|
{
|
|
DELETE FROM intb00010 WHERE COD_SECCION NOT IN( 1000,0)
|
|
DELETE FROM intb00045 WHERE COD_SECCION NOT IN( 1000,0)
|
|
DELETE FROM intb00043 WHERE COD_SECCION NOT IN( 1000,0)
|
|
DELETE FROM intb00046 WHERE COD_SECCION NOT IN( 1000,0)
|
|
}
|
|
FOREACH busca INTO xbodega
|
|
FOR idx=1 TO 50 #------------------------------------------>>> SECCION
|
|
# INSERT INTO intb00010 (cod_bodega,cod_Seccion,descripcion)
|
|
# VALUES (xbodega,idx,idx)
|
|
# DISPLAY "INSERTE SECCION ",idx
|
|
FOR idx1 = 31 TO 50 #--------------------------------->>> TRAMOS
|
|
INSERT INTO intb00043 (cod_bodega,cod_Seccion,cod_tramo,descripcion)
|
|
VALUES (xbodega,idx,idx1,idx1)
|
|
DISPLAY "INSERTE TRAMO ",idx1
|
|
FOR idx2=1 TO 100 #--------------------------------------->>> filas
|
|
TRY
|
|
INSERT INTO intb00045 (cod_bodega,cod_seccion,cod_tramo,cod_fila,titulo)
|
|
VALUES (xbodega,idx,idx1,idx2,idx2)
|
|
|
|
DISPLAY "INSERTE FILA ",idx2
|
|
CATCH
|
|
DISPLAY "NO INSERTE FILA: ",idx2
|
|
END TRY
|
|
FOR idx3=1 TO 100 #-------------------------------------->>> POSICION
|
|
TRY
|
|
INSERT INTO intb00046 (cod_bodega,cod_seccion,cod_tramo,cod_fila,cod_pos,titulo)
|
|
VALUES (xbodega,idx,idx1,idx2,idx3,idx3)
|
|
DISPLAY "INSERTE POS ",idx3
|
|
CATCH
|
|
DISPLAY "NO INSERTE ",idx3
|
|
END TRY
|
|
END FOR
|
|
END FOR
|
|
END FOR
|
|
|
|
END FOR
|
|
END FOREACH
|
|
END FUNCTION
|
|
|
|
FUNCTION generaServicio()
|
|
DEFINE xbodega,xcodn,xcodgrupo,xcodtipo,xcodsec INT
|
|
DECLARE buscar_bd CURSOR FOR
|
|
SELECT a.cod_bodega FROM intb00009 a WHERE a.cod_bodega = 12
|
|
ORDER BY a.cod_bodega
|
|
|
|
DECLARE buscar_pt CURSOR FOR
|
|
SELECT a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_Sec INTO xcodn,xcodgrupo,xcodtipo,xcodsec
|
|
FROM iptb00002 a WHERE a.cod_n IN (12,25) AND a.status_t IS NULL
|
|
|
|
DELETE FROM iptb00062 WHERE cod_mov = 99 AND cod_n IN (12,25) AND bodega = 12
|
|
FOREACH buscar_bd INTO xbodega
|
|
FOREACH buscar_pt
|
|
|
|
|
|
INSERT INTO iptb00062
|
|
(num_doc
|
|
,cod_n
|
|
,cod_grupo
|
|
,cod_tipo
|
|
,cod_sec
|
|
,cod_mov
|
|
,bodega
|
|
,cod_seccion
|
|
,cod_tramo
|
|
,cod_fila
|
|
,cod_pos
|
|
,cantidad
|
|
,cantidad2
|
|
|
|
,us_crea
|
|
,fech_crea)
|
|
VALUES
|
|
('3'
|
|
, xcodn
|
|
,xcodgrupo
|
|
,xcodtipo
|
|
,xcodsec
|
|
,99
|
|
,xbodega
|
|
,0
|
|
,0
|
|
,0
|
|
,0
|
|
,0
|
|
,0
|
|
|
|
,'JSOTO'
|
|
,GETDATE())
|
|
|
|
DISPLAY "INSERTE ",xcodn,"-",xcodgrupo,"-",xcodtipo,"-",xcodsec," ",xbodega
|
|
END FOREACH
|
|
END FOREACH
|
|
|
|
END FUNCTION
|
|
FUNCTION actualiza()
|
|
|
|
DEFINE datos RECORD
|
|
cod_mov,num_doc,bodega,cod_n,cod_grupo,cod_tipo,cod_Sec INT,
|
|
cantidad_1,cantidad_2, cantidad2 DEC(12,5)
|
|
END RECORD,
|
|
idx int
|
|
DECLARE bubicacion CURSOR FOR
|
|
select a.cod_mov,a.num_doc,a.bodega,a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_Sec,
|
|
a.cantidad_1,a.cantidad_2, b.cantidad2
|
|
from iptb00006 a inner join iptb00062 b on 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_mov = b.cod_mov and a.bodega = b.bodega and a.num_doc = b.num_doc
|
|
where b.fech_crea >= '2024-07-16' and b.cod_mov <> 99 and a.cantidad_2 <> b.cantidad2
|
|
order by a.bodega,a.cod_mov,a.num_Doc
|
|
LET idx=1
|
|
FOREACH bubicacion INTO datos.*
|
|
UPDATE iptb00062 SET cantidad = datos.cantidad_1,cantidad2 = datos.cantidad_2
|
|
WHERE cod_mov = datos.cod_mov AND num_Doc = datos.num_doc AND
|
|
bodega = datos.bodega AND cod_n = datos.cod_n AND
|
|
cod_Grupo = datos.cod_grupo AND cod_tipo = datos.cod_tipo AND
|
|
cod_sec = datos.cod_Sec
|
|
DISPLAY "CUENTA ",idx
|
|
LET idx = idx + 1
|
|
END FOREACH
|
|
END FUNCTION
|
|
FUNCTION ACTIVADOC()
|
|
DEFINE pcodmov,pnumdoc,pbodega INT
|
|
|
|
DECLARE buscadoc CURSOR FOR
|
|
select distinct a.bodega,a.num_doc,a.cod_mov,a.fecha,a.status_t,b.status_t
|
|
from iptb00006 a inner join iptb00062 b
|
|
on b.cod_mov = a.cod_mov and b.num_Doc = b.num_Doc and b.bodega = a.bodega
|
|
where a.fecha > '07/15/2024' and a.status_t = 'E' and b.status_t is NULL
|
|
|
|
|
|
FOREACH buscadoc INTO pbodega,pnumdoc,pcodmov
|
|
UPDATE IPTB00062 SET STATUS_T = 'E' WHERE cod_mov = pcodmov AND num_Doc = pnumdoc AND
|
|
bodega = pbodega
|
|
|
|
DISPLAY "ACTUALIZANDO....",pcodmov," ",pnumdoc," ",pbodega
|
|
END FOREACH
|
|
END FUNCTION
|
|
|
|
FUNCTION actualizaExistencia()
|
|
DEFINE existencia DEC(12,5),
|
|
pcodn,pcodgrupo,pcodtipo,pcodsec,pbodega INT,
|
|
xfecha VARCHAR(10)
|
|
|
|
LET pbodega = 1
|
|
LET xfecha = '2025-11-13'
|
|
DELETE FROM iptb00062 WHERE bodega = pbodega
|
|
DECLARE bexistencia CURSOR FOR
|
|
SELECT a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_Sec,a.bodega,SUM(a.cantidad_2)
|
|
FROM iptb00006 a,intb00009 b
|
|
WHERE a.status_t IS NULL AND a.fecha <= xfecha AND
|
|
a.bodega = b.cod_bodega AND A.BODEGA =pbodega
|
|
GROUP BY a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_Sec,a.bodega
|
|
ORDER BY a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_Sec,a.bodega
|
|
|
|
FOREACH bexistencia INTO pcodn,pcodgrupo,pcodtipo,pcodsec,pbodega,existencia
|
|
|
|
DISPLAY "DATO: ",pcodn,"-",pcodgrupo,"-",pcodtipo,"-",pcodsec," bodega: ",pbodega,existencia
|
|
DELETE FROM iptb00062 WHERE COD_MOV = 99 AND cod_n = pcodn AND cod_grupo=pcodgrupo AND
|
|
cod_tipo = pcodtipo AND cod_sec = pcodsec AND
|
|
bodega = pbodega
|
|
|
|
INSERT INTO iptb00062 (num_doc,fecha,cod_mov,us_crea,fech_crea,bodega,cod_seccion,cod_tramo,cod_fila,cod_pos,
|
|
cod_n,cod_grupo,cod_tipo,cod_sec,cantidad,cantidad2)
|
|
VALUES (1,xfecha,99,'JSOTO',getdate(),pbodega,0,0,0,0,pcodn,pcodgrupo,pcodtipo,pcodsec,existencia,existencia)
|
|
END FOREACH
|
|
|
|
END FUNCTION
|
|
FUNCTION verificadocumento()
|
|
DEFINE pbodega,pnumdoc,pcodmov,pcodn,pcodgrupo,pcodtipo,pcodsec INT,
|
|
pcantidad1,pcantidad2,pcantidad1_62,pcantidad2_62 DEC(12,5),
|
|
pfecha DATE
|
|
|
|
DECLARE verificar CURSOR FOR
|
|
SELECT a.bodega,a.num_doc,a.cod_mov,a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,SUM(a.cantidad_1),SUM(a.cantidad_2),
|
|
a.fecha
|
|
FROM iptb00006 a
|
|
WHERE a.status_t IS NULL AND a.fecha between '07/16/2024' AND '08/15/2024' AND a.cod_mov <> 99
|
|
GROUP BY a.bodega,a.num_doc,a.cod_mov,a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,a.fecha
|
|
ORDER BY a.bodega,a.cod_mov,a.num_doc
|
|
|
|
DELETE FROM tmpdocumentos
|
|
FOREACH verificar INTO pbodega,pnumdoc,pcodmov,pcodn,pcodgrupo,pcodtipo,pcodsec,pcantidad1,pcantidad2,
|
|
pfecha
|
|
|
|
LET pcantidad2_62=null
|
|
SELECT DISTINCT a.cod_sec
|
|
FROM iptb00062 a
|
|
WHERE a.bodega = pbodega AND
|
|
a.num_doc = pnumdoc AND
|
|
a.cod_mov = pcodmov AND
|
|
a.cod_n = pcodn AND
|
|
a.cod_grupo = pcodgrupo AND
|
|
a.cod_tipo = pcodtipo AND
|
|
a.cod_Sec = pcodsec AND a.status_t IS NULL
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
INSERT INTO dbo.iptb00062
|
|
(num_doc
|
|
,fecha
|
|
,area
|
|
,cod_n
|
|
,cod_grupo
|
|
,cod_tipo
|
|
,cod_sec
|
|
,cod_mov
|
|
,bodega
|
|
,cod_seccion
|
|
,cod_tramo
|
|
,cod_fila
|
|
,cod_pos
|
|
,cantidad
|
|
,cantidad2
|
|
|
|
,us_crea
|
|
,fech_crea)
|
|
VALUES
|
|
(pnumdoc
|
|
,pfecha
|
|
,1
|
|
,pcodn
|
|
,pcodgrupo
|
|
,pcodtipo
|
|
,pcodsec
|
|
,pcodmov
|
|
,pbodega
|
|
,0
|
|
,0
|
|
,0
|
|
,0
|
|
,pcantidad1,pcantidad2
|
|
,'JSOTO'
|
|
,GETDATE())
|
|
|
|
END IF
|
|
|
|
{
|
|
IF STATUS <> NOTFOUND THEN
|
|
DELETE FROM iptb00062
|
|
WHERE bodega = pbodega AND
|
|
num_doc = pnumdoc AND
|
|
cod_mov = pcodmov AND
|
|
cod_n = pcodn AND
|
|
cod_grupo = pcodgrupo AND
|
|
cod_tipo = pcodtipo AND
|
|
cod_Sec = pcodsec
|
|
END IF }
|
|
{ IF STATUS <> NOTFOUND THEN
|
|
UPDATE iptb00062 SET status_t = 'E',us_mod='jsoto',fech_mod=getdate()
|
|
WHERE bodega = pbodega AND
|
|
num_doc = pnumdoc AND
|
|
cod_mov = pcodmov AND
|
|
cod_n = pcodn AND
|
|
cod_grupo = pcodgrupo AND
|
|
cod_tipo = pcodtipo AND
|
|
cod_Sec = pcodsec
|
|
|
|
|
|
END IF
|
|
} {IF STATUS = NOTFOUND THEN
|
|
INSERT INTO dbo.iptb00062
|
|
(num_doc
|
|
,fecha
|
|
,area
|
|
,cod_n
|
|
,cod_grupo
|
|
,cod_tipo
|
|
,cod_sec
|
|
,cod_mov
|
|
,bodega
|
|
,cod_seccion
|
|
,cod_tramo
|
|
,cod_fila
|
|
,cod_pos
|
|
,cantidad
|
|
,cantidad2
|
|
|
|
,us_crea
|
|
,fech_crea)
|
|
VALUES
|
|
(pnumdoc
|
|
,pfecha
|
|
,1
|
|
,pcodn
|
|
,pcodgrupo
|
|
,pcodtipo
|
|
,pcodsec
|
|
,pcodmov
|
|
,pbodega
|
|
,0
|
|
,0
|
|
,0
|
|
,0
|
|
,pcantidad1,pcantidad2
|
|
,'JSOTO'
|
|
,GETDATE())
|
|
|
|
END IF
|
|
|
|
} # IF STATUS <> NOTFOUND THEN
|
|
# SELECT ISNULL(SUM(a.cantidad),0),ISNULL(SUM(a.cantidad2),0)
|
|
# INTO pcantidad1_62,pcantidad2_62
|
|
# FROM iptb00062 a
|
|
# WHERE a.bodega = pbodega AND
|
|
# a.num_doc = pnumdoc AND
|
|
# a.cod_mov = pcodmov AND
|
|
# a.cod_n = pcodn AND
|
|
# a.cod_grupo = pcodgrupo AND
|
|
# a.cod_tipo = pcodtipo AND
|
|
# a.cod_Sec = pcodsec
|
|
|
|
# IF pcantidad2 <> pcantidad2_62 THEN
|
|
|
|
# UPDATE iptb00062 SET cantidad = pcantidad1,
|
|
# cantidad2 = pcantidad2,
|
|
# us_mod = 'JSOTO',
|
|
# fech_mod = getdate()
|
|
# WHERE bodega = pbodega AND cod_mov = pcodmov AND num_doc = pnumdoc AND
|
|
# cod_n = pcodn AND cod_Grupo = pcodgrupo AND
|
|
# cod_tipo = pcodtipo AND cod_sec = pcodsec
|
|
|
|
# END IF
|
|
# ELSE
|
|
|
|
|
|
# END IF
|
|
INSERT INTO tmpdocumentos VALUES (pnumdoc,pcodmov,pbodega,pcodn,pcodgrupo,
|
|
pcodtipo,
|
|
pcodsec,
|
|
pcantidad1,
|
|
pcantidad2,
|
|
pcantidad1_62,
|
|
pcantidad2_62)
|
|
DISPLAY "dato: ",pbodega," nu ",pnumdoc," cod ",pcodmov," codigo ",pcodn,"-",pcodgrupo,"-",pcodtipo,"-",pcodsec,"-",pcantidad1," ", pcantidad2
|
|
END FOREACH
|
|
END FUNCTION
|
|
FUNCTION actualizaFecha()
|
|
DEFINE pbodega,pnumdoc,pcodmov,pcodn,pcodgrupo,pcodtipo,pcodsec INT,
|
|
pfecha DATE
|
|
|
|
DECLARE buscaFecha CURSOR FOR
|
|
SELECT DISTINCT a.fecha,a.bodega,a.cod_mov,a.num_doc,a.cod_n,a.cod_Grupo,a.cod_tipo,
|
|
a.cod_sec
|
|
FROM iptb00006 a,iptb00062 b
|
|
WHERE a.bodega = b.bodega AND
|
|
a.cod_mov = b.cod_mov AND a.fecha > '07/14/2024' AND a.cod_mov <> 99 AND
|
|
b.cod_mov <> 99 and
|
|
a.num_doc = b.num_doc AND
|
|
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.status_t IS NULL
|
|
|
|
FOREACH buscaFecha INTO pfecha,pbodega,pcodmov,pnumdoc,pcodn,pcodgrupo,pcodtipo,pcodsec
|
|
UPDATE iptb00062 SET fecha = pfecha,us_mod = 'JSOTO',fech_mod=getdate()
|
|
WHERE bodega = pbodega AND cod_mov=pcodmov AND num_doc = pnumdoc AND
|
|
cod_n = pcodn AND cod_grupo = pcodgrupo AND cod_tipo = pcodtipo AND
|
|
cod_sec = pcodsec
|
|
|
|
DISPLAY "dato: ",pbodega," nu ",pnumdoc," cod ",pcodmov," codigo ",pcodn,"-",pcodgrupo,"-",pcodtipo,"-",pcodsec
|
|
END FOREACH
|
|
END FUNCTION |