details:   https://code.openbravo.com/erp/devel/pi/rev/7ba289b96606
changeset: 34926:7ba289b96606
user:      Mark <markmm82 <at> gmail.com>
date:      Mon Oct 29 12:14:27 2018 -0400
summary:   Fixes issue 39517: Sales Invoice Dimensional Report is showing a 
positive Margin
% when the Profit is negative

Set the Margin % with the same sign of the profit.

diffstat:

 
src/org/openbravo/erpCommon/ad_reports/ReportInvoiceCustomerDimensionalAnalysesComparativeJR.jrxml
   |  44 +++++-----
 
src/org/openbravo/erpCommon/ad_reports/ReportInvoiceCustomerDimensionalAnalysesJR_data.xsql
          |   2 +-
 
src/org/openbravo/erpCommon/ad_reports/ReportInvoiceCustomerDimensionalAnalysesNoComparativeJR.jrxml
 |  22 ++--
 
src/org/openbravo/erpCommon/ad_reports/ReportInvoiceCustomerDimensionalAnalysesXLS.jrxml
             |   2 +-
 4 files changed, 35 insertions(+), 35 deletions(-)

diffs (187 lines):

diff -r 2ae28dc87483 -r 7ba289b96606 
src/org/openbravo/erpCommon/ad_reports/ReportInvoiceCustomerDimensionalAnalysesComparativeJR.jrxml
--- 
a/src/org/openbravo/erpCommon/ad_reports/ReportInvoiceCustomerDimensionalAnalysesComparativeJR.jrxml
        Wed Oct 31 05:07:53 2018 +0000
+++ 
b/src/org/openbravo/erpCommon/ad_reports/ReportInvoiceCustomerDimensionalAnalysesComparativeJR.jrxml
        Mon Oct 29 12:14:27 2018 -0400
@@ -634,64 +634,64 @@
                
<variableExpression><![CDATA[$V{AMOUNTREF_SUM10}.subtract($V{COSTREF_SUM10})]]></variableExpression>
        </variable>
        <variable name="MARGIN_1" class="java.math.BigDecimal" 
resetType="Group" resetGroup="NIVEL1">
-               
<variableExpression><![CDATA[($V{AMOUNT_SUM1}.compareTo(BigDecimal.ZERO)==0)? 
BigDecimal.ZERO: $V{PROFIT_1}.divide( $V{AMOUNT_SUM1}, 4, 
BigDecimal.ROUND_HALF_UP ).multiply(new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFIT_1}.signum()))]]></variableExpression>
+               
<variableExpression><![CDATA[($V{AMOUNT_SUM1}.compareTo(BigDecimal.ZERO)==0)? 
BigDecimal.ZERO: $V{PROFIT_1}.divide( $V{AMOUNT_SUM1}, 4, 
BigDecimal.ROUND_HALF_UP ).abs().multiply(new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFIT_1}.signum()))]]></variableExpression>
        </variable>
        <variable name="MARGIN_2" class="java.math.BigDecimal" 
resetType="Group" resetGroup="NIVEL2">
-               
<variableExpression><![CDATA[($V{AMOUNT_SUM2}.compareTo(BigDecimal.ZERO)==0)? 
BigDecimal.ZERO: $V{PROFIT_2}.divide( $V{AMOUNT_SUM2}, 4, 
BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFIT_2}.signum()))]]></variableExpression>
+               
<variableExpression><![CDATA[($V{AMOUNT_SUM2}.compareTo(BigDecimal.ZERO)==0)? 
BigDecimal.ZERO: $V{PROFIT_2}.divide( $V{AMOUNT_SUM2}, 4, 
BigDecimal.ROUND_HALF_UP).abs().multiply(new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFIT_2}.signum()))]]></variableExpression>
        </variable>
        <variable name="MARGIN_3" class="java.math.BigDecimal" 
resetType="Group" resetGroup="NIVEL3">
-               
<variableExpression><![CDATA[($V{AMOUNT_SUM3}.compareTo(BigDecimal.ZERO)==0)? 
BigDecimal.ZERO: $V{PROFIT_3}.divide( $V{AMOUNT_SUM3}, 4, 
BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFIT_3}.signum()))]]></variableExpression>
+               
<variableExpression><![CDATA[($V{AMOUNT_SUM3}.compareTo(BigDecimal.ZERO)==0)? 
BigDecimal.ZERO: $V{PROFIT_3}.divide( $V{AMOUNT_SUM3}, 4, 
BigDecimal.ROUND_HALF_UP).abs().multiply(new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFIT_3}.signum()))]]></variableExpression>
        </variable>
        <variable name="MARGIN_4" class="java.math.BigDecimal" 
