Issuing of stock should ignore storage with onhand <= 0 - ID: 2545020

http://sourceforge.net/tracker2/index.php?func=detail&aid=2545020&group_id=176962&atid=879332

Fix MA when the on hand for s ASI is zero
This commit is contained in:
vpj-cd 2009-01-30 05:55:59 +00:00
parent 70ffc39a38
commit d20b7677e3
5 changed files with 11 additions and 6 deletions

View File

@ -1695,10 +1695,11 @@ public class MInOut extends X_M_InOut implements DocAction
String MMPolicy = product.getMMPolicy(); String MMPolicy = product.getMMPolicy();
Timestamp minGuaranteeDate = getMovementDate(); Timestamp minGuaranteeDate = getMovementDate();
MStorage[] storages = MStorage.getWarehouse(getCtx(), getM_Warehouse_ID(), line.getM_Product_ID(), line.getM_AttributeSetInstance_ID(), MStorage[] storages = MStorage.getWarehouse(getCtx(), getM_Warehouse_ID(), line.getM_Product_ID(), line.getM_AttributeSetInstance_ID(),
minGuaranteeDate, MClient.MMPOLICY_FiFo.equals(MMPolicy), true, line.getM_Locator_ID(), get_TrxName()); minGuaranteeDate, MClient.MMPOLICY_FiFo.equals(MMPolicy), false, line.getM_Locator_ID(), get_TrxName());
BigDecimal qtyToDeliver = line.getMovementQty(); BigDecimal qtyToDeliver = line.getMovementQty();
for (MStorage storage: storages) for (MStorage storage: storages)
{ {
if (storage.getQtyOnHand().compareTo(qtyToDeliver) >= 0) if (storage.getQtyOnHand().compareTo(qtyToDeliver) >= 0)
{ {
MInOutLineMA ma = new MInOutLineMA (line, MInOutLineMA ma = new MInOutLineMA (line,
@ -1709,6 +1710,7 @@ public class MInOut extends X_M_InOut implements DocAction
throw new IllegalStateException("Error try create ASI Reservation"); throw new IllegalStateException("Error try create ASI Reservation");
} }
qtyToDeliver = Env.ZERO; qtyToDeliver = Env.ZERO;
break;
} }
else else
{ {

View File

@ -596,7 +596,7 @@ public class MInventory extends X_M_Inventory implements DocAction
{ {
String MMPolicy = product.getMMPolicy(); String MMPolicy = product.getMMPolicy();
MStorage[] storages = MStorage.getWarehouse(getCtx(), getM_Warehouse_ID(), line.getM_Product_ID(), 0, MStorage[] storages = MStorage.getWarehouse(getCtx(), getM_Warehouse_ID(), line.getM_Product_ID(), 0,
null, MClient.MMPOLICY_FiFo.equals(MMPolicy), true, line.getM_Locator_ID(), get_TrxName()); null, MClient.MMPOLICY_FiFo.equals(MMPolicy), false, line.getM_Locator_ID(), get_TrxName());
BigDecimal qtyToDeliver = qtyDiff.negate(); BigDecimal qtyToDeliver = qtyDiff.negate();
for (MStorage storage: storages) for (MStorage storage: storages)
@ -612,7 +612,7 @@ public class MInventory extends X_M_Inventory implements DocAction
} }
qtyToDeliver = Env.ZERO; qtyToDeliver = Env.ZERO;
log.fine( ma + ", QtyToDeliver=" + qtyToDeliver); log.fine( ma + ", QtyToDeliver=" + qtyToDeliver);
//return; break;
} }
else else
{ {

View File

@ -665,7 +665,7 @@ public class MMovement extends X_M_Movement implements DocAction
MProduct product = MProduct.get(getCtx(), line.getM_Product_ID()); MProduct product = MProduct.get(getCtx(), line.getM_Product_ID());
String MMPolicy = product.getMMPolicy(); String MMPolicy = product.getMMPolicy();
MStorage[] storages = MStorage.getWarehouse(getCtx(), 0, line.getM_Product_ID(), 0, MStorage[] storages = MStorage.getWarehouse(getCtx(), 0, line.getM_Product_ID(), 0,
null, MClient.MMPOLICY_FiFo.equals(MMPolicy), true, line.getM_Locator_ID(), get_TrxName()); null, MClient.MMPOLICY_FiFo.equals(MMPolicy), false, line.getM_Locator_ID(), get_TrxName());
BigDecimal qtyToDeliver = line.getMovementQty(); BigDecimal qtyToDeliver = line.getMovementQty();
@ -682,7 +682,7 @@ public class MMovement extends X_M_Movement implements DocAction
} }
qtyToDeliver = Env.ZERO; qtyToDeliver = Env.ZERO;
log.fine( ma + ", QtyToDeliver=" + qtyToDeliver); log.fine( ma + ", QtyToDeliver=" + qtyToDeliver);
//return; break;
} }
else else
{ {

View File

@ -332,8 +332,11 @@ public class MStorage extends X_M_Storage
} }
rs = pstmt.executeQuery(); rs = pstmt.executeQuery();
while (rs.next()) while (rs.next())
{
if(rs.getBigDecimal(11).signum() != 0)
list.add (new MStorage (ctx, rs, trxName)); list.add (new MStorage (ctx, rs, trxName));
} }
}
catch (Exception e) catch (Exception e)
{ {
s_log.log(Level.SEVERE, sql, e); s_log.log(Level.SEVERE, sql, e);

View File

@ -542,7 +542,7 @@ public class InOutGenerate extends SvrProcess
{ {
m_lastStorages = MStorage.getWarehouse(getCtx(), m_lastStorages = MStorage.getWarehouse(getCtx(),
M_Warehouse_ID, M_Product_ID, M_AttributeSetInstance_ID, M_Warehouse_ID, M_Product_ID, M_AttributeSetInstance_ID,
minGuaranteeDate, FiFo, true, 0 , get_TrxName()); minGuaranteeDate, FiFo, false, 0 , get_TrxName());
m_map.put(m_lastPP, m_lastStorages); m_map.put(m_lastPP, m_lastStorages);
} }
return m_lastStorages; return m_lastStorages;