IDEMPIERE-2472 CallOutOrder make a mistake of calculating LineNetAmt,When updata enterQty at detail panel using UOM conversion.
This commit is contained in:
parent
0cea1c7fe1
commit
f7d2c70f5d
|
@ -841,7 +841,7 @@ public class CalloutOrder extends CalloutEngine
|
||||||
{
|
{
|
||||||
BigDecimal QtyOrdered = (BigDecimal)mTab.getValue("QtyOrdered");
|
BigDecimal QtyOrdered = (BigDecimal)mTab.getValue("QtyOrdered");
|
||||||
int M_Warehouse_ID = Env.getContextAsInt(ctx, WindowNo, "M_Warehouse_ID");
|
int M_Warehouse_ID = Env.getContextAsInt(ctx, WindowNo, "M_Warehouse_ID");
|
||||||
int M_AttributeSetInstance_ID = Env.getContextAsInt(ctx, WindowNo, "M_AttributeSetInstance_ID");
|
int M_AttributeSetInstance_ID = Env.getContextAsInt(ctx, WindowNo, mTab.getTabNo(), "M_AttributeSetInstance_ID");
|
||||||
BigDecimal available = MStorageReservation.getQtyAvailable
|
BigDecimal available = MStorageReservation.getQtyAvailable
|
||||||
(M_Warehouse_ID, M_Product_ID.intValue(), M_AttributeSetInstance_ID, null);
|
(M_Warehouse_ID, M_Product_ID.intValue(), M_AttributeSetInstance_ID, null);
|
||||||
if (available == null)
|
if (available == null)
|
||||||
|
@ -961,12 +961,12 @@ public class CalloutOrder extends CalloutEngine
|
||||||
if (column.equals("M_Product_ID"))
|
if (column.equals("M_Product_ID"))
|
||||||
M_Product_ID = ((Integer)value).intValue();
|
M_Product_ID = ((Integer)value).intValue();
|
||||||
else
|
else
|
||||||
M_Product_ID = Env.getContextAsInt(ctx, WindowNo, "M_Product_ID");
|
M_Product_ID = Env.getContextAsInt(ctx, WindowNo, mTab.getTabNo(), "M_Product_ID");
|
||||||
int C_Charge_ID = 0;
|
int C_Charge_ID = 0;
|
||||||
if (column.equals("C_Charge_ID"))
|
if (column.equals("C_Charge_ID"))
|
||||||
C_Charge_ID = ((Integer)value).intValue();
|
C_Charge_ID = ((Integer)value).intValue();
|
||||||
else
|
else
|
||||||
C_Charge_ID = Env.getContextAsInt(ctx, WindowNo, "C_Charge_ID");
|
C_Charge_ID = Env.getContextAsInt(ctx, WindowNo, mTab.getTabNo(), "C_Charge_ID");
|
||||||
if (log.isLoggable(Level.FINE)) log.fine("Product=" + M_Product_ID + ", C_Charge_ID=" + C_Charge_ID);
|
if (log.isLoggable(Level.FINE)) log.fine("Product=" + M_Product_ID + ", C_Charge_ID=" + C_Charge_ID);
|
||||||
if (M_Product_ID == 0 && C_Charge_ID == 0)
|
if (M_Product_ID == 0 && C_Charge_ID == 0)
|
||||||
return amt(ctx, WindowNo, mTab, mField, value); //
|
return amt(ctx, WindowNo, mTab, mField, value); //
|
||||||
|
@ -1034,9 +1034,9 @@ public class CalloutOrder extends CalloutEngine
|
||||||
return "";
|
return "";
|
||||||
|
|
||||||
if (steps) log.warning("init");
|
if (steps) log.warning("init");
|
||||||
int C_UOM_To_ID = Env.getContextAsInt(ctx, WindowNo, "C_UOM_ID");
|
int C_UOM_To_ID = Env.getContextAsInt(ctx, WindowNo, mTab.getTabNo(), "C_UOM_ID");
|
||||||
int M_Product_ID = Env.getContextAsInt(ctx, WindowNo, "M_Product_ID");
|
int M_Product_ID = Env.getContextAsInt(ctx, WindowNo, mTab.getTabNo(), "M_Product_ID");
|
||||||
int M_PriceList_ID = Env.getContextAsInt(ctx, WindowNo, "M_PriceList_ID");
|
int M_PriceList_ID = Env.getContextAsInt(ctx, WindowNo, mTab.getTabNo(), "M_PriceList_ID");
|
||||||
int StdPrecision = MPriceList.getStandardPrecision(ctx, M_PriceList_ID);
|
int StdPrecision = MPriceList.getStandardPrecision(ctx, M_PriceList_ID);
|
||||||
MPriceList pl = new MPriceList(ctx, M_PriceList_ID, null);
|
MPriceList pl = new MPriceList(ctx, M_PriceList_ID, null);
|
||||||
boolean isEnforcePriceLimit = pl.isEnforcePriceLimit();
|
boolean isEnforcePriceLimit = pl.isEnforcePriceLimit();
|
||||||
|
@ -1211,7 +1211,7 @@ public class CalloutOrder extends CalloutEngine
|
||||||
{
|
{
|
||||||
if (isCalloutActive() || value == null)
|
if (isCalloutActive() || value == null)
|
||||||
return "";
|
return "";
|
||||||
int M_Product_ID = Env.getContextAsInt(ctx, WindowNo, "M_Product_ID");
|
int M_Product_ID = Env.getContextAsInt(ctx, WindowNo, mTab.getTabNo(), "M_Product_ID");
|
||||||
if (steps) log.warning("init - M_Product_ID=" + M_Product_ID + " - " );
|
if (steps) log.warning("init - M_Product_ID=" + M_Product_ID + " - " );
|
||||||
BigDecimal QtyOrdered = Env.ZERO;
|
BigDecimal QtyOrdered = Env.ZERO;
|
||||||
BigDecimal QtyEntered, PriceActual, PriceEntered;
|
BigDecimal QtyEntered, PriceActual, PriceEntered;
|
||||||
|
@ -1257,7 +1257,7 @@ public class CalloutOrder extends CalloutEngine
|
||||||
// QtyEntered changed - calculate QtyOrdered
|
// QtyEntered changed - calculate QtyOrdered
|
||||||
else if (mField.getColumnName().equals("QtyEntered"))
|
else if (mField.getColumnName().equals("QtyEntered"))
|
||||||
{
|
{
|
||||||
int C_UOM_To_ID = Env.getContextAsInt(ctx, WindowNo, "C_UOM_ID");
|
int C_UOM_To_ID = Env.getContextAsInt(ctx, WindowNo, mTab.getTabNo(), "C_UOM_ID");
|
||||||
QtyEntered = (BigDecimal)value;
|
QtyEntered = (BigDecimal)value;
|
||||||
BigDecimal QtyEntered1 = QtyEntered.setScale(MUOM.getPrecision(ctx, C_UOM_To_ID), BigDecimal.ROUND_HALF_UP);
|
BigDecimal QtyEntered1 = QtyEntered.setScale(MUOM.getPrecision(ctx, C_UOM_To_ID), BigDecimal.ROUND_HALF_UP);
|
||||||
if (QtyEntered.compareTo(QtyEntered1) != 0)
|
if (QtyEntered.compareTo(QtyEntered1) != 0)
|
||||||
|
@ -1282,7 +1282,7 @@ public class CalloutOrder extends CalloutEngine
|
||||||
// QtyOrdered changed - calculate QtyEntered (should not happen)
|
// QtyOrdered changed - calculate QtyEntered (should not happen)
|
||||||
else if (mField.getColumnName().equals("QtyOrdered"))
|
else if (mField.getColumnName().equals("QtyOrdered"))
|
||||||
{
|
{
|
||||||
int C_UOM_To_ID = Env.getContextAsInt(ctx, WindowNo, "C_UOM_ID");
|
int C_UOM_To_ID = Env.getContextAsInt(ctx, WindowNo, mTab.getTabNo(), "C_UOM_ID");
|
||||||
QtyOrdered = (BigDecimal)value;
|
QtyOrdered = (BigDecimal)value;
|
||||||
int precision = MProduct.get(ctx, M_Product_ID).getUOMPrecision();
|
int precision = MProduct.get(ctx, M_Product_ID).getUOMPrecision();
|
||||||
BigDecimal QtyOrdered1 = QtyOrdered.setScale(precision, BigDecimal.ROUND_HALF_UP);
|
BigDecimal QtyOrdered1 = QtyOrdered.setScale(precision, BigDecimal.ROUND_HALF_UP);
|
||||||
|
@ -1320,7 +1320,7 @@ public class CalloutOrder extends CalloutEngine
|
||||||
if (product.isStocked())
|
if (product.isStocked())
|
||||||
{
|
{
|
||||||
int M_Warehouse_ID = Env.getContextAsInt(ctx, WindowNo, "M_Warehouse_ID");
|
int M_Warehouse_ID = Env.getContextAsInt(ctx, WindowNo, "M_Warehouse_ID");
|
||||||
int M_AttributeSetInstance_ID = Env.getContextAsInt(ctx, WindowNo, "M_AttributeSetInstance_ID");
|
int M_AttributeSetInstance_ID = Env.getContextAsInt(ctx, WindowNo, mTab.getTabNo(), "M_AttributeSetInstance_ID");
|
||||||
BigDecimal available = MStorageReservation.getQtyAvailable
|
BigDecimal available = MStorageReservation.getQtyAvailable
|
||||||
(M_Warehouse_ID, M_Product_ID, M_AttributeSetInstance_ID, null);
|
(M_Warehouse_ID, M_Product_ID, M_AttributeSetInstance_ID, null);
|
||||||
if (available == null)
|
if (available == null)
|
||||||
|
|
Loading…
Reference in New Issue