Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
@@ -0,0 +1,760 @@
|
||||
GLOBALS "ipprgb000.4gl"
|
||||
|
||||
DEFINE record1 DYNAMIC ARRAY OF RECORD
|
||||
id_seccion INT,
|
||||
Desc_seccion STRING,
|
||||
id_tramo INT,
|
||||
Desc_tramo STRING,
|
||||
id_fila INT,
|
||||
Desc_fila STRING,
|
||||
id_posicion INT,
|
||||
Desc_posicion STRING,
|
||||
unidades DECIMAL(12, 5),
|
||||
cantidad DECIMAL(12, 5),
|
||||
INDEX INT
|
||||
END RECORD
|
||||
|
||||
DEFINE record2 DYNAMIC ARRAY OF RECORD
|
||||
seccion INT,
|
||||
tramo INT,
|
||||
fila INT,
|
||||
posicion INT,
|
||||
unidades DECIMAL(12, 5),
|
||||
cantidad DECIMAL(12, 5),
|
||||
INDEX INT
|
||||
END RECORD
|
||||
|
||||
DEFINE Disponible RECORD
|
||||
ExOnTable DECIMAL(12, 5), --Existencia en la iptb00062
|
||||
ExOnDisplay DECIMAL(12, 5), --Existencia dinamica en el programa
|
||||
UNITS DECIMAL(12, 5),
|
||||
existence DECIMAL(12, 5)
|
||||
END RECORD
|
||||
|
||||
DEFINE
|
||||
exitFlag BOOLEAN,
|
||||
numero_msg, TABULAR INT
|
||||
|
||||
DEFINE detalle VARCHAR(255)
|
||||
|
||||
FUNCTION InsertaUbicacionDH(prod1, ubicacion)
|
||||
|
||||
DEFINE bodegaCont, i INT --BodegaContainer--
|
||||
DEFINE producto, ubicacion STRING
|
||||
DEFINE factor, container DECIMAL(12, 5)
|
||||
|
||||
DEFINE prod1 RECORD
|
||||
estado VARCHAR(20),
|
||||
cod_n SMALLINT,
|
||||
cod_grupo SMALLINT,
|
||||
cod_tipo SMALLINT,
|
||||
cod_sec SMALLINT,
|
||||
descrip_esp CHAR(180),
|
||||
unidad_med LIKE iptb00002.unidad_med,
|
||||
bodega CHAR(50),
|
||||
existencia DECIMAL(12, 5),
|
||||
cantidad_ordenes DEC(12, 5),
|
||||
disponible DEC(12, 5),
|
||||
reservado DEC(12, 5),
|
||||
transito DEC(12, 5),
|
||||
valorOrden DEC(12, 5),
|
||||
parent_id, child_id VARCHAR(20)
|
||||
END RECORD
|
||||
|
||||
LET INT_FLAG = TRUE
|
||||
LET exitFlag = FALSE
|
||||
LET TABULAR = 0
|
||||
|
||||
CALL record1.clear()
|
||||
CALL record2.clear()
|
||||
|
||||
CALL BuscarData(prod1.*, ubicacion) RETURNING factor, bodegaCont, producto
|
||||
|
||||
OPEN WINDOW w1 WITH FORM "ipfmmt006"
|
||||
|
||||
DISPLAY BY NAME producto
|
||||
|
||||
CALL init_seccion(bodegaCont)
|
||||
|
||||
DIALOG ATTRIBUTE(UNBUFFERED)
|
||||
|
||||
DISPLAY ARRAY record1 TO record_left.*
|
||||
END DISPLAY
|
||||
|
||||
INPUT BY NAME detalle
|
||||
END INPUT
|
||||
|
||||
INPUT ARRAY record2 FROM record_right.* ATTRIBUTES(WITHOUT DEFAULTS,AUTO APPEND = FALSE)
|
||||
|
||||
ON CHANGE seccion
|
||||
CALL init_tramo(bodegaCont, record2[arr_curr()].seccion)
|
||||
|
||||
ON CHANGE tramo
|
||||
CALL init_fila(
|
||||
bodegaCont,
|
||||
record2[arr_curr()].seccion,
|
||||
record2[arr_curr()].tramo)
|
||||
|
||||
ON CHANGE fila
|
||||
CALL init_posicion(
|
||||
bodegaCont,
|
||||
record2[arr_curr()].seccion,
|
||||
record2[arr_curr()].tramo,
|
||||
record2[arr_curr()].fila)
|
||||
|
||||
ON CHANGE unidades1
|
||||
LET record2[arr_curr()].cantidad =
|
||||
record2[arr_curr()].unidades * factor
|
||||
LET INT_FLAG = FALSE
|
||||
|
||||
END INPUT
|
||||
|
||||
ON ACTION right1
|
||||
CALL right1(DIALOG)
|
||||
|
||||
ON ACTION ACCEPT ATTRIBUTES(TEXT = "Guardar")
|
||||
LET container = record2[arr_curr()].unidades * factor
|
||||
|
||||
DISPLAY factor
|
||||
DISPLAY container
|
||||
DISPLAY record2[arr_curr()].cantidad
|
||||
|
||||
IF record2[arr_curr()].cantidad = container THEN
|
||||
|
||||
CALL InsertFunction(prod1.*, bodegaCont) RETURNING INT_FLAG
|
||||
|
||||
ELSE
|
||||
|
||||
CALL fgl_winmessage(
|
||||
"INFO",
|
||||
"DEBES TABULAR LAS UNIDADES ANTES DE GUARDAR",
|
||||
"INFO")
|
||||
|
||||
LET INT_FLAG = FALSE
|
||||
|
||||
END IF
|
||||
|
||||
IF INT_FLAG THEN
|
||||
CALL record1.clear()
|
||||
CALL record2.clear()
|
||||
CALL BuscarData(
|
||||
prod1.*, ubicacion)
|
||||
RETURNING factor, bodegaCont, producto
|
||||
{ CALL DefaultLocations(
|
||||
prod1.existencia,
|
||||
factor,
|
||||
prod1.cod_n,
|
||||
prod1.cod_grupo,
|
||||
prod1.cod_tipo,
|
||||
prod1.cod_sec,
|
||||
bodegaCont)}
|
||||
|
||||
END IF
|
||||
|
||||
ON ACTION Salir ATTRIBUTES(TEXT = "Salir")
|
||||
EXIT DIALOG
|
||||
|
||||
END DIALOG
|
||||
CLOSE WINDOW w1
|
||||
RETURN exitFlag
|
||||
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION BuscarData(prod1, ubicacion) --Buscar las informaciones necesarias
|
||||
|
||||
DEFINE prod1 RECORD
|
||||
estado VARCHAR(20),
|
||||
cod_n SMALLINT,
|
||||
cod_grupo SMALLINT,
|
||||
cod_tipo SMALLINT,
|
||||
cod_sec SMALLINT,
|
||||
descrip_esp CHAR(180),
|
||||
unidad_med LIKE iptb00002.unidad_med,
|
||||
bodega CHAR(50),
|
||||
existencia DECIMAL(12, 5),
|
||||
cantidad_ordenes DEC(12, 5),
|
||||
disponible DEC(12, 5),
|
||||
reservado DEC(12, 5),
|
||||
transito DEC(12, 5),
|
||||
valorOrden DEC(12, 5),
|
||||
parent_id, child_id VARCHAR(20)
|
||||
END RECORD
|
||||
|
||||
DEFINE
|
||||
producto, ubicacion, query STRING,
|
||||
factor DECIMAL(12, 5),
|
||||
bodegaCont, i INT
|
||||
|
||||
DEFINE
|
||||
tok base.StringTokenizer,
|
||||
SplittedLocation DYNAMIC ARRAY OF STRING
|
||||
|
||||
SELECT factor_conv
|
||||
INTO factor
|
||||
FROM iptb00001
|
||||
WHERE cod_n = prod1.cod_n
|
||||
AND cod_grupo = prod1.cod_grupo
|
||||
AND cod_tipo = prod1.cod_tipo
|
||||
AND cod_sec = prod1.cod_sec
|
||||
AND status_t IS NULL
|
||||
|
||||
LET producto =
|
||||
prod1.descrip_esp CLIPPED,
|
||||
" | " CLIPPED,
|
||||
prod1.cod_n CLIPPED,
|
||||
prod1.cod_grupo CLIPPED,
|
||||
prod1.cod_tipo CLIPPED,
|
||||
prod1.cod_sec CLIPPED
|
||||
|
||||
SELECT DISTINCT a.cod_bodega
|
||||
INTO bodegaCont
|
||||
FROM intb00009 a INNER JOIN iptb00006 b ON a.cod_bodega = b.bodega
|
||||
WHERE b.cod_n = prod1.cod_n
|
||||
AND b.cod_grupo = prod1.cod_grupo
|
||||
AND b.cod_tipo = prod1.cod_tipo
|
||||
AND b.cod_sec = prod1.cod_sec
|
||||
AND a.descripcion = prod1.bodega
|
||||
|
||||
LET idx = 1
|
||||
--LET disponible.ExOnTable = 0
|
||||
LET i = 1
|
||||
|
||||
IF ubicacion IS NOT NULL THEN
|
||||
LET tok = base.StringTokenizer.create(ubicacion, "|")
|
||||
|
||||
WHILE tok.hasMoreTokens()
|
||||
|
||||
LET SplittedLocation[i] = tok.nextToken().trim() CLIPPED
|
||||
LET i = i + 1
|
||||
|
||||
END WHILE
|
||||
|
||||
END IF
|
||||
|
||||
LET query =
|
||||
"SELECT cod_seccion,
|
||||
cod_tramo,
|
||||
cod_fila,
|
||||
cod_pos,
|
||||
SUM(cantidad),
|
||||
SUM(cantidad2)
|
||||
FROM iptb00062
|
||||
WHERE cod_n = "
|
||||
|| prod1.cod_n
|
||||
|| "
|
||||
AND cod_grupo = "
|
||||
|| prod1.cod_grupo
|
||||
|| "
|
||||
AND cod_tipo = "
|
||||
|| prod1.cod_tipo
|
||||
|| "
|
||||
AND cod_sec = "
|
||||
|| prod1.cod_sec
|
||||
|| "
|
||||
AND bodega = "
|
||||
|| bodegaCont
|
||||
|| "
|
||||
AND status_t is null"
|
||||
|
||||
IF splittedLocation.getLength() > 0 THEN
|
||||
CASE splittedLocation.getLength()
|
||||
|
||||
WHEN 2
|
||||
LET query = query, " AND cod_seccion = ", SplittedLocation[2]
|
||||
--DISPLAY query
|
||||
EXIT CASE
|
||||
|
||||
WHEN 3
|
||||
LET query =
|
||||
query,
|
||||
" AND cod_seccion = ",
|
||||
SplittedLocation[2],
|
||||
" and cod_tramo = ",
|
||||
SplittedLocation[3]
|
||||
--DISPLAY query
|
||||
EXIT CASE
|
||||
|
||||
WHEN 4
|
||||
LET query =
|
||||
query,
|
||||
" AND cod_seccion = "
|
||||
|| SplittedLocation[2]
|
||||
|| " and cod_tramo = "
|
||||
|| SplittedLocation[3]
|
||||
|| " and cod_fila = "
|
||||
|| SplittedLocation[4]
|
||||
--DISPLAY query
|
||||
EXIT CASE
|
||||
|
||||
WHEN 5
|
||||
LET query =
|
||||
query,
|
||||
" AND cod_seccion = "
|
||||
|| SplittedLocation[2]
|
||||
|| " and cod_tramo = "
|
||||
|| SplittedLocation[3]
|
||||
|| " and cod_fila = "
|
||||
|| SplittedLocation[4]
|
||||
|| " and cod_pos = "
|
||||
|| SplittedLocation[5]
|
||||
--DISPLAY query
|
||||
EXIT CASE
|
||||
|
||||
OTHERWISE
|
||||
DISPLAY "ERROR QUERY UBICACIÓN"
|
||||
EXIT CASE
|
||||
|
||||
END CASE
|
||||
END IF
|
||||
|
||||
LET query =
|
||||
query || " GROUP BY cod_seccion, cod_tramo, cod_fila, cod_pos
|
||||
HAVING SUM(cantidad2) <> 0"
|
||||
|
||||
PREPARE result FROM query
|
||||
DECLARE buscar CURSOR FOR result
|
||||
|
||||
FOREACH buscar
|
||||
INTO record1[idx].id_seccion,
|
||||
record1[idx].id_tramo,
|
||||
record1[idx].id_fila,
|
||||
record1[idx].id_posicion,
|
||||
record1[idx].unidades,
|
||||
record1[idx].cantidad
|
||||
|
||||
-- LET Disponible.ExOnTable = Disponible.ExOnTable + record1[idx].cantidad
|
||||
|
||||
LET record1[idx].INDEX = idx
|
||||
|
||||
SELECT a.descripcion, b.descripcion, c.titulo, d.titulo
|
||||
INTO record1[idx].Desc_seccion,
|
||||
record1[idx].Desc_tramo,
|
||||
record1[idx].Desc_fila,
|
||||
record1[idx].Desc_posicion
|
||||
FROM intb00010 a
|
||||
INNER
|
||||
JOIN intb00043 b
|
||||
ON a.cod_seccion = b.cod_seccion
|
||||
AND a.cod_bodega = b.cod_bodega
|
||||
INNER
|
||||
JOIN intb00045 c
|
||||
ON c.cod_seccion = b.cod_seccion
|
||||
AND c.cod_tramo = b.cod_tramo
|
||||
AND c.cod_bodega = b.cod_bodega
|
||||
INNER
|
||||
JOIN intb00046 d
|
||||
ON d.cod_seccion = c.cod_seccion
|
||||
AND d.cod_tramo = c.cod_tramo
|
||||
AND d.cod_fila = c.cod_fila
|
||||
AND d.cod_bodega = c.cod_bodega
|
||||
WHERE a.cod_bodega = bodegaCont
|
||||
AND a.cod_seccion = record1[idx].id_seccion
|
||||
AND b.cod_tramo = record1[idx].id_tramo
|
||||
AND c.cod_fila = record1[idx].id_fila
|
||||
AND d.cod_pos = record1[idx].id_posicion
|
||||
|
||||
LET idx = idx + 1
|
||||
END FOREACH
|
||||
|
||||
RETURN factor, bodegaCont, producto
|
||||
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION right1(d) --funcion para pasar los datos de izquierda a derecha
|
||||
|
||||
DEFINE d, myd ui.Dialog
|
||||
DEFINE idx, lastRight INT
|
||||
LET myd = d
|
||||
LET idx = d.getCurrentRow("record_left")
|
||||
IF idx < 1 THEN
|
||||
RETURN
|
||||
END IF
|
||||
IF record1[idx].cantidad > 0 THEN
|
||||
LET lastRight = record2.getLength() + 1
|
||||
CALL myd.appendRow("record_right")
|
||||
LET record2[lastRight].unidades = record1[idx].unidades
|
||||
LET record2[lastRight].cantidad = record1[idx].cantidad
|
||||
LET record2[lastRight].index = record1[idx].index
|
||||
--d.getCurrentRow("record_left")
|
||||
--CALL record1.deleteElement(idx)
|
||||
CALL d.setCurrentRow("record_right", lastRight)
|
||||
ELSE
|
||||
CALL fgl_winmessage(
|
||||
"INFO",
|
||||
"EXISTENCIA NEGATIVA EN ESTA UBICACION, NO PUEDE REALIZAR TRANSACCION",
|
||||
"INFO")
|
||||
|
||||
END IF
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION InsertFunction(prod1, bodegaCont)
|
||||
|
||||
DEFINE prod1 RECORD
|
||||
estado VARCHAR(20),
|
||||
cod_n SMALLINT,
|
||||
cod_grupo SMALLINT,
|
||||
cod_tipo SMALLINT,
|
||||
cod_sec SMALLINT,
|
||||
descrip_esp CHAR(180),
|
||||
unidad_med LIKE iptb00002.unidad_med,
|
||||
bodega CHAR(50),
|
||||
existencia DECIMAL(12, 5),
|
||||
cantidad_ordenes DEC(12, 5),
|
||||
disponible DEC(12, 5),
|
||||
reservado DEC(12, 5),
|
||||
transito DEC(12, 5),
|
||||
valorOrden DEC(12, 5),
|
||||
parent_id, child_id VARCHAR(20)
|
||||
END RECORD
|
||||
|
||||
DEFINE
|
||||
i, j, bodegaCont, numDoc_Entrada, numDoc_Salida INT,
|
||||
flag BOOLEAN,
|
||||
inspector, All_Units, All_Existence DECIMAL(12, 5)
|
||||
|
||||
LET flag = TRUE
|
||||
LET inspector = 0.0
|
||||
LET all_units = 0
|
||||
LET all_existence = 0
|
||||
LET numero_msg = 1
|
||||
|
||||
IF record2.getLength() = 0 THEN
|
||||
|
||||
LET flag = FALSE
|
||||
CALL msg(16)
|
||||
RETURN flag
|
||||
|
||||
ELSE
|
||||
|
||||
FOR i = 1 TO record2.getLength()
|
||||
|
||||
IF record2[i].seccion IS NULL
|
||||
OR record2[i].tramo IS NULL
|
||||
OR record2[i].fila IS NULL
|
||||
OR record2[i].posicion IS NULL
|
||||
OR record2[i].unidades IS NULL
|
||||
OR record2[i].cantidad IS NULL THEN
|
||||
|
||||
CALL msg(16)
|
||||
|
||||
LET flag = FALSE
|
||||
|
||||
RETURN flag
|
||||
|
||||
END IF
|
||||
|
||||
END FOR
|
||||
|
||||
END IF
|
||||
|
||||
|
||||
FOR i = 1 TO record1.getLength()
|
||||
|
||||
FOR j = 1 TO record2.getLength()
|
||||
|
||||
IF record1[i].INDEX = record2[j].INDEX THEN
|
||||
|
||||
LET inspector = inspector + record2[j].cantidad
|
||||
|
||||
END IF
|
||||
|
||||
END FOR
|
||||
|
||||
IF inspector > record1[i].cantidad THEN
|
||||
|
||||
CALL fgl_winmessage(
|
||||
'EXISTENCIA DE SALIDA EXCEDE EXISTENCIA ORIGINAL',
|
||||
'Existe una transferencia de salida que excede la existencia de origen',
|
||||
NULL)
|
||||
|
||||
LET flag = FALSE
|
||||
|
||||
RETURN flag
|
||||
|
||||
ELSE
|
||||
|
||||
LET inspector = 0.0
|
||||
|
||||
END IF
|
||||
|
||||
END FOR
|
||||
|
||||
|
||||
IF flag THEN
|
||||
|
||||
LET exitFlag = TRUE
|
||||
|
||||
SELECT num_doc
|
||||
INTO numDoc_Salida
|
||||
FROM iptb00007
|
||||
WHERE cod_mov = 101 AND bodega = bodegaCont
|
||||
|
||||
IF STATUS = NOTFOUND THEN
|
||||
|
||||
INSERT INTO iptb00007 VALUES(0, 101, NULL, usuarios, CURRENT YEAR TO FRACTION,
|
||||
NULL, NULL, bodegaCont)
|
||||
|
||||
LET NumDoc_Salida = 1
|
||||
ELSE
|
||||
LET numDoc_Salida = numDoc_Salida + 1
|
||||
END IF
|
||||
|
||||
SELECT num_doc
|
||||
INTO numDoc_Entrada
|
||||
FROM iptb00007
|
||||
WHERE cod_mov = 100 AND bodega = bodegaCont
|
||||
|
||||
IF STATUS = NOTFOUND THEN
|
||||
|
||||
INSERT INTO iptb00007 VALUES(0, 100, NULL, usuarios, CURRENT YEAR TO FRACTION,
|
||||
NULL, NULL, bodegaCont)
|
||||
|
||||
LET numDoc_Entrada = 1
|
||||
ELSE
|
||||
LET numDoc_Entrada = numDoc_Entrada + 1
|
||||
END IF
|
||||
|
||||
FOR i = 1 TO record2.getLength()
|
||||
|
||||
LET ALL_units = ALL_units + record2[i].unidades
|
||||
LET ALL_existence = ALL_existence + record2[i].cantidad
|
||||
|
||||
BEGIN WORK
|
||||
|
||||
DISPLAY "CICLO ", i
|
||||
|
||||
TRY
|
||||
|
||||
INSERT INTO iptb00062(
|
||||
num_doc,
|
||||
area,
|
||||
cod_n,
|
||||
cod_grupo,
|
||||
cod_tipo,
|
||||
cod_sec,
|
||||
cod_mov,
|
||||
bodega,
|
||||
cod_seccion,
|
||||
cod_tramo,
|
||||
cod_fila,
|
||||
cod_pos,
|
||||
cantidad,
|
||||
cantidad2,
|
||||
status_t,
|
||||
us_crea,
|
||||
fech_crea)
|
||||
VALUES(numDoc_Salida,
|
||||
1,
|
||||
prod1.cod_n,
|
||||
prod1.cod_grupo,
|
||||
prod1.cod_tipo,
|
||||
prod1.cod_sec,
|
||||
101,
|
||||
bodegaCont,
|
||||
record1[record2[i].index].id_seccion,
|
||||
record1[record2[i].index].id_tramo,
|
||||
record1[record2[i].index].id_fila,
|
||||
record1[record2[i].index].id_posicion,
|
||||
record2[i].unidades * (-1),
|
||||
record2[i].cantidad * (-1),
|
||||
NULL,
|
||||
usuarios,
|
||||
CURRENT YEAR TO FRACTION)
|
||||
|
||||
DISPLAY "primer insert a la 62"
|
||||
|
||||
UPDATE iptb00007
|
||||
SET num_doc = numDoc_Salida, us_mod = usuarios, fech_mod = CURRENT YEAR TO FRACTION
|
||||
WHERE cod_mov = 101 AND bodega = bodegaCont
|
||||
|
||||
DISPLAY "update al 07"
|
||||
|
||||
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,
|
||||
status_t,
|
||||
us_crea,
|
||||
fech_crea)
|
||||
VALUES(numDoc_Entrada,
|
||||
prod1.cod_n,
|
||||
prod1.cod_grupo,
|
||||
prod1.cod_tipo,
|
||||
prod1.cod_sec,
|
||||
100,
|
||||
bodegaCont,
|
||||
record2[i].seccion,
|
||||
record2[i].tramo,
|
||||
record2[i].fila,
|
||||
record2[i].posicion,
|
||||
record2[i].unidades,
|
||||
record2[i].cantidad,
|
||||
NULL,
|
||||
usuarios,
|
||||
CURRENT YEAR TO FRACTION)
|
||||
|
||||
DISPLAY "segundo insert a la 62"
|
||||
|
||||
UPDATE iptb00007
|
||||
SET num_doc = numDoc_Entrada, us_mod = usuarios, fech_mod = CURRENT YEAR TO FRACTION
|
||||
WHERE cod_mov = 100 AND bodega = bodegaCont
|
||||
|
||||
DISPLAY "segundo update a la 07"
|
||||
|
||||
IF i = record2.getLength() THEN
|
||||
|
||||
INSERT INTO iptb00006(
|
||||
cod_cia,
|
||||
num_doc,
|
||||
fecha,
|
||||
cod_mov,
|
||||
detalle,
|
||||
area,
|
||||
cod_n,
|
||||
cod_grupo,
|
||||
cod_tipo,
|
||||
cod_sec,
|
||||
cantidad_1,
|
||||
cantidad_2,
|
||||
bodega,
|
||||
status_t,
|
||||
us_crea,
|
||||
fech_crea)
|
||||
VALUES(1,
|
||||
numDoc_Salida,
|
||||
CURRENT YEAR TO FRACTION,
|
||||
101,
|
||||
detalle, --detalle
|
||||
1, --area
|
||||
prod1.cod_n,
|
||||
prod1.cod_grupo,
|
||||
prod1.cod_tipo,
|
||||
prod1.cod_sec,
|
||||
all_units,
|
||||
all_existence * (-1),
|
||||
bodegaCont,
|
||||
NULL,
|
||||
usuarios,
|
||||
CURRENT YEAR TO FRACTION)
|
||||
|
||||
DISPLAY "insert a la 06"
|
||||
|
||||
INSERT INTO iptb00006(
|
||||
cod_cia,
|
||||
num_doc,
|
||||
fecha,
|
||||
cod_mov,
|
||||
detalle,
|
||||
area,
|
||||
cod_n,
|
||||
cod_grupo,
|
||||
cod_tipo,
|
||||
cod_sec,
|
||||
cantidad_1,
|
||||
cantidad_2,
|
||||
bodega,
|
||||
status_t,
|
||||
us_crea,
|
||||
fech_crea,
|
||||
num_Doc_transferencia,
|
||||
cod_mov_transferencia)
|
||||
VALUES(1,
|
||||
numDoc_Entrada,
|
||||
CURRENT YEAR TO FRACTION,
|
||||
100,
|
||||
detalle, --detalle
|
||||
1, --area
|
||||
prod1.cod_n,
|
||||
prod1.cod_grupo,
|
||||
prod1.cod_tipo,
|
||||
prod1.cod_sec,
|
||||
all_units,
|
||||
all_existence,
|
||||
bodegaCont,
|
||||
NULL,
|
||||
usuarios,
|
||||
CURRENT YEAR TO FRACTION,
|
||||
numDoc_Salida,
|
||||
101)
|
||||
|
||||
DISPLAY "otro insert a la 06"
|
||||
END IF
|
||||
|
||||
COMMIT WORK
|
||||
|
||||
CATCH
|
||||
ROLLBACK WORK
|
||||
LET numero_msg = 1663
|
||||
|
||||
END TRY
|
||||
|
||||
END FOR
|
||||
|
||||
CALL msg(numero_msg)
|
||||
|
||||
END IF
|
||||
-- END IF
|
||||
|
||||
RETURN flag
|
||||
|
||||
END FUNCTION
|
||||
|
||||
{FUNCTION DefaultLocations(
|
||||
existencia DECIMAL(12, 5),
|
||||
factor DECIMAL(12, 5),
|
||||
cod_n1 INT,
|
||||
cod_grupo1 INT,
|
||||
cod_tipo1 INT,
|
||||
cod_sec1 INT,
|
||||
bodegaCont INT)
|
||||
|
||||
DEFINE unidad_actual, existencia_actual DECIMAL(12, 5)
|
||||
INITIALIZE unidad_actual, existencia_actual TO NULL
|
||||
|
||||
SELECT SUM(cantidad), SUM(cantidad2)
|
||||
INTO unidad_actual, existencia_actual
|
||||
FROM iptb00062
|
||||
WHERE cod_mov = 101
|
||||
AND cod_n = cod_n1
|
||||
AND cod_grupo = cod_grupo1
|
||||
AND cod_tipo = cod_tipo1
|
||||
AND cod_sec = cod_sec1
|
||||
AND cod_seccion = 0
|
||||
AND cod_tramo = 0
|
||||
AND cod_fila = 0
|
||||
AND cod_pos = 0
|
||||
AND bodega = bodegaCont
|
||||
|
||||
LET record1[1].id_seccion = 0
|
||||
LET record1[1].Desc_seccion = "SECCION 0"
|
||||
LET record1[1].id_tramo = 0
|
||||
LET record1[1].Desc_tramo = "FILA 0"
|
||||
LET record1[1].id_fila = 0
|
||||
LET record1[1].Desc_fila = "FILA #"
|
||||
LET record1[1].id_posicion = 0
|
||||
LET record1[1].Desc_posicion = "POSICION 0"
|
||||
LET record1[1].INDEX = 1
|
||||
|
||||
IF unidad_actual IS NOT NULL AND existencia_actual IS NOT NULL THEN
|
||||
|
||||
LET record1[1].cantidad = existencia + existencia_actual
|
||||
LET record1[1].unidades = (existencia / factor) + unidad_actual
|
||||
|
||||
ELSE
|
||||
|
||||
LET record1[1].cantidad = existencia
|
||||
LET record1[1].unidades = existencia / factor
|
||||
|
||||
END IF
|
||||
|
||||
END FUNCTION}
|
||||
Reference in New Issue
Block a user