resetType="Group" resetGroup="NIVEL4">
-               
<variableExpression><![CDATA[($V{AMOUNT_SUM4}.compareTo(BigDecimal.ZERO)==0)? 
BigDecimal.ZERO: $V{PROFIT_4}.divide( $V{AMOUNT_SUM4}, 4, 
BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFIT_4}.signum()))]]></variableExpression>
+               
<variableExpression><![CDATA[($V{AMOUNT_SUM4}.compareTo(BigDecimal.ZERO)==0)? 
BigDecimal.ZERO: $V{PROFIT_4}.divide( $V{AMOUNT_SUM4}, 4, 
BigDecimal.ROUND_HALF_UP).abs().multiply(new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFIT_4}.signum()))]]></variableExpression>
        </variable>
        <variable name="MARGIN_5" class="java.math.BigDecimal" 
resetType="Group" resetGroup="NIVEL5">
-               
<variableExpression><![CDATA[($V{AMOUNT_SUM5}.compareTo(BigDecimal.ZERO)==0)? 
BigDecimal.ZERO: $V{PROFIT_5}.divide( $V{AMOUNT_SUM5}, 4, 
BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFIT_5}.signum()))]]></variableExpression>
+               
<variableExpression><![CDATA[($V{AMOUNT_SUM5}.compareTo(BigDecimal.ZERO)==0)? 
BigDecimal.ZERO: $V{PROFIT_5}.divide( $V{AMOUNT_SUM5}, 4, 
BigDecimal.ROUND_HALF_UP).abs().multiply(new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFIT_5}.signum()))]]></variableExpression>
        </variable>
        <variable name="MARGIN_6" class="java.math.BigDecimal" 
resetType="Group" resetGroup="NIVEL6">
-               
<variableExpression><![CDATA[($V{AMOUNT_SUM6}.compareTo(BigDecimal.ZERO)==0)? 
BigDecimal.ZERO: $V{PROFIT_6}.divide( $V{AMOUNT_SUM6}, 4, 
BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFIT_6}.signum()))]]></variableExpression>
+               
<variableExpression><![CDATA[($V{AMOUNT_SUM6}.compareTo(BigDecimal.ZERO)==0)? 
BigDecimal.ZERO: $V{PROFIT_6}.divide( $V{AMOUNT_SUM6}, 4, 
BigDecimal.ROUND_HALF_UP).abs().multiply(new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFIT_6}.signum()))]]></variableExpression>
        </variable>
        <variable name="MARGIN_7" class="java.math.BigDecimal" 
resetType="Group" resetGroup="NIVEL7">
-               
<variableExpression><![CDATA[($V{AMOUNT_SUM7}.compareTo(BigDecimal.ZERO)==0)? 
BigDecimal.ZERO: $V{PROFIT_7}.divide( $V{AMOUNT_SUM7}, 4, 
BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFIT_7}.signum()))]]></variableExpression>
+               
<variableExpression><![CDATA[($V{AMOUNT_SUM7}.compareTo(BigDecimal.ZERO)==0)? 
BigDecimal.ZERO: $V{PROFIT_7}.divide( $V{AMOUNT_SUM7}, 4, 
BigDecimal.ROUND_HALF_UP).abs().multiply(new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFIT_7}.signum()))]]></variableExpression>
        </variable>
        <variable name="MARGIN_8" class="java.math.BigDecimal" 
resetType="Group" resetGroup="NIVEL8">
-               
<variableExpression><![CDATA[($V{AMOUNT_SUM8}.compareTo(BigDecimal.ZERO)==0)? 
BigDecimal.ZERO: $V{PROFIT_8}.divide( $V{AMOUNT_SUM8}, 4, 
BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFIT_8}.signum()))]]></variableExpression>
+               
<variableExpression><![CDATA[($V{AMOUNT_SUM8}.compareTo(BigDecimal.ZERO)==0)? 
BigDecimal.ZERO: $V{PROFIT_8}.divide( $V{AMOUNT_SUM8}, 4, 
BigDecimal.ROUND_HALF_UP).abs().multiply(new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFIT_8}.signum()))]]></variableExpression>
        </variable>
        <variable name="MARGIN_9" class="java.math.BigDecimal" 
