Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
@@ -0,0 +1,644 @@
|
||||
{
|
||||
------------------------------------------------------------------------------
|
||||
PROGRAMA : IPPRCS006
|
||||
OBJETIVO : Programa Consulta Balances - Producto Terminado.
|
||||
PROGRAMADOR : JUAN FCO SOTO
|
||||
FECHA REALIZACION : AGOSTO 1997
|
||||
DIRECTOR PROYECTO : JOSE ALFREDO PAULINO ALEJO
|
||||
------------------------------------------------------------------------------
|
||||
}
|
||||
GLOBALS
|
||||
"ipprgb000.4gl"
|
||||
|
||||
|
||||
DEFINE csmov1 DYNAMIC ARRAY OF RECORD
|
||||
descrip_mov1 VARCHAR(100),
|
||||
num_doc CHAR(11),
|
||||
num_oc INT,
|
||||
num_compra INT,
|
||||
fecha_2 LIKE iptb00006.fecha,
|
||||
cantidad float,
|
||||
entrada float,
|
||||
salida float,
|
||||
bodega1 CHAR(50),
|
||||
balance FLOAT,
|
||||
parent_id, child_id STRING
|
||||
END RECORD
|
||||
|
||||
MAIN
|
||||
DEFER INTERRUPT
|
||||
CALL ARG_VAL(1) RETURNING usuarios
|
||||
CALL ARG_VAL(2) RETURNING clave
|
||||
|
||||
CONNECT TO "smarmotech" USER usuarios USING clave
|
||||
SELECT * INTO p_companias.* FROM companias
|
||||
CALL ipprcs006()
|
||||
END MAIN
|
||||
|
||||
FUNCTION ipprcs006()
|
||||
|
||||
DEFINE fecha1 char(8)
|
||||
DEFINE hora1 char(5)
|
||||
DEFINE flag BOOLEAN
|
||||
|
||||
LET fecha1 = today using "dd/mm/yyy"
|
||||
LET hora1 = time
|
||||
LET int_flag = false
|
||||
LET bandera = 0
|
||||
|
||||
#WHENEVER ERROR CONTINUE
|
||||
|
||||
CLEAR SCREEN
|
||||
OPTIONS
|
||||
ERROR LINE 24,
|
||||
FORM LINE 4,
|
||||
COMMENT LINE 22,
|
||||
PROMPT LINE 23
|
||||
|
||||
DISPLAY fecha1 AT 1,70 ATTRIBUTE (BLUE)
|
||||
DISPLAY hora1 AT 2,73 ATTRIBUTE (BLUE)
|
||||
OPEN FORM ipfmcs006 FROM "ipfmcs006"
|
||||
DISPLAY FORM ipfmcs006
|
||||
CALL ui.Interface.LoadStyles("mbsStyle")
|
||||
|
||||
|
||||
INITIALIZE datos_gen.* TO NULL
|
||||
CALL csmov1.clear()
|
||||
LABEL volver:
|
||||
INPUT BY NAME historico,datos_cons.cod_n,datos_cons.cod_grupo,datos_Cons.cod_tipo,
|
||||
datos_cons.cod_sec,datos_cons.fech_in,datos_cons.fech_fi
|
||||
BEFORE INPUT
|
||||
|
||||
CALL csmov1.clear()
|
||||
BEFORE FIELD fech_in
|
||||
LET datos_cons.fech_in = today using "dd/mm/yyyy"
|
||||
DISPLAY BY NAME datos_cons.fech_in
|
||||
|
||||
BEFORE FIELD fech_fi
|
||||
LET datos_cons.fech_fi = today using "dd/mm/yyyy"
|
||||
DISPLAY BY NAME datos_cons.fech_fi
|
||||
AFTER FIELD cod_grupo
|
||||
IF datos_cons.cod_grupo IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_grupo
|
||||
END IF
|
||||
AFTER FIELD cod_tipo
|
||||
IF datos_cons.cod_tipo IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_tipo
|
||||
END IF
|
||||
AFTER FIELD cod_sec
|
||||
IF datos_cons.cod_n is not null and
|
||||
datos_cons.cod_grupo is not null and
|
||||
datos_cons.cod_tipo is not null and
|
||||
datos_cons.cod_sec is not null THEN
|
||||
IF historico = 'N' THEN
|
||||
LET selec =
|
||||
" SELECT descrip_esp,unidad_med ",
|
||||
" FROM iptb00002 ",
|
||||
" WHERE cod_n = ? and ",
|
||||
" cod_grupo = ? and ",
|
||||
" cod_tipo = ? and ",
|
||||
" cod_sec = ? and ",
|
||||
" status_t is null "
|
||||
ELSE
|
||||
LET selec =
|
||||
" SELECT descrip_esp,unidad_med ",
|
||||
" FROM historicomtech.dbo.iptb00002 ",
|
||||
" WHERE cod_n = ? and ",
|
||||
" cod_grupo = ? and ",
|
||||
" cod_tipo = ? and ",
|
||||
" cod_sec = ? and ",
|
||||
" status_t is null "
|
||||
|
||||
END IF
|
||||
PREPARE cmdbusca FROM selec
|
||||
EXECUTE cmdbusca INTO descripcion,articulos.unidad_med
|
||||
USING datos_cons.cod_n,datos_cons.cod_grupo,
|
||||
datos_cons.cod_tipo,datos_cons.cod_sec
|
||||
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
CLEAR FORM
|
||||
NEXT FIELD cod_n
|
||||
END IF
|
||||
|
||||
LET descripcion = descripcion CLIPPED," "
|
||||
|
||||
DISPLAY BY NAME descripcion,articulos.unidad_med
|
||||
END IF
|
||||
|
||||
AFTER FIELD fech_in
|
||||
IF datos_cons.fech_in IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD fech_in
|
||||
END IF
|
||||
|
||||
AFTER FIELD fech_fi
|
||||
IF datos_cons.fech_fi IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD fech_fi
|
||||
END IF
|
||||
|
||||
IF datos_cons.fech_in > datos_cons.fech_fi THEN
|
||||
LET numero_msg = 36
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD fech_in
|
||||
END IF
|
||||
|
||||
AFTER INPUT
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = false
|
||||
CLEAR SCREEN
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
EXIT INPUT
|
||||
END INPUT
|
||||
CONSTRUCT criterio ON a.bodega FROM bodega
|
||||
BEFORE CONSTRUCT
|
||||
|
||||
LET k1 = '1'
|
||||
|
||||
CALL bodegas(k1)
|
||||
AFTER CONSTRUCT
|
||||
EXIT CONSTRUCT
|
||||
END CONSTRUCT
|
||||
LET balance = 0
|
||||
|
||||
DISPLAY "Buscando Informacion... Espere Por Favor" AT 24,2 ATTRIBUTE (BLUE)
|
||||
IF historico = 'N' THEN
|
||||
LET selec =
|
||||
"SELECT SUM(a.cantidad_2) FROM iptb00006 a ",
|
||||
" WHERE a.cod_n =? and a.cod_grupo = ? AND ",
|
||||
" a.cod_tipo = ? and a.cod_sec = ? and ",criterio CLIPPED,
|
||||
" and a.fecha < ? and a.status_t is null "
|
||||
|
||||
ELSE
|
||||
|
||||
LET selec =
|
||||
"SELECT SUM(a.cantidad_2) FROM historicomtech.dbo.iptb00006 a ",
|
||||
" WHERE a.cod_n =? and a.cod_grupo = ? AND ",
|
||||
" a.cod_tipo = ? and a.cod_sec = ? and ",criterio CLIPPED,
|
||||
" AND a.fecha < ? and a.status_t is null "
|
||||
|
||||
END IF
|
||||
|
||||
|
||||
PREPARE cmdbalance FROM selec
|
||||
EXECUTE cmdbalance INTO balance
|
||||
USING datos_cons.cod_n,datos_cons.cod_grupo,
|
||||
datos_cons.cod_tipo,datos_cons.cod_sec,
|
||||
datos_cons.fech_in
|
||||
|
||||
IF balance IS NULL THEN
|
||||
LET balance = 0
|
||||
END IF
|
||||
|
||||
DISPLAY balance TO balance_ini
|
||||
|
||||
IF historico = 'N' THEN
|
||||
LET selec =
|
||||
"SELECT '('+cast(c.cod_mov as char(3))+')'+RTRIM(c.descrip_mov), a.num_doc,a.num_oc,a.orden_compra,a.fecha,",
|
||||
"SUM(a.cantidad_2),'0','0','('+cast(b.cod_bodega as char(1))+')'+RTRIM(b.descripcion) FROM iptb00006 a,intb00009 b,iptb00005 c ",
|
||||
"WHERE a.cod_n = ? and a.cod_grupo=? and ",
|
||||
" a.cod_tipo =? and a.cod_sec=? and ",
|
||||
" a.status_t is null and a.fecha between ? and ? and ",
|
||||
" a.cod_mov = c.cod_mov and ",
|
||||
" a.bodega = b.cod_bodega and ",criterio CLIPPED,
|
||||
" GROUP BY a.num_doc,a.fecha,a.orden_compra,a.num_oc,c.cod_mov,c.descrip_mov,b.cod_bodega,b.descripcion ",
|
||||
" ORDER BY a.fecha,a.num_doc "
|
||||
ELSE
|
||||
LET selec =
|
||||
"SELECT '('+cast(c.cod_mov as char(3))+')'+RTRIM(c.descrip_mov), a.num_doc,a.num_oc,a.orden_compra,a.fecha,",
|
||||
"SUM(a.cantidad_2),'0','0','('+cast(b.cod_bodega as char(1))+')'+RTRIM(b.descripcion) FROM historicomtech.dbo.iptb00006 a,historicomtech.dbo.intb00009 b,iptb00005 c ",
|
||||
"WHERE a.cod_n = ? and a.cod_grupo=? and ",
|
||||
" a.cod_tipo =? and a.cod_sec=? and ",
|
||||
" a.status_t is null and a.fecha between ? and ? and ",
|
||||
" a.cod_mov = c.cod_mov and ",
|
||||
" a.bodega = b.cod_bodega and ",criterio CLIPPED,
|
||||
" GROUP BY a.num_doc,a.fecha,a.orden_compra,c.cod_mov,c.descrip_mov,b.cod_bodega,b.descripcion ",
|
||||
" ORDER BY a.fecha,a.num_doc "
|
||||
|
||||
END IF
|
||||
|
||||
PREPARE cmdtrx FROM selec
|
||||
DECLARE jhonn_1 CURSOR FOR cmdtrx
|
||||
OPEN jhonn_1 USING datos_cons.cod_n,datos_cons.cod_grupo,
|
||||
datos_cons.cod_tipo,datos_cons.cod_sec,
|
||||
datos_cons.fech_in, datos_cons.fech_fi
|
||||
|
||||
LET idx = 1
|
||||
FOREACH jhonn_1 INTO csmov1[idx].*
|
||||
IF STATUS = NOTFOUND THEN
|
||||
EXIT FOREACH
|
||||
RETURN
|
||||
END IF
|
||||
LET flag = FALSE
|
||||
|
||||
LET balance = balance + csmov1[idx].cantidad
|
||||
# LET csmov1[idx].num_oc = csmov.num_oc
|
||||
# LET csmov1[idx].num_compra = csmov.num_compra
|
||||
# LET csmov1[idx].fecha_2 = csmov.fecha_1
|
||||
# LET csmov1[idx].balance = balance USING "-,---,---.###"
|
||||
# LET csmov1[idx].num_doc = "(",csmov.cod_mov using "&&",")"," ",
|
||||
# csmov.num_doc USING "&&&&&&"
|
||||
# LET csmov1[idx].bodega1 = csmov.bodega
|
||||
IF csmov1[idx].cantidad < 0 THEN
|
||||
LET csmov1[idx].entrada = null
|
||||
LET csmov1[idx].salida = csmov1[idx].cantidad
|
||||
ELSE
|
||||
LET csmov1[idx].salida = null
|
||||
LET csmov1[idx].entrada = csmov1[idx].cantidad
|
||||
END IF
|
||||
LET csmov1[idx].balance = balance
|
||||
|
||||
CALL LlenarHijos() RETURNING flag
|
||||
|
||||
IF flag != TRUE THEN
|
||||
|
||||
LET idx = idx + 1
|
||||
|
||||
ELSE
|
||||
|
||||
END IF
|
||||
|
||||
END FOREACH
|
||||
|
||||
|
||||
LET balance = 0
|
||||
CALL set_count(idx - 1)
|
||||
|
||||
DISPLAY ARRAY csmov1 TO s_csmov.*
|
||||
CALL csmov1.clear()
|
||||
|
||||
CALL integridad()
|
||||
IF bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
RETURN
|
||||
END IF
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = false
|
||||
CLEAR SCREEN
|
||||
RETURN
|
||||
END IF
|
||||
CLEAR FORM
|
||||
DISPLAY " " AT 13,6
|
||||
DISPLAY " " AT 13,60
|
||||
GOTO volver
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION llenarHijos()
|
||||
|
||||
DEFINE MirrorLocation DYNAMIC ARRAY OF RECORD
|
||||
seccion STRING,
|
||||
cod_seccion INT,
|
||||
existenciaSec DECIMAL(12, 5),
|
||||
tramo STRING,
|
||||
cod_tramo INT,
|
||||
existenciaTram DECIMAL(12, 5),
|
||||
fila STRING,
|
||||
cod_fila INT,
|
||||
existenciaFil DECIMAL(12, 5),
|
||||
posicion STRING,
|
||||
cod_pos INT,
|
||||
existenciaPos DECIMAL(12, 5)
|
||||
END RECORD
|
||||
|
||||
DEFINE Container DYNAMIC ARRAY OF RECORD
|
||||
seccion STRING,
|
||||
cod_seccion INT,
|
||||
existenciaSec DECIMAL(12, 5),
|
||||
tramo STRING,
|
||||
cod_tramo INT,
|
||||
existenciaTram DECIMAL(12, 5),
|
||||
fila STRING,
|
||||
cod_fila INT,
|
||||
existenciaFil DECIMAL(12, 5),
|
||||
posicion STRING,
|
||||
cod_pos INT,
|
||||
existenciaPos DECIMAL(12, 5)
|
||||
END RECORD
|
||||
|
||||
DEFINE checking, i,z, bodegaCont INT
|
||||
|
||||
DEFINE counterSec, counterTram, counterFil, counterPos INT
|
||||
DEFINE NextTree, NextTree2, index2 BOOLEAN
|
||||
|
||||
CONSTANT firstID = 1
|
||||
DEFINE tok base.StringTokenizer, SplittedMov, SplittedBodega DYNAMIC ARRAY OF STRING
|
||||
|
||||
LET counterSec = 2
|
||||
LET counterTram = 1
|
||||
LET counterFil = 1
|
||||
LET counterPos = 1
|
||||
LET nextTree = FALSE
|
||||
LET nextTree2 = FALSE
|
||||
LET index2 = FALSE
|
||||
INITIALIZE checking, i, z, bodegaCont TO NULL
|
||||
|
||||
LET i = 1
|
||||
|
||||
LET tok = base.StringTokenizer.create(csmov1[idx].descrip_mov1, "()")
|
||||
|
||||
WHILE tok.hasMoreTokens()
|
||||
|
||||
LET SplittedMov[i] = tok.nextToken().trim() CLIPPED
|
||||
LET i = i + 1
|
||||
|
||||
END WHILE
|
||||
|
||||
LET i = 1
|
||||
|
||||
LET tok = base.StringTokenizer.create(csmov1[idx].bodega1, "()")
|
||||
|
||||
WHILE tok.hasMoreTokens()
|
||||
|
||||
LET SplittedBodega[i] = tok.nextToken().trim() CLIPPED
|
||||
LET i = i + 1
|
||||
|
||||
END WHILE
|
||||
|
||||
#SELECT DISTINCT a.cod_bodega
|
||||
# INTO bodegaCont
|
||||
# FROM intb00009 a INNER JOIN iptb00006 b ON a.cod_bodega = b.bodega
|
||||
# WHERE a.descripcion = "'"|| SplittedBodega[2] ||"'"
|
||||
|
||||
|
||||
SELECT COUNT(*) INTO checking FROM iptb00062 WHERE (cod_mov = SplittedMov[1] AND num_doc = csmov1[idx].num_doc
|
||||
AND cod_n = datos_cons.cod_n AND cod_grupo = datos_cons.cod_grupo
|
||||
AND cod_tipo = datos_cons.cod_tipo AND cod_sec = datos_cons.cod_sec)
|
||||
AND status_t IS NULL
|
||||
|
||||
IF checking > 0 THEN
|
||||
|
||||
LET index2 = TRUE
|
||||
LET csmov1[idx].parent_id = NULL
|
||||
LET csmov1[idx].child_id = FirstID
|
||||
|
||||
DECLARE query CURSOR FOR
|
||||
SELECT
|
||||
RTRIM(a.descripcion) AS seccion,
|
||||
a.cod_seccion as cod_seccion,
|
||||
(SELECT SUM(cantidad2)
|
||||
FROM iptb00062
|
||||
WHERE (cod_mov = t.cod_mov and num_doc = t.num_doc and cod_n = t.cod_n and cod_grupo = t.cod_grupo and cod_tipo = t.cod_tipo and cod_sec = t.cod_sec AND bodega = t.bodega) AND (cod_seccion = t.cod_seccion)) AS suma_cantidad2_seccion,
|
||||
RTRIM(b.descripcion) AS tramo,
|
||||
b.cod_tramo as cod_tramo,
|
||||
(SELECT SUM(cantidad2)
|
||||
FROM iptb00062
|
||||
WHERE (cod_mov = t.cod_mov and num_doc = t.num_doc and cod_n = t.cod_n and cod_grupo = t.cod_grupo and cod_tipo = t.cod_tipo and cod_sec = t.cod_sec AND bodega = t.bodega) AND (cod_seccion = t.cod_seccion AND cod_tramo = t.cod_tramo)) AS suma_cantidad2_tramo,
|
||||
RTRIM(c.titulo) AS fila,
|
||||
c.cod_fila as cod_fila,
|
||||
(SELECT SUM(cantidad2)
|
||||
FROM iptb00062
|
||||
WHERE (cod_mov = t.cod_mov and num_doc = t.num_doc and cod_n = t.cod_n and cod_grupo = t.cod_grupo and cod_tipo = t.cod_tipo and cod_sec = t.cod_sec AND bodega = t.bodega) AND (cod_seccion = t.cod_seccion AND cod_tramo = t.cod_tramo AND cod_fila = t.cod_fila)) AS suma_cantidad2_fila,
|
||||
RTRIM(d.titulo) AS posicion,
|
||||
d.cod_pos as cod_pos,
|
||||
(SELECT SUM(cantidad2)
|
||||
FROM iptb00062
|
||||
WHERE (cod_mov = t.cod_mov and num_doc = t.num_doc and cod_n = t.cod_n and cod_grupo = t.cod_grupo and cod_tipo = t.cod_tipo and cod_sec = t.cod_sec AND bodega = t.bodega) AND (cod_seccion = t.cod_seccion AND cod_tramo = t.cod_tramo AND cod_fila = t.cod_fila AND cod_pos = t.cod_pos)) AS suma_cantidad2_pos
|
||||
FROM
|
||||
iptb00062 t
|
||||
INNER JOIN intb00010 a ON t.bodega = a.cod_bodega AND t.cod_seccion = a.cod_seccion
|
||||
INNER JOIN intb00043 b ON t.bodega = b.cod_bodega AND t.cod_seccion = b.cod_seccion AND t.cod_tramo = b.cod_tramo
|
||||
INNER JOIN intb00045 c ON t.bodega = c.cod_bodega AND t.cod_seccion = c.cod_seccion AND t.cod_tramo = c.cod_tramo AND t.cod_fila = c.cod_fila
|
||||
INNER JOIN intb00046 d ON t.bodega = d.cod_bodega AND t.cod_seccion = d.cod_seccion AND t.cod_tramo = d.cod_tramo AND t.cod_fila = d.cod_fila AND t.cod_pos = d.cod_pos
|
||||
WHERE
|
||||
( t.cod_mov = SplittedMov[1] AND t.num_doc = csmov1[idx].num_doc AND t.cod_n = datos_cons.cod_n AND t.cod_grupo = datos_cons.cod_grupo AND t.cod_tipo = datos_cons.cod_tipo AND t.cod_sec = datos_cons.cod_sec) AND t.status_t IS NULL
|
||||
GROUP BY
|
||||
t.cod_seccion, t.cod_tramo, t.cod_fila, t.cod_pos, a.cod_seccion, a.descripcion, b.cod_tramo, b.descripcion, c.cod_fila, c.titulo, d.cod_pos, d.titulo, t.bodega, t.cod_n, t.cod_grupo, t.cod_tipo, t.cod_sec, t.cod_mov, t.num_doc
|
||||
ORDER BY
|
||||
t.cod_seccion, t.cod_tramo, t.cod_fila, t.cod_pos;
|
||||
|
||||
LET i = 2
|
||||
LET z = 1
|
||||
INITIALIZE MirrorLocation TO NULL
|
||||
|
||||
FOREACH query INTO Container[z].*
|
||||
|
||||
IF container[z].existenciaSec != 0
|
||||
AND container[z].existenciaTram != 0
|
||||
AND container[z].existenciaFil != 0
|
||||
AND container[z].existenciaPos != 0 THEN
|
||||
|
||||
LET MirrorLocation[i] = Container[z]
|
||||
LET i = i + 1
|
||||
|
||||
END IF
|
||||
|
||||
LET z = z + 1
|
||||
|
||||
END FOREACH
|
||||
|
||||
LET idx = idx + 1
|
||||
|
||||
LET csmov1[idx].descrip_mov1 = " UBICACIONES "
|
||||
LET csmov1[idx].parent_id = firstID
|
||||
LET csmov1[idx].child_id = firstID ||"."||firstID
|
||||
LET idx = idx + 1
|
||||
|
||||
LET i = 2
|
||||
|
||||
WHILE i <= mirrorLocation.getLength()
|
||||
|
||||
IF mirrorLocation[i].seccion = mirrorLocation[i - 1].seccion THEN
|
||||
|
||||
IF mirrorLocation[i].tramo = mirrorLocation[i - 1].tramo THEN
|
||||
|
||||
IF mirrorLocation[i].fila = mirrorLocation[i - 1].fila THEN
|
||||
|
||||
IF mirrorLocation[i].posicion
|
||||
= mirrorLocation[i - 1].posicion THEN
|
||||
|
||||
DISPLAY "nothing happened" --se supone que gracias al
|
||||
--query esto nunca saldrá
|
||||
ELSE
|
||||
|
||||
LET counterPos = counterPos + 1
|
||||
|
||||
LET csmov1[idx].descrip_mov1 =
|
||||
" ",
|
||||
mirrorLocation[i].posicion,
|
||||
" || Cantidad:",
|
||||
mirrorLocation[i].existenciaPos
|
||||
LET csmov1[idx].parent_id =
|
||||
firstID
|
||||
|| "."
|
||||
|| counterSec
|
||||
|| "."
|
||||
|| counterTram
|
||||
|| "."
|
||||
|| counterFil
|
||||
LET csmov1[idx].child_id =
|
||||
firstID
|
||||
|| "."
|
||||
|| counterSec
|
||||
|| "."
|
||||
|| counterTram
|
||||
|| "."
|
||||
|| counterFil
|
||||
|| "."
|
||||
|| counterPos
|
||||
|
||||
LET NextTree = TRUE
|
||||
|
||||
|
||||
|
||||
END IF
|
||||
|
||||
ELSE
|
||||
|
||||
IF nextTree = TRUE THEN
|
||||
|
||||
LET counterPos = 1
|
||||
LET nextTree = FALSE
|
||||
|
||||
END IF
|
||||
|
||||
LET counterFil = counterFil + 1
|
||||
|
||||
LET csmov1[idx].descrip_mov1 =
|
||||
" ",
|
||||
mirrorLocation[i].fila,
|
||||
" || Cantidad:",
|
||||
mirrorLocation[i].existenciaFil
|
||||
LET csmov1[idx].parent_id =
|
||||
firstID ||"." || counterSec || "." || counterTram
|
||||
LET csmov1[idx].child_id =
|
||||
firstID
|
||||
||"."
|
||||
|| counterSec
|
||||
|| "."
|
||||
|| counterTram
|
||||
|| "."
|
||||
|| counterFil
|
||||
|
||||
LET idx = idx + 1
|
||||
|
||||
LET csmov1[idx].descrip_mov1 =
|
||||
" ",
|
||||
mirrorLocation[i].posicion,
|
||||
" || Cantidad:",
|
||||
mirrorLocation[i].existenciapos
|
||||
LET csmov1[idx].parent_id = csmov1[idx - 1].child_id
|
||||
LET csmov1[idx].child_id =
|
||||
csmov1[idx - 1].child_id || "." || counterPos
|
||||
|
||||
LET nextTree2 = TRUE
|
||||
|
||||
END IF
|
||||
|
||||
ELSE
|
||||
|
||||
IF nextTree2 THEN
|
||||
|
||||
LET counterPos = 1
|
||||
LET counterFil = 1
|
||||
|
||||
LET nextTree2 = FALSE
|
||||
|
||||
END IF
|
||||
|
||||
LET counterTram = counterTram + 1
|
||||
|
||||
LET csmov1[idx].descrip_mov1 =
|
||||
" ",
|
||||
mirrorLocation[i].tramo,
|
||||
" || Cantidad:",
|
||||
mirrorLocation[i].existenciatram
|
||||
LET csmov1[idx].parent_id = firstID || "." || counterSec
|
||||
LET csmov1[idx].child_id = firstID || "." || counterSec || "." || counterTram
|
||||
|
||||
LET idx = idx + 1
|
||||
|
||||
LET csmov1[idx].descrip_mov1 =
|
||||
" ",
|
||||
mirrorLocation[i].fila,
|
||||
" || Cantidad:",
|
||||
mirrorLocation[i].existenciafil
|
||||
|
||||
LET csmov1[idx].parent_id = csmov1[idx - 1].child_id
|
||||
LET csmov1[idx].child_id =
|
||||
csmov1[idx - 1].child_id || "." || counterFil
|
||||
|
||||
LET idx = idx + 1
|
||||
|
||||
LET csmov1[idx].descrip_mov1 =
|
||||
" ",
|
||||
mirrorLocation[i].posicion,
|
||||
" || Cantidad:",
|
||||
mirrorLocation[i].existenciapos
|
||||
LET csmov1[idx].parent_id = csmov1[idx - 1].child_id
|
||||
LET csmov1[idx].child_id =
|
||||
csmov1[idx - 1].child_id || "." || counterPos
|
||||
|
||||
END IF
|
||||
|
||||
ELSE
|
||||
|
||||
LET counterSec = counterSec + 1
|
||||
|
||||
LET csmov1[idx].descrip_mov1 =
|
||||
" ",
|
||||
mirrorLocation[i].seccion,
|
||||
" || Cantidad:",
|
||||
mirrorLocation[i].existenciaSec
|
||||
LET csmov1[idx].parent_id = firstID
|
||||
LET csmov1[idx].child_id = firstID || "." || counterSec
|
||||
|
||||
LET idx = idx + 1
|
||||
|
||||
LET csmov1[idx].descrip_mov1 =
|
||||
" ",
|
||||
mirrorLocation[i].tramo,
|
||||
" || Cantidad:",
|
||||
mirrorLocation[i].existenciatram
|
||||
LET csmov1[idx].parent_id = csmov1[idx - 1].child_id
|
||||
LET csmov1[idx].child_id = csmov1[idx - 1].child_id || "." || firstID
|
||||
|
||||
LET idx = idx + 1
|
||||
|
||||
LET csmov1[idx].descrip_mov1 =
|
||||
" ",
|
||||
mirrorLocation[i].fila,
|
||||
" || Cantidad:",
|
||||
mirrorLocation[i].existenciaFil
|
||||
LET csmov1[idx].parent_id = csmov1[idx - 1].child_id
|
||||
LET csmov1[idx].child_id = csmov1[idx - 1].child_id || "." || firstID
|
||||
|
||||
LET idx = idx + 1
|
||||
|
||||
LET csmov1[idx].descrip_mov1 =
|
||||
" ",
|
||||
mirrorLocation[i].posicion,
|
||||
" || Cantidad:",
|
||||
mirrorLocation[i].existenciaPos
|
||||
LET csmov1[idx].parent_id = csmov1[idx - 1].child_id
|
||||
LET csmov1[idx].child_id = csmov1[idx - 1].child_id || "." || firstID
|
||||
|
||||
LET counterTram = 1
|
||||
LET counterFil = 1
|
||||
LET counterPos = 1
|
||||
|
||||
END IF
|
||||
|
||||
LET idx = idx + 1
|
||||
LET i = i + 1
|
||||
|
||||
END WHILE
|
||||
|
||||
END IF
|
||||
|
||||
RETURN index2
|
||||
|
||||
END FUNCTION
|
||||
Reference in New Issue
Block a user