Merge bug fixes from release to trunk
merge 12009, 12011, 12014, 12015 Revision: 12009 Fix [2927581] Financial Report parameter does not display in Report Link to SF Tracker: http://sourceforge.net/support/tracker.php?aid=2927581 Revision: 12011 Fix [2926732] Query.setParameters has wrong argument type - thanks to Tobi Link to SF Tracker: http://sourceforge.net/support/tracker.php?aid=2926732 Revision: 12014 Fix [2927102] Big Decimal exception calling setScale() Link to SF Tracker: http://sourceforge.net/support/tracker.php?aid=2927102 Revision: 12015 Fix [2920052] print format Cache Image Link to SF Tracker: http://sourceforge.net/support/tracker.php?aid=2920052 Regards, Tony
This commit is contained in:
parent
b2701b39b7
commit
eb2dd63503
|
@ -132,8 +132,8 @@
|
|||
<classpathentry exported="true" kind="lib" path="posterita/posterita/web/WEB-INF/lib/log4j-1.2.13.jar"/>
|
||||
<classpathentry exported="true" kind="lib" path="posterita/posterita/web/WEB-INF/lib/poi-3.0-FINAL.jar"/>
|
||||
<classpathentry exported="true" kind="lib" path="posterita/posterita/web/WEB-INF/lib/servlet.jar"/>
|
||||
<classpathentry exported="true" kind="lib" path="packages/liberoHR.jar"/>
|
||||
<classpathentry exported="true" kind="lib" path="packages/liberoMFG.jar"/>
|
||||
<classpathentry exported="true" kind="lib" path="packages/liberoHR.jar" sourcepath="/adempiereLiberoHR"/>
|
||||
<classpathentry exported="true" kind="lib" path="packages/liberoMFG.jar" sourcepath="/adempiereLibero"/>
|
||||
<classpathentry exported="true" kind="lib" path="tools/lib/iText-2.1.7.jar"/>
|
||||
<classpathentry exported="true" kind="lib" path="tools/lib/miglayout-3.7.1-swing.jar"/>
|
||||
<classpathentry exported="true" kind="lib" path="tools/lib/payflow.jar"/>
|
||||
|
|
|
@ -106,7 +106,7 @@ public class AssetSplit extends SvrProcess
|
|||
v_ManDep_Org =v_ManDep_Org.subtract(v_ManDep_New);
|
||||
}
|
||||
else if (AssetSplit.getA_Split_Type().compareTo("QTY")==0) {
|
||||
v_multiplier_New = AssetSplit.getA_QTY_Split().setScale(5).divide(v_QTY_Org.setScale(5), 0);
|
||||
v_multiplier_New = AssetSplit.getA_QTY_Split().setScale(5, BigDecimal.ROUND_HALF_UP).divide(v_QTY_Org.setScale(5, BigDecimal.ROUND_HALF_UP), 0);
|
||||
v_AccumBalance_New = v_AccumBalance_Org .multiply(v_multiplier_New);
|
||||
v_CostBalance_New = v_CostBalance_Org .multiply(v_multiplier_New);
|
||||
v_QTY_New = AssetSplit.getA_QTY_Split();
|
||||
|
@ -119,7 +119,7 @@ public class AssetSplit extends SvrProcess
|
|||
v_ManDep_Org =v_ManDep_Org.subtract(v_ManDep_New);
|
||||
}
|
||||
else if (AssetSplit.getA_Split_Type().compareTo("AMT")==0) {
|
||||
v_multiplier_New = AssetSplit.getA_Amount_Split().setScale(5).divide(v_CostBalance_Org.setScale(5), 0);
|
||||
v_multiplier_New = AssetSplit.getA_Amount_Split().setScale(5, BigDecimal.ROUND_HALF_UP).divide(v_CostBalance_Org.setScale(5, BigDecimal.ROUND_HALF_UP), 0);
|
||||
v_AccumBalance_New = v_AccumBalance_Org .multiply(v_multiplier_New);
|
||||
v_CostBalance_New = AssetSplit.getA_Amount_Split();
|
||||
v_QTY_New = v_QTY_Org .multiply(v_multiplier_New);
|
||||
|
|
|
@ -864,7 +864,7 @@ public class MCost extends X_M_Cost
|
|||
BigDecimal averageCurrent = oldStockQty.multiply(oldAverageAmt);
|
||||
BigDecimal averageIncrease = matchQty.multiply(cost);
|
||||
BigDecimal newAmt = averageCurrent.add(averageIncrease);
|
||||
newAmt = newAmt.setScale(as.getCostingPrecision());
|
||||
newAmt = newAmt.setScale(as.getCostingPrecision(), BigDecimal.ROUND_HALF_UP);
|
||||
newAverageAmt = newAmt.divide(newStockQty, as.getCostingPrecision(), BigDecimal.ROUND_HALF_UP);
|
||||
s_log.finer("Movement=" + movementQty + ", StockQty=" + newStockQty
|
||||
+ ", Match=" + matchQty + ", Cost=" + cost + ", NewAvg=" + newAverageAmt);
|
||||
|
@ -960,7 +960,7 @@ public class MCost extends X_M_Cost
|
|||
BigDecimal averageCurrent = oldStockQty.multiply(oldAverageAmt);
|
||||
BigDecimal averageIncrease = matchQty.multiply(cost);
|
||||
BigDecimal newAmt = averageCurrent.add(averageIncrease);
|
||||
newAmt = newAmt.setScale(as.getCostingPrecision());
|
||||
newAmt = newAmt.setScale(as.getCostingPrecision(), BigDecimal.ROUND_HALF_UP);
|
||||
newAverageAmt = newAmt.divide(newStockQty, as.getCostingPrecision(), BigDecimal.ROUND_HALF_UP);
|
||||
s_log.finer("Movement=" + movementQty + ", StockQty=" + newStockQty
|
||||
+ ", Match=" + matchQty + ", Cost=" + cost + ", NewAvg=" + newAverageAmt);
|
||||
|
|
|
@ -65,6 +65,7 @@ public class MQuery implements Serializable
|
|||
isTemporaryTable = true;
|
||||
table = MTable.get(ctx, TableName);
|
||||
}
|
||||
boolean isFinancialReport = ("T_Report".equals(TableName) || "T_ReportStatement".equals(TableName));
|
||||
query.m_AD_PInstance_ID = AD_PInstance_ID;
|
||||
|
||||
// How many rows do we have?
|
||||
|
@ -144,7 +145,7 @@ public class MQuery implements Serializable
|
|||
//
|
||||
// Check if the parameter exists as column in our table.
|
||||
// This condition applies only to temporary tables - teo_sarca [ 2860022 ]
|
||||
if(isTemporaryTable && table != null && table.getColumn(ParameterName) == null)
|
||||
if (isTemporaryTable && !isFinancialReport && table != null && table.getColumn(ParameterName) == null)
|
||||
{
|
||||
s_log.info("Skip parameter "+ParameterName+" because there is no column in table "+TableName);
|
||||
continue;
|
||||
|
|
|
@ -25,7 +25,6 @@ import java.sql.ResultSet;
|
|||
import java.sql.SQLException;
|
||||
import java.sql.Timestamp;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Properties;
|
||||
|
@ -138,7 +137,7 @@ public class Query
|
|||
* Set query parameters
|
||||
* @param parameters collection of parameters
|
||||
*/
|
||||
public Query setParameters(Collection<Object> parameters)
|
||||
public Query setParameters(List<Object> parameters)
|
||||
{
|
||||
if (parameters == null) {
|
||||
this.parameters = null;
|
||||
|
|
|
@ -141,7 +141,7 @@ public class ImageElement extends PrintElement
|
|||
URL imageURL = getURL(imageURLstring);
|
||||
if (imageURL != null)
|
||||
{
|
||||
m_image = Toolkit.getDefaultToolkit().getImage(imageURL);
|
||||
m_image = Toolkit.getDefaultToolkit().createImage(imageURL);
|
||||
if (m_image != null)
|
||||
log.fine("URL=" + imageURL);
|
||||
else
|
||||
|
@ -159,7 +159,7 @@ public class ImageElement extends PrintElement
|
|||
{
|
||||
if (imageURL != null)
|
||||
{
|
||||
m_image = Toolkit.getDefaultToolkit().getImage(imageURL);
|
||||
m_image = Toolkit.getDefaultToolkit().createImage(imageURL);
|
||||
if (m_image != null)
|
||||
log.fine("URL=" + imageURL);
|
||||
else
|
||||
|
|
|
@ -1281,7 +1281,7 @@ public final class DB
|
|||
* @return first value or -1
|
||||
* @throws DBException if there is any SQLException
|
||||
*/
|
||||
public static int getSQLValueEx (String trxName, String sql, Collection<Object> params)
|
||||
public static int getSQLValueEx (String trxName, String sql, List<Object> params)
|
||||
{
|
||||
return getSQLValueEx(trxName, sql, params.toArray(new Object[params.size()]));
|
||||
}
|
||||
|
@ -1314,7 +1314,7 @@ public final class DB
|
|||
* @param params collection of parameters
|
||||
* @return first value or null
|
||||
*/
|
||||
public static int getSQLValue (String trxName, String sql, Collection<Object> params)
|
||||
public static int getSQLValue (String trxName, String sql, List<Object> params)
|
||||
{
|
||||
return getSQLValue(trxName, sql, params.toArray(new Object[params.size()]));
|
||||
}
|
||||
|
@ -1362,7 +1362,7 @@ public final class DB
|
|||
* @return first value or null
|
||||
* @throws DBException if there is any SQLException
|
||||
*/
|
||||
public static String getSQLValueStringEx (String trxName, String sql, Collection<Object> params)
|
||||
public static String getSQLValueStringEx (String trxName, String sql, List<Object> params)
|
||||
{
|
||||
return getSQLValueStringEx(trxName, sql, params.toArray(new Object[params.size()]));
|
||||
}
|
||||
|
@ -1395,7 +1395,7 @@ public final class DB
|
|||
* @param params collection of parameters
|
||||
* @return first value or null
|
||||
*/
|
||||
public static String getSQLValueString (String trxName, String sql, Collection<Object> params)
|
||||
public static String getSQLValueString (String trxName, String sql, List<Object> params)
|
||||
{
|
||||
return getSQLValueString(trxName, sql, params.toArray(new Object[params.size()]));
|
||||
}
|
||||
|
@ -1444,7 +1444,7 @@ public final class DB
|
|||
* @return first value or null if not found
|
||||
* @throws DBException if there is any SQLException
|
||||
*/
|
||||
public static BigDecimal getSQLValueBDEx (String trxName, String sql, Collection<Object> params) throws DBException
|
||||
public static BigDecimal getSQLValueBDEx (String trxName, String sql, List<Object> params) throws DBException
|
||||
{
|
||||
return getSQLValueBDEx(trxName, sql, params.toArray(new Object[params.size()]));
|
||||
}
|
||||
|
@ -1478,7 +1478,7 @@ public final class DB
|
|||
* @param params collection of parameters
|
||||
* @return first value or null
|
||||
*/
|
||||
public static BigDecimal getSQLValueBD (String trxName, String sql, Collection<Object> params)
|
||||
public static BigDecimal getSQLValueBD (String trxName, String sql, List<Object> params)
|
||||
{
|
||||
return getSQLValueBD(trxName, sql, params.toArray(new Object[params.size()]));
|
||||
}
|
||||
|
@ -1526,7 +1526,7 @@ public final class DB
|
|||
* @return first value or null if not found
|
||||
* @throws DBException if there is any SQLException
|
||||
*/
|
||||
public static Timestamp getSQLValueTSEx (String trxName, String sql, Collection<Object> params) throws DBException
|
||||
public static Timestamp getSQLValueTSEx (String trxName, String sql, List<Object> params) throws DBException
|
||||
{
|
||||
return getSQLValueTSEx(trxName, sql, params.toArray(new Object[params.size()]));
|
||||
}
|
||||
|
@ -1558,7 +1558,7 @@ public final class DB
|
|||
* @param params collection of parameters
|
||||
* @return first value or null
|
||||
*/
|
||||
public static Timestamp getSQLValueTS (String trxName, String sql, Collection<Object> params)
|
||||
public static Timestamp getSQLValueTS (String trxName, String sql, List<Object> params)
|
||||
{
|
||||
Object[] arr = new Object[params.size()];
|
||||
params.toArray(arr);
|
||||
|
@ -1577,19 +1577,6 @@ public final class DB
|
|||
return getKeyNamePairs(sql, optional, (Object[])null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Array of Key Name Pairs
|
||||
* @param sql select with id / name as first / second column
|
||||
* @param optional if true (-1,"") is added
|
||||
* @param params query parameters
|
||||
* @return array of {@link KeyNamePair}
|
||||
* @see #getKeyNamePairs(String, boolean, Object...)
|
||||
*/
|
||||
public static KeyNamePair[] getKeyNamePairs(String sql, boolean optional, Collection<Object> params)
|
||||
{
|
||||
return getKeyNamePairs(sql, optional, params.toArray(new Object[params.size()]));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Array of Key Name Pairs
|
||||
* @param sql select with id / name as first / second column
|
||||
|
|
|
@ -43,12 +43,12 @@ public class MStorageTest extends AdempiereTestCase
|
|||
loc.setXYZ("X"+locatorValue, "Y"+locatorValue, "Z"+locatorValue);
|
||||
loc.saveEx();
|
||||
//
|
||||
BigDecimal targetQty = BigDecimal.valueOf(qtyOnHand).setScale(12);
|
||||
BigDecimal targetQty = BigDecimal.valueOf(qtyOnHand).setScale(12, BigDecimal.ROUND_HALF_UP);
|
||||
MStorage s1 = MStorage.getCreate(getCtx(), loc.get_ID(), product_id, 0, getTrxName());
|
||||
s1.setQtyOnHand(targetQty);
|
||||
s1.saveEx();
|
||||
//
|
||||
BigDecimal qty = MStorage.getQtyAvailable(wh.get_ID(), loc.get_ID(), product_id, 0, getTrxName()).setScale(12);
|
||||
BigDecimal qty = MStorage.getQtyAvailable(wh.get_ID(), loc.get_ID(), product_id, 0, getTrxName()).setScale(12, BigDecimal.ROUND_HALF_UP);
|
||||
assertEquals("Error on locator "+locatorValue, targetQty, qty);
|
||||
//
|
||||
return loc;
|
||||
|
@ -56,8 +56,8 @@ public class MStorageTest extends AdempiereTestCase
|
|||
private void assertWarehouseQty(MWarehouse wh, BigDecimal targetQty)
|
||||
{
|
||||
BigDecimal qty = MStorage.getQtyAvailable(wh.get_ID(), 0, product_id, 0, getTrxName());
|
||||
qty = qty.setScale(12);
|
||||
targetQty = targetQty.setScale(12);
|
||||
qty = qty.setScale(12, BigDecimal.ROUND_HALF_UP);
|
||||
targetQty = targetQty.setScale(12, BigDecimal.ROUND_HALF_UP);
|
||||
assertEquals(targetQty, qty);
|
||||
}
|
||||
|
||||
|
|
|
@ -715,7 +715,7 @@ public class POSManager
|
|||
}
|
||||
|
||||
orderLineBean.setLineTotalAmt(lineTotalAmount);
|
||||
orderLineBean.setUnitPrice(line.getPriceList().setScale(2));
|
||||
orderLineBean.setUnitPrice(line.getPriceList().setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||
orderLineBean.setPriceActual(line.getPriceActual());
|
||||
orderLineBean.setProductId(Integer.valueOf(line.getM_Product_ID()));
|
||||
orderLineBean.setUom(product.getUOMSymbol());
|
||||
|
@ -843,7 +843,7 @@ public class POSManager
|
|||
{
|
||||
totalGrossProfitPercentage = Env.ZERO;
|
||||
}
|
||||
orderLineBean.setTotalGrossProfitPercentage(totalGrossProfitPercentage.setScale(2));
|
||||
orderLineBean.setTotalGrossProfitPercentage(totalGrossProfitPercentage.setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||
}
|
||||
|
||||
orderLineBean.setDiscountAmt(discountAmt);
|
||||
|
@ -2686,14 +2686,14 @@ public class POSManager
|
|||
throw new OperationException("DISCOUNT ERROR!! CANNOT PROCESS YOUR REQUEST!!!");
|
||||
}
|
||||
|
||||
bean.setInclPrice(price.setScale(2));
|
||||
bean.setInclPrice(price.setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||
|
||||
BigDecimal incPriceExcVat = ((price.multiply(qty)).subtract(newTaxAmt)).divide(qty, 2, BigDecimal.ROUND_HALF_UP);
|
||||
bean.setDiscountedLinePrice(incPriceExcVat.setScale(2));
|
||||
bean.setDiscountedLinePrice(incPriceExcVat.setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||
bean.setDiscountedInclUnitPrice(incPriceExcVat);
|
||||
bean.setUnitPrice(incPriceExcVat.setScale(2));
|
||||
bean.setUnitPrice(incPriceExcVat.setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||
|
||||
bean.setTaxAmt(newTaxAmt.setScale(2));
|
||||
bean.setTaxAmt(newTaxAmt.setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||
bean.setIsDiscountOnInclUnitPrice(isDiscOnInclUnitPrices[0]);
|
||||
bean.setIsDiscountOnPercentage(isDiscountsOnPerc[0]);
|
||||
bean.setIsDiscountOnTotal(isDiscountsOnTotal[0]);
|
||||
|
|
|
@ -512,7 +512,7 @@ public class POSStockManager
|
|||
String uom = product.getUOMSymbol();
|
||||
bean= new AttributeBean();
|
||||
bean.setProductName(rs.getString(1));
|
||||
bean.setQuantity(quantity.setScale(uomPrecision));
|
||||
bean.setQuantity(quantity.setScale(uomPrecision, BigDecimal.ROUND_HALF_UP));
|
||||
bean.setBarCode(rs.getString(3));
|
||||
|
||||
totalCost = quantity.multiply(price);
|
||||
|
|
|
@ -453,7 +453,7 @@ public class StockManager
|
|||
itemBean.setBarCode(barcode);
|
||||
itemBean.setPriceListId(orderLineBean.getPriceListId());
|
||||
itemBean.setDescription(description);
|
||||
itemBean.setQty(orderLineBean.getQuantity().setScale(uomPrecision));
|
||||
itemBean.setQty(orderLineBean.getQuantity().setScale(uomPrecision, BigDecimal.ROUND_HALF_UP));
|
||||
itemBean.setIsDiscountOnInclUnitPrice(false);
|
||||
itemBean.setIsDiscountOnPercentage(false);
|
||||
itemBean.setIsDiscountOnTotal(false);
|
||||
|
@ -1058,7 +1058,7 @@ public class StockManager
|
|||
itemBean.setBarCode(barcode);
|
||||
itemBean.setPriceListId(bean.getPriceListId());
|
||||
itemBean.setDescription(description);
|
||||
itemBean.setQtyCount((bean.getQtyCount().setScale(uomPrecision)));
|
||||
itemBean.setQtyCount((bean.getQtyCount().setScale(uomPrecision, BigDecimal.ROUND_HALF_UP)));
|
||||
itemBean.setQtyBook(pBean.getQtyOnHand());
|
||||
itemBean.setQtyCsv(bean.getQtyCsv());
|
||||
|
||||
|
|
|
@ -602,7 +602,7 @@ public class Product
|
|||
// Get Rounding Precision
|
||||
int StdPrecision = getUOMPrecision(M_ProductBOM_ID);
|
||||
// How much can we make with this product
|
||||
productQuantity = productQuantity.setScale(StdPrecision)
|
||||
productQuantity = productQuantity.setScale(StdPrecision, BigDecimal.ROUND_HALF_UP)
|
||||
.divide(bomQty, BigDecimal.ROUND_HALF_UP);
|
||||
// How much can we make overall
|
||||
if (productQuantity.compareTo(quantity) < 0)
|
||||
|
|
|
@ -794,7 +794,7 @@ public class WPAttributeDialog extends Window implements EventListener
|
|||
mandatory += " - " + attributes[i].getName();
|
||||
//setMAttributeInstance doesn't work without decimal point
|
||||
if (value != null && value.scale() == 0)
|
||||
value = value.setScale(1);
|
||||
value = value.setScale(1, BigDecimal.ROUND_HALF_UP);
|
||||
attributes[i].setMAttributeInstance(m_M_AttributeSetInstance_ID, value);
|
||||
}
|
||||
else
|
||||
|
|
Loading…
Reference in New Issue