resetType="Group" resetGroup="NIVEL9">
-               
<variableExpression><![CDATA[($V{AMOUNT_SUM9}.compareTo(BigDecimal.ZERO)==0)? 
BigDecimal.ZERO: $V{PROFIT_9}.divide( $V{AMOUNT_SUM9}, 4, 
BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFIT_9}.signum()))]]></variableExpression>
+               
<variableExpression><![CDATA[($V{AMOUNT_SUM9}.compareTo(BigDecimal.ZERO)==0)? 
BigDecimal.ZERO: $V{PROFIT_9}.divide( $V{AMOUNT_SUM9}, 4, 
BigDecimal.ROUND_HALF_UP).abs().multiply(new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFIT_9}.signum()))]]></variableExpression>
        </variable>
        <variable name="MARGIN_10" class="java.math.BigDecimal" 
resetType="Group" resetGroup="NIVEL10">
-               
<variableExpression><![CDATA[($V{AMOUNT_SUM10}.compareTo(BigDecimal.ZERO)==0)? 
BigDecimal.ZERO:$V{PROFIT_10}.divide( $V{AMOUNT_SUM10}, 4, 
BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFIT_10}.signum()))]]></variableExpression>
+               
<variableExpression><![CDATA[($V{AMOUNT_SUM10}.compareTo(BigDecimal.ZERO)==0)? 
BigDecimal.ZERO:$V{PROFIT_10}.divide( $V{AMOUNT_SUM10}, 4, 
BigDecimal.ROUND_HALF_UP).abs().multiply(new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFIT_10}.signum()))]]></variableExpression>
        </variable>
        <variable name="MARGINREF_1" class="java.math.BigDecimal" 
resetType="Group" resetGroup="NIVEL1">
-               
<variableExpression><![CDATA[($V{AMOUNTREF_SUM1}.compareTo(BigDecimal.ZERO)==0)?BigDecimal.ZERO:$V{PROFITREF_1}.divide(
 $V{AMOUNTREF_SUM1}, 4, BigDecimal.ROUND_HALF_UP ).multiply(new 
BigDecimal("100")).multiply(new 
BigDecimal($V{PROFITREF_1}.signum()))]]></variableExpression>
+               
<variableExpression><![CDATA[($V{AMOUNTREF_SUM1}.compareTo(BigDecimal.ZERO)==0)?BigDecimal.ZERO:$V{PROFITREF_1}.divide(
 $V{AMOUNTREF_SUM1}, 4, BigDecimal.ROUND_HALF_UP ).abs().multiply(new 
BigDecimal("100")).multiply(new 
BigDecimal($V{PROFITREF_1}.signum()))]]></variableExpression>
        </variable>
        <variable name="MARGINREF_2" class="java.math.BigDecimal" 
resetType="Group" resetGroup="NIVEL2">
-               
<variableExpression><![CDATA[($V{AMOUNTREF_SUM2}.compareTo(BigDecimal.ZERO)==0)?
 BigDecimal.ZERO: $V{PROFITREF_2}.divide( $V{AMOUNTREF_SUM2}, 4, 
BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFITREF_2}.signum()))]]></variableExpression>
+               
<variableExpression><![CDATA[($V{AMOUNTREF_SUM2}.compareTo(BigDecimal.ZERO)==0)?
 BigDecimal.ZERO: $V{PROFITREF_2}.divide( $V{AMOUNTREF_SUM2}, 4, 
BigDecimal.ROUND_HALF_UP).abs().multiply(new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFITREF_2}.signum()))]]></variableExpression>
        </variable>
        <variable name="MARGINREF_3" class="java.math.BigDecimal" 
resetType="Group" resetGroup="NIVEL3">
-               
<variableExpression><![CDATA[($V{AMOUNTREF_SUM3}.compareTo(BigDecimal.ZERO)==0)?
 BigDecimal.ZERO: $V{PROFITREF_3}.divide( $V{AMOUNTREF_SUM3}, 4, 
BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFITREF_3}.signum()))]]></variableExpression>
+               
<variableExpression><![CDATA[($V{AMOUNTREF_SUM3}.compareTo(BigDecimal.ZERO)==0)?
 BigDecimal.ZERO: $V{PROFITREF_3}.divide( $V{AMOUNTREF_SUM3}, 4, 
BigDecimal.ROUND_HALF_UP).abs().multiply(new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFITREF_3}.signum()))]]></variableExpression>
        </variable>
        <variable name="MARGINREF_4" class="java.math.BigDecimal" 
