- added method "get" on MStorageReservation
- change MProduct proses to get QtyOrdered and QtyReserved
This commit is contained in:
parent
4e119984a8
commit
2cc429a3dd
|
@ -571,16 +571,26 @@ public class MProduct extends X_M_Product
|
|||
|| (is_ValueChanged("ProductType") // from Item
|
||||
&& PRODUCTTYPE_Item.equals(get_ValueOld("ProductType")))))
|
||||
{
|
||||
MStorageOnHand[] storages = MStorageOnHand.getOfProduct(getCtx(), get_ID(), get_TrxName());
|
||||
// large modified related to storages by zuhri
|
||||
MStorageOnHand[] onHandStorages = MStorageOnHand.getOfProduct(getCtx(), get_ID(), get_TrxName());
|
||||
MStorageReservation[] reservationStorages = MStorageReservation.getOfProduct(getCtx(), get_ID(), get_TrxName());
|
||||
BigDecimal OnHand = Env.ZERO;
|
||||
BigDecimal Ordered = Env.ZERO;
|
||||
BigDecimal Reserved = Env.ZERO;
|
||||
for (int i = 0; i < storages.length; i++)
|
||||
for (int i = 0; i < onHandStorages.length; i++)
|
||||
{
|
||||
OnHand = OnHand.add(storages[i].getQtyOnHand());
|
||||
Ordered = Ordered.add(storages[i].getQtyOrdered());
|
||||
Reserved = Reserved.add(storages[i].getQtyReserved());
|
||||
OnHand = OnHand.add(onHandStorages[i].getQtyOnHand());
|
||||
//Ordered = Ordered.add(storages[i].getQtyOrdered());
|
||||
//Reserved = Reserved.add(storages[i].getQtyReserved());
|
||||
}
|
||||
for (int i = 0; i < reservationStorages.length; i++)
|
||||
{
|
||||
if(reservationStorages[i].isSOTrx())
|
||||
Reserved = Reserved.add(reservationStorages[i].getQty());
|
||||
else
|
||||
Ordered = Ordered.add(reservationStorages[i].getQty());
|
||||
}
|
||||
// end large modified related to storages by zuhri
|
||||
String errMsg = "";
|
||||
if (OnHand.signum() != 0)
|
||||
errMsg = "@QtyOnHand@ = " + OnHand;
|
||||
|
@ -717,8 +727,8 @@ public class MProduct extends X_M_Product
|
|||
for (int i = 0; i < storages.length; i++)
|
||||
{
|
||||
OnHand = OnHand.add(storages[i].getQtyOnHand());
|
||||
Ordered = OnHand.add(storages[i].getQtyOrdered());
|
||||
Reserved = OnHand.add(storages[i].getQtyReserved());
|
||||
//Ordered = OnHand.add(storages[i].getQtyOrdered());
|
||||
//Reserved = OnHand.add(storages[i].getQtyReserved());
|
||||
}
|
||||
String errMsg = "";
|
||||
if (OnHand.signum() != 0)
|
||||
|
|
|
@ -3,6 +3,7 @@ package org.compiere.model;
|
|||
import java.math.BigDecimal;
|
||||
import java.sql.ResultSet;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Properties;
|
||||
|
||||
import org.compiere.util.CLogMgt;
|
||||
|
@ -29,6 +30,49 @@ public class MStorageReservation extends X_M_StorageReservation {
|
|||
// TODO Auto-generated constructor stub
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Storage Info for Product on specified Warehouse
|
||||
* @param ctx
|
||||
* @param m_Warehouse_ID
|
||||
* @param m_Product_ID
|
||||
* @param i
|
||||
* @param get_TrxName
|
||||
* @return
|
||||
*/
|
||||
public static MStorageReservation[] get(Properties ctx, int m_Warehouse_ID,
|
||||
int m_Product_ID, int i, String trxName) {
|
||||
String sqlWhere = "M_Product_ID=? AND M_Warehouse_ID=?";
|
||||
|
||||
List<MStorageReservation> list = new Query(ctx, MStorageReservation.Table_Name, sqlWhere, trxName)
|
||||
.setParameters(m_Product_ID, m_Warehouse_ID)
|
||||
.list();
|
||||
|
||||
MStorageReservation[] retValue = new MStorageReservation[list.size()];
|
||||
list.toArray(retValue);
|
||||
return retValue;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Storage Info for Product across warehouses
|
||||
* @param ctx context
|
||||
* @param M_Product_ID product
|
||||
* @param trxName transaction
|
||||
* @return existing or null
|
||||
*/
|
||||
public static MStorageReservation[] getOfProduct (Properties ctx, int M_Product_ID, String trxName)
|
||||
{
|
||||
String sqlWhere = "M_Product_ID=?";
|
||||
|
||||
List<MStorageReservation> list = new Query(ctx, MStorageReservation.Table_Name, sqlWhere, trxName)
|
||||
.setParameters(M_Product_ID)
|
||||
.list();
|
||||
|
||||
MStorageReservation[] retValue = new MStorageReservation[list.size()];
|
||||
list.toArray(retValue);
|
||||
return retValue;
|
||||
|
||||
} // getOfProduct
|
||||
|
||||
/**
|
||||
* Get Available Qty.
|
||||
* The call is accurate only if there is a storage record
|
||||
|
@ -90,5 +134,4 @@ public class MStorageReservation extends X_M_StorageReservation {
|
|||
+ ",M_Product_ID=" + M_Product_ID + " = " + retValue);
|
||||
return retValue;
|
||||
} // getQtyAvailable
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue