details:   /erp/devel/main/rev/3e0886948e27
changeset: 8908:3e0886948e27
user:      Sivaraman Rajagopal <sivaraman.rajagopal <at> openbravo.com>
date:      Mon Nov 15 10:03:21 2010 +0530
summary:   Fixes issue 14920: Wrong Net Unit Price when Line Net Amount is 
edited

Line Net Amount is re-calculated, multiplying invoice quantity with actual 
price, in order to check below condition. Message will be thrown if it fail

Line Net Amount == (price actual * invoice quantity)

details:   /erp/devel/main/rev/2dbba9a7d6a0
changeset: 8909:2dbba9a7d6a0
user:      RM packaging bot <staff.rm <at> openbravo.com>
date:      Mon Nov 15 14:40:37 2010 +0000
summary:   CI: promote changesets from pi to main

diffstat:

 src-db/database/sourcedata/AD_MESSAGE.xml                   |  22 +++++++++
 src-db/database/sourcedata/AD_MODULE.xml                    |   4 +-
 src/org/openbravo/erpCommon/ad_callouts/SL_Invoice_Amt.java |  30 ++++++++++--
 3 files changed, 49 insertions(+), 7 deletions(-)

diffs (114 lines):

diff -r a1a1fcf144f4 -r 2dbba9a7d6a0 src-db/database/sourcedata/AD_MESSAGE.xml
--- a/src-db/database/sourcedata/AD_MESSAGE.xml Fri Nov 12 17:59:16 2010 +0100
+++ b/src-db/database/sourcedata/AD_MESSAGE.xml Mon Nov 15 14:40:37 2010 +0000
@@ -30387,6 +30387,17 @@
 <!--2C9BE7698E31458E966E9CFBF91A35BF-->  
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
 <!--2C9BE7698E31458E966E9CFBF91A35BF--></AD_MESSAGE>
 
+<!--2CB71A652AB845D3A8A6477359C66451--><AD_MESSAGE>
+<!--2CB71A652AB845D3A8A6477359C66451-->  
<AD_MESSAGE_ID><![CDATA[2CB71A652AB845D3A8A6477359C66451]]></AD_MESSAGE_ID>
+<!--2CB71A652AB845D3A8A6477359C66451-->  
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--2CB71A652AB845D3A8A6477359C66451-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--2CB71A652AB845D3A8A6477359C66451-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--2CB71A652AB845D3A8A6477359C66451-->  
<VALUE><![CDATA[CosiderUsing]]></VALUE>
+<!--2CB71A652AB845D3A8A6477359C66451-->  <MSGTEXT><![CDATA[Please consider 
using]]></MSGTEXT>
+<!--2CB71A652AB845D3A8A6477359C66451-->  <MSGTYPE><![CDATA[E]]></MSGTYPE>
+<!--2CB71A652AB845D3A8A6477359C66451-->  
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
+<!--2CB71A652AB845D3A8A6477359C66451--></AD_MESSAGE>
+
 <!--2E175A7785AD4313B24D3E9034B05BAD--><AD_MESSAGE>
 <!--2E175A7785AD4313B24D3E9034B05BAD-->  
<AD_MESSAGE_ID><![CDATA[2E175A7785AD4313B24D3E9034B05BAD]]></AD_MESSAGE_ID>
 <!--2E175A7785AD4313B24D3E9034B05BAD-->  
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -31930,6 +31941,17 @@
 <!--8437C016631646ED9643B0B53E4F2AF8-->  
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
 <!--8437C016631646ED9643B0B53E4F2AF8--></AD_MESSAGE>
 
+<!--8469430EFFEF43F0AD20EC3830EBBF1E--><AD_MESSAGE>
+<!--8469430EFFEF43F0AD20EC3830EBBF1E-->  
<AD_MESSAGE_ID><![CDATA[8469430EFFEF43F0AD20EC3830EBBF1E]]></AD_MESSAGE_ID>
+<!--8469430EFFEF43F0AD20EC3830EBBF1E-->  
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--8469430EFFEF43F0AD20EC3830EBBF1E-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--8469430EFFEF43F0AD20EC3830EBBF1E-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--8469430EFFEF43F0AD20EC3830EBBF1E-->  
<VALUE><![CDATA[NotCorrectAmountProvided]]></VALUE>
+<!--8469430EFFEF43F0AD20EC3830EBBF1E-->  <MSGTEXT><![CDATA[It's not correct 
the amount provided]]></MSGTEXT>
+<!--8469430EFFEF43F0AD20EC3830EBBF1E-->  <MSGTYPE><![CDATA[E]]></MSGTYPE>
+<!--8469430EFFEF43F0AD20EC3830EBBF1E-->  
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
+<!--8469430EFFEF43F0AD20EC3830EBBF1E--></AD_MESSAGE>
+
 <!--85FD4D54C85F324EE040007F01012930--><AD_MESSAGE>
 <!--85FD4D54C85F324EE040007F01012930-->  