resetType="Group" resetGroup="NIVEL4">
-               
<variableExpression><![CDATA[($V{AMOUNTREF_SUM4}.compareTo(BigDecimal.ZERO)==0)?
 BigDecimal.ZERO: $V{PROFITREF_4}.divide( $V{AMOUNTREF_SUM4}, 4, 
BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFITREF_4}.signum()))]]></variableExpression>
+               
<variableExpression><![CDATA[($V{AMOUNTREF_SUM4}.compareTo(BigDecimal.ZERO)==0)?
 BigDecimal.ZERO: $V{PROFITREF_4}.divide( $V{AMOUNTREF_SUM4}, 4, 
BigDecimal.ROUND_HALF_UP).abs().multiply(new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFITREF_4}.signum()))]]></variableExpression>
        </variable>
        <variable name="MARGINREF_5" class="java.math.BigDecimal" 
resetType="Group" resetGroup="NIVEL5">
-               
<variableExpression><![CDATA[($V{AMOUNTREF_SUM5}.compareTo(BigDecimal.ZERO)==0)?
 BigDecimal.ZERO: $V{PROFITREF_5}.divide( $V{AMOUNTREF_SUM5}, 4, 
BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFITREF_5}.signum()))]]></variableExpression>
+               
<variableExpression><![CDATA[($V{AMOUNTREF_SUM5}.compareTo(BigDecimal.ZERO)==0)?
 BigDecimal.ZERO: $V{PROFITREF_5}.divide( $V{AMOUNTREF_SUM5}, 4, 
BigDecimal.ROUND_HALF_UP).abs().multiply(new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFITREF_5}.signum()))]]></variableExpression>
        </variable>
        <variable name="MARGINREF_6" class="java.math.BigDecimal" 
resetType="Group" resetGroup="NIVEL6">
-               
<variableExpression><![CDATA[($V{AMOUNTREF_SUM6}.compareTo(BigDecimal.ZERO)==0)?
 BigDecimal.ZERO: $V{PROFITREF_6}.divide( $V{AMOUNTREF_SUM6}, 4, 
BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFITREF_6}.signum()))]]></variableExpression>
+               
<variableExpression><![CDATA[($V{AMOUNTREF_SUM6}.compareTo(BigDecimal.ZERO)==0)?
 BigDecimal.ZERO: $V{PROFITREF_6}.divide( $V{AMOUNTREF_SUM6}, 4, 
BigDecimal.ROUND_HALF_UP).abs().multiply(new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFITREF_6}.signum()))]]></variableExpression>
        </variable>
        <variable name="MARGINREF_7" class="java.math.BigDecimal" 
resetType="Group" resetGroup="NIVEL7">
-               
<variableExpression><![CDATA[($V{AMOUNTREF_SUM7}.compareTo(BigDecimal.ZERO)==0)?
 BigDecimal.ZERO: $V{PROFITREF_7}.divide( $V{AMOUNTREF_SUM7}, 4, 
BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFITREF_7}.signum()))]]></variableExpression>
+               
<variableExpression><![CDATA[($V{AMOUNTREF_SUM7}.compareTo(BigDecimal.ZERO)==0)?
 BigDecimal.ZERO: $V{PROFITREF_7}.divide( $V{AMOUNTREF_SUM7}, 4, 
BigDecimal.ROUND_HALF_UP).abs().multiply(new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFITREF_7}.signum()))]]></variableExpression>
        </variable>
        <variable name="MARGINREF_8" class="java.math.BigDecimal" 
resetType="Group" resetGroup="NIVEL8">
-               
<variableExpression><![CDATA[($V{AMOUNTREF_SUM8}.compareTo(BigDecimal.ZERO)==0)?
 BigDecimal.ZERO: $V{PROFITREF_8}.divide( $V{AMOUNTREF_SUM8}, 4, 
BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFITREF_8}.signum()))]]></variableExpression>
+               
<variableExpression><![CDATA[($V{AMOUNTREF_SUM8}.compareTo(BigDecimal.ZERO)==0)?
 BigDecimal.ZERO: $V{PROFITREF_8}.divide( $V{AMOUNTREF_SUM8}, 4, 
BigDecimal.ROUND_HALF_UP).abs().multiply(new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFITREF_8}.signum()))]]></variableExpression>
        </variable>
        <variable name="MARGINREF_9" class="java.math.BigDecimal" 
resetType="Group" resetGroup="NIVEL9">
-               
<variableExpression><![CDATA[($V{AMOUNTREF_SUM9}.compareTo(BigDecimal.ZERO)==0)?
 BigDecimal.ZERO: $V{PROFITREF_9}.divide( $V{AMOUNTREF_SUM9}, 4, 
BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFITREF_9}.signum()))]]></variableExpression>
+               
<variableExpression><![CDATA[($V{AMOUNTREF_SUM9}.compareTo(BigDecimal.ZERO)==0)?
 BigDecimal.ZERO: $V{PROFITREF_9}.divide( $V{AMOUNTREF_SUM9}, 4, 
BigDecimal.ROUND_HALF_UP).abs().multiply(new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFITREF_9}.signum()))]]></variableExpression>
        </variable>
        <variable name="MARGINREF_10" class="java.math.BigDecimal" 
