|
Author: hansbak
Date: Fri Oct 1 10:24:56 2010 New Revision: 1003465 URL: http://svn.apache.org/viewvc?rev=1003465&view=rev Log: In “IncomeStatement.groovy” file, add new gl account class for “DEPRECIATION” Modified: ofbiz/trunk/applications/accounting/webapp/accounting/WEB-INF/actions/reports/IncomeStatement.groovy Modified: ofbiz/trunk/applications/accounting/webapp/accounting/WEB-INF/actions/reports/IncomeStatement.groovy URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/webapp/accounting/WEB-INF/actions/reports/IncomeStatement.groovy?rev=1003465&r1=1003464&r2=1003465&view=diff ============================================================================== --- ofbiz/trunk/applications/accounting/webapp/accounting/WEB-INF/actions/reports/IncomeStatement.groovy (original) +++ ofbiz/trunk/applications/accounting/webapp/accounting/WEB-INF/actions/reports/IncomeStatement.groovy Fri Oct 1 10:24:56 2010 @@ -52,6 +52,8 @@ GenericValue cogsExpenseGlAccountClass = List cogsExpenseAccountClassIds = UtilAccounting.getDescendantGlAccountClassIds(cogsExpenseGlAccountClass); GenericValue sgaExpenseGlAccountClass = delegator.findOne("GlAccountClass", UtilMisc.toMap("glAccountClassId", "SGA_EXPENSE"), true); List sgaExpenseAccountClassIds = UtilAccounting.getDescendantGlAccountClassIds(sgaExpenseGlAccountClass); +GenericValue depreciationGlAccountClass = delegator.findOne("GlAccountClass", UtilMisc.toMap("glAccountClassId", "DEPRECIATION"), true); +List depreciationAccountClassIds = UtilAccounting.getDescendantGlAccountClassIds(depreciationGlAccountClass); List mainAndExprs = FastList.newInstance(); mainAndExprs.add(EntityCondition.makeCondition("organizationPartyId", EntityOperator.IN, partyIds)); @@ -105,7 +107,7 @@ if (transactionTotals) { context.revenueAccountBalanceList = accountBalanceList; context.revenueAccountBalanceList.add(UtilMisc.toMap("accountName", "TOTAL REVENUES", "balance", balanceTotal)); context.revenueBalanceTotal = balanceTotal; -balanceTotalList.add(UtilMisc.toMap("totalName", "AccountingNetSales", "balance", balanceTotal)); +balanceTotalList.add(UtilMisc.toMap("totalName", "AccountingTotalNetSales", "balance", balanceTotal)); // EXPENSE // account balances @@ -233,6 +235,47 @@ if (transactionTotals) { } sgaExpense = balanceTotal; +//DEPRECIATION (DEPRECIATION) +//account balances +accountBalanceList = []; +transactionTotals = []; +balanceTotal = BigDecimal.ZERO; +List depreciationAndExprs = FastList.newInstance(mainAndExprs); +depreciationAndExprs.add(EntityCondition.makeCondition("glAccountClassId", EntityOperator.IN, depreciationAccountClassIds)); +transactionTotals = delegator.findList("AcctgTransEntrySums", EntityCondition.makeCondition(depreciationAndExprs, EntityOperator.AND), UtilMisc.toSet("glAccountId", "accountName", "accountCode", "debitCreditFlag", "amount"), UtilMisc.toList("glAccountId"), null, false); +if (transactionTotals) { +Map transactionTotalsMap = [:]; +balanceTotalCredit = BigDecimal.ZERO; +balanceTotalDebit = BigDecimal.ZERO; +transactionTotals.each { transactionTotal -> + Map accountMap = (Map)transactionTotalsMap.get(transactionTotal.glAccountId); + if (!accountMap) { + accountMap = UtilMisc.makeMapWritable(transactionTotal); + accountMap.remove("debitCreditFlag"); + accountMap.remove("amount"); + accountMap.put("D", BigDecimal.ZERO); + accountMap.put("C", BigDecimal.ZERO); + accountMap.put("balance", BigDecimal.ZERO); + } + UtilMisc.addToBigDecimalInMap(accountMap, transactionTotal.debitCreditFlag, transactionTotal.amount); + if ("D".equals(transactionTotal.debitCreditFlag)) { + balanceTotalDebit = balanceTotalDebit.add(transactionTotal.amount); + } else { + balanceTotalCredit = balanceTotalCredit.add(transactionTotal.amount); + } + BigDecimal debitAmount = (BigDecimal)accountMap.get("D"); + BigDecimal creditAmount = (BigDecimal)accountMap.get("C"); + // expenses are accounts of class DEBIT: the balance is given by debits minus credits + BigDecimal balance = debitAmount.subtract(creditAmount); + accountMap.put("balance", balance); + transactionTotalsMap.put(transactionTotal.glAccountId, accountMap); +} +accountBalanceList = UtilMisc.sortMaps(transactionTotalsMap.values().asList(), UtilMisc.toList("accountCode")); +// expenses are accounts of class DEBIT: the balance is given by debits minus credits +balanceTotal = balanceTotalDebit.subtract(balanceTotalCredit); +} +depreciation = balanceTotal; + // INCOME // account balances accountBalanceList = []; @@ -282,6 +325,9 @@ balanceTotalList.add(UtilMisc.toMap("tot // OPERATING EXPENSES context.sgaExpense = sgaExpense; balanceTotalList.add(UtilMisc.toMap("totalName", "AccountingOperatingExpenses", "balance", context.sgaExpense)); +// DEPRECIATION +context.depreciation = depreciation; +balanceTotalList.add(UtilMisc.toMap("totalName", "AccountingDepreciation", "balance", context.depreciation)); // INCOME FROM OPERATIONS = GROSS MARGIN - OPERATING EXPENSES context.incomeFromOperations = (context.grossMargin).subtract(context.sgaExpense); balanceTotalList.add(UtilMisc.toMap("totalName", "AccountingIncomeFromOperations", "balance", context.incomeFromOperations)); |
| Free forum by Nabble | Edit this page |
