details:   https://code.openbravo.com/erp/devel/pi/rev/e868859060b8
changeset: 17528:e868859060b8
user:      Ioritz Cia <ioritz.cia <at> openbravo.com>
date:      Wed Jul 18 11:04:05 2012 +0200
summary:   Fixes issue 20887: With a multicurrency use the line Journal Entry 
generated is wrong.

details:   https://code.openbravo.com/erp/devel/pi/rev/3705932614c0
changeset: 17529:3705932614c0
user:      Ioritz Cia <ioritz.cia <at> openbravo.com>
date:      Mon Jul 23 12:50:41 2012 +0200
summary:   Fixes issue 20828: The amortization of an asset cannot be 
recalculated in some cases.

diffstat:

 src-db/database/model/functions/A_ASSET_POST.xml                            |  
14 +++++-----
 src/org/openbravo/erpCommon/ad_reports/ReportGeneralLedgerJournal_data.xsql |  
11 +++++--
 2 files changed, 14 insertions(+), 11 deletions(-)

diffs (95 lines):

diff -r 0b9cc3dc4a53 -r 3705932614c0 
src-db/database/model/functions/A_ASSET_POST.xml
--- a/src-db/database/model/functions/A_ASSET_POST.xml  Mon Jul 23 14:37:11 
2012 +0200
+++ b/src-db/database/model/functions/A_ASSET_POST.xml  Mon Jul 23 12:50:41 
2012 +0200
@@ -187,7 +187,7 @@
               v_UseLifeYears:=ceil(100/v_PercentageGeneral) ;
             else
               --  v_PercentageGeneral := 100 / v_USELIFEYEARS;
-              
v_PercentageGeneral:=((v_AMORTIZATIONVALUEAMT-v_DEPRECIATEDPREVIOUSAMT-v_depreciatedPlan)
 *100/v_AMORTIZATIONVALUEAMT) /(v_USELIFEYEARS-v_DepreciatedLines) ;
+              
v_PercentageGeneral:=((v_AMORTIZATIONVALUEAMT-v_DEPRECIATEDPREVIOUSAMT) 
*100/(v_AMORTIZATIONVALUEAMT-v_DEPRECIATEDPREVIOUSAMT)) /(v_USELIFEYEARS) ;
               SELECT to_number(TO_DATE(ADD_MONTHS(v_AMORTIZATIONSTARTDATE, 
12*v_USELIFEYEARS)) - v_AMORTIZATIONSTARTDATE)
               INTO v_TOTAL_DAYS
               FROM DUAL;
@@ -246,16 +246,16 @@
               INTO v_LINE
               FROM A_AMORTIZATIONLINE
               WHERE A_AMORTIZATION_ID=v_NEW_AMORTIZATION;
-              IF((((v_AMORTIZATIONVALUEAMT+v_DEPRECIATEDPREVIOUSAMT) 
*v_PERCENTAGE/100)>(v_AMORTIZATIONVALUEAMT 
-v_TotalAmt))OR(v_Inserted+1>=v_USELIFEYEARS)) THEN
+              IF((((v_AMORTIZATIONVALUEAMT) 
*v_PERCENTAGE/100)>(v_AMORTIZATIONVALUEAMT 
-v_TotalAmt))OR(v_Inserted+1>=v_USELIFEYEARS)) THEN
                 SELECT COALESCE(SUM(AMORTIZATIONAMT),0), 
COALESCE(SUM(AMORTIZATION_PERCENTAGE),0)
                 INTO v_AMOUNT, v_PERCENTAGE
                 FROM A_AMORTIZATIONLINE
                 WHERE A_ASSET_ID=v_Record_ID;
                 v_AMOUNT:=v_AMORTIZATIONVALUEAMT - v_AMOUNT;
-                
v_PERCENTAGE:=v_AMOUNT*100/(v_AMORTIZATIONVALUEAMT+v_DEPRECIATEDPREVIOUSAMT) ;
+                v_PERCENTAGE:=v_AMOUNT*100/(v_AMORTIZATIONVALUEAMT) ;
                 finish:=true;
               ELSE