resetType="Group" resetGroup="NIVEL10">
-               
<variableExpression><![CDATA[($V{AMOUNTREF_SUM10}.compareTo(BigDecimal.ZERO)==0)?
 BigDecimal.ZERO:$V{PROFITREF_10}.divide( $V{AMOUNTREF_SUM10}, 4, 
BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFITREF_10}.signum()))]]></variableExpression>
+               
<variableExpression><![CDATA[($V{AMOUNTREF_SUM10}.compareTo(BigDecimal.ZERO)==0)?
 BigDecimal.ZERO:$V{PROFITREF_10}.divide( $V{AMOUNTREF_SUM10}, 4, 
BigDecimal.ROUND_HALF_UP).abs().multiply(new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFITREF_10}.signum()))]]></variableExpression>
        </variable>
        <variable name="WEIGHT_SUM1" class="java.math.BigDecimal" 
resetType="Group" resetGroup="NIVEL1" calculation="Sum">
                <variableExpression><![CDATA[$F{WEIGHT}]]></variableExpression>
@@ -862,7 +862,7 @@
                
<variableExpression><![CDATA[$V{AMOUNT_TOTAL}.subtract($V{COST_TOTAL})]]></variableExpression>
        </variable>
        <variable name="MARGIN_TOTAL" class="java.math.BigDecimal">
-               
<variableExpression><![CDATA[($V{AMOUNT_TOTAL}.compareTo(BigDecimal.ZERO)==0)? 
BigDecimal.ZERO: $V{PROFIT_TOTAL}.divide($V{AMOUNT_TOTAL}, 10, 
BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFIT_TOTAL}.signum()))]]></variableExpression>
+               
<variableExpression><![CDATA[($V{AMOUNT_TOTAL}.compareTo(BigDecimal.ZERO)==0)? 
BigDecimal.ZERO: $V{PROFIT_TOTAL}.divide($V{AMOUNT_TOTAL}, 10, 
BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")).abs().multiply(new 
BigDecimal($V{PROFIT_TOTAL}.signum()))]]></variableExpression>
        </variable>
        <variable name="COSTREF_TOTAL" class="java.math.BigDecimal" 
calculation="Sum">
                
<variableExpression><![CDATA[$F{CONVCOSTREF}]]></variableExpression>
@@ -871,7 +871,7 @@
                
<variableExpression><![CDATA[$V{AMOUNTREF_TOTAL}.subtract($V{COSTREF_TOTAL})]]></variableExpression>
        </variable>
        <variable name="MARGINREF_TOTAL" class="java.math.BigDecimal">
-               
<variableExpression><![CDATA[($V{AMOUNTREF_TOTAL}.compareTo(BigDecimal.ZERO)==0)?
 BigDecimal.ZERO: $V{PROREF_TOTAL}.divide($V{AMOUNTREF_TOTAL}, 10, 
BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")).multiply(new 
BigDecimal($V{PROREF_TOTAL}.signum()))]]></variableExpression>
+               
<variableExpression><![CDATA[($V{AMOUNTREF_TOTAL}.compareTo(BigDecimal.ZERO)==0)?
 BigDecimal.ZERO: $V{PROREF_TOTAL}.divide($V{AMOUNTREF_TOTAL}, 10, 
BigDecimal.ROUND_HALF_UP).abs().multiply(new BigDecimal("100")).multiply(new 
BigDecimal($V{PROREF_TOTAL}.signum()))]]></variableExpression>
        </variable>
        <variable name="MARGINDIFF_TOTAL" class="java.math.BigDecimal">
                
<variableExpression><![CDATA[$V{MARGIN_TOTAL}.subtract($V{MARGINREF_TOTAL})]]></variableExpression>
diff -r 2ae28dc87483 -r 7ba289b96606 
src/org/openbravo/erpCommon/ad_reports/ReportInvoiceCustomerDimensionalAnalysesJR_data.xsql
--- 
a/src/org/openbravo/erpCommon/ad_reports/ReportInvoiceCustomerDimensionalAnalysesJR_data.xsql
       Wed Oct 31 05:07:53 2018 +0000
+++ 
b/src/org/openbravo/erpCommon/ad_reports/ReportInvoiceCustomerDimensionalAnalysesJR_data.xsql
       Mon Oct 29 12:14:27 2018 -0400
