Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
@@ -0,0 +1,140 @@
|
||||
{
|
||||
FUNCTION: medidas.4gl
|
||||
DESARROLLADO POR: ING. JUAN SOTO
|
||||
FECHA : 16, NOVIEMBRE 2023
|
||||
|
||||
}
|
||||
|
||||
|
||||
FUNCTION medidas(pcod_n,pcod_grupo,pcod_tipo,pcod_sec,descripcion,medida,titulo_bodega,tmpnumero,pcod_mov,status_m)
|
||||
DEFINE pcod_n,pcod_grupo,pcod_tipo,pcod_sec,tmpnumero,pcod_mov,idx,sidx INT,
|
||||
descripcion,medida,titulo_bodega,status_m STRING,
|
||||
total_medida DEC(12,5)
|
||||
|
||||
DEFINE arrmedida DYNAMIC ARRAY OF RECORD
|
||||
codigo_bloque CHAR(25),
|
||||
ancho1 DEC(12,5),
|
||||
largo1 DEC(12,5),
|
||||
espesor1 DEC(12,5),
|
||||
medida1 DEC(12,5),
|
||||
ancho2 DEC(12,5),
|
||||
largo2 DEC(12,5),
|
||||
espesor2 DEC(12,5),
|
||||
medida2 DEC(12,5),
|
||||
cantidad DEC(12,5),
|
||||
cod_cat INT,
|
||||
cod_n,cod_grupo,cod_tipo,cod_sec int
|
||||
END RECORD
|
||||
OPEN WINDOW prfmwd012 AT 5,3 WITH FORM "infmwd012" ATTRIBUTE (BORDER)
|
||||
|
||||
DISPLAY BY NAME descripcion,medida,pcod_n,pcod_grupo,pcod_tipo,pcod_sec,titulo_bodega
|
||||
|
||||
SELECT UNIQUE a.documento FROM intb00018 a WHERE
|
||||
a.documento = tmpnumero AND
|
||||
a.cod_mov = pcod_mov AND
|
||||
a.cod_n = Pcod_n and
|
||||
a.cod_grupo = Pcod_grupo and
|
||||
a.cod_tipo = Pcod_tipo and
|
||||
a.cod_sec = Pcod_sec
|
||||
|
||||
IF STATUS != NOTFOUND THEN
|
||||
|
||||
DECLARE busca_m CURSOR FOR
|
||||
SELECT a.codigo_bloque,a.ancho1,a.largo1,a.espesor1,a.medida1,
|
||||
a.ancho2,a.largo2,a.espesor2,a.medida2,a.cantidad
|
||||
FROM intb00018 a
|
||||
WHERE a.documento = tmpnumero AND
|
||||
a.cod_mov = pcod_mov AND
|
||||
a.cod_n = Pcod_n and
|
||||
a.cod_grupo = Pcod_grupo and
|
||||
a.cod_tipo = Pcod_tipo and
|
||||
a.cod_sec = Pcod_sec
|
||||
LET idx = 1
|
||||
FOREACH busca_m INTO arrmedida[idx].*
|
||||
IF arrmedida[idx].cantidad < 0 THEN
|
||||
LET arrmedida[idx].cantidad = arrmedida[idx].cantidad * -1
|
||||
END IF
|
||||
LET arrmedida[idx].cod_n = pcod_n
|
||||
LET arrmedida[idx].cod_grupo = pcod_grupo
|
||||
LET arrmedida[idx].cod_tipo = pcod_tipo
|
||||
LET arrmedida[idx].cod_sec = pcod_sec
|
||||
|
||||
LET idx = idx +1
|
||||
END FOREACH
|
||||
|
||||
ELSE
|
||||
|
||||
SELECT MAX(numero) INTO tmpnumero FROM cttb00016
|
||||
IF tmpnumero IS NULL THEN
|
||||
LET tmpnumero = 9999999
|
||||
END IF
|
||||
LET tmpnumero = tmpnumero + 1
|
||||
INSERT INTO cttb00016 values (SUSER_NAME(),tmpnumero,GETDATE())
|
||||
CALL arrmedida.clear()
|
||||
|
||||
END IF
|
||||
|
||||
|
||||
INPUT ARRAY arrmedida WITHOUT DEFAULTS FROM sdespiece.*
|
||||
BEFORE ROW
|
||||
LET idx = arr_curr()
|
||||
LET sidx = scr_line()
|
||||
AFTER FIELD codigo_bloque
|
||||
IF status_m = 2 THEN
|
||||
IF arrmedida[idx].codigo_bloque IS NOT NULL THEN
|
||||
SELECT DISTINCT a.codigo_bloque FROM intb00018 a
|
||||
WHERE a.codigo_bloque = arrmedida[idx].codigo_bloque
|
||||
|
||||
IF STATUS = NOTFOUND THEN
|
||||
CALL msg(3)
|
||||
NEXT FIELD codigo_bloque
|
||||
END IF
|
||||
END IF
|
||||
END IF
|
||||
AFTER FIELD cantidad
|
||||
IF arrmedida[idx].espesor1 = 0 THEN
|
||||
LET arrmedida[idx].medida1 = arrmedida[idx].ancho1 * arrmedida[idx].largo1
|
||||
END IF
|
||||
|
||||
IF arrmedida[idx].espesor1 <> 0 THEN
|
||||
LET arrmedida[idx].medida1 = arrmedida[idx].ancho1 * arrmedida[idx].largo1 *
|
||||
arrmedida[idx].espesor1
|
||||
END IF
|
||||
IF arrmedida[idx].espesor2 = 0 THEN
|
||||
LET arrmedida[idx].medida2 = arrmedida[idx].ancho2 * arrmedida[idx].largo2
|
||||
END IF
|
||||
IF arrmedida[idx].espesor2 <> 0 THEN
|
||||
LET arrmedida[idx].medida2 = arrmedida[idx].ancho2 * arrmedida[idx].largo2 *
|
||||
arrmedida[idx].espesor2
|
||||
END IF
|
||||
|
||||
DISPLAY arrmedida[idx].medida1 TO sdespiece[sidx].medida1
|
||||
DISPLAY arrmedida[idx].medida2 TO sdespiece[sidx].medida2
|
||||
|
||||
|
||||
AFTER INPUT
|
||||
IF int_flag THEN
|
||||
|
||||
CALL msg(2)
|
||||
LET int_flag = false
|
||||
EXIT INPUT
|
||||
END IF
|
||||
LET total_medida = 0
|
||||
IF arrmedida.getLength() > 0 THEN
|
||||
|
||||
FOR sidx = 1 TO arrmedida.getLength()
|
||||
IF arrmedida[sidx].medida1 IS NOT NULL THEN
|
||||
LET arrmedida[sidx].cod_n = pcod_n
|
||||
LET arrmedida[sidx].cod_grupo = pcod_grupo
|
||||
LET arrmedida[sidx].cod_tipo = pcod_tipo
|
||||
LET arrmedida[sidx].cod_sec = pcod_sec
|
||||
|
||||
LET total_medida = arrmedida[sidx].medida1 + total_medida
|
||||
END IF
|
||||
END FOR
|
||||
END IF
|
||||
END INPUT
|
||||
|
||||
CLOSE WINDOW prfmwd012
|
||||
RETURN arrmedida,total_medida
|
||||
END FUNCTION
|
||||
Reference in New Issue
Block a user