128 lines
5.3 KiB
Plaintext
128 lines
5.3 KiB
Plaintext
DEFINE curr,i INT,
|
|
|
|
kdatos DYNAMIC ARRAY OF RECORD
|
|
bookmash VARCHAR(50),
|
|
tipos VARCHAR(50),
|
|
lado_1 DEC(8,2),
|
|
lado_2 DEC(8,2),
|
|
lado_3 DEC(8,2),
|
|
cantidad SMALLINT,
|
|
cantidad2 FLOAT,
|
|
tono,calidad VARCHAR(100),
|
|
xobservacion VARCHAR(200),
|
|
id_producto CHAR(25),
|
|
bodega INT,
|
|
seccion INT,
|
|
tramo INT,
|
|
codid,idrow,idtrx INT
|
|
|
|
END RECORD,
|
|
xcodid,xbodega,xseccion,xtramo,xcodn,xcodgrupo,xcodtipo,xcodsec,kidtrx INT,
|
|
xfecha DATE,
|
|
totalmedida DEC(12,5)
|
|
FUNCTION desglose_conteo(pcodid,pfecha,pbodega,pseccion,ptramo,pcodn,pcodgrupo,pcodtipo,pcodsec,descripcion,idtrx)
|
|
DEFINE pcodid,pbodega,pseccion,ptramo,pcodn,pcodgrupo,pcodtipo,pcodsec,idtrx INT,pfecha DATE,
|
|
descripcion VARCHAR(100)
|
|
|
|
LET xcodid = pcodid
|
|
LET xbodega = pbodega
|
|
LET xseccion = pseccion
|
|
LET xtramo = ptramo
|
|
LET xfecha = pfecha
|
|
|
|
LET xcodn = pcodn
|
|
LET xcodgrupo = pcodgrupo
|
|
LET xcodtipo = pcodtipo
|
|
LET xcodsec = pcodsec
|
|
LET kidtrx = idtrx
|
|
|
|
CALL kdatos.clear()
|
|
|
|
CALL busca_detalle()
|
|
OPEN WINDOW w1 WITH FORM "irfmwd015"
|
|
DISPLAY BY NAME pcodn,pcodgrupo,pcodtipo,pcodsec,descripcion
|
|
INPUT ARRAY kdatos FROM sdatos.* ATTRIBUTES(WITHOUT DEFAULTS)
|
|
BEFORE INPUT
|
|
LET curr = arr_curr()
|
|
LET totalmedida =0
|
|
LET kdatos[curr].cantidad2 =0
|
|
CALL bodegas('1')
|
|
CALL cseccion(kdatos[curr].bodega)
|
|
CALL ctramo(kdatos[curr].bodega,kdatos[curr].seccion)
|
|
AFTER FIELD cantidad
|
|
IF kdatos[arr_curr()].cantidad IS NOT NULL THEN
|
|
IF kdatos[arr_curr()].lado_1 IS NOT NULL THEN
|
|
LET kdatos[arr_curr()].cantidad2 =kdatos[arr_curr()].lado_1 *kdatos[arr_curr()].cantidad
|
|
END IF
|
|
IF kdatos[arr_curr()].lado_2 IS NOT NULL THEN
|
|
LET kdatos[arr_curr()].cantidad2 =kdatos[arr_curr()].lado_1 * kdatos[arr_curr()].lado_2* kdatos[arr_curr()].cantidad
|
|
END IF
|
|
IF kdatos[arr_curr()].lado_3 IS NOT NULL THEN
|
|
LET kdatos[arr_curr()].cantidad2 =kdatos[arr_curr()].cantidad2* kdatos[arr_curr()].lado_3* kdatos[arr_curr()].cantidad
|
|
END IF
|
|
DISPLAY kdatos[arr_curr()].cantidad2 TO sdatos[scr_line()].cantidad2
|
|
LET totalmedida = totalmedida + kdatos[arr_curr()].cantidad2
|
|
DISPLAY BY NAME totalmedida
|
|
END IF
|
|
AFTER INPUT
|
|
IF int_flag THEN
|
|
LET int_flag = FALSE
|
|
CALL msg(2)
|
|
END IF
|
|
LET totalmedida =0
|
|
FOR i =1 to kdatos.getLength()
|
|
IF kdatos[i].cantidad IS NOT NULL THEN
|
|
IF kdatos[i].lado_1 IS NOT NULL THEN
|
|
LET kdatos[i].cantidad2 =kdatos[i].lado_1 *kdatos[i].cantidad
|
|
END IF
|
|
IF kdatos[i].lado_2 IS NOT NULL THEN
|
|
LET kdatos[i].cantidad2 =kdatos[i].lado_1 * kdatos[i].lado_2* kdatos[i].cantidad
|
|
END IF
|
|
IF kdatos[i].lado_3 IS NOT NULL THEN
|
|
LET kdatos[i].cantidad2 =kdatos[i].cantidad2* kdatos[i].lado_3
|
|
END IF
|
|
LET totalmedida = totalmedida + kdatos[i].cantidad2
|
|
END IF
|
|
|
|
END FOR
|
|
EXIT INPUT
|
|
ON ACTION salvar ATTRIBUTE(TEXT="Guardar",IMAGE="fa-save")
|
|
CALL guarda_info()
|
|
END INPUT
|
|
CLOSE WINDOW w1
|
|
RETURN totalmedida
|
|
END FUNCTION
|
|
FUNCTION busca_detalle()
|
|
DECLARE busca_desglose CURSOR FOR
|
|
SELECT a.book,a.tipos,a.lado_1,a.lado_2,a.lado_3,a.cantidad,a.cantidad2,a.tono,a.calidad,
|
|
a.observacion,
|
|
a.idproducto,a.bodega,a.cod_seccion,a.cod_tramo,a.codid, a.idrow,a.idtrx
|
|
FROM iptb00062 a WHERE a.codid = xcodid AND a.fecha = xfecha
|
|
ORDER BY a.lado_1
|
|
|
|
LET i = 1
|
|
FOREACH busca_desglose INTO kdatos[i].*
|
|
|
|
LET i = i + 1
|
|
END FOREACH
|
|
END FUNCTION
|
|
FUNCTION guarda_info()
|
|
BEGIN WORK
|
|
|
|
DELETE FROM iptb00062 WHERE fecha = xfecha AND bodega = xbodega AND codid = xcodid
|
|
|
|
FOR i = 1 TO kdatos.getLength()
|
|
IF kdatos[i].cantidad2 IS NOT NULL THEN
|
|
INSERT INTO iptb00062 (codid,cod_n,cod_grupo,cod_tipo,cod_Sec,cantidad,cantidad2,lado_1,lado_2,lado_3,
|
|
book,tipos,cod_seccion,cod_tramo,bodega,us_crea,fech_crea,idproducto,idtrx,tono,calidad,fecha,
|
|
observacion)
|
|
VALUES (kdatos[i].codid,xcodn,xcodgrupo,xcodtipo,xcodsec,kdatos[i].cantidad,kdatos[i].cantidad2,
|
|
kdatos[i].lado_1,kdatos[i].lado_2,kdatos[i].lado_3,kdatos[i].bookmash,kdatos[i].tipos,
|
|
kdatos[i].seccion,kdatos[i].tramo,kdatos[i].bodega,suser_sname(),getdate(),
|
|
kdatos[i].id_producto,kidtrx,kdatos[i].tono,kdatos[i].calidad,xfecha,
|
|
kdatos[i].xobservacion)
|
|
END IF
|
|
END FOR
|
|
COMMIT WORK
|
|
CALL msg(1)
|
|
END FUNCTION |