@@ -1123,7 +1123,7 @@
     <Sql>
     <![CDATA[
       SELECT ORG, DOCTYPENAME, PARTNERGROUP, PARTNER, DOCUMENTNO, INVOICEDATE, 
PRODCATEGORY, PRODUCT, SEARCHKEY, UNITPRICE, 
-        AMOUNT, COST, (AMOUNT - COST) AS PROFIT, CASE WHEN AMOUNT <> 0 THEN 
ROUND((100 * (AMOUNT - COST) / AMOUNT), 2) * SIGN(AMOUNT - COST) ELSE 0 END AS 
MARGIN, 
+        AMOUNT, COST, (AMOUNT - COST) AS PROFIT, CASE WHEN AMOUNT <> 0 THEN 
ROUND((100 * ABS((AMOUNT - COST) / AMOUNT)), 2) * SIGN(AMOUNT - COST) ELSE 0 
END AS MARGIN, 
         WEIGHT, QTY, CONTACT, SALESREP, PROJECT, ADDRESS
         FROM (
           SELECT AD_ORG.NAME AS ORG, 
diff -r 2ae28dc87483 -r 7ba289b96606 
src/org/openbravo/erpCommon/ad_reports/ReportInvoiceCustomerDimensionalAnalysesNoComparativeJR.jrxml
--- 
a/src/org/openbravo/erpCommon/ad_reports/ReportInvoiceCustomerDimensionalAnalysesNoComparativeJR.jrxml
      Wed Oct 31 05:07:53 2018 +0000
+++ 
b/src/org/openbravo/erpCommon/ad_reports/ReportInvoiceCustomerDimensionalAnalysesNoComparativeJR.jrxml
      Mon Oct 29 12:14:27 2018 -0400
@@ -486,34 +486,34 @@
        <variable name="MARGIN_1" class="java.math.BigDecimal" 
resetType="Group" resetGroup="NIVEL1">
                
<variableExpression><![CDATA[($V{AMOUNT_SUM1}.compareTo(BigDecimal.ZERO)==0)?
 null:
-$V{PROFIT_1}.divide( $V{AMOUNT_SUM1}, 4, BigDecimal.ROUND_HALF_UP ).multiply( 
new BigDecimal("100") ).multiply(new 
BigDecimal($V{PROFIT_1}.signum()))]]></variableExpression>
+$V{PROFIT_1}.divide( $V{AMOUNT_SUM1}, 4, BigDecimal.ROUND_HALF_UP 
).abs().multiply( new BigDecimal("100") ).multiply(new 
BigDecimal($V{PROFIT_1}.signum()))]]></variableExpression>
        </variable>
        <variable name="MARGIN_2" class="java.math.BigDecimal" 
resetType="Group" resetGroup="NIVEL2">
-               
<variableExpression><![CDATA[($V{AMOUNT_SUM2}.compareTo(BigDecimal.ZERO)==0)? 
null: $V{PROFIT_2}.divide( $V{AMOUNT_SUM2}, 4, 
BigDecimal.ROUND_HALF_UP).multiply( new BigDecimal("100") ).multiply(new 
BigDecimal($V{PROFIT_2}.signum()))]]></variableExpression>
+               
<variableExpression><![CDATA[($V{AMOUNT_SUM2}.compareTo(BigDecimal.ZERO)==0)? 
null: $V{PROFIT_2}.divide( $V{AMOUNT_SUM2}, 4, 
BigDecimal.ROUND_HALF_UP).abs().multiply( new BigDecimal("100") ).multiply(new 
BigDecimal($V{PROFIT_2}.signum()))]]></variableExpression>
        </variable>
        <variable name="MARGIN_3" class="java.math.BigDecimal" 
resetType="Group" resetGroup="NIVEL3">
-               
<variableExpression><![CDATA[($V{AMOUNT_SUM3}.compareTo(BigDecimal.ZERO)==0)? 
null: $V{PROFIT_3}.divide( $V{AMOUNT_SUM3}, 4, 
BigDecimal.ROUND_HALF_UP).multiply( new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFIT_3}.signum()))]]></variableExpression>
+               
<variableExpression><![CDATA[($V{AMOUNT_SUM3}.compareTo(BigDecimal.ZERO)==0)? 
null: $V{PROFIT_3}.divide( $V{AMOUNT_SUM3}, 4, 
BigDecimal.ROUND_HALF_UP).abs().multiply( new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFIT_3}.signum()))]]></variableExpression>
        </variable>
        <variable name="MARGIN_4" class="java.math.BigDecimal" 
