details:   https://code.openbravo.com/erp/devel/pi/rev/2aebd20a2cf7
changeset: 18517:2aebd20a2cf7
user:      Ioritz Cia <ioritz.cia <at> openbravo.com>
date:      Mon Nov 05 13:13:27 2012 +0100
summary:   Fixes issue 21795: Product selector on asset,
should not restrict to products that belong to a sales price list.

details:   https://code.openbravo.com/erp/devel/pi/rev/531ae77d6e5d
changeset: 18518:531ae77d6e5d
user:      Ioritz Cia <ioritz.cia <at> openbravo.com>
date:      Tue Nov 06 17:54:19 2012 +0100
summary:   Fixes issue 21895: Create Invoice From PO should show a warning 
message.

details:   https://code.openbravo.com/erp/devel/pi/rev/76d2cbdf6d39
changeset: 18519:76d2cbdf6d39
user:      Ioritz Cia <ioritz.cia <at> openbravo.com>
date:      Thu Nov 08 13:36:24 2012 +0100
summary:   Fixes issue 21722: Is impossible to create 2 invoices from one 
shipment.

details:   https://code.openbravo.com/erp/devel/pi/rev/acd485beec84
changeset: 18520:acd485beec84
user:      Ioritz Cia <ioritz.cia <at> openbravo.com>
date:      Fri Oct 26 13:01:57 2012 +0200
summary:   Fixes issue 21820: Wrong calculation of a journal entry under some 
circumstancies

diffstat:

 src-db/database/sourcedata/AD_COLUMN.xml                                 |   2 
+-
 src-db/database/sourcedata/AD_MESSAGE.xml                                |  11 
+
 src-db/database/sourcedata/OBUISEL_SELECTOR_FIELD.xml                    |   2 
+-
 src/org/openbravo/erpCommon/ad_actionButton/CreateFrom.java              |   5 
+
 src/org/openbravo/erpCommon/ad_actionButton/CreateFrom_Invoice_data.xsql |  70 
++++++++-
 src/org/openbravo/erpCommon/ad_forms/Fact.java                           |   3 
+
 src/org/openbravo/erpCommon/ad_forms/FactLine.java                       |  33 
++--
 7 files changed, 97 insertions(+), 29 deletions(-)

diffs (275 lines):

diff -r 2d71f02d8f3b -r acd485beec84 src-db/database/sourcedata/AD_COLUMN.xml
--- a/src-db/database/sourcedata/AD_COLUMN.xml  Mon Nov 12 10:38:27 2012 +0100
+++ b/src-db/database/sourcedata/AD_COLUMN.xml  Fri Oct 26 13:01:57 2012 +0200
@@ -101100,7 +101100,7 @@
 <!--8047-->  <COLUMNNAME><![CDATA[M_Product_ID]]></COLUMNNAME>
 <!--8047-->  <AD_TABLE_ID><![CDATA[539]]></AD_TABLE_ID>
 <!--8047-->  <AD_REFERENCE_ID><![CDATA[30]]></AD_REFERENCE_ID>
-<!--8047-->  <AD_REFERENCE_VALUE_ID><![CDATA[800060]]></AD_REFERENCE_VALUE_ID>
+<!--8047-->  <AD_REFERENCE_VALUE_ID><![CDATA[800011]]></AD_REFERENCE_VALUE_ID>
 <!--8047-->  <FIELDLENGTH><![CDATA[60]]></FIELDLENGTH>
 <!--8047-->  <ISKEY><![CDATA[N]]></ISKEY>
 <!--8047-->  <ISPARENT><![CDATA[N]]></ISPARENT>
