/*
* 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.web.struts;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang.StringUtils;
import org.kuali.kfs.coa.businessobject.Organization;
import org.kuali.kfs.module.bc.BCConstants;
import org.kuali.kfs.module.bc.businessobject.BCKeyLabelPair;
import org.kuali.kfs.module.bc.businessobject.BudgetConstructionAccountOrganizationHierarchy;
import org.kuali.kfs.module.bc.businessobject.PendingBudgetConstructionGeneralLedger;
import org.kuali.kfs.module.bc.document.BudgetConstructionDocument;
import org.kuali.kfs.module.bc.document.service.BenefitsCalculationService;
import org.kuali.kfs.module.bc.document.service.BudgetConstructionProcessorService;
import org.kuali.kfs.module.bc.document.service.BudgetDocumentService;
import org.kuali.kfs.module.bc.document.service.BudgetParameterService;
import org.kuali.kfs.module.bc.document.service.SalarySettingService;
import org.kuali.kfs.sys.KFSConstants;
import org.kuali.kfs.sys.context.SpringContext;
import org.kuali.kfs.sys.document.web.struts.FinancialSystemTransactionalDocumentFormBase;
import org.kuali.kfs.sys.service.OptionsService;
import org.kuali.rice.core.api.util.type.KualiDecimal;
import org.kuali.rice.core.api.util.type.KualiInteger;
import org.kuali.rice.kns.service.BusinessObjectDictionaryService;
import org.kuali.rice.krad.service.PersistenceService;
import org.kuali.rice.krad.util.GlobalVariables;
import org.kuali.rice.krad.util.KRADConstants;
public class BudgetConstructionForm extends FinancialSystemTransactionalDocumentFormBase {
private static final org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(BudgetConstructionForm.class);
protected PendingBudgetConstructionGeneralLedger newRevenueLine;
protected PendingBudgetConstructionGeneralLedger newExpenditureLine;
protected static String revenueObjectTypeCodesLookup;
protected static String expenditureObjectTypeCodesLookup;
protected boolean closingDocument = false;
protected boolean hideDetails = false;
protected boolean pickListClose = false;
protected boolean securityNoAccess = false;
protected boolean hideAdjustmentMeasurement = true;
protected KualiDecimal revenueAdjustmentAmount;
protected KualiDecimal expenditureAdjustmentAmount;
protected List<BCKeyLabelPair> pushdownLevelKeyLabels;
protected List<BCKeyLabelPair> pullupLevelKeyLabels;
protected String pushdownKeyCode;
protected String pullupKeyCode;
protected List<BudgetConstructionAccountOrganizationHierarchy> accountOrgHierLevels;
// a flag set during initial load to force a benefits calc and 2plg adjustment
// at the first instance a BC doc becomes editable - which is detected in action execute
protected boolean checkTwoPlugAdjustment = false;
// holds Salary Setting associated rows as they looked before applying any DB changes from performSalarySetting
// this is used to compare before and after state.
protected HashMap<String, PendingBudgetConstructionGeneralLedger> preSalarySettingRows;
// passed parms
protected String backLocation;
protected String returnAnchor;
protected String returnFormKey;
protected Integer universityFiscalYear;
protected String chartOfAccountsCode;
protected String accountNumber;
protected String subAccountNumber;
protected boolean pickListMode;
protected boolean accountReportsExist;
protected boolean mainWindow = false;
// holds anchor value to return to when doing doing balance inquiry
// it is only set when setting up to do balance inquiry and reset in refresh
protected String balanceInquiryReturnAnchor;
protected String dashSubAccountNumber;
protected String dashFinancialSubObjectCode;
public BudgetConstructionForm() {
super();
// create objects used to hold data filled later either from this.populate or Action.loadDocument
this.setNewExpenditureLine(new PendingBudgetConstructionGeneralLedger());
this.setNewRevenueLine(new PendingBudgetConstructionGeneralLedger());
this.setAccountOrgHierLevels(new ArrayList<BudgetConstructionAccountOrganizationHierarchy>());
this.setPullupLevelKeyLabels(new ArrayList<BCKeyLabelPair>());
this.setPushdownLevelKeyLabels(new ArrayList<BCKeyLabelPair>());
this.setDashFinancialSubObjectCode(KFSConstants.getDashFinancialSubObjectCode());
this.setDashSubAccountNumber(KFSConstants.getDashSubAccountNumber());
LOG.debug("creating BudgetConstructionForm");
}
@Override
protected String getDefaultDocumentTypeName() {
return BCConstants.BUDGET_CONSTRUCTION_DOCUMENT_NAME;
}
/**
* calls super.populate, then populates revenue and expenditure lines
*
* @see org.kuali.rice.kns.web.struts.form.KualiDocumentFormBase#populate(javax.servlet.http.HttpServletRequest)
*/
@Override
public void populate(HttpServletRequest request) {
super.populate(request);
String methodToCall = this.getMethodToCall();
// now run through PBGL rev and exp lines
BudgetConstructionDocument bcDoc = this.getBudgetConstructionDocument();
if (StringUtils.isNotBlank(methodToCall)) {
if (methodToCall.equals(BCConstants.INSERT_REVENUE_LINE_METHOD)) {
PendingBudgetConstructionGeneralLedger revLine = getNewRevenueLine();
// do uppercase on added lines only, since users can only update amounts on existing lines
// this should only affect the line since the DD has auto-update=false on refs and collections
// and only affect fields where xml attribute has forceUppercase="true"
SpringContext.getBean(BusinessObjectDictionaryService.class).performForceUppercase(revLine);
populateRevenueLine(bcDoc, this.getNewRevenueLine());
}
else {
this.populatePBGLLine(this.getNewRevenueLine());
}
if (methodToCall.equals(BCConstants.INSERT_EXPENDITURE_LINE_METHOD)) {
PendingBudgetConstructionGeneralLedger expLine = getNewExpenditureLine();
// do uppercase on added lines only, since users can only update amounts on existing lines
// this should only affect the line since the DD has auto-update=false on refs and collections
// and only affect fields where xml attribute has forceUppercase="true"
SpringContext.getBean(BusinessObjectDictionaryService.class).performForceUppercase(expLine);
populateExpenditureLine(bcDoc, this.getNewExpenditureLine());
}
else {
this.populatePBGLLine(this.getNewExpenditureLine());
}
// this is needed to retrieve ref objects, esp budgetConstructionMonthly
populatePBGLLines();
setDocTypeName(discoverDocumentTypeName());
}
}
/**
* Sets the persisted request amount to the actual request amount. This is normally used right after a save to the DB If
* initSalarySetting is true, this also scrapes the current set of Salary Setting lines, including any 2PLG line into
* preSalarySettingRows. preSalarySettingRows is used after return from Salary Setting to allow detection of any changes
*
* @param initSalarySetting
*/
public void initializePersistedRequestAmounts(boolean initSalarySetting) {
if (initSalarySetting) {
this.setPreSalarySettingRows(new HashMap<String, PendingBudgetConstructionGeneralLedger>());
}
BudgetConstructionDocument bcDoc = this.getBudgetConstructionDocument();
Iterator revenueLines = bcDoc.getPendingBudgetConstructionGeneralLedgerRevenueLines().iterator();
while (revenueLines.hasNext()) {
PendingBudgetConstructionGeneralLedger revenueLine = (PendingBudgetConstructionGeneralLedger) revenueLines.next();
revenueLine.setPersistedAccountLineAnnualBalanceAmount(revenueLine.getAccountLineAnnualBalanceAmount());
}
Iterator expenditureLines = bcDoc.getPendingBudgetConstructionGeneralLedgerExpenditureLines().iterator();
while (expenditureLines.hasNext()) {
PendingBudgetConstructionGeneralLedger expenditureLine = (PendingBudgetConstructionGeneralLedger) expenditureLines.next();
expenditureLine.setPersistedAccountLineAnnualBalanceAmount(expenditureLine.getAccountLineAnnualBalanceAmount());
if (initSalarySetting) {
if ((expenditureLine.getLaborObject() != null && expenditureLine.getLaborObject().isDetailPositionRequiredIndicator()) || expenditureLine.getFinancialObjectCode().equalsIgnoreCase(KFSConstants.BudgetConstructionConstants.OBJECT_CODE_2PLG)) {
this.getPreSalarySettingRows().put(expenditureLine.getFinancialObjectCode() + expenditureLine.getFinancialSubObjectCode(), expenditureLine);
}
}
}
}
/**
* Sets the persisted request amount to the actual request amount. This is normally used right after a save to the DB.
*/
public void initializePersistedRequestAmounts() {
this.initializePersistedRequestAmounts(false);
}
/**
* Populates the push or pull selection lists displayed in the drop down controls used by the pullup or pushdown actions. The
* population considers the current level of the document and the user's BudgetConstructionDocument type approvals setup in
* WorkFlow.
*
* @param bcDoc
* @param levels
* @param isPull
*/
public void populatePushPullLevelKeyLabels(BudgetConstructionDocument bcDoc, List<BudgetConstructionAccountOrganizationHierarchy> levels, boolean isPull) {
if (!levels.isEmpty()) {
// sanity check
if (bcDoc.getOrganizationLevelCode() >= 0 && bcDoc.getOrganizationLevelCode() < levels.size()) {
if (isPull) {
pullupLevelKeyLabels.clear();
// get the keys to search
HashMap<String, BudgetConstructionAccountOrganizationHierarchy> rvwHierMap = new HashMap<String, BudgetConstructionAccountOrganizationHierarchy>();
// start at level above current level and get any levels where the user is an approver
for (int i = (bcDoc.getOrganizationLevelCode() + 1); i < levels.size(); i++) {
BudgetConstructionAccountOrganizationHierarchy rvwHier = levels.get(i);
rvwHierMap.put(rvwHier.getOrganizationChartOfAccountsCode() + rvwHier.getOrganizationCode(), rvwHier);
}
if (!rvwHierMap.isEmpty()) {
try {
List<Organization> povOrgs = SpringContext.getBean(BudgetConstructionProcessorService.class).getProcessorOrgs(GlobalVariables.getUserSession().getPerson());
if (!povOrgs.isEmpty()) {
for (Organization povOrg : povOrgs) {
if (rvwHierMap.containsKey(povOrg.getChartOfAccountsCode() + povOrg.getOrganizationCode())) {
BudgetConstructionAccountOrganizationHierarchy level = rvwHierMap.get(povOrg.getChartOfAccountsCode() + povOrg.getOrganizationCode());
SpringContext.getBean(PersistenceService.class).retrieveReferenceObject(level, "organization");
pullupLevelKeyLabels.add(new BCKeyLabelPair(level.getOrganizationLevelCode().toString(), level.getOrganizationLevelCode().toString() + ":" + level.getOrganizationChartOfAccountsCode() + "-" + level.getOrganizationCode() + " " + level.getOrganization().getOrganizationName()));
}
}
}
}
catch (Exception e) {
// any exception just leaves an empty pullup list
}
}
}
else {
pushdownLevelKeyLabels.clear();
// start at current doc level and add all that are below current level
for (int i = (bcDoc.getOrganizationLevelCode() - 1); i >= 0; i--) {
BudgetConstructionAccountOrganizationHierarchy level = levels.get(i);
SpringContext.getBean(PersistenceService.class).retrieveReferenceObject(level, "organization");
if (level.getOrganizationLevelCode() == 0) {
// push list level zero case needs special desc
pushdownLevelKeyLabels.add(new BCKeyLabelPair(level.getOrganizationLevelCode().toString(), level.getOrganizationLevelCode().toString() + ":" + level.getOrganizationChartOfAccountsCode() + "-" + level.getOrganizationCode() + " " + "Fiscal Officer Access Level"));
}
else {
pushdownLevelKeyLabels.add(new BCKeyLabelPair(level.getOrganizationLevelCode().toString(), level.getOrganizationLevelCode().toString() + ":" + level.getOrganizationChartOfAccountsCode() + "-" + level.getOrganizationCode() + " " + level.getOrganization().getOrganizationName()));
}
}
}
}
}
}
/**
* This method iterates over all of the rev and exp lines in the BC document. This is called to refresh ref objects for use by
* validation
*/
public void populatePBGLLines() {
BudgetConstructionDocument bcDoc = this.getBudgetConstructionDocument();
bcDoc.zeroTotals();
Iterator revenueLines = bcDoc.getPendingBudgetConstructionGeneralLedgerRevenueLines().iterator();
while (revenueLines.hasNext()) {
PendingBudgetConstructionGeneralLedger revenueLine = (PendingBudgetConstructionGeneralLedger) revenueLines.next();
this.populateRevenueLine(bcDoc, revenueLine);
}
Iterator expenditureLines = bcDoc.getPendingBudgetConstructionGeneralLedgerExpenditureLines().iterator();
while (expenditureLines.hasNext()) {
PendingBudgetConstructionGeneralLedger expenditureLine = (PendingBudgetConstructionGeneralLedger) expenditureLines.next();
this.populateExpenditureLine(bcDoc, expenditureLine);
}
}
/**
* Populates a PBGL revenue line bo using values from the struts form. This is in place to make sure that all of the composite
* key objects have the correct values in them. This also adds line amounts to the revenue totals.
*
* @param revenueLine
*/
public void populateRevenueLine(BudgetConstructionDocument bcDoc, PendingBudgetConstructionGeneralLedger revenueLine) {
populatePBGLLine(revenueLine);
if (revenueLine.getFinancialBeginningBalanceLineAmount() != null) {
bcDoc.setRevenueFinancialBeginningBalanceLineAmountTotal(bcDoc.getRevenueFinancialBeginningBalanceLineAmountTotal().add(revenueLine.getFinancialBeginningBalanceLineAmount()));
}
if (revenueLine.getAccountLineAnnualBalanceAmount() != null) {
bcDoc.setRevenueAccountLineAnnualBalanceAmountTotal(bcDoc.getRevenueAccountLineAnnualBalanceAmountTotal().add(revenueLine.getAccountLineAnnualBalanceAmount()));
}
}
/**
* Populates a PBGL expenditure line bo using values from the struts form. This is in place to make sure that all of the
* composite key objects have the correct values in them. This also adds line amounts to the expenditure totals.
*
* @param expenditureLine
*/
public void populateExpenditureLine(BudgetConstructionDocument bcDoc, PendingBudgetConstructionGeneralLedger expenditureLine) {
populatePBGLLine(expenditureLine);
if (expenditureLine.getFinancialBeginningBalanceLineAmount() != null) {
bcDoc.setExpenditureFinancialBeginningBalanceLineAmountTotal(bcDoc.getExpenditureFinancialBeginningBalanceLineAmountTotal().add(expenditureLine.getFinancialBeginningBalanceLineAmount()));
}
if (expenditureLine.getAccountLineAnnualBalanceAmount() != null) {
bcDoc.setExpenditureAccountLineAnnualBalanceAmountTotal(bcDoc.getExpenditureAccountLineAnnualBalanceAmountTotal().add(expenditureLine.getAccountLineAnnualBalanceAmount()));
}
if ((expenditureLine.getFinancialObjectCode() != null) && (expenditureLine.getFinancialObjectCode().contentEquals(KFSConstants.BudgetConstructionConstants.OBJECT_CODE_2PLG))) {
// 2plg record exists
bcDoc.setContainsTwoPlug(true);
}
}
/**
* Populates the dependent fields of objects contained within the PBGL line
*
* @param line
*/
protected void populatePBGLLine(PendingBudgetConstructionGeneralLedger line) {
SpringContext.getBean(BudgetDocumentService.class).populatePBGLLine(line);
// // final List REFRESH_FIELDS = Collections.unmodifiableList(Arrays.asList(new String[] { "financialObject",
// // "financialSubObject", "laborObject", "budgetConstructionMonthly"}));
// final List REFRESH_FIELDS;
// if (StringUtils.isNotBlank(line.getFinancialSubObjectCode())) {
// REFRESH_FIELDS = Collections.unmodifiableList(Arrays.asList(new String[] { KFSPropertyConstants.FINANCIAL_OBJECT,
// KFSPropertyConstants.FINANCIAL_SUB_OBJECT, BCPropertyConstants.BUDGET_CONSTRUCTION_MONTHLY }));
// }
// else {
// REFRESH_FIELDS = Collections.unmodifiableList(Arrays.asList(new String[] { KFSPropertyConstants.FINANCIAL_OBJECT,
// BCPropertyConstants.BUDGET_CONSTRUCTION_MONTHLY }));
// }
// // SpringContext.getBean(PersistenceService.class).retrieveReferenceObjects(line, REFRESH_FIELDS);
// SpringContext.getBean(PersistenceService.class).retrieveReferenceObjects(line, REFRESH_FIELDS);
}
/**
* Gets the budgetConstructionDocument
*
* @return
*/
public BudgetConstructionDocument getBudgetConstructionDocument() {
return (BudgetConstructionDocument) getDocument();
}
/**
* Sets the budgetConstructionDocument
*
* @param budgetConstructionDocument
*/
public void setBudgetConstructionDocument(BudgetConstructionDocument budgetConstructionDocument) {
setDocument(budgetConstructionDocument);
}
/**
* Gets the newExpenditureLine attribute.
*
* @return Returns the newExpenditureLine.
*/
public PendingBudgetConstructionGeneralLedger getNewExpenditureLine() {
return newExpenditureLine;
}
/**
* Sets the newExpenditureLine attribute value.
*
* @param newExpenditureLine The newExpenditureLine to set.
*/
public void setNewExpenditureLine(PendingBudgetConstructionGeneralLedger newExpenditureLine) {
this.newExpenditureLine = newExpenditureLine;
}
/**
* Gets the newRevenueLine attribute.
*
* @return Returns the newRevenueLine.
*/
public PendingBudgetConstructionGeneralLedger getNewRevenueLine() {
return newRevenueLine;
}
/**
* Sets the newRevenueLine attribute value.
*
* @param newRevenueLine The newRevenueLine to set.
*/
public void setNewRevenueLine(PendingBudgetConstructionGeneralLedger newRevenueLine) {
this.newRevenueLine = newRevenueLine;
}
/**
* Sets the defaults for fields not setable by the user for added lines. This assumes the document has been explictly loaded and
* contains primary and candidate key values as in BudgetConstructionAction.loadDocument() or that populate reloads the values
* from the JSP.
*
* @param line
* @param isRevenue
*/
public void initNewLine(PendingBudgetConstructionGeneralLedger line, boolean isRevenue) {
OptionsService optionsService = SpringContext.getBean(OptionsService.class);
BudgetConstructionDocument tdoc = this.getBudgetConstructionDocument();
line.setDocumentNumber(tdoc.getDocumentNumber());
line.setUniversityFiscalYear(tdoc.getUniversityFiscalYear());
line.setChartOfAccountsCode(tdoc.getChartOfAccountsCode());
line.setAccountNumber(tdoc.getAccountNumber());
line.setSubAccountNumber(tdoc.getSubAccountNumber());
line.setFinancialBalanceTypeCode(optionsService.getOptions(tdoc.getUniversityFiscalYear()).getBaseBudgetFinancialBalanceTypeCd());
line.setFinancialBeginningBalanceLineAmount(KualiInteger.ZERO);
line.setAccountLineAnnualBalanceAmount(KualiInteger.ZERO);
// KFSMI-7828 object type is now reset from object code table in BudgetConstructionAction.insertPBGLLine()
if (isRevenue) {
line.setFinancialObjectTypeCode(optionsService.getOptions(tdoc.getUniversityFiscalYear()).getFinObjectTypeIncomecashCode());
}
else {
line.setFinancialObjectTypeCode(optionsService.getOptions(tdoc.getUniversityFiscalYear()).getFinObjTypeExpenditureexpCd());
}
}
/**
* Gets getBudgetConstructionDocument().isBudgetableDocument attribute.
*
* @return Returns getBudgetConstructionDocument().isBudgetableDocument.
*/
public boolean isBudgetableDocument() {
return this.getBudgetConstructionDocument().isBudgetableDocument();
}
/**
* Gets the hideDetails attribute.
*
* @return Returns the hideDetails.
*/
public boolean isHideDetails() {
return hideDetails;
}
/**
* @return hideDetails attribute
* @see #isHideDetails()
*/
public boolean getHideDetails() {
return isHideDetails();
}
/**
* Sets the hideDetails attribute value.
*
* @param hideDetails The hideDetails to set.
*/
public void setHideDetails(boolean hideDetails) {
this.hideDetails = hideDetails;
}
/**
* Gets the accountNumber attribute.
*
* @return Returns the accountNumber.
*/
public String getAccountNumber() {
return accountNumber;
}
/**
* Sets the accountNumber attribute value.
*
* @param accountNumber The accountNumber to set.
*/
public void setAccountNumber(String accountNumber) {
this.accountNumber = accountNumber;
}
/**
* Gets the chartOfAccountsCode attribute.
*
* @return Returns the chartOfAccountsCode.
*/
public String getChartOfAccountsCode() {
return chartOfAccountsCode;
}
/**
* Sets the chartOfAccountsCode attribute value.
*
* @param chartOfAccountsCode The chartOfAccountsCode to set.
*/
public void setChartOfAccountsCode(String chartOfAccountsCode) {
this.chartOfAccountsCode = chartOfAccountsCode;
}
/**
* Gets the subAccountNumber attribute.
*
* @return Returns the subAccountNumber.
*/
public String getSubAccountNumber() {
return subAccountNumber;
}
/**
* Sets the subAccountNumber attribute value.
*
* @param subAccountNumber The subAccountNumber to set.
*/
public void setSubAccountNumber(String subAccountNumber) {
this.subAccountNumber = subAccountNumber;
}
/**
* Gets the universityFiscalYear attribute.
*
* @return Returns the universityFiscalYear.
*/
public Integer getUniversityFiscalYear() {
return universityFiscalYear;
}
/**
* Sets the universityFiscalYear attribute value.
*
* @param universityFiscalYear The universityFiscalYear to set.
*/
public void setUniversityFiscalYear(Integer universityFiscalYear) {
this.universityFiscalYear = universityFiscalYear;
}
/**
* Gets the hideAdjustmentMeasurement attribute.
*
* @return Returns the hideAdjustmentMeasurement.
*/
public boolean isHideAdjustmentMeasurement() {
return hideAdjustmentMeasurement;
}
/**
* Sets the hideAdjustmentMeasurement attribute value.
*
* @param hideAdjustmentMeasurement The hideAdjustmentMeasurement to set.
*/
public void setHideAdjustmentMeasurement(boolean hideAdjustmentMeasurement) {
this.hideAdjustmentMeasurement = hideAdjustmentMeasurement;
}
/**
* Gets the revenueAdjustmentAmount attribute.
*
* @return Returns the revenueAdjustmentAmount.
*/
public KualiDecimal getRevenueAdjustmentAmount() {
return revenueAdjustmentAmount;
}
/**
* Sets the revenueAdjustmentAmount attribute value.
*
* @param revenueAdjustmentAmount The revenueAdjustmentAmount to set.
*/
public void setRevenueAdjustmentAmount(KualiDecimal adjustmentAmount) {
this.revenueAdjustmentAmount = adjustmentAmount;
}
/**
* Gets the expenditureAdjustmentAmount attribute.
*
* @return Returns the expenditureAdjustmentAmount.
*/
public KualiDecimal getExpenditureAdjustmentAmount() {
return expenditureAdjustmentAmount;
}
/**
* Sets the expenditureAdjustmentAmount attribute value.
*
* @param expenditureAdjustmentAmount The expenditureAdjustmentAmount to set.
*/
public void setExpenditureAdjustmentAmount(KualiDecimal expenditureAdjustmentAmount) {
this.expenditureAdjustmentAmount = expenditureAdjustmentAmount;
}
/**
* Gets the benefitsCalculationDisabled attribute.
*
* @return Returns the benefitsCalculationDisabled.
*/
public boolean isBenefitsCalculationDisabled() {
return SpringContext.getBean(BenefitsCalculationService.class).isBenefitsCalculationDisabled();
}
/**
* Gets the salarySettingDisabled attribute.
*
* @return Returns the salarySettingDisabled.
*/
public boolean isSalarySettingDisabled() {
return SpringContext.getBean(SalarySettingService.class).isSalarySettingDisabled();
}
/**
* Gets the pickListMode attribute.
*
* @return Returns the pickListMode.
*/
public boolean isPickListMode() {
return pickListMode;
}
/**
* Sets the pickListMode attribute value.
*
* @param pickListMode The pickListMode to set.
*/
public void setPickListMode(boolean pickListMode) {
this.pickListMode = pickListMode;
}
/**
* Gets the accountReportsExist attribute.
*
* @return Returns the accountReportsExist.
*/
public boolean isAccountReportsExist() {
accountReportsExist = false;
if (this.getBudgetConstructionDocument().getDocumentNumber() != null) {
if (SpringContext.getBean(BudgetDocumentService.class).isAccountReportsExist(this.getChartOfAccountsCode(), this.getAccountNumber())) {
accountReportsExist = true;
}
}
return accountReportsExist;
}
/**
* Sets the accountReportsExist attribute value.
*
* @param accountReportsExist The accountReportsExist to set.
*/
public void setAccountReportsExist(boolean accountReportsExist) {
this.accountReportsExist = accountReportsExist;
}
/**
* Gets the pickListClose attribute.
*
* @return Returns the pickListClose.
*/
public boolean isPickListClose() {
return pickListClose;
}
/**
* Sets the pickListClose attribute value.
*
* @param pickListClose The pickListClose to set.
*/
public void setPickListClose(boolean pickListClose) {
this.pickListClose = pickListClose;
}
/**
* Gets the securityNoAccess attribute.
*
* @return Returns the securityNoAccess.
*/
public boolean isSecurityNoAccess() {
return securityNoAccess;
}
/**
* Sets the securityNoAccess attribute value.
*
* @param securityNoAccess The securityNoAccess to set.
*/
public void setSecurityNoAccess(boolean securityNoAccess) {
this.securityNoAccess = securityNoAccess;
}
/**
* Gets the backLocation attribute.
*
* @return Returns the backLocation.
*/
public String getBackLocation() {
return backLocation;
}
/**
* Sets the backLocation attribute value.
*
* @param backLocation The backLocation to set.
*/
public void setBackLocation(String backLocation) {
this.backLocation = backLocation;
}
/**
* Gets the returnAnchor attribute.
*
* @return Returns the returnAnchor.
*/
public String getReturnAnchor() {
return returnAnchor;
}
/**
* Sets the returnAnchor attribute value.
*
* @param returnAnchor The returnAnchor to set.
*/
public void setReturnAnchor(String returnAnchor) {
this.returnAnchor = returnAnchor;
}
/**
* Gets the returnFormKey attribute.
*
* @return Returns the returnFormKey.
*/
public String getReturnFormKey() {
return returnFormKey;
}
/**
* Sets the returnFormKey attribute value.
*
* @param returnFormKey The returnFormKey to set.
*/
public void setReturnFormKey(String returnFormKey) {
this.returnFormKey = returnFormKey;
}
/**
* Gets the balanceInquiryReturnAnchor attribute.
*
* @return Returns the balanceInquiryReturnAnchor.
*/
public String getBalanceInquiryReturnAnchor() {
return balanceInquiryReturnAnchor;
}
/**
* Sets the balanceInquiryReturnAnchor attribute value.
*
* @param balanceInquiryReturnAnchor The balanceInquiryReturnAnchor to set.
*/
public void setBalanceInquiryReturnAnchor(String balanceInquiryReturnAnchor) {
this.balanceInquiryReturnAnchor = balanceInquiryReturnAnchor;
}
/**
* Gets the pullupKeyCode attribute.
*
* @return Returns the pullupKeyCode.
*/
public String getPullupKeyCode() {
return pullupKeyCode;
}
/**
* Sets the pullupKeyCode attribute value.
*
* @param pullupKeyCode The pullupKeyCode to set.
*/
public void setPullupKeyCode(String pullupKeyCode) {
this.pullupKeyCode = pullupKeyCode;
}
/**
* Gets the pullupLevelKeyLabels attribute.
*
* @return Returns the pullupLevelKeyLabels.
*/
public List<BCKeyLabelPair> getPullupLevelKeyLabels() {
return pullupLevelKeyLabels;
}
/**
* Sets the pullupLevelKeyLabels attribute value.
*
* @param pullupLevelKeyLabels The pullupLevelKeyLabels to set.
*/
public void setPullupLevelKeyLabels(List<BCKeyLabelPair> pullupLevelKeyLabels) {
this.pullupLevelKeyLabels = pullupLevelKeyLabels;
}
/**
* Gets the accountOrgHierLevels attribute.
*
* @return Returns the accountOrgHierLevels.
*/
public List<BudgetConstructionAccountOrganizationHierarchy> getAccountOrgHierLevels() {
return this.accountOrgHierLevels;
}
/**
* Sets the accountOrgHierLevels attribute value.
*
* @param accountOrgHierLevels The accountOrgHierLevels to set.
*/
public void setAccountOrgHierLevels(List<BudgetConstructionAccountOrganizationHierarchy> accountOrgHierLevels) {
this.accountOrgHierLevels = accountOrgHierLevels;
}
/**
* Gets the pushdownKeyCode attribute.
*
* @return Returns the pushdownKeyCode.
*/
public String getPushdownKeyCode() {
return pushdownKeyCode;
}
/**
* Sets the pushdownKeyCode attribute value.
*
* @param pushdownKeyCode The pushdownKeyCode to set.
*/
public void setPushdownKeyCode(String pushdownKeyCode) {
this.pushdownKeyCode = pushdownKeyCode;
}
/**
* Gets the pushdownLevelKeyLabels attribute.
*
* @return Returns the pushdownLevelKeyLabels.
*/
public List<BCKeyLabelPair> getPushdownLevelKeyLabels() {
return pushdownLevelKeyLabels;
}
/**
* Sets the pushdownLevelKeyLabels attribute value.
*
* @param pushdownLevelKeyLabels The pushdownLevelKeyLabels to set.
*/
public void setPushdownLevelKeyLabels(List<BCKeyLabelPair> pushdownLevelKeyLabels) {
this.pushdownLevelKeyLabels = pushdownLevelKeyLabels;
}
/**
* Gets the checkTwoPlugAdjustment attribute.
*
* @return Returns the checkTwoPlugAdjustment.
*/
public boolean isCheckTwoPlugAdjustment() {
return checkTwoPlugAdjustment;
}
/**
* Sets the checkTwoPlugAdjustment attribute value.
*
* @param checkTwoPlugAdjustment The checkTwoPlugAdjustment to set.
*/
public void setCheckTwoPlugAdjustment(boolean checkTwoPlugAdjustment) {
this.checkTwoPlugAdjustment = checkTwoPlugAdjustment;
}
/**
* Gets the preSalarySettingRows attribute.
*
* @return Returns the preSalarySettingRows.
*/
public HashMap<String, PendingBudgetConstructionGeneralLedger> getPreSalarySettingRows() {
return preSalarySettingRows;
}
/**
* Sets the preSalarySettingRows attribute value.
*
* @param preSalarySettingRows The preSalarySettingRows to set.
*/
public void setPreSalarySettingRows(HashMap<String, PendingBudgetConstructionGeneralLedger> preSalarySettingRows) {
this.preSalarySettingRows = preSalarySettingRows;
}
/**
* Gets the closingDocument attribute.
*
* @return Returns the closingDocument.
*/
public boolean isClosingDocument() {
return closingDocument;
}
/**
* Sets the closingDocument attribute value.
*
* @param closingDocument The closingDocument to set.
*/
public void setClosingDocument(boolean closingDocument) {
this.closingDocument = closingDocument;
}
/**
* Helper method to check edit mode Map for system view only entry
*/
public boolean isSystemViewOnly() {
return getEditingMode().containsKey(BCConstants.EditModes.SYSTEM_VIEW_ONLY);
}
/**
* Helper method to check document actions Map for can edit entry
*/
public boolean isEditAllowed() {
return getDocumentActions().keySet().contains(KRADConstants.KUALI_ACTION_CAN_EDIT);
}
/**
* Gets the mainWindow attribute.
*
* @return Returns the mainWindow.
*/
public boolean isMainWindow() {
return mainWindow;
}
/**
* Sets the mainWindow attribute value.
*
* @param mainWindow The mainWindow to set.
*/
public void setMainWindow(boolean mainWindow) {
this.mainWindow = mainWindow;
}
/**
* Gets the revenueObjectTypeCodesLookup attribute.
* @return Returns the revenueObjectTypeCodesLookup.
*/
public static String getRevenueObjectTypeCodesLookup() {
if ( revenueObjectTypeCodesLookup == null ) {
revenueObjectTypeCodesLookup = SpringContext.getBean(BudgetParameterService.class).getLookupObjectTypes(true);
}
return revenueObjectTypeCodesLookup;
}
/**
* Gets the expenditureObjectTypeCodesLookup attribute.
* @return Returns the expenditureObjectTypeCodesLookup.
*/
public static String getExpenditureObjectTypeCodesLookup() {
if ( expenditureObjectTypeCodesLookup == null ) {
expenditureObjectTypeCodesLookup = SpringContext.getBean(BudgetParameterService.class).getLookupObjectTypes(false);
}
return expenditureObjectTypeCodesLookup;
}
/**
* Gets the dashSubAccountNumber attribute.
*
* @return Returns the dashSubAccountNumber
*/
public String getDashSubAccountNumber() {
return dashSubAccountNumber;
}
/**
* Sets the dashSubAccountNumber attribute.
*
* @param dashSubAccountNumber The dashSubAccountNumber to set.
*/
public void setDashSubAccountNumber(String dashSubAccountNumber) {
this.dashSubAccountNumber = dashSubAccountNumber;
}
/**
* Gets the dashFinancialSubObjectCode attribute.
*
* @return Returns the dashFinancialSubObjectCode
*/
public String getDashFinancialSubObjectCode() {
return dashFinancialSubObjectCode;
}
/**
* Sets the dashFinancialSubObjectCode attribute.
*
* @param dashFinancialSubObjectCode The dashFinancialSubObjectCode to set.
*/
public void setDashFinancialSubObjectCode(String dashFinancialSubObjectCode) {
this.dashFinancialSubObjectCode = dashFinancialSubObjectCode;
}
}