resetType="Group" resetGroup="NIVEL4">
-               
<variableExpression><![CDATA[($V{AMOUNT_SUM4}.compareTo(BigDecimal.ZERO)==0)? 
null: $V{PROFIT_4}.divide( $V{AMOUNT_SUM4}, 4, 
BigDecimal.ROUND_HALF_UP).multiply( new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFIT_4}.signum()))]]></variableExpression>
+               
<variableExpression><![CDATA[($V{AMOUNT_SUM4}.compareTo(BigDecimal.ZERO)==0)? 
null: $V{PROFIT_4}.divide( $V{AMOUNT_SUM4}, 4, 
BigDecimal.ROUND_HALF_UP).abs().multiply( new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFIT_4}.signum()))]]></variableExpression>
        </variable>
        <variable name="MARGIN_5" class="java.math.BigDecimal" 
resetType="Group" resetGroup="LEVEL5">
-               
<variableExpression><![CDATA[($V{AMOUNT_SUM5}.compareTo(BigDecimal.ZERO)==0)? 
null: $V{PROFIT_5}.divide( $V{AMOUNT_SUM5}, 4, 
BigDecimal.ROUND_HALF_UP).multiply( new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFIT_5}.signum()))]]></variableExpression>
+               
<variableExpression><![CDATA[($V{AMOUNT_SUM5}.compareTo(BigDecimal.ZERO)==0)? 
null: $V{PROFIT_5}.divide( $V{AMOUNT_SUM5}, 4, 
BigDecimal.ROUND_HALF_UP).abs().multiply( new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFIT_5}.signum()))]]></variableExpression>
        </variable>
        <variable name="MARGIN_6" class="java.math.BigDecimal" 
resetType="Group" resetGroup="LEVEL6">
-               
<variableExpression><![CDATA[($V{AMOUNT_SUM6}.compareTo(BigDecimal.ZERO)==0)? 
null: $V{PROFIT_6}.divide( $V{AMOUNT_SUM6}, 4, 
BigDecimal.ROUND_HALF_UP).multiply( new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFIT_6}.signum()))]]></variableExpression>
+               
<variableExpression><![CDATA[($V{AMOUNT_SUM6}.compareTo(BigDecimal.ZERO)==0)? 
null: $V{PROFIT_6}.divide( $V{AMOUNT_SUM6}, 4, 
BigDecimal.ROUND_HALF_UP).abs().multiply( new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFIT_6}.signum()))]]></variableExpression>
        </variable>
        <variable name="MARGIN_7" class="java.math.BigDecimal" 
resetType="Group" resetGroup="LEVEL7">
-               
<variableExpression><![CDATA[($V{AMOUNT_SUM7}.compareTo(BigDecimal.ZERO)==0)? 
null: $V{PROFIT_7}.divide( $V{AMOUNT_SUM7}, 4, 
BigDecimal.ROUND_HALF_UP).multiply( new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFIT_7}.signum()))]]></variableExpression>
+               
<variableExpression><![CDATA[($V{AMOUNT_SUM7}.compareTo(BigDecimal.ZERO)==0)? 
null: $V{PROFIT_7}.divide( $V{AMOUNT_SUM7}, 4, 
BigDecimal.ROUND_HALF_UP).abs().multiply( new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFIT_7}.signum()))]]></variableExpression>
        </variable>
        <variable name="MARGIN_8" class="java.math.BigDecimal" 
resetType="Group" resetGroup="LEVEL8">
-               
<variableExpression><![CDATA[($V{AMOUNT_SUM8}.compareTo(BigDecimal.ZERO)==0)? 
null: $V{PROFIT_8}.divide( $V{AMOUNT_SUM8}, 4, 
BigDecimal.ROUND_HALF_UP).multiply( new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFIT_8}.signum()))]]></variableExpression>
+               
<variableExpression><![CDATA[($V{AMOUNT_SUM8}.compareTo(BigDecimal.ZERO)==0)? 
null: $V{PROFIT_8}.divide( $V{AMOUNT_SUM8}, 4, 
BigDecimal.ROUND_HALF_UP).abs().multiply( new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFIT_8}.signum()))]]></variableExpression>
        </variable>
        <variable name="MARGIN_9" class="java.math.BigDecimal" 