diff -r 2d71f02d8f3b -r acd485beec84 src-db/database/sourcedata/AD_MESSAGE.xml
--- a/src-db/database/sourcedata/AD_MESSAGE.xml Mon Nov 12 10:38:27 2012 +0100
+++ b/src-db/database/sourcedata/AD_MESSAGE.xml Fri Oct 26 13:01:57 2012 +0200
@@ -21036,6 +21036,17 @@
 <!--ECB4FC6A311C4CCA984087945E10FC6E-->  
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
 <!--ECB4FC6A311C4CCA984087945E10FC6E--></AD_MESSAGE>
 
+<!--ED29E885BB414C1FB92222716A4C12FC--><AD_MESSAGE>
+<!--ED29E885BB414C1FB92222716A4C12FC-->  
<AD_MESSAGE_ID><![CDATA[ED29E885BB414C1FB92222716A4C12FC]]></AD_MESSAGE_ID>
+<!--ED29E885BB414C1FB92222716A4C12FC-->  
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--ED29E885BB414C1FB92222716A4C12FC-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--ED29E885BB414C1FB92222716A4C12FC-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--ED29E885BB414C1FB92222716A4C12FC-->  
<VALUE><![CDATA[CreateFromMatchPOQtys]]></VALUE>
+<!--ED29E885BB414C1FB92222716A4C12FC-->  <MSGTEXT><![CDATA[The quantities that 
are going to be copied to the lines may not be the ones shown here. If the 
invoice has a related order and goods receipt, the copied quantity will be the 
shipped quantity minus the related invoiced. If there is no related shipment, 
the copied quantity will be the ordered quantity minus the related invoiced 
quantities.]]></MSGTEXT>
+<!--ED29E885BB414C1FB92222716A4C12FC-->  <MSGTYPE><![CDATA[I]]></MSGTYPE>
+<!--ED29E885BB414C1FB92222716A4C12FC-->  
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
+<!--ED29E885BB414C1FB92222716A4C12FC--></AD_MESSAGE>
+
 <!--ED94DA7D967E401B93DDFFE86C9715A9--><AD_MESSAGE>
 <!--ED94DA7D967E401B93DDFFE86C9715A9-->  
<AD_MESSAGE_ID><![CDATA[ED94DA7D967E401B93DDFFE86C9715A9]]></AD_MESSAGE_ID>
 <!--ED94DA7D967E401B93DDFFE86C9715A9-->  
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff -r 2d71f02d8f3b -r acd485beec84 
src-db/database/sourcedata/OBUISEL_SELECTOR_FIELD.xml
--- a/src-db/database/sourcedata/OBUISEL_SELECTOR_FIELD.xml     Mon Nov 12 
10:38:27 2012 +0100
+++ b/src-db/database/sourcedata/OBUISEL_SELECTOR_FIELD.xml     Fri Oct 26 
13:01:57 2012 +0200
@@ -1762,7 +1762,7 @@
 <!--FF8080812E77708D012E7796A94B0017-->  <SORTNO><![CDATA[110]]></SORTNO>
 <!--FF8080812E77708D012E7796A94B0017-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--FF8080812E77708D012E7796A94B0017-->  <ISOUTFIELD><![CDATA[N]]></ISOUTFIELD>
-<!--FF8080812E77708D012E7796A94B0017-->  <DEFAULT_EXPRESSION><![CDATA[if 
(OB.getWindowId() == '800051' ||  OB.getWindowId() == '800052' || 
OB.getWindowId() == '800096') {false} else {if (OB.isSalesTransaction() == 
true) { true } else {false}}]]></DEFAULT_EXPRESSION>
+<!--FF8080812E77708D012E7796A94B0017-->  <DEFAULT_EXPRESSION><![CDATA[if 
(OB.getWindowId() == '800051' ||  OB.getWindowId() == '800052' || 
OB.getWindowId() == '800096' || OB.getWindowId() == '800027') {false} else {if 
(OB.isSalesTransaction() == true) { true } else {false}}]]></DEFAULT_EXPRESSION>
 <!--FF8080812E77708D012E7796A94B0017-->  
