details: /erp/devel/main/rev/224a37b46fd9 changeset: 8371:224a37b46fd9 user: Asier Lostalé <asier.lostale <at> openbravo.com> date: Fri Sep 10 09:16:41 2010 +0200 summary: fixed bug 14501: licenseRestrictions is loaded from <source.path> directory
Now license restrictions is in the same package directory as ActivationKey class is. details: /erp/devel/main/rev/fd51a5f4448f changeset: 8372:fd51a5f4448f user: Adrián Romero <adrianromero <at> openbravo.com> date: Fri Sep 10 12:23:24 2010 +0200 summary: Fixes issue 0014348: Line Net Amount is rounded when there is no PriceList in Requisition's header It has been modified the Requisition Lines callout to not to round when there is no price list defined in the header. details: /erp/devel/main/rev/f6779ed6c074 changeset: 8373:f6779ed6c074 user: RM packaging bot <staff.rm <at> openbravo.com> date: Fri Sep 10 16:59:48 2010 +0000 summary: CI: promote changesets from pi to main diffstat: config/licenseRestrictions | 1 - src-db/database/sourcedata/AD_MODULE.xml | 2 +- src/build.xml | 1 + src/org/openbravo/erpCommon/ad_callouts/SL_RequisitionLine_Amt.java | 63 +++++---- src/org/openbravo/erpCommon/obps/ActivationKey.java | 10 +- src/org/openbravo/erpCommon/obps/licenseRestrictions | 1 + 6 files changed, 46 insertions(+), 32 deletions(-) diffs (191 lines): diff -r 4ed5b7e9b0df -r f6779ed6c074 config/licenseRestrictions --- a/config/licenseRestrictions Thu Sep 09 19:18:58 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -IeqpfXkoobemyDLAJHNBi3JrTdjgnU0BnGiX9k78CBHK1Eqdek/Lsi/HpeBev9c8sNQPOf9nwq8jWE4j7X4e6TUzdPX5xukYcTshjeB3wKh9Y6LE5rgEw+OqUm8bcaKH6Nm5Efg2yQnwsHqqTyjFQPXa9IdijkazSRrAEVg/X0WPMPEYYQRikHlz1CDJPiqEeQIhMejebxNmHa/VTLN5Hmhc+lyBfRVseGdJeJaf2Nh1YMwunKFAGMNKwPFFhqLyAXoGsNFs2BK5yPTgOEWaFRS+5Dei4fewUm7GI5k+a4xZ1qDrjYl+C/p6vod1oYf+KFsfH1P07v2k7J4VQ71XBANYXXDM81bgEWZJzz5F9mhUtabroQdejQdcTqGQPpX2ZOhmEfgelzN7WINpIF8rQHiMeVty8m3TG+zSTkc/Tj53UJaV8mjZ+cWSUAI7PFwIDbxeUcktfwV85yzpxAxu6Fln6h6fpxlmzy3DYhjBNTpMKYmjJX0ilomTCAivh31pfCMDOkoLwMmDQoov/bCPJfLej9RlhmC0Y1EswNL/IAbuINX3DNk2+G8i7yXUOE6FsUtDJ6WdVhSKw0BvCH/28oJ38rfx3aCcuLHjAJI23L5RjlQlqnVsGOZsDeJ5UWQGeBotYJWdfz1mSRAiPB4RE6dv9Ap0X90Y0MDYrJP2jW2FmIrY1R5UTh2XcvAomsToZdwLrolZIWe26RIn1yYRpGEf2wqg5sGQaOxQ39BB11Xhj2bzz96mnnqSP6GZiv52/cibVcp8VtErmClvF4OByPuKsswTUD8Fs9FYMNv+myfJ928PxuHmpjT99igMw7NNtbSD+lPckVSM9kKvUIuWxUgnSaly9FG2oP1DM2alkI9Vdc77EHW8Vjz5eID0EjM04rDKNvsbJygMCPF3XWaA2rpnUgcRB5Or0lCDe/z/zOoWK3p9N19TguH8y74cl0xd+jpkdfqfVEyUxqtTIG4/+0DZ8+VzPmOPArrFM51piby1Ym2L/J3Uuugiw1r8+RpRVdiTMLHKbe15KpuECf8W9KMpaYc7hzXo94aJXKvWuui1Y1vcrJhAXdN0ib8Wjz8473ecV/STAt5njB4dJiSjBfek+JYeXZz/Ft/fkPlvzW1DVbHx9RCmu068DWefuNvWMqJLr69pKCrea8PZXBJpit9tx/JSj454C1FOwigR+qsi24FOaaQ5Zy6m3VReW0cZ+9sQXLDwkjOfjvzJPFQ9A7kDTYOYzorjHPbCwy0JyXAxkHQ+wlV5+52WeM9uiTxAWtoyqcr+OhBb1btFqiaDhetH6LqxcGXm+0iLckp+cu4FY2t4eYY81PRKBUUCrdh8N0+N68P8XMht4rWIzeRzLVlY1PnFz0BDZa6IecwK2egOPmlH+xG8uhOYgIbbUE7nhcz8b1MDllGTOpTSG1e9UDJj8wBTWzeVIrVpJRztWjldY45skuAohNh7PxxDubeUv7701GVBqlg1mO2rb19evzDAMLUHF4i5exoWEy9uQqrF/qMT+W4I0zwJbgFHTs1HIpgQelm/gSysdnbnbQs14YceXv+BYMYurafh7N2lkUMnmkVkHpPk/08R0hCeOtKjkbSUCuOy9XPg153iJmxE3NCBeZl/gY2mmsMNtaswMEN05HKSkRqlu/CKedv/HrYYhXtdbaqkL8Ay0mcRtXimQCvr3aNQ9fcQLuLpmqJh5Uo= \ No newline at end of file diff -r 4ed5b7e9b0df -r f6779ed6c074 src-db/database/sourcedata/AD_MODULE.xml --- a/src-db/database/sourcedata/AD_MODULE.xml Thu Sep 09 19:18:58 2010 +0200 +++ b/src-db/database/sourcedata/AD_MODULE.xml Fri Sep 10 16:59:48 2010 +0000 @@ -6,7 +6,7 @@ <!--0--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID> <!--0--> <ISACTIVE><![CDATA[Y]]></ISACTIVE> <!--0--> <NAME><![CDATA[core]]></NAME> -<!--0--> <VERSION><![CDATA[2.50.18350]]></VERSION> +<!--0--> <VERSION><![CDATA[2.50.18372]]></VERSION> <!--0--> <DESCRIPTION><![CDATA[Core module is the base one]]></DESCRIPTION> <!--0--> <HELP><![CDATA[Core module is the base one, all developments in core are included as part of the standard Openbravo ERP.]]></HELP> <!--0--> <URL><![CDATA[www.openbravo.com]]></URL> diff -r 4ed5b7e9b0df -r f6779ed6c074 src/build.xml --- a/src/build.xml Thu Sep 09 19:18:58 2010 +0200 +++ b/src/build.xml Fri Sep 10 16:59:48 2010 +0000 @@ -502,6 +502,7 @@ <copy todir="${build}"> <fileset file="${base.config}/quartz.properties" /> </copy> + <copy todir="${build}/org/openbravo/erpCommon/obps" file="${basedir}/org/openbravo/erpCommon/obps/licenseRestrictions"/> <antcall target="build.local.context" inheritAll="true" inheritrefs="true" /> </target> diff -r 4ed5b7e9b0df -r f6779ed6c074 src/org/openbravo/erpCommon/ad_callouts/SL_RequisitionLine_Amt.java --- a/src/org/openbravo/erpCommon/ad_callouts/SL_RequisitionLine_Amt.java Thu Sep 09 19:18:58 2010 +0200 +++ b/src/org/openbravo/erpCommon/ad_callouts/SL_RequisitionLine_Amt.java Fri Sep 10 16:59:48 2010 +0000 @@ -57,45 +57,50 @@ } catch (ServletException ex) { pageErrorCallOut(response); } - } else + } else { pageError(response); + } } private void printPage(HttpServletResponse response, VariablesSecureApp vars, String strQty, String strPriceActual, String strDiscount, String strPriceList, String strChanged) throws IOException, ServletException { + if (log4j.isDebugEnabled()) log4j.debug("Output: dataSheet"); + XmlDocument xmlDocument = xmlEngine.readXmlTemplate( "org/openbravo/erpCommon/ad_callouts/CallOut").createXmlDocument(); String strLineNetAmt = ""; StringBuffer resultado = new StringBuffer(); resultado.append("var calloutName='SL_RequisitionLine_Amt';\n\n"); resultado.append("var respuesta = new Array("); + if (!strPriceActual.equals("")) { + BigDecimal qty, LineNetAmt, priceActual, discount, priceList; String strRequisition = vars.getStringParameter("inpmRequisitionId"); SLRequisitionLineAmtData[] data = SLRequisitionLineAmtData.select(this, strRequisition); - String strPrecision = "0", strPricePrecision = "0"; + + Integer stdPrecision = null; + Integer pricePrecision = null; + if (data != null && data.length > 0) { - strPrecision = data[0].stdprecision; - strPricePrecision = data[0].priceprecision; + stdPrecision = Integer.valueOf(data[0].stdprecision); + pricePrecision = Integer.valueOf(data[0].priceprecision); } - int stdPrecision = Integer.valueOf(strPrecision).intValue(); - int PricePrecision = Integer.valueOf(strPricePrecision).intValue(); - - priceActual = (strPriceActual.equals("") ? ZERO : (new BigDecimal(strPriceActual))).setScale( - PricePrecision, BigDecimal.ROUND_HALF_UP); + priceActual = strPriceActual.equals("") ? ZERO : internalRound( + new BigDecimal(strPriceActual), pricePrecision); discount = (strDiscount.equals("") ? ZERO : new BigDecimal(strDiscount)); priceList = (strPriceList.equals("") ? ZERO : new BigDecimal(strPriceList)); qty = (strQty.equals("") ? ZERO : new BigDecimal(strQty)); // calculating discount if (strChanged.equals("inppricelist") || strChanged.equals("inppriceactual")) { - if (priceList.compareTo(ZERO) == 0) + if (priceList.compareTo(ZERO) == 0) { discount = ZERO; - else { + } else { if (log4j.isDebugEnabled()) log4j.debug("pricelist:" + Double.toString(priceList.doubleValue())); if (log4j.isDebugEnabled()) @@ -103,38 +108,37 @@ discount = ((priceList.subtract(priceActual)).divide(priceList, 12, BigDecimal.ROUND_HALF_EVEN)).multiply(new BigDecimal("100")); } + if (log4j.isDebugEnabled()) log4j.debug("Discount: " + discount.toString()); - if (discount.scale() > stdPrecision) - discount = discount.setScale(stdPrecision, BigDecimal.ROUND_HALF_UP); + discount = internalRound(discount, stdPrecision); if (log4j.isDebugEnabled()) log4j.debug("Discount rounded: " + discount.toString()); - if (!strDiscount.equals(discount.toString())) + + if (!strDiscount.equals(discount.toString())) { resultado.append("new Array(\"inpdiscount\", " + discount.toString() + "),"); + } } else if (strChanged.equals("inpdiscount")) { // calculate std and // actual BigDecimal discount1 = null; - if (priceList.compareTo(ZERO) != 0) - discount1 = (((priceList.subtract(priceActual)).divide(priceList, 12, - BigDecimal.ROUND_HALF_EVEN)).multiply(new BigDecimal("100"))).setScale(stdPrecision, - BigDecimal.ROUND_HALF_UP); - else + if (priceList.compareTo(ZERO) != 0) { + discount1 = internalRound(((priceList.subtract(priceActual)).divide(priceList, 12, + BigDecimal.ROUND_HALF_EVEN)).multiply(new BigDecimal("100")), stdPrecision); + } else { discount1 = new BigDecimal(0); - BigDecimal discount2 = discount.setScale(stdPrecision, BigDecimal.ROUND_HALF_UP); - if (discount1.compareTo(discount2) != 0) // checks if rounded - // discount has changed - { + } + BigDecimal discount2 = internalRound(discount, stdPrecision); + if (discount1.compareTo(discount2) != 0) { // checks if rounded + // discount has changed priceActual = priceList.subtract(priceList.multiply(discount).divide( new BigDecimal("100"), 12, BigDecimal.ROUND_HALF_EVEN)); - if (priceActual.scale() > PricePrecision) - priceActual = priceActual.setScale(PricePrecision, BigDecimal.ROUND_HALF_UP); + priceActual = internalRound(priceActual, pricePrecision); resultado.append("new Array(\"inppriceactual\", " + priceActual.toString() + "),"); } } LineNetAmt = qty.multiply(priceActual); - if (LineNetAmt.scale() > stdPrecision) - LineNetAmt = LineNetAmt.setScale(stdPrecision, BigDecimal.ROUND_HALF_UP); + LineNetAmt = internalRound(LineNetAmt, stdPrecision); strLineNetAmt = LineNetAmt.toString(); } @@ -148,4 +152,9 @@ out.close(); } + + private BigDecimal internalRound(BigDecimal value, Integer precision) { + return (precision == null || value.scale() <= precision) ? value : value.setScale(precision, + BigDecimal.ROUND_HALF_UP); + } } diff -r 4ed5b7e9b0df -r f6779ed6c074 src/org/openbravo/erpCommon/obps/ActivationKey.java --- a/src/org/openbravo/erpCommon/obps/ActivationKey.java Thu Sep 09 19:18:58 2010 +0200 +++ b/src/org/openbravo/erpCommon/obps/ActivationKey.java Fri Sep 10 16:59:48 2010 +0000 @@ -26,6 +26,7 @@ import java.io.InputStreamReader; import java.io.ObjectInputStream; import java.math.BigInteger; +import java.net.URL; import java.security.KeyFactory; import java.security.PublicKey; import java.security.Signature; @@ -368,9 +369,12 @@ } try { - File restrictionsFile = new File(OBPropertiesProvider.getInstance().getOpenbravoProperties() - .get("source.path") - + "/config/licenseRestrictions"); + // read restriction file from this package's directory + URL url = this.getClass().getResource(getClass().getSimpleName() + ".class"); + File classDir = new File(url.getPath()); + File restrictionsFile = new File(classDir.getParent(), "licenseRestrictions"); + log4j.debug("Restrictions file: " + restrictionsFile.getAbsolutePath()); + FileInputStream fis = new FileInputStream(restrictionsFile); byte fileContent[] = new byte[(int) restrictionsFile.length()]; fis.read(fileContent); diff -r 4ed5b7e9b0df -r f6779ed6c074 src/org/openbravo/erpCommon/obps/licenseRestrictions --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/org/openbravo/erpCommon/obps/licenseRestrictions Fri Sep 10 16:59:48 2010 +0000 @@ -0,0 +1,1 @@ +IeqpfXkoobemyDLAJHNBi3JrTdjgnU0BnGiX9k78CBHK1Eqdek/Lsi/HpeBev9c8sNQPOf9nwq8jWE4j7X4e6TUzdPX5xukYcTshjeB3wKh9Y6LE5rgEw+OqUm8bcaKH6Nm5Efg2yQnwsHqqTyjFQPXa9IdijkazSRrAEVg/X0WPMPEYYQRikHlz1CDJPiqEeQIhMejebxNmHa/VTLN5Hmhc+lyBfRVseGdJeJaf2Nh1YMwunKFAGMNKwPFFhqLyAXoGsNFs2BK5yPTgOEWaFRS+5Dei4fewUm7GI5k+a4xZ1qDrjYl+C/p6vod1oYf+KFsfH1P07v2k7J4VQ71XBANYXXDM81bgEWZJzz5F9mhUtabroQdejQdcTqGQPpX2ZOhmEfgelzN7WINpIF8rQHiMeVty8m3TG+zSTkc/Tj53UJaV8mjZ+cWSUAI7PFwIDbxeUcktfwV85yzpxAxu6Fln6h6fpxlmzy3DYhjBNTpMKYmjJX0ilomTCAivh31pfCMDOkoLwMmDQoov/bCPJfLej9RlhmC0Y1EswNL/IAbuINX3DNk2+G8i7yXUOE6FsUtDJ6WdVhSKw0BvCH/28oJ38rfx3aCcuLHjAJI23L5RjlQlqnVsGOZsDeJ5UWQGeBotYJWdfz1mSRAiPB4RE6dv9Ap0X90Y0MDYrJP2jW2FmIrY1R5UTh2XcvAomsToZdwLrolZIWe26RIn1yYRpGEf2wqg5sGQaOxQ39BB11Xhj2bzz96mnnqSP6GZiv52/cibVcp8VtErmClvF4OByPuKsswTUD8Fs9FYMNv+myfJ928PxuHmpjT99igMw7NNtbSD+lPckVSM9kKvUIuWxUgnSaly9FG2oP1DM2alkI9Vdc77EHW8Vjz5eID0EjM04rDKNvsbJygMCPF3XWaA2rpnUgcRB5Or0lCDe/z/zOoWK3p9N19TguH8y74cl0xd+jpkdfqfVEyUxqtTIG4/+0DZ8+VzPmOPArrFM51piby1Ym2L/J3Uuugiw1r8+RpRVdiTMLHKbe15KpuECf8W9KMpaYc7hzXo94aJXKvWuui1Y1vcrJhAXdN0ib8Wjz8473ecV/STAt5njB4dJiSjBfek+JYeXZz/Ft/fkPlvzW1DVbHx9RCmu068DWefuNvWMqJLr69pKCrea8PZXBJpit9tx/JSj454C1FOwigR+qsi24FOaaQ5Zy6m3VReW0cZ+9sQXLDwkjOfjvzJPFQ9A7kDTYOYzorjHPbCwy0JyXAxkHQ+wlV5+52WeM9uiTxAWtoyqcr+OhBb1btFqiaDhetH6LqxcGXm+0iLckp+cu4FY2t4eYY81PRKBUUCrdh8N0+N68P8XMht4rWIzeRzLVlY1PnFz0BDZa6IecwK2egOPmlH+xG8uhOYgIbbUE7nhcz8b1MDllGTOpTSG1e9UDJj8wBTWzeVIrVpJRztWjldY45skuAohNh7PxxDubeUv7701GVBqlg1mO2rb19evzDAMLUHF4i5exoWEy9uQqrF/qMT+W4I0zwJbgFHTs1HIpgQelm/gSysdnbnbQs14YceXv+BYMYurafh7N2lkUMnmkVkHpPk/08R0hCeOtKjkbSUCuOy9XPg153iJmxE3NCBeZl/gY2mmsMNtaswMEN05HKSkRqlu/CKedv/HrYYhXtdbaqkL8Ay0mcRtXimQCvr3aNQ9fcQLuLpmqJh5Uo= \ No newline at end of file ------------------------------------------------------------------------------ Start uncovering the many advantages of virtual appliances and start using them to simplify application deployment and accelerate your shift to cloud computing http://p.sf.net/sfu/novell-sfdev2dev _______________________________________________ Openbravo-commits mailing list Openbravo-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openbravo-commits