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>
773 lines
22 KiB
Plaintext
773 lines
22 KiB
Plaintext
{
|
|
FUNCTION : piking.4gl
|
|
DESARROLLADO POR: ING. JUAN SOTO
|
|
FECHA : 1/10/20218
|
|
OBJETIVO : Visualizar las transferencias que se realizan
|
|
|
|
}
|
|
IMPORT util
|
|
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),
|
|
numero_doc INT
|
|
END RECORD,
|
|
ximpresion CHAR(1)
|
|
|
|
DEFINE
|
|
l_sql_seq STRING,
|
|
prep_seq_piking SMALLINT
|
|
|
|
DEFINE movi10Dest_JSON DYNAMIC ARRAY OF RECORD
|
|
area, cod_n, cod_Grupo, cod_tipo, cod_sec INT,
|
|
id_bodega, id_seccion1 INT,
|
|
id_tramo1 INT,
|
|
id_fila, id_pos INT,
|
|
cantidad1, cantidad2 DECIMAL(12, 5)
|
|
END RECORD
|
|
DEFINE
|
|
movi2 DYNAMIC ARRAY OF RECORD
|
|
area SMALLINT,
|
|
descripcion_area VARCHAR(30),
|
|
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,
|
|
a.numero_doc
|
|
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
|
|
jsonMovi STRING,
|
|
out_msg VARCHAR(1000),
|
|
procedimiento STRING,
|
|
|
|
out_result INT,
|
|
cod_mensaje INT,
|
|
|
|
idseccion,
|
|
idtramo,
|
|
idfila,
|
|
idpos,
|
|
p_cod_n,
|
|
p_cod_grupo,
|
|
p_cod_tipo,
|
|
p_cod_sec,
|
|
p_numero_doc,
|
|
p_num_oc,
|
|
p_cod_sp,
|
|
p_cod_sp_sec,
|
|
p_cod_transp,
|
|
p_sec_transp,
|
|
p_area,
|
|
p_numreq,
|
|
p_secVend,
|
|
p_bodega_d,
|
|
p_retrabajo,
|
|
p_Departamento,
|
|
p_factura
|
|
INT,
|
|
|
|
p_cantidad_1, p_cantidad_2, costoItem DECIMAL(12, 5),
|
|
|
|
out_cantidad_item, out_cantidad_ubicacion DECIMAL(18, 5),
|
|
|
|
p_detalle, p_direccion VARCHAR(100),
|
|
|
|
p_placa VARCHAR(20),
|
|
p_fecha DATE,
|
|
|
|
p_cerrada, p_aplicadev, pcontrol_depto VARCHAR(1),
|
|
|
|
p_codigoBloque VARCHAR(25)
|
|
|
|
LET p_fecha = TODAY
|
|
|
|
INITIALIZE p_area TO NULL
|
|
|
|
LET p_cerrada = 'N'
|
|
LET costoItem = 0
|
|
------------------------------------------------------------------
|
|
SELECT a.cod_seccion, a.cod_tramo, a.cod_fila, a.cod_pos
|
|
INTO idseccion, idtramo, idfila, idpos
|
|
FROM companias a
|
|
|
|
WHENEVER ERROR CONTINUE
|
|
BEGIN WORK
|
|
|
|
# Serializa la obtencion del numero de documento para evitar duplicados
|
|
# bajo concurrencia (con RCSI los lectores ya no toman lock compartido).
|
|
# La lectura va DENTRO del BEGIN WORK con UPDLOCK+HOLDLOCK para que el
|
|
# lock se sostenga hasta el COMMIT y un segundo usuario espere su turno.
|
|
IF NOT prep_seq_piking THEN
|
|
LET l_sql_seq =
|
|
"SELECT num_doc FROM iptb00007 WITH (UPDLOCK, HOLDLOCK)",
|
|
" WHERE bodega = ? AND cod_mov = ?"
|
|
PREPARE p_seq_piking FROM l_sql_seq
|
|
LET prep_seq_piking = TRUE
|
|
END IF
|
|
LET otros_mov.num_doc = NULL
|
|
EXECUTE p_seq_piking
|
|
USING otros_mov.bodega_destino,
|
|
otros_mov1.cod_mov_transferencia
|
|
INTO otros_mov.num_doc
|
|
|
|
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
|
|
|
|
UPDATE iptb00007
|
|
SET num_doc = otros_mov.num_doc
|
|
WHERE cod_mov = otros_mov1.cod_mov_transferencia
|
|
AND bodega = otros_mov.bodega_destino
|
|
|
|
DECLARE transferencia_pend CURSOR FOR
|
|
SELECT a.cod_n,
|
|
a.cod_grupo,
|
|
a.cod_tipo,
|
|
a.cod_sec,
|
|
a.cantidad_1,
|
|
a.cantidad_2,
|
|
a.detalle,
|
|
a.numero_doc,
|
|
a.num_oc,
|
|
a.cod_sp,
|
|
a.cod_sp_sec,
|
|
a.cod_transp,
|
|
a.sec_transp,
|
|
a.placa
|
|
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'
|
|
FOREACH transferencia_pend
|
|
INTO p_cod_n,
|
|
p_cod_grupo,
|
|
p_cod_tipo,
|
|
p_cod_sec,
|
|
p_cantidad_1,
|
|
p_cantidad_2,
|
|
p_detalle,
|
|
p_numero_doc,
|
|
p_num_oc,
|
|
p_cod_sp,
|
|
p_cod_sp_sec,
|
|
p_cod_transp,
|
|
p_sec_transp,
|
|
p_placa
|
|
|
|
LET p_cantidad_2 = p_cantidad_2 * -1
|
|
|
|
# CONSTRUIR JSON DEL ITEM
|
|
|
|
INITIALIZE movi10Dest_JSON TO NULL
|
|
INITIALIZE jsonMovi TO NULL
|
|
|
|
LET movi10Dest_JSON[1].area = p_area
|
|
|
|
LET movi10Dest_JSON[1].cod_n = p_cod_n
|
|
LET movi10Dest_JSON[1].cod_grupo = p_cod_grupo
|
|
LET movi10Dest_JSON[1].cod_tipo = p_cod_tipo
|
|
LET movi10Dest_JSON[1].cod_sec = p_cod_sec
|
|
|
|
LET movi10Dest_JSON[1].id_bodega = otros_mov.bodega_destino
|
|
|
|
LET movi10Dest_JSON[1].id_seccion1 = idseccion
|
|
|
|
LET movi10Dest_JSON[1].id_tramo1 = idtramo
|
|
|
|
LET movi10Dest_JSON[1].id_fila = idfila
|
|
|
|
LET movi10Dest_JSON[1].id_pos = idpos
|
|
|
|
LET movi10Dest_JSON[1].cantidad1 = p_cantidad_1
|
|
|
|
LET movi10Dest_JSON[1].cantidad2 = p_cantidad_2
|
|
|
|
LET jsonMovi = util.JSON.stringify(movi10Dest_JSON)
|
|
|
|
# EJECUTAR EL MISMO SP
|
|
|
|
INITIALIZE out_result TO NULL
|
|
INITIALIZE cod_mensaje TO NULL
|
|
INITIALIZE out_cantidad_item TO NULL
|
|
INITIALIZE out_cantidad_ubicacion TO NULL
|
|
INITIALIZE out_msg TO NULL
|
|
LET pcontrol_depto = 'NO'
|
|
|
|
LET procedimiento =
|
|
"EXEC sp_insert_inventario ",
|
|
"?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ",
|
|
"?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ",
|
|
"?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ",
|
|
"?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ",
|
|
"?, ?, ?, ?"
|
|
|
|
PREPARE smt FROM procedimiento
|
|
IF STATUS <> 0 THEN
|
|
ROLLBACK WORK
|
|
|
|
DISPLAY "ERROR PREPARE SP: ", STATUS
|
|
CALL msg(1679)
|
|
|
|
RETURN
|
|
END IF
|
|
|
|
EXECUTE smt
|
|
USING p_num_oc IN,
|
|
p_cod_n IN,
|
|
p_cod_grupo IN,
|
|
p_cod_tipo IN,
|
|
p_cod_sec IN,
|
|
p_area IN,
|
|
p_cantidad_1 IN,
|
|
p_cantidad_2 IN,
|
|
otros_mov1.cod_mov_transferencia IN,
|
|
otros_mov.num_doc IN,
|
|
otros_mov.num_doc IN, # tmpnumero
|
|
otros_mov.num_doc IN, # entrada
|
|
p_fecha IN,
|
|
otros_mov.conduce_no IN, # conduce
|
|
p_cod_sp IN,
|
|
p_cod_sp_sec IN,
|
|
p_cod_transp IN,
|
|
p_sec_transp IN,
|
|
p_placa IN,
|
|
p_detalle IN,
|
|
otros_mov.bodega_destino IN,
|
|
p_cerrada IN, # pcerrada
|
|
gusuario IN,
|
|
p_numreq IN, # numreq
|
|
p_codigoBloque IN, # codigo_bloque
|
|
p_secVend IN, # secvend
|
|
p_direccion IN, # direccion
|
|
p_bodega_d IN, # bodega_d
|
|
p_retrabajo IN, # retrabajo
|
|
p_aplicadev IN, # aplicaDev
|
|
p_Departamento IN, # departamento
|
|
pcontrol_depto IN, # pcontrol_depto
|
|
p_factura IN, # factura
|
|
p_numero_doc IN,
|
|
costoItem IN,
|
|
otros_mov.cod_mov IN,
|
|
otros_mov1.num_doc IN,
|
|
otros_mov.bodega IN,
|
|
jsonMovi IN,
|
|
out_result OUT,
|
|
cod_mensaje OUT,
|
|
out_cantidad_item OUT,
|
|
out_cantidad_ubicacion OUT,
|
|
out_msg OUT
|
|
|
|
IF STATUS <> 0 THEN
|
|
ROLLBACK WORK
|
|
|
|
DISPLAY "ERROR SQL EJECUTANDO SP: ", STATUS
|
|
DISPLAY "ITEM: ",
|
|
p_cod_n,
|
|
"-",
|
|
p_cod_grupo,
|
|
"-",
|
|
p_cod_tipo,
|
|
"-",
|
|
p_cod_sec
|
|
|
|
CALL msg(1679)
|
|
|
|
RETURN
|
|
END IF
|
|
DISPLAY "data piking: ", out_msg
|
|
|
|
IF out_result <> 0 THEN
|
|
|
|
ROLLBACK WORK
|
|
|
|
DISPLAY "ERROR RECEPCION TRANSFERENCIA"
|
|
DISPLAY "ITEM: ",
|
|
p_cod_n,
|
|
"-",
|
|
p_cod_grupo,
|
|
"-",
|
|
p_cod_tipo,
|
|
"-",
|
|
p_cod_sec
|
|
|
|
DISPLAY "CODIGO: ", cod_mensaje
|
|
DISPLAY "CANTIDAD ITEM: ", out_cantidad_item
|
|
|
|
DISPLAY "CANTIDAD UBICACION: ", out_cantidad_ubicacion
|
|
|
|
CALL msg(cod_mensaje)
|
|
|
|
RETURN
|
|
|
|
END IF
|
|
|
|
END FOREACH
|
|
|
|
# TODOS LOS ITEMS FUERON RECIBIDOS
|
|
|
|
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
|
|
AND bodega_d = otros_mov.bodega_destino
|
|
AND cond_recep = "N"
|
|
|
|
IF STATUS <> 0 THEN
|
|
|
|
ROLLBACK WORK
|
|
|
|
CALL msg(1679)
|
|
|
|
RETURN
|
|
|
|
END IF
|
|
|
|
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
|