/*
* 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.List;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang.StringUtils;
import org.kuali.kfs.fp.service.FiscalYearFunctionControlService;
import org.kuali.kfs.module.bc.BCConstants;
import org.kuali.kfs.module.bc.businessobject.BudgetConstructionLockSummary;
import org.kuali.kfs.module.bc.util.BudgetParameterFinder;
import org.kuali.kfs.sys.context.SpringContext;
import org.kuali.rice.kns.service.BusinessObjectDictionaryService;
import org.kuali.rice.kns.util.WebUtils;
import org.kuali.rice.kns.web.struts.form.LookupForm;
import org.kuali.rice.krad.util.KRADConstants;
import org.kuali.rice.krad.util.ObjectUtils;
/**
* Action Form for budget special lookup screens.
*/
public class TempListLookupForm extends LookupForm {
private Integer universityFiscalYear;
private String principalId;
private String reportMode;
private String currentPointOfViewKeyCode;
private boolean buildControlList;
private boolean reportConsolidation;
private boolean showInitialResults;
private int tempListLookupMode = BCConstants.TempListLookupMode.DEFAULT_LOOKUP_MODE;
private String chartOfAccountsCode;
private String accountNumber;
private String subAccountNumber;
private List<String> messages;
private boolean forceToAccountListScreen;
private boolean showSalaryByPositionAction;
private boolean showSalaryByIncumbentAction;
private boolean addLine;
private boolean budgetByAccountMode;
private String financialObjectCode;
private String financialSubObjectCode;
private boolean mainWindow = true;
/**
* Checks if the get new button for retrieving a position from the payroll service should be enabled.
*
* @return true if button should be enabled, false otherwise
*/
public boolean isGetNewPositionEnabled() {
// check if position data is maintained externally
boolean positionDataExternal = BudgetParameterFinder.getPayrollPositionFeedIndicator();
if (!positionDataExternal) {
return false;
}
// check if budget updates and updates from HR are enabled
FiscalYearFunctionControlService fiscalYearFunctionControlService = SpringContext.getBean(FiscalYearFunctionControlService.class);
boolean budgetUpdatesAllowed = fiscalYearFunctionControlService.isBudgetUpdateAllowed(getUniversityFiscalYear());
boolean updatesFromHumanResourcedAllowed = fiscalYearFunctionControlService.isApplicationUpdateFromHumanResourcesAllowed(getUniversityFiscalYear());
return budgetUpdatesAllowed && updatesFromHumanResourcedAllowed;
}
/**
* Checks if the get new button for retrieving an incumbent from the payroll service should be enabled.
*
* @return true if button should be enabled, false otherwise
*/
public boolean isGetNewIncumbentEnabled() {
// check if incumbent data is maintained externally
boolean incumbentDataExternal = BudgetParameterFinder.getPayrollIncumbentFeedIndictor();
if (!incumbentDataExternal) {
return false;
}
// check if budget updates and updates from HR are enabled
FiscalYearFunctionControlService fiscalYearFunctionControlService = SpringContext.getBean(FiscalYearFunctionControlService.class);
boolean budgetUpdatesAllowed = fiscalYearFunctionControlService.isBudgetUpdateAllowed(getUniversityFiscalYear());
boolean updatesFromHumanResourcedAllowed = fiscalYearFunctionControlService.isApplicationUpdateFromHumanResourcesAllowed(getUniversityFiscalYear());
return budgetUpdatesAllowed && updatesFromHumanResourcedAllowed;
}
/**
* @see org.kuali.rice.kns.web.struts.form.LookupForm#populate(javax.servlet.http.HttpServletRequest)
*/
@Override
public void populate(HttpServletRequest request) {
String refreshCaller = getParameter(request, KRADConstants.REFRESH_CALLER);
if (StringUtils.isNotBlank(refreshCaller) && KRADConstants.QUESTION_REFRESH.equals(refreshCaller) ) {
setMethodToCall(WebUtils.parseMethodToCall(this, request));
if (BCConstants.TEMP_LIST_UNLOCK_METHOD.equals(getMethodToCall())) {
String lookupImplID = SpringContext.getBean(BusinessObjectDictionaryService.class).getLookupableID(BudgetConstructionLockSummary.class);
if (lookupImplID == null) {
lookupImplID = "kualiLookupable";
}
setLookupableImplServiceName(lookupImplID);
}
}
// don't try to populate if no BO - the case when we lose session
String localBusinessObjectClassName = getParameter(request, KRADConstants.BUSINESS_OBJECT_CLASS_ATTRIBUTE);
if (ObjectUtils.isNotNull(localBusinessObjectClassName)) {
super.populate(request);
}
}
public boolean isForceToAccountListScreen() {
return forceToAccountListScreen;
}
public void setForceToAccountListScreen(boolean forceToAccountListScreen) {
this.forceToAccountListScreen = forceToAccountListScreen;
}
/**
* Gets the currentPointOfViewKeyCode attribute.
*
* @return Returns the currentPointOfViewKeyCode.
*/
public String getCurrentPointOfViewKeyCode() {
return currentPointOfViewKeyCode;
}
/**
* Gets the principalId attribute.
*
* @return Returns the principalId.
*/
public String getPrincipalId() {
return principalId;
}
/**
* Gets the reportMode attribute.
*
* @return Returns the reportMode.
*/
public String getReportMode() {
return reportMode;
}
/**
* Gets the universityFiscalYear attribute.
*
* @return Returns the universityFiscalYear.
*/
public Integer getUniversityFiscalYear() {
return universityFiscalYear;
}
/**
* Gets the buildControlList attribute.
*
* @return Returns the buildControlList.
*/
public boolean isBuildControlList() {
return buildControlList;
}
/**
* Gets the reportConsolidation attribute.
*
* @return Returns the reportConsolidation.
*/
public boolean isReportConsolidation() {
return reportConsolidation;
}
/**
* Gets the showInitialResults attribute.
*
* @return Returns the showInitialResults.
*/
public boolean isShowInitialResults() {
return showInitialResults;
}
/**
* Sets the buildControlList attribute value.
*
* @param buildControlList The buildControlList to set.
*/
public void setBuildControlList(boolean buildControlList) {
this.buildControlList = buildControlList;
}
/**
* Sets the currentPointOfViewKeyCode attribute value.
*
* @param currentPointOfViewKeyCode The currentPointOfViewKeyCode to set.
*/
public void setCurrentPointOfViewKeyCode(String currentPointOfViewKeyCode) {
this.currentPointOfViewKeyCode = currentPointOfViewKeyCode;
}
/**
* Sets the principalId attribute value.
*
* @param principalId The principalId to set.
*/
public void setPrincipalId(String principalId) {
this.principalId = principalId;
}
/**
* Sets the reportConsolidation attribute value.
*
* @param reportConsolidation The reportConsolidation to set.
*/
public void setReportConsolidation(boolean reportConsolidation) {
this.reportConsolidation = reportConsolidation;
}
/**
* Sets the reportMode attribute value.
*
* @param reportMode The reportMode to set.
*/
public void setReportMode(String reportMode) {
this.reportMode = reportMode;
}
/**
* Sets the showInitialResults attribute value.
*
* @param showInitialResults The showInitialResults to set.
*/
public void setShowInitialResults(boolean showInitialResults) {
this.showInitialResults = showInitialResults;
}
/**
* Sets the universityFiscalYear attribute value.
*
* @param universityFiscalYear The universityFiscalYear to set.
*/
public void setUniversityFiscalYear(Integer universityFiscalYear) {
this.universityFiscalYear = universityFiscalYear;
}
/**
* Gets the tempListLookupMode attribute.
*
* @return Returns the tempListLookupMode.
*/
public int getTempListLookupMode() {
return tempListLookupMode;
}
/**
* Sets the tempListLookupMode attribute value.
*
* @param tempListLookupMode The tempListLookupMode to set.
*/
public void setTempListLookupMode(int tempListLookupMode) {
this.tempListLookupMode = tempListLookupMode;
}
/**
* Gets the messages attribute.
*
* @return Returns the messages.
*/
public List<String> getMessages() {
return messages;
}
/**
* Sets the messages attribute value.
*
* @param messages The messages to set.
*/
public void setMessages(List<String> messages) {
this.messages = messages;
}
/**
* Adds a message to the form message list.
*
* @param message - message text to add
*/
public void addMessage(String message) {
if (getMessages() == null) {
setMessages(new ArrayList<String>());
}
getMessages().add(message);
}
public String getAccountNumber() {
return accountNumber;
}
public void setAccountNumber(String accountNumber) {
this.accountNumber = accountNumber;
}
public String getChartOfAccountsCode() {
return chartOfAccountsCode;
}
public void setChartOfAccountsCode(String chartOfAccountsCode) {
this.chartOfAccountsCode = chartOfAccountsCode;
}
public String getSubAccountNumber() {
return subAccountNumber;
}
public void setSubAccountNumber(String subAccountNumber) {
this.subAccountNumber = subAccountNumber;
}
/**
* Gets the showSalaryByPositionAction attribute.
*
* @return Returns the showSalaryByPositionAction.
*/
public boolean isShowSalaryByPositionAction() {
return showSalaryByPositionAction;
}
/**
* Sets the showSalaryByPositionAction attribute value.
*
* @param showSalaryByPositionAction The showSalaryByPositionAction to set.
*/
public void setShowSalaryByPositionAction(boolean showSalaryByPositionAction) {
this.showSalaryByPositionAction = showSalaryByPositionAction;
}
/**
* Gets the addLine attribute.
*
* @return Returns the addLine.
*/
public boolean isAddLine() {
return addLine;
}
/**
* Sets the addLine attribute value.
*
* @param addLine The addLine to set.
*/
public void setAddLine(boolean addLine) {
this.addLine = addLine;
}
/**
* Gets the showSalaryByIncumbentAction attribute.
*
* @return Returns the showSalaryByIncumbentAction.
*/
public boolean isShowSalaryByIncumbentAction() {
return showSalaryByIncumbentAction;
}
/**
* Sets the showSalaryByIncumbentAction attribute value.
*
* @param showSalaryByIncumbentAction The showSalaryByIncumbentAction to set.
*/
public void setShowSalaryByIncumbentAction(boolean showSalaryByIncumbentAction) {
this.showSalaryByIncumbentAction = showSalaryByIncumbentAction;
}
/**
* Gets the budgetByAccountMode attribute.
*
* @return Returns the budgetByAccountMode.
*/
public boolean isBudgetByAccountMode() {
return budgetByAccountMode;
}
/**
* Sets the budgetByAccountMode attribute value.
*
* @param budgetByAccountMode The budgetByAccountMode to set.
*/
public void setBudgetByAccountMode(boolean budgetByAccountMode) {
this.budgetByAccountMode = budgetByAccountMode;
}
/**
* gets finanical object code
*
* @return
*/
public String getFinancialObjectCode() {
return financialObjectCode;
}
/**
* sets financial object code
*
* @param financialObjectCode
*/
public void setFinancialObjectCode(String financialObjectCode) {
this.financialObjectCode = financialObjectCode;
}
/**
* gets financial subobject code
*
* @return
*/
public String getFinancialSubObjectCode() {
return financialSubObjectCode;
}
/**
* sets financial subobject code
*
* @param financialSubObjectCode
*/
public void setFinancialSubObjectCode(String financialSubObjectCode) {
this.financialSubObjectCode = financialSubObjectCode;
}
/**
* 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;
}
}