<AD_MESSAGE_ID><![CDATA[85FD4D54C85F324EE040007F01012930]]></AD_MESSAGE_ID>
 <!--85FD4D54C85F324EE040007F01012930-->  
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff -r a1a1fcf144f4 -r 2dbba9a7d6a0 src-db/database/sourcedata/AD_MODULE.xml
--- a/src-db/database/sourcedata/AD_MODULE.xml  Fri Nov 12 17:59:16 2010 +0100
+++ b/src-db/database/sourcedata/AD_MODULE.xml  Mon Nov 15 14:40:37 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.18840]]></VERSION>
+<!--0-->  <VERSION><![CDATA[2.50.18908]]></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>
@@ -22,7 +22,7 @@
 <!--0-->  <ISTRANSLATIONMODULE><![CDATA[N]]></ISTRANSLATIONMODULE>
 <!--0-->  <HASREFERENCEDATA><![CDATA[Y]]></HASREFERENCEDATA>
 <!--0-->  <REFERENCEDATAINFO><![CDATA[Standard document types for orders, 
invoices, etc. and settings]]></REFERENCEDATAINFO>
-<!--0-->  <VERSION_LABEL><![CDATA[dev]]></VERSION_LABEL>
+<!--0-->  <VERSION_LABEL><![CDATA[CI]]></VERSION_LABEL>
 <!--0-->  <ISCOMMERCIAL><![CDATA[N]]></ISCOMMERCIAL>
 <!--0--></AD_MODULE>
 
diff -r a1a1fcf144f4 -r 2dbba9a7d6a0 
src/org/openbravo/erpCommon/ad_callouts/SL_Invoice_Amt.java
--- a/src/org/openbravo/erpCommon/ad_callouts/SL_Invoice_Amt.java       Fri Nov 
12 17:59:16 2010 +0100
+++ b/src/org/openbravo/erpCommon/ad_callouts/SL_Invoice_Amt.java       Mon Nov 
15 14:40:37 2010 +0000
@@ -125,10 +125,11 @@
     SLOrderProductData[] dataInvoice = SLOrderProductData.selectInvoice(this, 
strInvoiceId);
 
     if (strChanged.equals("inplinenetamt")) {
-      priceActual = LineNetAmt.divide(qtyInvoice, PricePrecision, 
BigDecimal.ROUND_HALF_UP);
-      DecimalFormat df = Utility.getFormat(vars, "priceEdition");
-      LineNetAmt = 
qtyInvoice.multiply(priceActual.setScale(df.getMaximumFractionDigits(),
-          BigDecimal.ROUND_HALF_UP));
+      if (qtyInvoice.compareTo(BigDecimal.ZERO) == 0) {
+        priceActual = BigDecimal.ZERO;
+      } else {
+        priceActual = LineNetAmt.divide(qtyInvoice, PricePrecision, 
BigDecimal.ROUND_HALF_UP);
+      }
     }
     if (priceActual.compareTo(BigDecimal.ZERO) == 0)
       LineNetAmt = BigDecimal.ZERO;
@@ -142,7 +143,6 @@
           dataInvoice[0].dateinvoiced, qtyInvoice.toString(), 
dataInvoice[0].mPricelistId,
           dataInvoice[0].id));
       resultado.append("new Array(\"inppricestd\", " + priceStd.toString() + 
"),");
-      resultado.append("new Array(\"inplinenetamt\", " + LineNetAmt.toString() 
+ "),");
     }
 
     // If quantity changes, recalculates unit price (actual price) applying
@@ -162,6 +162,26 @@
       // Net amount of a line equals quantity x unit price (actual price)
       LineNetAmt = qtyInvoice.multiply(priceActual);
 
+    if (strChanged.equals("inplinenetamt")) {
+      DecimalFormat priceEditionFmt = Utility.getFormat(vars, "priceEdition");
+      DecimalFormat euroEditionFmt = Utility.getFormat(vars, "euroEdition");
+      BigDecimal CalculatedLineNetAmt = qtyInvoice.multiply(
+          priceActual
+              .setScale(priceEditionFmt.getMaximumFractionDigits(), 
BigDecimal.ROUND_HALF_UP))
+          .setScale(euroEditionFmt.getMaximumFractionDigits(), 
BigDecimal.ROUND_HALF_UP);
+      if (!LineNetAmt.equals(CalculatedLineNetAmt)) {
+        StringBuffer strMessage = new StringBuffer(Utility.messageBD(this,
+            "NotCorrectAmountProvided", vars.getLanguage()));
+        strMessage.append(": ");
+        strMessage.append((strLineNetAmt.equals("") ? BigDecimal.ZERO : new 
BigDecimal(
+            strLineNetAmt)));
+        strMessage.append(". ");
+        strMessage.append(Utility.messageBD(this, "CosiderUsing", 
vars.getLanguage()));
+        strMessage.append(" " + CalculatedLineNetAmt);
+        resultado.append("new Array('MESSAGE', \"" + strMessage.toString() + 
"\"),");
+      }
+    }
+
     if (LineNetAmt.scale() > StdPrecision)
       LineNetAmt = LineNetAmt.setScale(StdPrecision, BigDecimal.ROUND_HALF_UP);
 

------------------------------------------------------------------------------
Centralized Desktop Delivery: Dell and VMware Reference Architecture
Simplifying enterprise desktop deployment and management using
Dell EqualLogic storage and VMware View: A highly scalable, end-to-end
client virtualization framework. Read more!
http://p.sf.net/sfu/dell-eql-dev2dev
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to