resetType="Group" resetGroup="LEVEL9">
-               
<variableExpression><![CDATA[($V{AMOUNT_SUM9}.compareTo(BigDecimal.ZERO)==0)? 
null: $V{PROFIT_9}.divide( $V{AMOUNT_SUM9}, 4, 
BigDecimal.ROUND_HALF_UP).multiply( new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFIT_9}.signum()))]]></variableExpression>
+               
<variableExpression><![CDATA[($V{AMOUNT_SUM9}.compareTo(BigDecimal.ZERO)==0)? 
null: $V{PROFIT_9}.divide( $V{AMOUNT_SUM9}, 4, 
BigDecimal.ROUND_HALF_UP).abs().multiply( new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFIT_9}.signum()))]]></variableExpression>
        </variable>
        <variable name="MARGIN_10" class="java.math.BigDecimal" 
resetType="Group" resetGroup="LEVEL10">
-               
<variableExpression><![CDATA[($V{AMOUNT_SUM10}.compareTo(BigDecimal.ZERO)==0)? 
null:$V{PROFIT_10}.divide( $V{AMOUNT_SUM10}, 4, 
BigDecimal.ROUND_HALF_UP).multiply( new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFIT_10}.signum()))]]></variableExpression>
+               
<variableExpression><![CDATA[($V{AMOUNT_SUM10}.compareTo(BigDecimal.ZERO)==0)? 
null:$V{PROFIT_10}.divide( $V{AMOUNT_SUM10}, 4, 
BigDecimal.ROUND_HALF_UP).abs().multiply( new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFIT_10}.signum()))]]></variableExpression>
        </variable>
        <variable name="WEIGHT_SUM1" class="java.math.BigDecimal" 
resetType="Group" resetGroup="NIVEL1" calculation="Sum">
                <variableExpression><![CDATA[$F{WEIGHT}]]></variableExpression>
@@ -558,7 +558,7 @@
                
<variableExpression><![CDATA[$V{AMOUNT_TOTAL}.subtract($V{COST_TOTAL})]]></variableExpression>
        </variable>
        <variable name="MARGIN_TOTAL" class="java.math.BigDecimal">
-               
<variableExpression><![CDATA[($V{AMOUNT_TOTAL}.compareTo(BigDecimal.ZERO)==0)? 
BigDecimal.ZERO: $V{PROFIT_TOTAL}.divide($V{AMOUNT_TOTAL}, 10, 
BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFIT_TOTAL}.signum()))]]></variableExpression>
+               
<variableExpression><![CDATA[($V{AMOUNT_TOTAL}.compareTo(BigDecimal.ZERO)==0)? 
BigDecimal.ZERO: $V{PROFIT_TOTAL}.divide($V{AMOUNT_TOTAL}, 10, 
BigDecimal.ROUND_HALF_UP).abs().multiply(new BigDecimal("100")).multiply(new 
BigDecimal($V{PROFIT_TOTAL}.signum()))]]></variableExpression>
        </variable>
        <group name="DocumentType">
                <groupFooter>
diff -r 2ae28dc87483 -r 7ba289b96606 
src/org/openbravo/erpCommon/ad_reports/ReportInvoiceCustomerDimensionalAnalysesXLS.jrxml
--- 
a/src/org/openbravo/erpCommon/ad_reports/ReportInvoiceCustomerDimensionalAnalysesXLS.jrxml
  Wed Oct 31 05:07:53 2018 +0000
+++ 
b/src/org/openbravo/erpCommon/ad_reports/ReportInvoiceCustomerDimensionalAnalysesXLS.jrxml
  Mon Oct 29 12:14:27 2018 -0400
@@ -223,7 +223,7 @@
                <variableExpression><![CDATA[$F{PROFIT}]]></variableExpression>
        </variable>
        <variable name="totalMargin" class="java.math.BigDecimal">
-               
<variableExpression><![CDATA[($V{totalAmt}.compareTo(BigDecimal.ZERO)==0)? 
BigDecimal.ZERO: $V{totalProfit}.divide($V{totalAmt}, 10, 
BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")).multiply(new 
BigDecimal($V{totalProfit}.signum()))]]></variableExpression>
+               
<variableExpression><![CDATA[($V{totalAmt}.compareTo(BigDecimal.ZERO)==0)? 
BigDecimal.ZERO: $V{totalProfit}.divide($V{totalAmt}, 10, 
BigDecimal.ROUND_HALF_UP).abs().multiply(new BigDecimal("100")).multiply(new 
BigDecimal($V{totalProfit}.signum()))]]></variableExpression>
        </variable>
        <variable name="totalWeight" class="java.math.BigDecimal" 
calculation="Sum">
                <variableExpression><![CDATA[$F{WEIGHT}]]></variableExpression>


_______________________________________________
Openbravo-commits mailing list
Openbravo-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to