/* * The Kuali Financial System, a comprehensive financial management system for higher education. * * Copyright 2005-2014 The Kuali Foundation * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.kuali.kfs.module.bc.document.service.impl; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.util.List; import org.apache.ojb.broker.PersistenceBrokerException; import org.kuali.kfs.module.bc.BCConstants; import org.kuali.kfs.module.bc.BCKeyConstants; import org.kuali.kfs.module.bc.businessobject.BudgetConstructionAccountSummary; import org.kuali.kfs.module.bc.businessobject.BudgetConstructionOrgAccountSummaryReport; import org.kuali.kfs.module.bc.businessobject.BudgetConstructionOrgAccountSummaryReportTotal; import org.kuali.kfs.module.bc.document.dataaccess.BudgetConstructionAccountSummaryReportDao; import org.kuali.kfs.module.bc.document.service.BudgetConstructionAccountSummaryReportService; import org.kuali.kfs.module.bc.document.service.BudgetConstructionReportsServiceHelper; import org.kuali.kfs.module.bc.report.BudgetConstructionReportHelper; import org.kuali.kfs.module.bc.util.BudgetConstructionUtils; import org.kuali.kfs.sys.KFSConstants; import org.kuali.kfs.sys.KFSPropertyConstants; import org.kuali.rice.core.api.config.property.ConfigurationService; import org.kuali.rice.core.api.util.type.KualiInteger; import org.springframework.transaction.annotation.Transactional; /** * Service implementation of BudgetConstructionAccountSummaryReportService. */ @Transactional public class BudgetConstructionAccountSummaryReportServiceImpl implements BudgetConstructionAccountSummaryReportService { protected BudgetConstructionAccountSummaryReportDao budgetConstructionAccountSummaryReportDao; protected ConfigurationService kualiConfigurationService; protected BudgetConstructionReportsServiceHelper budgetConstructionReportsServiceHelper; protected boolean trExist = false; /** * @see org.kuali.kfs.module.bc.document.service.BudgetReportsControlListService#updateRepotsAccountSummaryTable(java.lang.String) */ @Override public void updateReportsAccountSummaryTable(String principalName) { String expenditureINList = BudgetConstructionUtils.getExpenditureINList(); String revenueINList = BudgetConstructionUtils.getRevenueINList(); budgetConstructionAccountSummaryReportDao.cleanReportsAccountSummaryTable(principalName); budgetConstructionAccountSummaryReportDao.updateReportsAccountSummaryTable(principalName, revenueINList, expenditureINList); } /** * @see org.kuali.kfs.module.bc.document.service.BudgetReportsControlListService#updateRepotsAccountSummaryTableWithConsolidation(java.lang.String) */ @Override public void updateReportsAccountSummaryTableWithConsolidation(String principalName) { String expenditureINList = BudgetConstructionUtils.getExpenditureINList(); String revenueINList = BudgetConstructionUtils.getRevenueINList(); budgetConstructionAccountSummaryReportDao.cleanReportsAccountSummaryTable(principalName); budgetConstructionAccountSummaryReportDao.updateReportsAccountSummaryTableWithConsolidation(principalName, revenueINList, expenditureINList); } /** * @see org.kuali.kfs.module.bc.document.service.BudgetConstructionAccountSummaryReportService#updateReportsAccountSummaryTable(java.lang.String, * boolean) */ @Override public void updateReportsAccountSummaryTable(String principalName, boolean consolidated) { if (consolidated) { updateReportsAccountSummaryTableWithConsolidation(principalName); } else { updateReportsAccountSummaryTable(principalName); } } /** * sets budgetConstructionAccountSummaryReportDao * * @param budgetConstructionAccountSummaryReportDao */ public void setBudgetConstructionAccountSummaryReportDao(BudgetConstructionAccountSummaryReportDao budgetConstructionAccountSummaryReportDao) { this.budgetConstructionAccountSummaryReportDao = budgetConstructionAccountSummaryReportDao; } /** * @see org.kuali.kfs.module.bc.document.service.BudgetConstructionAccountSummaryReportService#buildReports(java.lang.Integer, * java.util.Collection) */ @Override public Collection<BudgetConstructionOrgAccountSummaryReport> buildReports(Integer universityFiscalYear, String principalName, boolean consolidated) { Collection<BudgetConstructionOrgAccountSummaryReport> reportSet = new ArrayList(); Collection<BudgetConstructionAccountSummary> accountSummaryList = budgetConstructionReportsServiceHelper.getDataForBuildingReports(BudgetConstructionAccountSummary.class, principalName, buildOrderByList()); // Making a list with same organizationChartOfAccountsCode, organizationCode, chartOfAccountsCode, subFundGroupCode List totalList = BudgetConstructionReportHelper.deleteDuplicated((List) accountSummaryList, fieldsForTotal()); // Calculate Total Section List<BudgetConstructionOrgAccountSummaryReportTotal> orgAccountSummaryReportTotalList = calculateTotal((List) accountSummaryList, totalList); // builds report for (BudgetConstructionAccountSummary accountSummaryEntry : accountSummaryList) { BudgetConstructionOrgAccountSummaryReport orgAccountSummaryReportEntry = new BudgetConstructionOrgAccountSummaryReport(); buildReportsHeader(universityFiscalYear, orgAccountSummaryReportEntry, accountSummaryEntry, consolidated); buildReportsBody(orgAccountSummaryReportEntry, accountSummaryEntry); buildReportsTotal(orgAccountSummaryReportEntry, accountSummaryEntry, orgAccountSummaryReportTotalList); reportSet.add(orgAccountSummaryReportEntry); } return reportSet; } /** * builds report Header * * @param BudgetConstructionAccountSummary bcas */ protected void buildReportsHeader(Integer universityFiscalYear, BudgetConstructionOrgAccountSummaryReport orgAccountSummaryReportEntry, BudgetConstructionAccountSummary accountSummary, boolean consolidated) { String orgChartDesc = accountSummary.getOrganizationChartOfAccounts().getFinChartOfAccountDescription(); String chartDesc = accountSummary.getChartOfAccounts().getFinChartOfAccountDescription(); String orgName = accountSummary.getOrganization().getOrganizationName(); String reportChartDesc = accountSummary.getChartOfAccounts().getReportsToChartOfAccounts().getFinChartOfAccountDescription(); String subFundGroupName = accountSummary.getFundGroup().getName(); String subFundGroupDes = accountSummary.getSubFundGroup().getSubFundGroupDescription(); Integer prevFiscalyear = universityFiscalYear - 1; orgAccountSummaryReportEntry.setFiscalYear(prevFiscalyear.toString() + "-" + universityFiscalYear.toString().substring(2, 4)); orgAccountSummaryReportEntry.setOrgChartOfAccountsCode(accountSummary.getOrganizationChartOfAccountsCode()); if (orgChartDesc == null) { orgAccountSummaryReportEntry.setOrgChartOfAccountDescription(kualiConfigurationService.getPropertyValueAsString(BCKeyConstants.ERROR_REPORT_GETTING_CHART_DESCRIPTION)); } else { orgAccountSummaryReportEntry.setOrgChartOfAccountDescription(orgChartDesc); } orgAccountSummaryReportEntry.setOrganizationCode(accountSummary.getOrganizationCode()); if (orgName == null) { orgAccountSummaryReportEntry.setOrganizationName(kualiConfigurationService.getPropertyValueAsString(BCKeyConstants.ERROR_REPORT_GETTING_ORGANIZATION_NAME)); } else { orgAccountSummaryReportEntry.setOrganizationName(orgName); } orgAccountSummaryReportEntry.setChartOfAccountsCode(accountSummary.getChartOfAccountsCode()); if (chartDesc == null) { orgAccountSummaryReportEntry.setChartOfAccountDescription(kualiConfigurationService.getPropertyValueAsString(BCKeyConstants.ERROR_REPORT_GETTING_CHART_DESCRIPTION)); } else { orgAccountSummaryReportEntry.setChartOfAccountDescription(chartDesc); } orgAccountSummaryReportEntry.setFundGroupCode(accountSummary.getFundGroupCode()); if (subFundGroupName == null) { orgAccountSummaryReportEntry.setFundGroupName(kualiConfigurationService.getPropertyValueAsString(BCKeyConstants.ERROR_REPORT_GETTING_FUNDGROUP_NAME)); } else { orgAccountSummaryReportEntry.setFundGroupName(subFundGroupName); } orgAccountSummaryReportEntry.setSubFundGroupCode(accountSummary.getSubFundGroupCode()); if (subFundGroupName == null) { orgAccountSummaryReportEntry.setSubFundGroupDescription(kualiConfigurationService.getPropertyValueAsString(BCKeyConstants.ERROR_REPORT_GETTING_SUBFUNDGROUP_DESCRIPTION)); } else { orgAccountSummaryReportEntry.setSubFundGroupDescription(subFundGroupDes); } Integer prevPrevFiscalyear = prevFiscalyear - 1; orgAccountSummaryReportEntry.setBaseFy(prevPrevFiscalyear.toString() + "-" + prevFiscalyear.toString().substring(2, 4)); orgAccountSummaryReportEntry.setReqFy(prevFiscalyear.toString() + "-" + universityFiscalYear.toString().substring(2, 4)); orgAccountSummaryReportEntry.setHeader1(kualiConfigurationService.getPropertyValueAsString(BCKeyConstants.MSG_REPORT_HEADER_ACCOUNT_SUB)); orgAccountSummaryReportEntry.setHeader2(kualiConfigurationService.getPropertyValueAsString(BCKeyConstants.MSG_REPORT_HEADER_ACCOUNT_SUB_NAME)); orgAccountSummaryReportEntry.setHeader3(kualiConfigurationService.getPropertyValueAsString(BCKeyConstants.MSG_REPORT_HEADER_BASE_AMOUNT)); orgAccountSummaryReportEntry.setHeader4(kualiConfigurationService.getPropertyValueAsString(BCKeyConstants.MSG_REPORT_HEADER_REQ_AMOUNT)); orgAccountSummaryReportEntry.setHeader5(kualiConfigurationService.getPropertyValueAsString(BCKeyConstants.MSG_REPORT_HEADER_CHANGE)); orgAccountSummaryReportEntry.setHeader6(kualiConfigurationService.getPropertyValueAsString(BCKeyConstants.MSG_REPORT_HEADER_CHANGE)); if (consolidated) { orgAccountSummaryReportEntry.setConsHdr(BCConstants.Report.CONSOLIIDATED); } else { orgAccountSummaryReportEntry.setConsHdr(BCConstants.Report.BLANK); } } /** * builds report body * * @param BudgetConstructionAccountSummary bcas */ protected void buildReportsBody(BudgetConstructionOrgAccountSummaryReport orgAccountSummaryReportEntry, BudgetConstructionAccountSummary accountSummary) { orgAccountSummaryReportEntry.setAccountNumber(accountSummary.getAccountNumber()); orgAccountSummaryReportEntry.setSubAccountNumber(accountSummary.getSubAccountNumber()); if (accountSummary.getSubAccountNumber().equals(KFSConstants.getDashSubAccountNumber())) { if (accountSummary.getAccount().getAccountName() == null) { orgAccountSummaryReportEntry.setAccountNameAndSubAccountName(kualiConfigurationService.getPropertyValueAsString(BCKeyConstants.ERROR_REPORT_GETTING_ACCOUNT_DESCRIPTION)); } else { orgAccountSummaryReportEntry.setAccountNameAndSubAccountName(accountSummary.getAccount().getAccountName()); } } else { try { if (accountSummary.getSubAccount().getSubAccountName() == null) { orgAccountSummaryReportEntry.setAccountNameAndSubAccountName(kualiConfigurationService.getPropertyValueAsString(BCKeyConstants.ERROR_REPORT_GETTING_SUB_ACCOUNT_DESCRIPTION)); } else { orgAccountSummaryReportEntry.setAccountNameAndSubAccountName(accountSummary.getSubAccount().getSubAccountName()); } } catch (PersistenceBrokerException e) { orgAccountSummaryReportEntry.setAccountNameAndSubAccountName(kualiConfigurationService.getPropertyValueAsString(BCKeyConstants.ERROR_REPORT_GETTING_SUB_ACCOUNT_DESCRIPTION)); } } // build income expense description if (accountSummary.getIncomeExpenseCode().equals(BCConstants.Report.INCOME_EXP_TYPE_A)) { orgAccountSummaryReportEntry.setIncExpDesc(kualiConfigurationService.getPropertyValueAsString(BCKeyConstants.MSG_REPORT_INCOME_EXP_DESC_REVENUE)); } else if (accountSummary.getIncomeExpenseCode().equals(BCConstants.Report.INCOME_EXP_TYPE_E)) { orgAccountSummaryReportEntry.setIncExpDesc(kualiConfigurationService.getPropertyValueAsString(BCKeyConstants.MSG_REPORT_INCOME_EXP_DESC_EXP_GROSS)); } else if (accountSummary.getIncomeExpenseCode().equals(BCConstants.Report.INCOME_EXP_TYPE_T)) { trExist = true; orgAccountSummaryReportEntry.setIncExpDesc(kualiConfigurationService.getPropertyValueAsString(BCKeyConstants.MSG_REPORT_INCOME_EXP_DESC_TRNFR_IN)); } else { if (trExist) { trExist = false; orgAccountSummaryReportEntry.setIncExpDesc(kualiConfigurationService.getPropertyValueAsString(BCKeyConstants.MSG_REPORT_INCOME_EXP_DESC_EXP_NET_TRNFR)); } else { orgAccountSummaryReportEntry.setIncExpDesc(kualiConfigurationService.getPropertyValueAsString(BCKeyConstants.MSG_REPORT_INCOME_EXP_DESC_EXPENDITURE)); } } KualiInteger beginingBalanceLineAmt = KualiInteger.ZERO; KualiInteger accountLineAnnualBalAmt = KualiInteger.ZERO; if (accountSummary.getFinancialBeginningBalanceLineAmount() != null) { beginingBalanceLineAmt = accountSummary.getFinancialBeginningBalanceLineAmount(); } if (accountSummary.getFinancialBeginningBalanceLineAmount() != null) { accountLineAnnualBalAmt = accountSummary.getAccountLineAnnualBalanceAmount(); } orgAccountSummaryReportEntry.setBaseAmount(beginingBalanceLineAmt); orgAccountSummaryReportEntry.setReqAmount(accountLineAnnualBalAmt); orgAccountSummaryReportEntry.setAmountChange(accountLineAnnualBalAmt.subtract(beginingBalanceLineAmt)); orgAccountSummaryReportEntry.setPercentChange(BudgetConstructionReportHelper.calculatePercent(orgAccountSummaryReportEntry.getAmountChange(), beginingBalanceLineAmt)); } /** * builds report total * * @param BudgetConstructionAccountSummary bcas * @param List reportTotalList */ protected void buildReportsTotal(BudgetConstructionOrgAccountSummaryReport orgAccountSummaryReportEntry, BudgetConstructionAccountSummary accountSummary, List reportTotalList) { Iterator totalListIter = reportTotalList.iterator(); while (totalListIter.hasNext()) { BudgetConstructionOrgAccountSummaryReportTotal bcasTotalEntry = (BudgetConstructionOrgAccountSummaryReportTotal) totalListIter.next(); if (BudgetConstructionReportHelper.isSameEntry(accountSummary, bcasTotalEntry.getBcas(), fieldsForTotal())) { BigDecimal percentChange = BigDecimal.ZERO; orgAccountSummaryReportEntry.setTotalRevenueBaseAmount(bcasTotalEntry.getTotalRevenueBaseAmount()); orgAccountSummaryReportEntry.setTotalGrossBaseAmount(bcasTotalEntry.getTotalGrossBaseAmount()); orgAccountSummaryReportEntry.setTotalTransferInBaseAmount(bcasTotalEntry.getTotalTransferInBaseAmount()); orgAccountSummaryReportEntry.setTotalNetTransferBaseAmount(bcasTotalEntry.getTotalNetTransferBaseAmount()); orgAccountSummaryReportEntry.setTotalRevenueReqAmount(bcasTotalEntry.getTotalRevenueReqAmount()); orgAccountSummaryReportEntry.setTotalGrossReqAmount(bcasTotalEntry.getTotalGrossReqAmount()); orgAccountSummaryReportEntry.setTotalTransferInReqAmount(bcasTotalEntry.getTotalTransferInReqAmount()); orgAccountSummaryReportEntry.setTotalNetTransferReqAmount(bcasTotalEntry.getTotalNetTransferReqAmount()); orgAccountSummaryReportEntry.setTotalRevenueAmountChange(orgAccountSummaryReportEntry.getTotalRevenueReqAmount().subtract(orgAccountSummaryReportEntry.getTotalRevenueBaseAmount())); percentChange = BudgetConstructionReportHelper.calculatePercent(orgAccountSummaryReportEntry.getTotalRevenueAmountChange(), orgAccountSummaryReportEntry.getTotalRevenueBaseAmount()); orgAccountSummaryReportEntry.setTotalRevenuePercentChange(percentChange); orgAccountSummaryReportEntry.setTotalGrossAmountChange(orgAccountSummaryReportEntry.getTotalGrossReqAmount().subtract(orgAccountSummaryReportEntry.getTotalGrossBaseAmount())); percentChange = BudgetConstructionReportHelper.calculatePercent(orgAccountSummaryReportEntry.getTotalGrossAmountChange(), orgAccountSummaryReportEntry.getTotalGrossBaseAmount()); orgAccountSummaryReportEntry.setTotalGrossPercentChange(percentChange); orgAccountSummaryReportEntry.setTotalTransferAmountChange(orgAccountSummaryReportEntry.getTotalTransferInReqAmount().subtract(orgAccountSummaryReportEntry.getTotalTransferInBaseAmount())); percentChange = BudgetConstructionReportHelper.calculatePercent(orgAccountSummaryReportEntry.getTotalTransferAmountChange(), orgAccountSummaryReportEntry.getTotalTransferInBaseAmount()); orgAccountSummaryReportEntry.setTotalTransferInPercentChange(percentChange); orgAccountSummaryReportEntry.setTotalNetTransferAmountChange(orgAccountSummaryReportEntry.getTotalNetTransferReqAmount().subtract(orgAccountSummaryReportEntry.getTotalNetTransferBaseAmount())); percentChange = BudgetConstructionReportHelper.calculatePercent(orgAccountSummaryReportEntry.getTotalNetTransferAmountChange(), orgAccountSummaryReportEntry.getTotalNetTransferBaseAmount()); orgAccountSummaryReportEntry.setTotalNetTransferPercentChange(percentChange); orgAccountSummaryReportEntry.setRevExpDifferenceBaseAmount(orgAccountSummaryReportEntry.getTotalRevenueBaseAmount().subtract(orgAccountSummaryReportEntry.getTotalNetTransferBaseAmount())); orgAccountSummaryReportEntry.setRevExpDifferenceReqAmount(orgAccountSummaryReportEntry.getTotalRevenueReqAmount().subtract(orgAccountSummaryReportEntry.getTotalNetTransferReqAmount())); orgAccountSummaryReportEntry.setRevExpDifferenceAmountChange(orgAccountSummaryReportEntry.getRevExpDifferenceReqAmount().subtract(orgAccountSummaryReportEntry.getRevExpDifferenceBaseAmount())); percentChange = BudgetConstructionReportHelper.calculatePercent(orgAccountSummaryReportEntry.getRevExpDifferenceAmountChange(), orgAccountSummaryReportEntry.getRevExpDifferenceBaseAmount()); orgAccountSummaryReportEntry.setRevExpDifferencePercentChange(percentChange); } } } /** * Calculates total part of report * * @param List bcasList * @param List simpleList */ protected List calculateTotal(List bcasList, List simpleList) { KualiInteger totalRevenueBaseAmount = KualiInteger.ZERO; KualiInteger totalGrossBaseAmount = KualiInteger.ZERO; KualiInteger totalTransferInBaseAmount = KualiInteger.ZERO; KualiInteger totalNetTransferBaseAmount = KualiInteger.ZERO; KualiInteger totalRevenueReqAmount = KualiInteger.ZERO; KualiInteger totalGrossReqAmount = KualiInteger.ZERO; KualiInteger totalTransferInReqAmount = KualiInteger.ZERO; KualiInteger totalNetTransferReqAmount = KualiInteger.ZERO; List returnList = new ArrayList(); Iterator simpleListIterator = simpleList.iterator(); boolean prev = false; while (simpleListIterator.hasNext()) { BudgetConstructionAccountSummary simpleBcasEntry = (BudgetConstructionAccountSummary) simpleListIterator.next(); Iterator bcasListIterator = bcasList.iterator(); while (bcasListIterator.hasNext()) { BudgetConstructionAccountSummary bcasListEntry = (BudgetConstructionAccountSummary) bcasListIterator.next(); if (BudgetConstructionReportHelper.isSameEntry(simpleBcasEntry, bcasListEntry, fieldsForTotal())) { if (bcasListEntry.getIncomeExpenseCode().equals(BCConstants.Report.INCOME_EXP_TYPE_A)) { prev = false; totalRevenueBaseAmount = totalRevenueBaseAmount.add(bcasListEntry.getFinancialBeginningBalanceLineAmount()); totalRevenueReqAmount = totalRevenueReqAmount.add(bcasListEntry.getAccountLineAnnualBalanceAmount()); } else if (bcasListEntry.getIncomeExpenseCode().equals(BCConstants.Report.INCOME_EXP_TYPE_E)) { prev = false; totalGrossBaseAmount = totalGrossBaseAmount.add(bcasListEntry.getFinancialBeginningBalanceLineAmount()); totalGrossReqAmount = totalGrossReqAmount.add(bcasListEntry.getAccountLineAnnualBalanceAmount()); } else if (bcasListEntry.getIncomeExpenseCode().equals(BCConstants.Report.INCOME_EXP_TYPE_T)) { prev = true; totalTransferInBaseAmount = totalTransferInBaseAmount.add(bcasListEntry.getFinancialBeginningBalanceLineAmount()); totalTransferInReqAmount = totalTransferInReqAmount.add(bcasListEntry.getAccountLineAnnualBalanceAmount()); } else if (bcasListEntry.getIncomeExpenseCode().equals(BCConstants.Report.INCOME_EXP_TYPE_X)) { totalNetTransferBaseAmount = totalNetTransferBaseAmount.add(bcasListEntry.getFinancialBeginningBalanceLineAmount()); totalNetTransferReqAmount = totalNetTransferReqAmount.add(bcasListEntry.getAccountLineAnnualBalanceAmount()); if (!prev) { prev = false; totalGrossBaseAmount = totalGrossBaseAmount.add(bcasListEntry.getFinancialBeginningBalanceLineAmount()); totalGrossReqAmount = totalGrossReqAmount.add(bcasListEntry.getAccountLineAnnualBalanceAmount()); } } } } BudgetConstructionOrgAccountSummaryReportTotal bcoasrTotal = new BudgetConstructionOrgAccountSummaryReportTotal(); bcoasrTotal.setBcas(simpleBcasEntry); bcoasrTotal.setTotalGrossBaseAmount(totalGrossBaseAmount); bcoasrTotal.setTotalGrossReqAmount(totalGrossReqAmount); bcoasrTotal.setTotalNetTransferBaseAmount(totalNetTransferBaseAmount); bcoasrTotal.setTotalNetTransferReqAmount(totalNetTransferReqAmount); bcoasrTotal.setTotalRevenueBaseAmount(totalRevenueBaseAmount); bcoasrTotal.setTotalRevenueReqAmount(totalRevenueReqAmount); bcoasrTotal.setTotalTransferInBaseAmount(totalTransferInBaseAmount); bcoasrTotal.setTotalTransferInReqAmount(totalTransferInReqAmount); returnList.add(bcoasrTotal); totalGrossBaseAmount = KualiInteger.ZERO; totalGrossReqAmount = KualiInteger.ZERO; totalNetTransferBaseAmount = KualiInteger.ZERO; totalNetTransferReqAmount = KualiInteger.ZERO; totalRevenueBaseAmount = KualiInteger.ZERO; totalRevenueReqAmount = KualiInteger.ZERO; totalTransferInBaseAmount = KualiInteger.ZERO; totalTransferInReqAmount = KualiInteger.ZERO; } return returnList; } protected List<String> fieldsForTotal() { List<String> fieldList = new ArrayList(); fieldList.add(KFSPropertyConstants.ORGANIZATION_CHART_OF_ACCOUNTS_CODE); fieldList.add(KFSPropertyConstants.ORGANIZATION_CODE); fieldList.add(KFSPropertyConstants.CHART_OF_ACCOUNTS_CODE); fieldList.add(KFSPropertyConstants.SUB_FUND_GROUP_CODE); return fieldList; } /** * builds orderByList for sort order. * * @return returnList */ public List<String> buildOrderByList() { List<String> returnList = new ArrayList(); returnList.add(KFSPropertyConstants.ORGANIZATION_CHART_OF_ACCOUNTS_CODE); returnList.add(KFSPropertyConstants.ORGANIZATION_CODE); returnList.add(KFSPropertyConstants.CHART_OF_ACCOUNTS_CODE); returnList.add(KFSPropertyConstants.SUB_FUND_SORT_CODE); returnList.add(KFSPropertyConstants.FUND_GROUP_CODE); returnList.add(KFSPropertyConstants.SUB_FUND_GROUP_CODE); returnList.add(KFSPropertyConstants.ACCOUNT_NUMBER); returnList.add(KFSPropertyConstants.SUB_ACCOUNT_NUMBER); returnList.add(KFSPropertyConstants.INCOME_EXPENSE_CODE); return returnList; } public void setConfigurationService(ConfigurationService kualiConfigurationService) { this.kualiConfigurationService = kualiConfigurationService; } public void setBudgetConstructionReportsServiceHelper(BudgetConstructionReportsServiceHelper budgetConstructionReportsServiceHelper) { this.budgetConstructionReportsServiceHelper = budgetConstructionReportsServiceHelper; } }