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

Reply via email to