Instruccion de Johnny: todos los directorios de fuentes de inventario deben migrarse de la carpeta temporal PROYECTOS a la carpeta real PROYECTO, ya que PROYECTOS sera eliminada. Se elimino tambien un archivo suelto sin relacion llamado "ipdir" que existia en PROYECTO (del commit inicial) y bloqueaba el nombre de la carpeta. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
374 lines
16 KiB
Plaintext
374 lines
16 KiB
Plaintext
SCHEMA smarmotech
|
|
|
|
DEFINE piking DYNAMIC ARRAY OF RECORD
|
|
transportista STRING,
|
|
bodega SMALLINT,
|
|
nombre_b CHAR(25),
|
|
bodega2 SMALLINT,
|
|
nombre_b2 CHAR(25),
|
|
num_doc INTEGER,
|
|
fecha DATE,
|
|
cod_mov SMALLINT,
|
|
nombre VARCHAR(100),
|
|
usuario CHAR(60),
|
|
recibo CHAR(1),
|
|
impresion CHAR(1),
|
|
cod_mov_transferencia SMALLINT,
|
|
cod_transp SMALLINT,
|
|
sec_transp SMALLINT,
|
|
placa VARCHAR(50)
|
|
END RECORD,
|
|
ximpresion CHAR(1)
|
|
|
|
DEFINE movi2 DYNAMIC ARRAY OF RECORD
|
|
area SMALLINT,
|
|
cod_n LIKE intb00003.cod_n,
|
|
cod_grupo LIKE intb00003.cod_grupo,
|
|
cod_tipo LIKE intb00003.cod_tipo,
|
|
cod_sec LIKE intb00003.cod_sec,
|
|
cantidad_1 DEC(12,5),
|
|
cantidad_2 DEC(12,5),
|
|
cantidad_p DEC(12,5),
|
|
unidad_med LIKE iptb00002.unidad_med,
|
|
descrip_esp CHAR(80),
|
|
existencia DEC(12,5),
|
|
disponible DEC(12,5),
|
|
codigo_bloque CHAR(15),
|
|
id_kit INT
|
|
END RECORD,
|
|
negrilla_on,negrillas_of,doble_on,doble_off,comp_on,comp_off,
|
|
doce,NORMAL CHAR(3),
|
|
imprime,gclave,gusuario,archivo, DESCRIP_TRANSP,copia CHAR(100),
|
|
gimpresor,idx1,idx,p_act,numero_msg SMALLINT,
|
|
tituloBodega STRING,
|
|
|
|
otros_mov1 RECORD
|
|
num_doc INT,
|
|
cod_cia SMALLINT,
|
|
cod_mov SMALLINT,
|
|
fact_no CHAR(25),
|
|
cod_transp SMALLINT,
|
|
sec_transp SMALLINT,
|
|
cod_tarifa SMALLINT,
|
|
placa CHAR(25),
|
|
conduce_no CHAR(25),
|
|
fecha DATE,
|
|
descrip_mov CHAR(30),
|
|
bodega SMALLINT,
|
|
bodega2 SMALLINT,
|
|
bodega_d CHAR(30),
|
|
num_bultos SMALLINT,
|
|
detalle CHAR(30),
|
|
cod_sp SMALLINT,
|
|
cod_sp_sec INT,
|
|
descrip4 CHAR(30),
|
|
cod_mov_transferencia INT
|
|
END RECORD
|
|
|
|
DEFINE otros_mov RECORD
|
|
num_doc LIKE iptb00006.num_doc,
|
|
cod_cia LIKE iptb00006.cod_cia,
|
|
cod_mov LIKE iptb00006.cod_mov,
|
|
fact_no LIKE iptb00006.fact_no,
|
|
cod_transp LIKE iptb00006.cod_transp,
|
|
sec_transp LIKE iptb00006.sec_transp,
|
|
cod_tarifa LIKE iptb00006.cod_tarifa,
|
|
placa LIKE iptb00006.placa,
|
|
fecha LIKE iptb00006.fecha,
|
|
conduce_no LIKE iptb00006.conduce_no,
|
|
descrip_mov CHAR(80),
|
|
bodega LIKE iptb00006.bodega,
|
|
bodega_destino SMALLINT,
|
|
detalle LIKE iptb00006.detalle,
|
|
cod_sp LIKE iptb00006.cod_sp,
|
|
cod_sp_sec LIKE iptb00006.cod_sp_sec,
|
|
departamento SMALLINT,
|
|
nombre_depto CHAR(30),
|
|
cod_mov1 SMALLINT,
|
|
entrada INT,
|
|
descrip_mov1 CHAR(40),
|
|
descrip4 CHAR(30),
|
|
factura INT
|
|
|
|
END RECORD
|
|
|
|
FUNCTION piking(usuario,clave,impresor,xbodega,sucursal)
|
|
|
|
DEFINE letras RECORD
|
|
negrillas_on CHAR(6),
|
|
negrillas_off CHAR(6),
|
|
doble_on CHAR(6),
|
|
doble_off CHAR(6),
|
|
comp_on CHAR(6),
|
|
comp_off CHAR(6),
|
|
doce CHAR(6),
|
|
normal CHAR(6)
|
|
END RECORD,
|
|
usuario,clave CHAR(50),
|
|
impresor,xbodega,sucursal SMALLINT
|
|
|
|
LET gusuario = usuario
|
|
LET gclave = clave
|
|
LET gimpresor = impresor
|
|
DECLARE busca_piking CURSOR FOR
|
|
SELECT DISTINCT d.nombre, a.bodega,e.descripcion,a.bodega_d,' ',a.num_doc,a.fecha,a.cod_mov,
|
|
c.descrip_mov,a.us_crea,a.cond_recep,'N',
|
|
c.codigo_mov_transferencia,a.cod_transp,a.sec_transp,a.placa
|
|
FROM iptb00033 a LEFT OUTER JOIN vetb00015 d ON a.cod_transp =d.cod_transp AND
|
|
a.sec_transp = d.sec_transp,
|
|
iptb00005 c,intb00009 e,iptb00048 b
|
|
WHERE a.bodega_d = b.bodega AND
|
|
b.usuario = usuario AND
|
|
e.cod_bodega = a.bodega_d AND
|
|
a.cond_recep = 'N' AND
|
|
a.cod_mov = c.cod_mov AND c.control_transferencia= "SI" AND
|
|
a.status_t IS NULL
|
|
|
|
LET idx = 1
|
|
FOREACH busca_piking INTO piking[idx].*
|
|
SELECT a.descripcion INTO piking[idx].nombre_b2
|
|
FROM intb00009 a
|
|
WHERE a.cod_bodega = piking[idx].bodega2
|
|
#BRIAN LO PUSO
|
|
SELECT a.descripcion INTO piking[idx].nombre_b
|
|
FROM intb00009 a
|
|
WHERE a.cod_bodega = piking[idx].bodega
|
|
LET otros_mov1.cod_mov_transferencia = piking[idx].cod_mov_transferencia
|
|
LET idx = idx + 1
|
|
END FOREACH #fin foreach busca_piking
|
|
|
|
IF idx > 1 THEN
|
|
# FORMULARIO RELACION DE TRANSFERENCIA POR RECIBIR
|
|
OPEN WINDOW ipfmwd007 AT 1,1 WITH FORM "ipfmwd013"
|
|
|
|
LET int_flag = FALSE
|
|
INPUT ARRAY piking WITHOUT DEFAULTS FROM spiking.*
|
|
|
|
ON ACTION visualiza
|
|
LET p_Act= arr_curr()
|
|
CALL buscadata(p_act)
|
|
CALL itemsTransferencia()
|
|
|
|
AFTER INPUT
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
EXIT INPUT
|
|
END IF
|
|
END INPUT
|
|
IF int_flag THEN
|
|
LET int_flag = FALSE
|
|
CLOSE WINDOW ipfmwd007
|
|
RETURN
|
|
END IF
|
|
FOR idx1 = 1 TO piking.getLength()
|
|
LET ximpresion = 'N'
|
|
IF piking[idx1].recibo = "S" THEN
|
|
CALL buscadata(idx1)
|
|
IF piking[idx1].impresion = 'S' THEN
|
|
LET ximpresion = 'S'
|
|
END IF
|
|
CALL adicionaTransf()
|
|
END IF
|
|
END FOR
|
|
|
|
CLOSE WINDOW ipfmwd007
|
|
|
|
END IF
|
|
LET int_flag = FALSE
|
|
|
|
END FUNCTION
|
|
FUNCTION itemsTransferencia()
|
|
DEFINE xcodmov,xbodega STRING,
|
|
xnumdoc INT
|
|
DISPLAY "BUSCA DATA ",otros_mov1.num_doc," ",otros_mov.cod_mov," ",otros_mov.bodega
|
|
OPEN WINDOW w1 WITH FORM "ipfmwd013a"
|
|
DECLARE busca_items CURSOR FOR
|
|
SELECT a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,a.cantidad_1,a.cantidad_2,
|
|
b.unidad_med,b.descrip_esp,a.costo,a.bodega_d
|
|
FROM iptb00033 a,iptb00002 b
|
|
WHERE a.num_doc = otros_mov1.num_doc
|
|
AND a.cod_mov = otros_mov.cod_mov
|
|
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.bodega = otros_mov.bodega
|
|
AND a.bodega_d = otros_mov.bodega_destino
|
|
AND a.status_t IS NULL and a.cond_recep = 'N'
|
|
|
|
LET idx = 1
|
|
LET xcodmov = "(",otros_mov.cod_mov USING "&&&&",")",otros_mov.descrip_mov CLIPPED
|
|
|
|
LET xnumdoc = otros_mov1.num_doc
|
|
LET xbodega = "(",otros_mov.bodega USING "<<<",")",otros_mov.descrip4 CLIPPED
|
|
DISPLAY BY NAME xcodmov,xnumdoc,xbodega
|
|
|
|
FOREACH busca_items INTO movi2[idx].cod_n,
|
|
movi2[idx].cod_grupo,
|
|
movi2[idx].cod_tipo,
|
|
movi2[idx].cod_sec,
|
|
movi2[idx].cantidad_1,
|
|
movi2[idx].cantidad_2,
|
|
movi2[idx].unidad_med,
|
|
movi2[idx].descrip_esp,
|
|
otros_mov1.bodega2
|
|
LET idx = idx + 1
|
|
END FOREACH #fin del foreach busca_items into movi2
|
|
|
|
DISPLAY ARRAY movi2 TO detallepiking.*
|
|
ON ACTION imprimir ATTRIBUTE(TEXT="Imprime",IMAGE="printer2")
|
|
CALL defecto(gusuario,gclave,gimpresor) RETURNING imprime,negrilla_on,negrillas_of,
|
|
doble_on,doble_off,comp_on,comp_off,
|
|
doce,normal,archivo,copia
|
|
START REPORT formu4 TO archivo
|
|
FOR idx = 1 TO movi2.getLength()
|
|
|
|
OUTPUT TO REPORT formu4(otros_mov.*,movi2[idx].*)
|
|
|
|
END FOR
|
|
FINISH REPORT formu4
|
|
RUN imprime
|
|
CALL fgl_winmessage("INFO","IMPRESION TERMINADA","INFO")
|
|
AFTER DISPLAY
|
|
EXIT DISPLAY
|
|
END DISPLAY
|
|
CLOSE WINDOW w1
|
|
END FUNCTION
|
|
FUNCTION adicionaTransf()
|
|
DEFINE selec STRING
|
|
DISPLAY "otra data ",otros_mov1.cod_mov_transferencia
|
|
SELECT a.num_doc INTO otros_mov.num_doc
|
|
FROM iptb00007 a
|
|
WHERE a.bodega = otros_mov.bodega_destino AND
|
|
a.cod_mov = otros_mov1.cod_mov_transferencia
|
|
|
|
|
|
IF otros_mov.num_doc IS NULL THEN
|
|
LET otros_mov.num_doc = 0
|
|
INSERT INTO iptb00007 (num_doc,cod_mov,bodega) VALUES (0,otros_mov1.cod_mov_transferencia,otros_mov.bodega_destino)
|
|
END IF
|
|
LET otros_mov.num_doc = otros_mov.num_doc + 1
|
|
|
|
# BEGIN WORK
|
|
|
|
UPDATE iptb00007 SET num_doc = otros_mov.num_doc
|
|
WHERE cod_mov = otros_mov1.cod_mov_transferencia AND bodega = otros_mov.bodega_destino
|
|
|
|
LET selec = "INSERT INTO iptb00006 (cod_cia,num_doc,fecha,
|
|
cod_transp,sec_transp,
|
|
placa,cod_tarifa,
|
|
cod_mov,detalle,
|
|
cod_n,cod_grupo,cod_tipo,
|
|
cod_sec,cantidad_1,cantidad_2,
|
|
bodega,us_crea,fech_crea,
|
|
cod_mov_transferencia,
|
|
num_doc_transferencia,bodega_procedencia)
|
|
SELECT a.cod_cia, ",otros_mov.num_doc,", getdate(),a.cod_transp,a.sec_transp,",
|
|
"a.placa,a.cod_tarifa,",otros_mov1.cod_mov_transferencia,
|
|
",a.detalle,a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_Sec,
|
|
a.cantidad_1,a.cantidad_2*-1,",otros_mov.bodega_destino,",'",gusuario CLIPPED,"',getdate(),",
|
|
otros_mov.cod_mov,",", otros_mov1.num_doc,",",otros_mov.bodega,
|
|
" FROM iptb00033 a WHERE a.num_doc =",otros_mov1.num_doc," and a.bodega = ",otros_mov.bodega,
|
|
" AND a.cod_mov = ",otros_mov.cod_mov," AND a.bodega_d = ",otros_mov.bodega_destino,
|
|
" AND a.cond_recep = 'N' "
|
|
# DISPLAY selec
|
|
PREPARE comando FROM selec
|
|
EXECUTE comando
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
ROLLBACK WORK
|
|
CALL fgl_Winmessage("INFO","NO FUE POSIBLE ADICIONAR LA TRANSFERENCIA","INFO")
|
|
RETURN
|
|
END IF
|
|
|
|
UPDATE iptb00033 SET cond_recep = "S",us_mod = gusuario,fech_mod = getdate()
|
|
WHERE cod_mov =otros_mov.cod_mov AND num_doc =otros_mov1.num_doc AND
|
|
bodega = otros_mov.bodega
|
|
|
|
# COMMIT WORK
|
|
IF ximpresion = 'S' THEN
|
|
# IMPRESION
|
|
|
|
DECLARE busca_data CURSOR FOR
|
|
SELECT a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_Sec,a.cantidad_1,a.cantidad_2,
|
|
b.descrip_Esp,b.unidad_med,a.num_doc,a.fecha,a.cod_mov,c.descrip_mov, a.bodega,
|
|
a.placa,a.cod_transp,a.sec_transp
|
|
FROM iptb00006 a,iptb00002 b,iptb00005 c
|
|
WHERE a.num_doc = otros_mov.num_doc AND a.cod_mov = otros_mov1.cod_mov_transferencia AND
|
|
a.bodega = otros_mov.bodega_destino AND a.cod_mov = c.cod_mov 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
|
|
|
|
LET idx = 1
|
|
CALL defecto(gusuario,gclave,gimpresor) RETURNING imprime,negrilla_on,negrillas_of,
|
|
doble_on,doble_off,comp_on,comp_off,
|
|
doce,normal,archivo,copia
|
|
|
|
START REPORT formu4 TO archivo
|
|
|
|
FOREACH busca_data INTO movi2[idx].cod_n,movi2[idx].cod_grupo,movi2[idx].cod_tipo,
|
|
movi2[idx].cod_sec,movi2[idx].cantidad_1,movi2[idx].cantidad_2,
|
|
movi2[idx].descrip_esp,movi2[idx].unidad_med,
|
|
otros_mov.num_doc,otros_mov.fecha,otros_mov.cod_mov,otros_mov.descrip_mov,
|
|
otros_mov.bodega,otros_mov.placa,otros_mov.cod_transp,otros_mov.sec_transp
|
|
|
|
OUTPUT TO REPORT formu4(otros_mov.*,movi2[idx].*)
|
|
END FOREACH
|
|
FINISH REPORT formu4
|
|
RUN imprime
|
|
|
|
END IF
|
|
CALL fgl_Winmessage("INFO","TRANSFERENCIA ADICIONADA CON EXITO","INFO")
|
|
END FUNCTION
|
|
FUNCTION buscadata(i)
|
|
DEFINE i INT
|
|
|
|
SELECT UNIQUE a.detalle,b.descrip_mov,a.cod_cia,a.bodega,a.bodega_d,c.nombre,a.cod_transp,
|
|
a.sec_transp,b.codigo_mov_transferencia,a.placa
|
|
INTO otros_mov.detalle,otros_mov.descrip_mov,otros_mov.cod_cia,
|
|
otros_mov.bodega,otros_mov.bodega_destino,DESCRIP_TRANSP,otros_mov.cod_transp,
|
|
otros_mov.sec_transp,otros_mov1.cod_mov_transferencia,otros_mov.placa
|
|
FROM iptb00033 a,iptb00005 b,vetb00015 c
|
|
WHERE a.num_doc = piking[i].num_doc
|
|
AND a.cod_mov = piking[i].cod_mov
|
|
AND a.cod_mov = b.cod_mov and a.bodega = piking[i].bodega
|
|
AND a.status_t IS NULL AND a.cond_recep = 'N'
|
|
AND c.cod_transp=a.cod_transp AND
|
|
c.sec_transp = a.sec_transp
|
|
|
|
LET otros_mov.detalle = otros_mov1.detalle
|
|
LET otros_mov.cod_cia = otros_mov1.cod_cia
|
|
LET otros_mov1.num_Doc = piking[i].num_doc
|
|
|
|
|
|
LET otros_mov.fecha = piking[i].fecha
|
|
LET otros_mov.cod_mov = piking[i].cod_mov
|
|
LET otros_mov.bodega = piking[i].bodega
|
|
|
|
LET otros_mov.bodega_destino = piking[i].bodega2
|
|
|
|
LET tituloBodega = piking[i].nombre_b2
|
|
|
|
END FUNCTION
|
|
FUNCTION pendienteRecibir(xbodega)
|
|
DEFINE xbodega,j INT
|
|
DECLARE cuenta CURSOR FOR
|
|
SELECT DISTINCT d.nombre, a.bodega,e.descripcion,a.bodega_d,' ',a.num_doc,a.fecha,a.cod_mov,
|
|
c.descrip_mov,a.us_crea,a.cond_recep,
|
|
c.codigo_mov_transferencia,a.cod_transp,a.sec_transp,a.placa
|
|
FROM iptb00033 a,iptb00005 c,intb00009 e,vetb00015 d
|
|
WHERE a.bodega_d = xbodega and
|
|
e.cod_bodega = a.bodega_d AND
|
|
a.cond_recep = 'N' AND
|
|
a.cod_mov = c.cod_mov AND c.control_transferencia= "SI" AND
|
|
a.cod_transp = d.cod_transp AND
|
|
a.sec_transp = d.sec_transp AND
|
|
a.status_t IS NULL
|
|
LET j = 0
|
|
FOREACH cuenta
|
|
LET j = j +1
|
|
END FOREACH
|
|
RETURN j
|
|
END FUNCTION |