-                v_AMOUNT:=(v_AMORTIZATIONVALUEAMT+ v_DEPRECIATEDPREVIOUSAMT) 
*v_PERCENTAGE/100;
+                v_AMOUNT:=(v_AMORTIZATIONVALUEAMT) *v_PERCENTAGE/100;
               END IF;
               if v_percentage>0 then
                 Ad_Sequence_Next('A_Amortizationline', '1000000', 
v_AMORTIZATIONLINE) ;
@@ -306,9 +306,9 @@
               --  v_PercentageGeneral := 100 / v_USELIFEYEARS;
               v_UseLifeYears:=v_UseLifeMonths/12;
               if (v_assetschedule = 'MO') then 
-                
v_PercentageGeneral:=(((v_AMORTIZATIONVALUEAMT-v_depreciatedPlan) 
*100/v_AMORTIZATIONVALUEAMT) /(v_USELIFEYEARS*12-v_DepreciatedLines));
+                v_PercentageGeneral:=(((v_AMORTIZATIONVALUEAMT) 
*100/v_AMORTIZATIONVALUEAMT) /(v_USELIFEYEARS*12));
               else 
-                
v_PercentageGeneral:=(((v_AMORTIZATIONVALUEAMT-v_depreciatedPlan) 
*100/v_AMORTIZATIONVALUEAMT) /(v_USELIFEYEARS-v_DepreciatedLines)) /12;
+                v_PercentageGeneral:=(((v_AMORTIZATIONVALUEAMT) 
*100/v_AMORTIZATIONVALUEAMT) /(v_USELIFEYEARS)) /12;
               end if;
               SELECT to_number(TO_DATE(ADD_MONTHS(v_AMORTIZATIONSTARTDATE, 
12*v_USELIFEYEARS)) - TO_DATE(v_AMORTIZATIONSTARTDATE))
               INTO v_TOTAL_DAYS
@@ -404,7 +404,7 @@
     INTO v_AMOUNT, v_PERCENTAGE
     FROM A_AmortizationLine
     WHERE A_asset_ID=v_Record_ID;
-    IF (v_AMOUNT <> v_amortizationvalueamt) THEN
+    IF (v_AMOUNT <> v_amortizationvalueamt OR v_PERCENTAGE <> 100) THEN
       RAISE_APPLICATION_ERROR(-20000, '@ErrorCalculatingAmortizationPlan@');
     END IF;
     IF (TO_CHAR(v_AMORTIZATIONSTARTDATE, 'DD') <> '01') THEN
diff -r 0b9cc3dc4a53 -r 3705932614c0 
src/org/openbravo/erpCommon/ad_reports/ReportGeneralLedgerJournal_data.xsql
--- 
a/src/org/openbravo/erpCommon/ad_reports/ReportGeneralLedgerJournal_data.xsql   
    Mon Jul 23 14:37:11 2012 +0200
+++ 
b/src/org/openbravo/erpCommon/ad_reports/ReportGeneralLedgerJournal_data.xsql   
    Mon Jul 23 12:50:41 2012 +0200
@@ -12,7 +12,7 @@
  * under the License.
  * The Original Code is Openbravo ERP.
  * The Initial Developer of the Original Code is Openbravo SLU
- * All portions are Copyright (C) 2001-2011 Openbravo SLU
+ * All portions are Copyright (C) 2001-2012 Openbravo SLU
  * All Rights Reserved.
  * Contributor(s):  ______________________________________.
  ************************************************************************
@@ -45,7 +45,8 @@
       AND f.C_ACCTSCHEMA_ID = SC.C_ACCTSCHEMA_ID
       GROUP BY f.C_ACCTSCHEMA_ID, SC.NAME, F.AD_TABLE_ID, F.DATEACCT, 
F.ACCTDESCRIPTION, F.ACCTVALUE, F.DOCBASETYPE, F.RECORD_ID, 
       F.FACT_ACCT_GROUP_ID, F.ACCOUNT_ID,F.FACTACCTTYPE,
