Files
MBS/PROYECTO/PRDIR/transaccionesInventario.4gl
T

77 lines
2.6 KiB
Plaintext

DEFINE arr_transacc DYNAMIC ARRAY OF RECORD
fecha DATE,
num_doc INT,
almacen STRING,
movimiento STRING,
entrada,salida,balance,cantidad DEC(12,5)
END RECORD,
idx int
FUNCTION transacciones(xorden,xcodn,xcodgrupo,xcodtipo,xcodsec,articulo)
DEFINE xorden,xcodn,xcodgrupo,xcodtipo,xcodsec INT,
articulo STRING
CALL arr_transacc.clear()
CALL busca_informacion(xorden,xcodn,xcodgrupo,xcodtipo,xcodsec)
IF idx = 1 THEN
CALL msg(3)
RETURN
END IF
call ui.Interface.loadStyles("formularios")
OPEN WINDOW w1 WITH FORM "prfmcs002"
DISPLAY ARRAY arr_transacc TO stransacc.*
BEFORE DISPLAY
DISPLAY "TRANSACCIONES INVENTARIOS" TO titulo
DISPLAY BY NAME articulo,xorden
AFTER DISPLAY
EXIT DISPLAY
END DISPLAY
CLOSE WINDOW w1
END FUNCTION
FUNCTION busca_informacion(xorden,xcodn,xcodgrupo,xcodtipo,xcodsec)
DEFINE xorden,xcodn,xcodgrupo,xcodtipo,xcodsec INT
DECLARE buscar CURSOR FOR
SELECT a.fecha,a.num_Doc,"("+CAST(a.bodega AS VARCHAR)+")"+b.descripcion,"("+CAST(a.cod_mov AS VARCHAR)+")"+c.descrip_mov
,'0','0','0',a.cantidad_2
FROM iptb00006 a
INNER JOIN intb00009 b ON a.bodega = b.cod_bodega
INNER JOIN iptb00005 c ON c.cod_mov = a.cod_mov
WHERE a.num_oc = xorden AND
a.cod_n = xcodn AND
a.cod_grupo = xcodgrupo AND
a.cod_tipo = xcodtipo AND
a.cod_sec = xcodsec AND
a.status_t IS NULL
ORDER BY a.fecha
LET idx = 1
FOREACH buscar INTO arr_transacc[idx].*
IF arr_transacc[idx].cantidad < 0 THEN
LET arr_transacc[idx].salida =arr_transacc[idx].cantidad
LET arr_transacc[idx].entrada =0
ELSE
LET arr_transacc[idx].entrada =arr_transacc[idx].cantidad
LET arr_transacc[idx].salida =0
END IF
IF idx = 1 THEN
LET arr_transacc[idx].balance=0
LET arr_transacc[idx].balance = arr_transacc[idx].cantidad + arr_transacc[idx].balance
END IF
DISPLAY "BALANCE ",arr_transacc[idx].balance
IF idx > 1 THEN
LET arr_transacc[idx].balance = arr_transacc[idx].cantidad + arr_transacc[idx-1].balance
END IF
LET idx = idx + 1
END FOREACH
END FUNCTION