From 60ad06e5c1296f8166ef525f9cda378e3d160c05 Mon Sep 17 00:00:00 2001 From: uthadehikaru Date: Thu, 25 Oct 2012 16:04:28 +0700 Subject: [PATCH] added method getQtyOnHand --- .../org/compiere/model/MStorageOnHand.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/org.adempiere.base/src/org/compiere/model/MStorageOnHand.java b/org.adempiere.base/src/org/compiere/model/MStorageOnHand.java index b1fa31e525..4957173dd9 100644 --- a/org.adempiere.base/src/org/compiere/model/MStorageOnHand.java +++ b/org.adempiere.base/src/org/compiere/model/MStorageOnHand.java @@ -627,6 +627,33 @@ public class MStorageOnHand extends X_M_StorageOnHand return true; } + + /** + * Get Quantity On Hand of Warehouse + * @param M_Product_ID + * @param M_Warehouse_ID + * @param M_AttributeSetInstance_ID + * @param trxName + * @return + */ + public static BigDecimal getQtyOnHand(int M_Product_ID, int M_Warehouse_ID, int M_AttributeSetInstance_ID, String trxName){ + + StringBuffer sql = new StringBuffer(); + sql.append(" SELECT SUM(QtyOnHand) FROM M_StorageOnHand oh") + .append(" WHERE M_Product_ID=? AND M_AttributeSetInstance_ID=?") + .append(" AND EXISTS(SELECT 1 FROM M_Locator loc WHERE oh.M_Locator_ID=loc.M_Locator_ID AND loc.M_Warehouse_ID=?)"); + + ArrayList params = new ArrayList(); + params.add(M_Product_ID); + params.add(M_AttributeSetInstance_ID); + params.add(M_Warehouse_ID); + + BigDecimal qty = DB.getSQLValueBD(trxName, sql.toString(), params); + if(qty==null) + qty = Env.ZERO; + + return qty; + } /** * String Representation