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