Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
@@ -0,0 +1,184 @@
|
||||
--recordLEFT == arr_left
|
||||
--recordRIGHT == arr_right
|
||||
|
||||
DEFINE Arrastrar ui.DragDrop
|
||||
DEFINE drag_source STRING
|
||||
|
||||
GLOBALS "ipprgb000.4gl"
|
||||
|
||||
DEFINE descripcion STRING
|
||||
|
||||
DEFINE record1 DYNAMIC ARRAY OF RECORD
|
||||
id_seccion INT,
|
||||
Desc_seccion STRING,
|
||||
id_tramo INT,
|
||||
Desc_tramo STRING,
|
||||
unidades DECIMAL(18, 2),
|
||||
cantidad DECIMAL(18, 2)
|
||||
END RECORD
|
||||
|
||||
DEFINE record2 DYNAMIC ARRAY OF RECORD
|
||||
id_seccion INT,
|
||||
Desc_seccion STRING,
|
||||
id_tramo INT,
|
||||
Desc_tramo STRING,
|
||||
unidades DECIMAL(18, 2),
|
||||
cantidad DECIMAL(18, 2),
|
||||
Desc_seccionAnterior STRING,
|
||||
Desc_tramoAnterior STRING
|
||||
END RECORD
|
||||
|
||||
FUNCTION InsertaUbicacionDH(prod1)
|
||||
|
||||
CONSTANT S_LEFT = "recordLEFT"
|
||||
CONSTANT S_RIGHT = "recordRIGHT"
|
||||
|
||||
DEFINE bodegaCont, i INT --BodegaContainer--
|
||||
|
||||
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)
|
||||
END RECORD
|
||||
|
||||
LET descripcion = prod1.descrip_esp
|
||||
|
||||
SELECT bodega
|
||||
INTO bodegaCont
|
||||
FROM iptb00002
|
||||
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 idx = 2
|
||||
|
||||
DECLARE buscar CURSOR FOR
|
||||
SELECT cod_seccion, cod_tramo, cantidad, 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
|
||||
|
||||
FOREACH buscar
|
||||
INTO record1[idx].id_seccion,
|
||||
record1[idx].id_tramo,
|
||||
record1[idx].unidades,
|
||||
record1[idx].cantidad
|
||||
LET idx = idx + 1
|
||||
END FOREACH
|
||||
|
||||
FOR i = 2 TO i = record1.getLength()
|
||||
|
||||
SELECT a.descripcion, b.descripcion
|
||||
INTO record1[i].Desc_seccion, record1[i].Desc_tramo
|
||||
FROM intb00010 a
|
||||
INNER
|
||||
JOIN intb00043 b
|
||||
ON a.cod_seccion = b.cod_seccion AND a.cod_bodega = b.cod_bodega
|
||||
WHERE a.cod_bodega = bodegaCont
|
||||
AND a.cod_seccion = record1[i].id_seccion
|
||||
AND b.cod_tramo = record1[i].id_tramo
|
||||
|
||||
END FOR
|
||||
|
||||
OPEN WINDOW w1 WITH FORM "ipfmmt006"
|
||||
|
||||
DISPLAY BY NAME descripcion
|
||||
CALL DefaultLocations()
|
||||
|
||||
DIALOG ATTRIBUTE(UNBUFFERED)
|
||||
|
||||
DISPLAY ARRAY record1 TO recordLEFT.*
|
||||
|
||||
ON DRAG_START(Arrastrar)
|
||||
LET drag_source = S_RIGHT
|
||||
|
||||
ON DRAG_FINISHED(Arrastrar)
|
||||
INITIALIZE drag_source TO NULL
|
||||
|
||||
ON DRAG_ENTER(Arrastrar)
|
||||
IF drag_source IS NULL THEN
|
||||
CALL Arrastrar.setOperation(NULL)
|
||||
END IF
|
||||
|
||||
ON DROP(Arrastrar)
|
||||
IF drag_source == S_RIGHT THEN
|
||||
CALL Arrastrar.dropInternal()
|
||||
ELSE
|
||||
CALL Arrastrar_local(
|
||||
DIALOG, Arrastrar, S_LEFT, S_RIGHT, record1, record2)
|
||||
END IF
|
||||
|
||||
END DISPLAY
|
||||
|
||||
INPUT ARRAY record2 FROM recordRIGHT.*
|
||||
|
||||
END INPUT
|
||||
|
||||
END DIALOG
|
||||
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION Arrastrar_local(d, Arrastrar, sr0, sr1, arr0, arr1)
|
||||
DEFINE d ui.Dialog
|
||||
DEFINE Arrastrar ui.DragDrop
|
||||
DEFINE sr0, sr1 STRING
|
||||
|
||||
DEFINE arr0 DYNAMIC ARRAY OF RECORD
|
||||
id_seccion INT,
|
||||
Desc_seccion STRING,
|
||||
id_tramo INT,
|
||||
Desc_tramo STRING,
|
||||
unidades DECIMAL(18, 2),
|
||||
cantidad DECIMAL(18, 2)
|
||||
END RECORD
|
||||
|
||||
DEFINE arr1 DYNAMIC ARRAY OF RECORD
|
||||
id_seccion INT,
|
||||
Desc_seccion STRING,
|
||||
id_tramo INT,
|
||||
Desc_tramo STRING,
|
||||
unidades DECIMAL(18, 2),
|
||||
cantidad DECIMAL(18, 2),
|
||||
Desc_seccionAnterior STRING,
|
||||
Desc_tramoAnterior STRING
|
||||
END RECORD
|
||||
--
|
||||
DEFINE i, j INT
|
||||
|
||||
LET j = Arrastrar.getLocationRow()
|
||||
FOR i = arr0.getLength() TO 1 STEP -1
|
||||
IF d.isRowSelected(sr0, i) THEN
|
||||
CALL d.insertRow(sr1, j)
|
||||
LET arr1[j].Desc_seccionAnterior = arr0[i].Desc_seccion
|
||||
LET arr1[j].Desc_tramoAnterior = arr0[i].Desc_tramo
|
||||
LET arr1[j].unidades = arr0[i].unidades
|
||||
LET arr1[j].cantidad = arr0[i].cantidad
|
||||
CALL d.setSelectionRange(sr1, j, j, 1)
|
||||
END IF
|
||||
END FOR
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION DefaultLocations()
|
||||
|
||||
LET record1[1].id_seccion = 0
|
||||
LET record1[1].Desc_seccion = "Seccion 0"
|
||||
LET record1[1].id_tramo = 0
|
||||
LET record1[1].Desc_tramo = "Tramo 0"
|
||||
LET record1[1].cantidad = 20
|
||||
LET record1[1].unidades = 10
|
||||
|
||||
END FUNCTION
|
||||
Reference in New Issue
Block a user