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