-      (CASE F.AMTACCTDR WHEN 0 THEN (CASE SIGN(F.AMTACCTCR) WHEN -1 THEN 1 
ELSE 2 END) ELSE (CASE SIGN(F.AMTACCTDR) WHEN -1 THEN 3 ELSE 4 END) END), 
F.AD_CLIENT_ID) AA
+      (CASE F.AMTACCTDR WHEN 0 THEN (CASE SIGN(F.AMTACCTCR) WHEN -1 THEN 1 
ELSE 2 END) ELSE (CASE SIGN(F.AMTACCTDR) WHEN -1 THEN 3 ELSE 4 END) END), 
F.AD_CLIENT_ID
+      HAVING (sum(F.AMTACCTDR) <> 0 OR sum(F.AMTACCTCR) <> 0)) AA
       ORDER BY SCHEMA_NAME, DATEACCT, FACTACCTTYPE2, IDENTIFIER, SEQNO
       ]]></Sql>
     <Field name="rownum" value="count"/>
@@ -165,7 +166,8 @@
       AND f.C_ACCTSCHEMA_ID = SC.C_ACCTSCHEMA_ID
       GROUP BY f.C_ACCTSCHEMA_ID, SC.NAME, F.AD_TABLE_ID, F.DATEACCT, 
F.ACCTDESCRIPTION, F.ACCTVALUE, F.DOCBASETYPE, F.RECORD_ID, 
       F.FACT_ACCT_GROUP_ID, F.ACCOUNT_ID,F.FACTACCTTYPE,
-      (CASE F.AMTACCTDR WHEN 0 THEN (CASE SIGN(F.AMTACCTCR) WHEN -1 THEN 1 
ELSE 2 END) ELSE (CASE SIGN(F.AMTACCTDR) WHEN -1 THEN 3 ELSE 4 END) END), 
F.AD_CLIENT_ID) AA
+      (CASE F.AMTACCTDR WHEN 0 THEN (CASE SIGN(F.AMTACCTCR) WHEN -1 THEN 1 
ELSE 2 END) ELSE (CASE SIGN(F.AMTACCTDR) WHEN -1 THEN 3 ELSE 4 END) END), 
F.AD_CLIENT_ID
+      HAVING (sum(F.AMTACCTDR) <> 0 OR sum(F.AMTACCTCR) <> 0)) AA
       ORDER BY SCHEMA_NAME, DATEACCT, FACTACCTTYPE2, IDENTIFIER, SEQNO
       ]]></Sql>
     <Field name="rownum" value="count"/>
@@ -225,7 +227,8 @@
       AND F.Fact_Acct_Group_ID = ?
       GROUP BY f.C_ACCTSCHEMA_ID, SC.NAME, F.AD_TABLE_ID, F.DATEACCT, 
F.ACCTDESCRIPTION, F.ACCTVALUE, F.DOCBASETYPE, F.RECORD_ID, 
       F.FACT_ACCT_GROUP_ID, F.ACCOUNT_ID,F.FACTACCTTYPE,
-      (CASE F.AMTACCTDR WHEN 0 THEN (CASE SIGN(F.AMTACCTCR) WHEN -1 THEN 1 
ELSE 2 END) ELSE (CASE SIGN(F.AMTACCTDR) WHEN -1 THEN 3 ELSE 4 END) END), 
F.AD_CLIENT_ID) AA
+      (CASE F.AMTACCTDR WHEN 0 THEN (CASE SIGN(F.AMTACCTCR) WHEN -1 THEN 1 
ELSE 2 END) ELSE (CASE SIGN(F.AMTACCTDR) WHEN -1 THEN 3 ELSE 4 END) END), 
F.AD_CLIENT_ID
+      HAVING (sum(F.AMTACCTDR) <> 0 OR sum(F.AMTACCTCR) <> 0)) AA
       ORDER BY SCHEMA_NAME, DATEACCT, FACTACCTTYPE2, IDENTIFIER, SEQNO
       ]]></Sql>
     <Field name="rownum" value="count"/>

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Openbravo-commits mailing list
Openbravo-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to