public List calculateTotal( List<BudgetConstructionLevelSummary> bclsList, List<BudgetConstructionLevelSummary> simpleList) { KualiInteger revenueFinancialBeginningBalanceLineAmount = KualiInteger.ZERO; KualiInteger revenueAccountLineAnnualBalanceAmount = KualiInteger.ZERO; KualiInteger expenditureFinancialBeginningBalanceLineAmount = KualiInteger.ZERO; KualiInteger expenditureAccountLineAnnualBalanceAmount = KualiInteger.ZERO; KualiInteger differenceFinancialBeginningBalanceLineAmount = KualiInteger.ZERO; KualiInteger differenceAccountLineAnnualBalanceAmount = KualiInteger.ZERO; List returnList = new ArrayList(); for (BudgetConstructionLevelSummary simpleBclsEntry : simpleList) { BudgetConstructionOrgLevelSummaryReportTotal bcLevelTotal = new BudgetConstructionOrgLevelSummaryReportTotal(); for (BudgetConstructionLevelSummary bclsListEntry : bclsList) { if (BudgetConstructionReportHelper.isSameEntry( simpleBclsEntry, bclsListEntry, fieldsForTotal())) { if (bclsListEntry.getIncomeExpenseCode().equals("A")) { revenueFinancialBeginningBalanceLineAmount = revenueFinancialBeginningBalanceLineAmount.add( bclsListEntry.getFinancialBeginningBalanceLineAmount()); revenueAccountLineAnnualBalanceAmount = revenueAccountLineAnnualBalanceAmount.add( bclsListEntry.getAccountLineAnnualBalanceAmount()); } else { expenditureFinancialBeginningBalanceLineAmount = expenditureFinancialBeginningBalanceLineAmount.add( bclsListEntry.getFinancialBeginningBalanceLineAmount()); expenditureAccountLineAnnualBalanceAmount = expenditureAccountLineAnnualBalanceAmount.add( bclsListEntry.getAccountLineAnnualBalanceAmount()); } } } bcLevelTotal.setBcls(simpleBclsEntry); bcLevelTotal.setRevenueFinancialBeginningBalanceLineAmount( revenueFinancialBeginningBalanceLineAmount); bcLevelTotal.setRevenueAccountLineAnnualBalanceAmount(revenueAccountLineAnnualBalanceAmount); bcLevelTotal.setExpenditureFinancialBeginningBalanceLineAmount( expenditureFinancialBeginningBalanceLineAmount); bcLevelTotal.setExpenditureAccountLineAnnualBalanceAmount( expenditureAccountLineAnnualBalanceAmount); differenceFinancialBeginningBalanceLineAmount = revenueFinancialBeginningBalanceLineAmount.subtract( expenditureFinancialBeginningBalanceLineAmount); differenceAccountLineAnnualBalanceAmount = revenueAccountLineAnnualBalanceAmount.subtract(expenditureAccountLineAnnualBalanceAmount); bcLevelTotal.setDifferenceFinancialBeginningBalanceLineAmount( differenceFinancialBeginningBalanceLineAmount); bcLevelTotal.setDifferenceAccountLineAnnualBalanceAmount( differenceAccountLineAnnualBalanceAmount); returnList.add(bcLevelTotal); revenueFinancialBeginningBalanceLineAmount = KualiInteger.ZERO; revenueAccountLineAnnualBalanceAmount = KualiInteger.ZERO; expenditureFinancialBeginningBalanceLineAmount = KualiInteger.ZERO; expenditureAccountLineAnnualBalanceAmount = KualiInteger.ZERO; differenceFinancialBeginningBalanceLineAmount = KualiInteger.ZERO; differenceAccountLineAnnualBalanceAmount = KualiInteger.ZERO; } return returnList; }
/** * builds report total * * @param BudgetConstructionLevelSummary bcas * @param List reportTotalList */ public void buildReportsTotal( BudgetConstructionOrgLevelSummaryReport orgLevelSummaryReportEntry, BudgetConstructionLevelSummary levelSummary, List<BudgetConstructionOrgLevelSummaryReportTotal> levelSummaryTotalConsList, List<BudgetConstructionOrgLevelSummaryReportTotal> levelSummaryTotalGexpAndTypeList, List<BudgetConstructionOrgLevelSummaryReportTotal> levelSummaryTotalList) { for (BudgetConstructionOrgLevelSummaryReportTotal consTotal : levelSummaryTotalConsList) { if (BudgetConstructionReportHelper.isSameEntry( levelSummary, consTotal.getBcls(), fieldsForCons())) { orgLevelSummaryReportEntry.setTotalConsolidationDescription( levelSummary.getFinancialConsolidationObject().getFinConsolidationObjectName()); // The total part shouldn't have null value, so just checking '0' orgLevelSummaryReportEntry.setTotalConsolidationPositionCsfLeaveFteQuantity( BudgetConstructionReportHelper.setDecimalDigit( consTotal.getTotalConsolidationPositionCsfLeaveFteQuantity(), 2, true)); orgLevelSummaryReportEntry.setTotalConsolidationPositionCsfFullTimeEmploymentQuantity( BudgetConstructionReportHelper.setDecimalDigit( consTotal.getTotalConsolidationPositionCsfFullTimeEmploymentQuantity(), 2, true)); orgLevelSummaryReportEntry.setTotalConsolidationFinancialBeginningBalanceLineAmount( consTotal.getTotalConsolidationFinancialBeginningBalanceLineAmount()); orgLevelSummaryReportEntry.setTotalConsolidationAppointmentRequestedCsfFteQuantity( BudgetConstructionReportHelper.setDecimalDigit( consTotal.getTotalConsolidationAppointmentRequestedCsfFteQuantity(), 2, true)); orgLevelSummaryReportEntry.setTotalConsolidationAppointmentRequestedFteQuantity( BudgetConstructionReportHelper.setDecimalDigit( consTotal.getTotalConsolidationAppointmentRequestedFteQuantity(), 2, true)); orgLevelSummaryReportEntry.setTotalConsolidationAccountLineAnnualBalanceAmount( consTotal.getTotalConsolidationAccountLineAnnualBalanceAmount()); KualiInteger amountChange = consTotal .getTotalConsolidationAccountLineAnnualBalanceAmount() .subtract(consTotal.getTotalConsolidationFinancialBeginningBalanceLineAmount()); orgLevelSummaryReportEntry.setTotalConsolidationAmountChange(amountChange); orgLevelSummaryReportEntry.setTotalConsolidationPercentChange( BudgetConstructionReportHelper.calculatePercent( amountChange, consTotal.getTotalConsolidationFinancialBeginningBalanceLineAmount())); } } for (BudgetConstructionOrgLevelSummaryReportTotal gexpAndTypeTotal : levelSummaryTotalGexpAndTypeList) { if (BudgetConstructionReportHelper.isSameEntry( levelSummary, gexpAndTypeTotal.getBcls(), fieldsForGexpAndType())) { orgLevelSummaryReportEntry.setGrossFinancialBeginningBalanceLineAmount( gexpAndTypeTotal.getGrossFinancialBeginningBalanceLineAmount()); orgLevelSummaryReportEntry.setGrossAccountLineAnnualBalanceAmount( gexpAndTypeTotal.getGrossAccountLineAnnualBalanceAmount()); KualiInteger gexpAndTypeAmountChange = gexpAndTypeTotal .getGrossAccountLineAnnualBalanceAmount() .subtract(gexpAndTypeTotal.getGrossFinancialBeginningBalanceLineAmount()); orgLevelSummaryReportEntry.setGrossAmountChange(gexpAndTypeAmountChange); orgLevelSummaryReportEntry.setGrossPercentChange( BudgetConstructionReportHelper.calculatePercent( gexpAndTypeAmountChange, gexpAndTypeTotal.getGrossFinancialBeginningBalanceLineAmount())); if (levelSummary.getIncomeExpenseCode().equals(BCConstants.Report.INCOME_EXP_TYPE_A)) { orgLevelSummaryReportEntry.setTypeDesc( kualiConfigurationService.getPropertyValueAsString( BCKeyConstants.MSG_REPORT_INCOME_EXP_DESC_UPPERCASE_REVENUE)); } else { orgLevelSummaryReportEntry.setTypeDesc( kualiConfigurationService.getPropertyValueAsString( BCKeyConstants.MSG_REPORT_INCOME_EXP_DESC_EXPENDITURE_NET_TRNFR)); } orgLevelSummaryReportEntry.setTypePositionCsfLeaveFteQuantity( BudgetConstructionReportHelper.setDecimalDigit( gexpAndTypeTotal.getTypePositionCsfLeaveFteQuantity(), 2, true)); orgLevelSummaryReportEntry.setTypePositionCsfFullTimeEmploymentQuantity( BudgetConstructionReportHelper.setDecimalDigit( gexpAndTypeTotal.getTypePositionCsfFullTimeEmploymentQuantity(), 2, true)); orgLevelSummaryReportEntry.setTypeFinancialBeginningBalanceLineAmount( gexpAndTypeTotal.getTypeFinancialBeginningBalanceLineAmount()); orgLevelSummaryReportEntry.setTypeAppointmentRequestedCsfFteQuantity( BudgetConstructionReportHelper.setDecimalDigit( gexpAndTypeTotal.getTypeAppointmentRequestedCsfFteQuantity(), 2, true)); orgLevelSummaryReportEntry.setTypeAppointmentRequestedFteQuantity( BudgetConstructionReportHelper.setDecimalDigit( gexpAndTypeTotal.getTypeAppointmentRequestedFteQuantity(), 2, true)); orgLevelSummaryReportEntry.setTypeAccountLineAnnualBalanceAmount( gexpAndTypeTotal.getTypeAccountLineAnnualBalanceAmount()); KualiInteger typeAmountChange = gexpAndTypeTotal .getTypeAccountLineAnnualBalanceAmount() .subtract(gexpAndTypeTotal.getTypeFinancialBeginningBalanceLineAmount()); orgLevelSummaryReportEntry.setTypeAmountChange(typeAmountChange); orgLevelSummaryReportEntry.setTypePercentChange( BudgetConstructionReportHelper.calculatePercent( typeAmountChange, gexpAndTypeTotal.getTypeFinancialBeginningBalanceLineAmount())); } } for (BudgetConstructionOrgLevelSummaryReportTotal total : levelSummaryTotalList) { if (BudgetConstructionReportHelper.isSameEntry( levelSummary, total.getBcls(), fieldsForTotal())) { orgLevelSummaryReportEntry.setTotalSubFundGroupDesc( levelSummary.getSubFundGroup().getSubFundGroupDescription()); orgLevelSummaryReportEntry.setRevenueFinancialBeginningBalanceLineAmount( total.getRevenueFinancialBeginningBalanceLineAmount()); orgLevelSummaryReportEntry.setRevenueAccountLineAnnualBalanceAmount( total.getRevenueAccountLineAnnualBalanceAmount()); orgLevelSummaryReportEntry.setExpenditureFinancialBeginningBalanceLineAmount( total.getExpenditureFinancialBeginningBalanceLineAmount()); orgLevelSummaryReportEntry.setExpenditureAccountLineAnnualBalanceAmount( total.getExpenditureAccountLineAnnualBalanceAmount()); KualiInteger revenueAmountChange = total .getRevenueAccountLineAnnualBalanceAmount() .subtract(total.getRevenueFinancialBeginningBalanceLineAmount()); orgLevelSummaryReportEntry.setRevenueAmountChange(revenueAmountChange); orgLevelSummaryReportEntry.setRevenuePercentChange( BudgetConstructionReportHelper.calculatePercent( revenueAmountChange, total.getRevenueFinancialBeginningBalanceLineAmount())); KualiInteger expenditureAmountChange = total .getExpenditureAccountLineAnnualBalanceAmount() .subtract(total.getExpenditureFinancialBeginningBalanceLineAmount()); orgLevelSummaryReportEntry.setExpenditureAmountChange(expenditureAmountChange); orgLevelSummaryReportEntry.setExpenditurePercentChange( BudgetConstructionReportHelper.calculatePercent( expenditureAmountChange, total.getExpenditureFinancialBeginningBalanceLineAmount())); orgLevelSummaryReportEntry.setDifferenceFinancialBeginningBalanceLineAmount( total.getDifferenceFinancialBeginningBalanceLineAmount()); orgLevelSummaryReportEntry.setDifferenceAccountLineAnnualBalanceAmount( total.getDifferenceAccountLineAnnualBalanceAmount()); KualiInteger differenceAmountChange = total .getDifferenceAccountLineAnnualBalanceAmount() .subtract(total.getDifferenceFinancialBeginningBalanceLineAmount()); orgLevelSummaryReportEntry.setDifferenceAmountChange(differenceAmountChange); orgLevelSummaryReportEntry.setDifferencePercentChange( BudgetConstructionReportHelper.calculatePercent( differenceAmountChange, total.getDifferenceFinancialBeginningBalanceLineAmount())); } } }
public List calculateGexpAndTypeTotal( List<BudgetConstructionLevelSummary> bclsList, List<BudgetConstructionLevelSummary> simpleList) { KualiInteger grossFinancialBeginningBalanceLineAmount = KualiInteger.ZERO; KualiInteger grossAccountLineAnnualBalanceAmount = KualiInteger.ZERO; BigDecimal typePositionCsfLeaveFteQuantity = BigDecimal.ZERO; BigDecimal typePositionCsfFullTimeEmploymentQuantity = BigDecimal.ZERO; KualiInteger typeFinancialBeginningBalanceLineAmount = KualiInteger.ZERO; BigDecimal typeAppointmentRequestedCsfFteQuantity = BigDecimal.ZERO; BigDecimal typeAppointmentRequestedFteQuantity = BigDecimal.ZERO; KualiInteger typeAccountLineAnnualBalanceAmount = KualiInteger.ZERO; KualiInteger typeAmountChange = KualiInteger.ZERO; BigDecimal typePercentChange = BigDecimal.ZERO; List returnList = new ArrayList(); for (BudgetConstructionLevelSummary simpleBclsEntry : simpleList) { BudgetConstructionOrgLevelSummaryReportTotal bcLevelTotal = new BudgetConstructionOrgLevelSummaryReportTotal(); for (BudgetConstructionLevelSummary bclsListEntry : bclsList) { if (BudgetConstructionReportHelper.isSameEntry( simpleBclsEntry, bclsListEntry, fieldsForGexpAndType())) { typeFinancialBeginningBalanceLineAmount = typeFinancialBeginningBalanceLineAmount.add( bclsListEntry.getFinancialBeginningBalanceLineAmount()); typeAccountLineAnnualBalanceAmount = typeAccountLineAnnualBalanceAmount.add( bclsListEntry.getAccountLineAnnualBalanceAmount()); typePositionCsfLeaveFteQuantity = typePositionCsfLeaveFteQuantity.add(bclsListEntry.getPositionCsfLeaveFteQuantity()); typePositionCsfFullTimeEmploymentQuantity = typePositionCsfFullTimeEmploymentQuantity.add( bclsListEntry.getCsfFullTimeEmploymentQuantity()); typeAppointmentRequestedCsfFteQuantity = typeAppointmentRequestedCsfFteQuantity.add( bclsListEntry.getAppointmentRequestedCsfFteQuantity()); typeAppointmentRequestedFteQuantity = typeAppointmentRequestedFteQuantity.add( bclsListEntry.getAppointmentRequestedFteQuantity()); if (bclsListEntry.getIncomeExpenseCode().equals("B") && !bclsListEntry.getFinancialObjectLevelCode().equals("CORI") && !bclsListEntry.getFinancialObjectLevelCode().equals("TRIN")) { grossFinancialBeginningBalanceLineAmount = grossFinancialBeginningBalanceLineAmount.add( bclsListEntry.getFinancialBeginningBalanceLineAmount()); grossAccountLineAnnualBalanceAmount = grossAccountLineAnnualBalanceAmount.add( bclsListEntry.getAccountLineAnnualBalanceAmount()); } } } bcLevelTotal.setBcls(simpleBclsEntry); bcLevelTotal.setGrossFinancialBeginningBalanceLineAmount( grossFinancialBeginningBalanceLineAmount); bcLevelTotal.setGrossAccountLineAnnualBalanceAmount(grossAccountLineAnnualBalanceAmount); bcLevelTotal.setTypePositionCsfLeaveFteQuantity(typePositionCsfLeaveFteQuantity); bcLevelTotal.setTypePositionCsfFullTimeEmploymentQuantity( typePositionCsfFullTimeEmploymentQuantity); bcLevelTotal.setTypeFinancialBeginningBalanceLineAmount( typeFinancialBeginningBalanceLineAmount); bcLevelTotal.setTypeAppointmentRequestedCsfFteQuantity( typeAppointmentRequestedCsfFteQuantity); bcLevelTotal.setTypeAppointmentRequestedFteQuantity(typeAppointmentRequestedFteQuantity); bcLevelTotal.setTypeAccountLineAnnualBalanceAmount(typeAccountLineAnnualBalanceAmount); returnList.add(bcLevelTotal); grossFinancialBeginningBalanceLineAmount = KualiInteger.ZERO; grossAccountLineAnnualBalanceAmount = KualiInteger.ZERO; typePositionCsfLeaveFteQuantity = BigDecimal.ZERO; typePositionCsfFullTimeEmploymentQuantity = BigDecimal.ZERO; typeFinancialBeginningBalanceLineAmount = KualiInteger.ZERO; typeAppointmentRequestedCsfFteQuantity = BigDecimal.ZERO; typeAppointmentRequestedFteQuantity = BigDecimal.ZERO; typeAccountLineAnnualBalanceAmount = KualiInteger.ZERO; typeAmountChange = KualiInteger.ZERO; typePercentChange = BigDecimal.ZERO; } return returnList; }
/** * builds report Header * * @param BudgetConstructionLevelSummary bcas */ public void buildReportsHeader( Integer universityFiscalYear, BudgetConstructionOrgLevelSummaryReport orgLevelSummaryReportEntry, BudgetConstructionLevelSummary levelSummary) { String orgChartDesc = levelSummary.getOrganizationChartOfAccounts().getFinChartOfAccountDescription(); String chartDesc = levelSummary.getChartOfAccounts().getFinChartOfAccountDescription(); String orgName = levelSummary.getOrganization().getOrganizationName(); String reportChartDesc = levelSummary .getChartOfAccounts() .getReportsToChartOfAccounts() .getFinChartOfAccountDescription(); String subFundGroupName = levelSummary.getSubFundGroup().getSubFundGroupCode(); String subFundGroupDes = levelSummary.getSubFundGroup().getSubFundGroupDescription(); String fundGroupName = levelSummary.getSubFundGroup().getFundGroupCode(); String fundGroupDes = levelSummary.getSubFundGroup().getFundGroup().getName(); Integer prevFiscalyear = universityFiscalYear - 1; orgLevelSummaryReportEntry.setFiscalYear( prevFiscalyear.toString() + "-" + universityFiscalYear.toString().substring(2, 4)); orgLevelSummaryReportEntry.setOrgChartOfAccountsCode( levelSummary.getOrganizationChartOfAccountsCode()); if (orgChartDesc == null) { orgLevelSummaryReportEntry.setOrgChartOfAccountDescription( kualiConfigurationService.getPropertyValueAsString( BCKeyConstants.ERROR_REPORT_GETTING_CHART_DESCRIPTION)); } else { orgLevelSummaryReportEntry.setOrgChartOfAccountDescription(orgChartDesc); } orgLevelSummaryReportEntry.setOrganizationCode(levelSummary.getOrganizationCode()); if (orgName == null) { orgLevelSummaryReportEntry.setOrganizationName( kualiConfigurationService.getPropertyValueAsString( BCKeyConstants.ERROR_REPORT_GETTING_ORGANIZATION_NAME)); } else { orgLevelSummaryReportEntry.setOrganizationName(orgName); } orgLevelSummaryReportEntry.setChartOfAccountsCode(levelSummary.getChartOfAccountsCode()); if (chartDesc == null) { orgLevelSummaryReportEntry.setChartOfAccountDescription( kualiConfigurationService.getPropertyValueAsString( BCKeyConstants.ERROR_REPORT_GETTING_CHART_DESCRIPTION)); } else { orgLevelSummaryReportEntry.setChartOfAccountDescription(chartDesc); } orgLevelSummaryReportEntry.setFundGroupCode(levelSummary.getSubFundGroup().getFundGroupCode()); if (fundGroupDes == null) { orgLevelSummaryReportEntry.setFundGroupName( kualiConfigurationService.getPropertyValueAsString( BCKeyConstants.ERROR_REPORT_GETTING_FUNDGROUP_NAME)); } else { orgLevelSummaryReportEntry.setFundGroupName(fundGroupDes); } orgLevelSummaryReportEntry.setSubFundGroupCode(levelSummary.getSubFundGroupCode()); if (subFundGroupDes == null) { orgLevelSummaryReportEntry.setSubFundGroupDescription( kualiConfigurationService.getPropertyValueAsString( BCKeyConstants.ERROR_REPORT_GETTING_SUBFUNDGROUP_DESCRIPTION)); } else { orgLevelSummaryReportEntry.setSubFundGroupDescription(subFundGroupDes); } Integer prevPrevFiscalyear = prevFiscalyear - 1; orgLevelSummaryReportEntry.setBaseFy( prevPrevFiscalyear.toString() + "-" + prevFiscalyear.toString().substring(2, 4)); orgLevelSummaryReportEntry.setReqFy( prevFiscalyear.toString() + "-" + universityFiscalYear.toString().substring(2, 4)); orgLevelSummaryReportEntry.setHeader1("Object Level Name"); orgLevelSummaryReportEntry.setHeader2a("Lv. FTE"); orgLevelSummaryReportEntry.setHeader2("FTE"); orgLevelSummaryReportEntry.setHeader3("Amount"); orgLevelSummaryReportEntry.setHeader31("FTE"); orgLevelSummaryReportEntry.setHeader40("FTE"); orgLevelSummaryReportEntry.setHeader4("Amount"); orgLevelSummaryReportEntry.setHeader5( kualiConfigurationService.getPropertyValueAsString( BCKeyConstants.MSG_REPORT_HEADER_CHANGE)); orgLevelSummaryReportEntry.setHeader6( kualiConfigurationService.getPropertyValueAsString( BCKeyConstants.MSG_REPORT_HEADER_CHANGE)); orgLevelSummaryReportEntry.setConsHdr(""); // For page break for objectLevelCode orgLevelSummaryReportEntry.setFinancialObjectLevelCode( levelSummary.getFinancialObjectLevelCode()); orgLevelSummaryReportEntry.setIncomeExpenseCode(levelSummary.getIncomeExpenseCode()); orgLevelSummaryReportEntry.setFinancialConsolidationSortCode( levelSummary.getFinancialConsolidationSortCode()); }