<SHOWINPICKLIST><![CDATA[N]]></SHOWINPICKLIST>
 <!--FF8080812E77708D012E7796A94B0017--></OBUISEL_SELECTOR_FIELD>
 
diff -r 2d71f02d8f3b -r acd485beec84 
src/org/openbravo/erpCommon/ad_actionButton/CreateFrom.java
--- a/src/org/openbravo/erpCommon/ad_actionButton/CreateFrom.java       Mon Nov 
12 10:38:27 2012 +0100
+++ b/src/org/openbravo/erpCommon/ad_actionButton/CreateFrom.java       Fri Oct 
26 13:01:57 2012 +0200
@@ -583,6 +583,11 @@
         xmlDocument.setParameter("messageType", myMessage.getType());
         xmlDocument.setParameter("messageTitle", myMessage.getTitle());
         xmlDocument.setParameter("messageMessage", myMessage.getMessage());
+      } else {
+        xmlDocument.setParameter("messageType", "Info");
+        xmlDocument.setParameter("messageTitle", "Information");
+        xmlDocument.setParameter("messageMessage",
+            Utility.messageBD(this, "CreateFromMatchPOQtys", 
vars.getLanguage()));
       }
     }
 
diff -r 2d71f02d8f3b -r acd485beec84 
src/org/openbravo/erpCommon/ad_actionButton/CreateFrom_Invoice_data.xsql
--- a/src/org/openbravo/erpCommon/ad_actionButton/CreateFrom_Invoice_data.xsql  
Mon Nov 12 10:38:27 2012 +0100
+++ b/src/org/openbravo/erpCommon/ad_actionButton/CreateFrom_Invoice_data.xsql  
Fri Oct 26 13:01:57 2012 +0200
@@ -379,7 +379,14 @@
       <![CDATA[
         SELECT s.M_InOut_ID AS ID, Ad_Column_Identifier(to_char('M_InOut'), 
to_char(s.M_InOut_ID), to_char(?)) AS NAME,
         s.DocumentNo AS NAMESHIPMENT,
-        l.MovementQty AS QTY, l.C_UOM_ID,uom.UOMSymbol, 
l.M_Product_ID,Ad_Column_Identifier(to_char('M_Product'), 
to_char(l.m_product_id), to_char(?))||' '||(CASE WHEN ma.serno IS NOT NULL THEN 
TO_CHAR('('||' '||ma.serno||' '||')') ELSE TO_CHAR('') END) AS RELATION_NAME, 
l.M_InOutLine_ID,l.Line,
+        (l.MovementQty - COALESCE((select sum(COALESCE(il.qtyinvoiced, 0))
+                        from m_inoutline iol
+                          left join c_invoiceline il on iol.m_inoutline_id = 
il.m_inoutline_id
+                          left join c_invoice i on il.c_invoice_id = 
i.c_invoice_id 
+                        where iol.m_inoutline_id = l.m_inoutline_id
+                          and i.docstatus = 'CO'
+                        group by iol.m_inoutline_id, iol.movementqty
+                        having iol.movementqty > sum(COALESCE(il.qtyinvoiced, 
0))), 0)) AS QTY, l.C_UOM_ID,uom.UOMSymbol, 
l.M_Product_ID,Ad_Column_Identifier(to_char('M_Product'), 
to_char(l.m_product_id), to_char(?))||' '||(CASE WHEN ma.serno IS NOT NULL THEN 
TO_CHAR('('||' '||ma.serno||' '||')') ELSE TO_CHAR('') END) AS RELATION_NAME, 
l.M_InOutLine_ID,l.Line,
         l.M_InOutLine_ID as C_OrderLine_ID 
         FROM M_INOUTLINE l
                 left join M_ATTRIBUTESETINSTANCE ma on 
l.M_ATTRIBUTESETINSTANCE_ID = ma.M_ATTRIBUTESETINSTANCE_ID
@@ -394,7 +401,13 @@
         AND s.AD_Org_ID IN ('1') 
         AND l.C_UOM_ID=uom.C_UOM_ID 
         AND l.M_Product_ID=p.M_Product_ID 
-        AND l.isinvoiced = 'N' 
+        AND EXISTS (select 1
+                    from m_inoutline iol
+                      left join c_invoiceline il on iol.m_inoutline_id = 
il.m_inoutline_id
+                      left join c_invoice i on il.c_invoice_id = 
i.c_invoice_id 
+                    where iol.m_inoutline_id = l.m_inoutline_id
+                    group by iol.m_inoutline_id, iol.movementqty
+                    having iol.movementqty > sum(COALESCE(CASE WHEN 
i.docstatus = 'CO' THEN il.qtyinvoiced ELSE 0 END, 0)))
         AND l.M_InOut_ID=?
         AND (l.c_orderline_id is null OR pl.istaxincluded = ?)
         GROUP BY s.M_InOut_ID, s.DocumentNo, s.MovementDate, 
l.MovementQty,l.C_UOM_ID,uom.UOMSymbol,
@@ -409,7 +422,7 @@
     <Parameter name="adOrgClient" type="replace" optional="true" 
after="s.AD_Org_ID IN (" text="'1'"/>
     <Parameter name="mInoutId"/>
     <Parameter name="isTaxIncluded"/>
-  </SqlMethod>
+  </SqlMethod>  
   <SqlMethod name="selectFromShipmentSOTrxCombo" type="preparedStatement" 
return="multiple">
     <SqlMethodComment></SqlMethodComment>
     <Sql>
@@ -428,7 +441,14 @@
                            left join m_pricelist pl on pl.m_pricelist_id = 
o.m_pricelist_id
                     WHERE l.M_INOUT_ID = s.M_INOUT_ID
                     AND (l.c_orderline_id is null OR pl.istaxincluded = ?)
-                    AND l.isinvoiced = 'N')
+                    AND EXISTS (SELECT 1
+                                FROM m_inoutline iol
+                                  left join c_invoiceline il ON 
iol.m_inoutline_id = il.m_inoutline_id
+                                  left join c_invoice i ON il.c_invoice_id = 
i.c_invoice_id
+                                WHERE  iol.m_inoutline_id = l.m_inoutline_id 
+                                GROUP  BY iol.m_inoutline_id, iol.movementqty
+                                HAVING iol.movementqty > SUM(COALESCE(CASE 
WHEN i.docstatus = 'CO' THEN il.qtyinvoiced ELSE 0 END, 0)))
+                        )
         AND NOT EXISTS (SELECT 1 FROM C_INVOICE_CANDIDATE_V ic, C_ORDER o 
         WHERE o.C_ORDER_ID = s.C_ORDER_ID
         AND o.C_ORDER_ID = ic.C_ORDER_ID
@@ -448,6 +468,7 @@
     <Parameter name="cBpartnerId"/>
     <Parameter name="isTaxIncluded"/>
   </SqlMethod>
+  
   <SqlMethod name="selectFromShipmentTrl" type="preparedStatement" 
return="multiple">
     <SqlMethodComment></SqlMethodComment>
     <Sql>
@@ -488,14 +509,21 @@
     <Parameter name="adOrgClient" type="replace" optional="true" 
after="s.AD_Org_ID IN (" text="'1'"/>
     <Parameter name="mInoutId"/>
     <Parameter name="isTaxIncluded"/>
-  </SqlMethod>
+  </SqlMethod>  
   <SqlMethod name="selectFromShipmentTrlSOTrx" type="preparedStatement" 
return="multiple">
     <SqlMethodComment></SqlMethodComment>
     <Sql>
       <![CDATA[
         SELECT s.M_InOut_ID AS ID, Ad_Column_Identifier(to_char('M_InOut'), 
to_char(s.M_InOut_ID), to_char(?)) AS NAME,
         s.DocumentNo AS NAMESHIPMENT, 
-        l.MovementQty AS QTY, l.C_UOM_ID,COALESCE(uomt.UOMSymbol, 
uom.UOMSymbol) AS UOMSymbol, 
+        (l.MovementQty - COALESCE((SELECT SUM(COALESCE(il.qtyinvoiced, 0))
+                                 FROM m_inoutline iol
+                                   LEFT JOIN c_invoiceline il ON 
iol.m_inoutline_id = il.m_inoutline_id
+                                   LEFT JOIN c_invoice i ON il.c_invoice_id = 
i.c_invoice_id 
+                                 WHERE iol.m_inoutline_id = l.m_inoutline_id
+                                   AND i.docstatus = 'CO'
+                                 GROUP BY iol.m_inoutline_id, iol.movementqty
+                                 HAVING iol.movementqty > 
sum(COALESCE(il.qtyinvoiced, 0))), 0)) AS QTY, 
l.C_UOM_ID,COALESCE(uomt.UOMSymbol, uom.UOMSymbol) AS UOMSymbol, 
         l.M_Product_ID,Ad_Column_Identifier(to_char('M_Product'), 
to_char(l.m_product_id), to_char(?))||' '|| (CASE WHEN ma.serno IS NOT NULL 
THEN TO_CHAR('('||' '||ma.serno||' '||')') ELSE TO_CHAR('')  END) AS 
RELATION_NAME, l.M_InOutLine_ID,l.Line, l.M_InOutLine_ID as C_OrderLine_ID 
         FROM M_INOUTLINE l
               left join M_ATTRIBUTESETINSTANCE ma on 
l.M_ATTRIBUTESETINSTANCE_ID = ma.M_ATTRIBUTESETINSTANCE_ID
@@ -512,7 +540,13 @@
         AND s.AD_Org_ID IN ('1') 
         AND l.C_UOM_ID=uom.C_UOM_ID 
         AND l.M_Product_ID=p.M_Product_ID 
-        AND l.isinvoiced = 'N' 
+        AND EXISTS (SELECT 1
+                    FROM m_inoutline iol
+                      LEFT JOIN c_invoiceline il ON iol.m_inoutline_id = 
il.m_inoutline_id
+                      LEFT JOIN c_invoice i ON il.c_invoice_id = 
i.c_invoice_id 
+                    WHERE iol.m_inoutline_id = l.m_inoutline_id
+                    GROUP BY iol.m_inoutline_id, iol.movementqty
+                    HAVING iol.movementqty > SUM(COALESCE(CASE WHEN 
i.docstatus = 'CO' THEN il.qtyinvoiced ELSE 0 END, 0)))
         AND l.M_InOut_ID=? 
         AND (l.c_orderline_id is null OR pl.istaxincluded = ?)
         GROUP BY s.M_InOut_ID, s.DocumentNo, s.MovementDate, 
l.MovementQty,l.C_UOM_ID,uom.UOMSymbol, uomt.UOMSymbol,
@@ -529,6 +563,7 @@
     <Parameter name="mInoutId"/>
     <Parameter name="isTaxIncluded"/>
   </SqlMethod>
+  
   <SqlMethod name="selectFromShipmentUpdate" type="preparedStatement" 
connection="true" return="multiple">
     <SqlMethodComment></SqlMethodComment>
     <Sql>
@@ -552,20 +587,33 @@
     <SqlMethodComment></SqlMethodComment>
     <Sql>
       <![CDATA[
-        SELECT l.MovementQty AS ID, l.C_UOM_ID,uom.UOMSymbol, 
l.M_Product_ID,Ad_Column_Identifier(to_char('M_Product'), 
to_char(l.m_product_id), to_char(?)) AS NAME, l.M_InOutLine_ID,l.Line,
+        SELECT (l.MovementQty - COALESCE((select sum(COALESCE(il.qtyinvoiced, 
0))
+                                          from m_inoutline iol
+                                            left join c_invoiceline il on 
iol.m_inoutline_id = il.m_inoutline_id
+                                            left join c_invoice i on 
il.c_invoice_id = i.c_invoice_id 
+                                          where iol.m_inoutline_id = 
l.m_inoutline_id
+                                            and i.docstatus = 'CO'
+                                          group by iol.m_inoutline_id, 
iol.movementqty
+                                          having iol.movementqty > 
sum(COALESCE(il.qtyinvoiced, 0))), 0)) AS ID, l.C_UOM_ID,uom.UOMSymbol, 
l.M_Product_ID,Ad_Column_Identifier(to_char('M_Product'), 
to_char(l.m_product_id), to_char(?)) AS NAME, l.M_InOutLine_ID,l.Line,
         l.C_OrderLine_ID, max(uom.STDPRECISION) as stdprecision, 
l.Description,l.quantityOrder, l.M_Product_UOM_ID,
         l.M_ATTRIBUTESETINSTANCE_ID, l.ad_org_id
         FROM C_UOM uom, M_INOUTLINE l, M_PRODUCT p 
         WHERE l.C_UOM_ID=uom.C_UOM_ID
         AND l.M_Product_ID=p.M_Product_ID 
-        AND l.isinvoiced = 'N' 
-        GROUP BY l.MovementQty,l.C_UOM_ID,uom.UOMSymbol,l.M_Product_ID,p.NAME, 
l.M_InOutLine_ID,l.Line,l.C_OrderLine_ID, l.Description, l.quantityOrder, 
l.M_Product_UOM_ID, l.M_ATTRIBUTESETINSTANCE_ID, l.ad_org_id
+        AND  EXISTS (select 1
+                     from m_inoutline iol
+                       left join c_invoiceline il on iol.m_inoutline_id = 
il.m_inoutline_id
+                       left join c_invoice i on il.c_invoice_id = 
i.c_invoice_id 
+                     where iol.m_inoutline_id = l.m_inoutline_id
+                     group by iol.m_inoutline_id, iol.movementqty
+                     having iol.movementqty > sum(COALESCE(CASE WHEN 
i.docstatus = 'CO' THEN il.qtyinvoiced ELSE 0 END, 0)))
+        GROUP BY l.MovementQty,l.C_UOM_ID,uom.UOMSymbol,l.M_Product_ID,p.NAME, 
l.M_InOutLine_ID,l.Line,l.C_OrderLine_ID, l.Description, l.quantityOrder, 
l.M_Product_UOM_ID, l.M_ATTRIBUTESETINSTANCE_ID, l.ad_org_id, l.m_inout_id
         ORDER BY l.Line
       ]]>
     </Sql>
     <Field name="rownum" value="count"/>
     <Parameter name="adLanguage"/>
-    <Parameter name="cOrderlineId" optional="true" type="argument" after="AND 
l.isinvoiced = 'N' " text=" AND l.M_InOutLine_ID IN "/>
+    <Parameter name="cOrderlineId" optional="true" type="argument" after="AND 
l.M_Product_ID=p.M_Product_ID " text=" AND l.M_InOutLine_ID IN "/>
   </SqlMethod>
   <SqlMethod name="set" type="constant" return="multiple">
       <SqlMethodComment></SqlMethodComment>
diff -r 2d71f02d8f3b -r acd485beec84 
src/org/openbravo/erpCommon/ad_forms/Fact.java
--- a/src/org/openbravo/erpCommon/ad_forms/Fact.java    Mon Nov 12 10:38:27 
2012 +0100
+++ b/src/org/openbravo/erpCommon/ad_forms/Fact.java    Fri Oct 26 13:01:57 
2012 +0200
@@ -264,6 +264,9 @@
     log4jFact.debug("createLine - " + m_doc.DocumentNo);
     log4jFact.debug("********************* Fact - createLine - DocumentNo - " 
+ m_doc.DocumentNo
         + " -  m_lines.size() - " + m_lines.size());
+
+    line.roundToCurrencyPrecision();
+
     m_lines.add(line);
     return line;
   } // createLine
diff -r 2d71f02d8f3b -r acd485beec84 
src/org/openbravo/erpCommon/ad_forms/FactLine.java
--- a/src/org/openbravo/erpCommon/ad_forms/FactLine.java        Mon Nov 12 
10:38:27 2012 +0100
+++ b/src/org/openbravo/erpCommon/ad_forms/FactLine.java        Fri Oct 26 
13:01:57 2012 +0200
@@ -799,22 +799,6 @@
         log4jFactLine.debug("FactLine - m_C_WithHolding_ID "
             + ((m_docLine != null) ? m_docLine.m_C_WithHolding_ID : ""));
 
-        // Applies currency precision
-        Currency currency = OBDal.getInstance().get(Currency.class, 
m_C_Currency_ID);
-        org.openbravo.model.financialmgmt.accounting.coa.AcctSchema schema = 
OBDal.getInstance()
-            
.get(org.openbravo.model.financialmgmt.accounting.coa.AcctSchema.class,
-                m_C_AcctSchema_ID);
-        m_AmtSourceCr = new BigDecimal(m_AmtSourceCr).setScale(
-            currency.getStandardPrecision().intValue(), 
BigDecimal.ROUND_HALF_EVEN).toString();
-        m_AmtSourceDr = new BigDecimal(m_AmtSourceDr).setScale(
-            currency.getStandardPrecision().intValue(), 
BigDecimal.ROUND_HALF_EVEN).toString();
-        m_AmtAcctCr = new BigDecimal(m_AmtAcctCr).setScale(
-            schema.getCurrency().getStandardPrecision().intValue(), 
BigDecimal.ROUND_HALF_EVEN)
-            .toString();
-        m_AmtAcctDr = new BigDecimal(m_AmtAcctDr).setScale(
-            schema.getCurrency().getStandardPrecision().intValue(), 
BigDecimal.ROUND_HALF_EVEN)
-            .toString();
-
         no = FactLineData.insertFactAct(con, conn, m_Fact_Acct_ID, 
AD_Client_ID, AD_Org_ID, vars
             .getUser(), m_C_AcctSchema_ID, Account_ID, cuenta[0].value, 
cuenta[0].description,
             DateDoc, DateAcct, C_Period_ID, m_AD_Table_ID, m_Record_ID, 
m_Line_ID,
@@ -835,6 +819,23 @@
     return no == 1;
   } // save
 
+  void roundToCurrencyPrecision() {
+    // Applies currency precision
+    Currency currency = OBDal.getInstance().get(Currency.class, 
m_C_Currency_ID);
+    org.openbravo.model.financialmgmt.accounting.coa.AcctSchema schema = 
OBDal.getInstance().get(
+        org.openbravo.model.financialmgmt.accounting.coa.AcctSchema.class, 
m_C_AcctSchema_ID);
+    m_AmtSourceCr = new BigDecimal(m_AmtSourceCr).setScale(
+        currency.getStandardPrecision().intValue(), 
BigDecimal.ROUND_HALF_EVEN).toString();
+    m_AmtSourceDr = new BigDecimal(m_AmtSourceDr).setScale(
+        currency.getStandardPrecision().intValue(), 
BigDecimal.ROUND_HALF_EVEN).toString();
+    m_AmtAcctCr = new BigDecimal(m_AmtAcctCr).setScale(
+        schema.getCurrency().getStandardPrecision().intValue(), 
BigDecimal.ROUND_HALF_EVEN)
+        .toString();
+    m_AmtAcctDr = new BigDecimal(m_AmtAcctDr).setScale(
+        schema.getCurrency().getStandardPrecision().intValue(), 
BigDecimal.ROUND_HALF_EVEN)
+        .toString();
+  }
+
   /**
    * Get AD_Client
    * 

------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_nov
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to