/*
* 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.coa.businessobject;
import java.sql.Date;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang.StringUtils;
import org.kuali.kfs.integration.cg.ContractsAndGrantsCfda;
import org.kuali.kfs.integration.ld.LaborBenefitRateCategory;
import org.kuali.kfs.sys.KFSConstants;
import org.kuali.kfs.sys.context.SpringContext;
import org.kuali.rice.kim.api.identity.Person;
import org.kuali.rice.krad.bo.DocumentHeader;
import org.kuali.rice.krad.bo.GlobalBusinessObject;
import org.kuali.rice.krad.bo.GlobalBusinessObjectDetail;
import org.kuali.rice.krad.bo.PersistableBusinessObject;
import org.kuali.rice.krad.bo.PersistableBusinessObjectBase;
import org.kuali.rice.krad.service.BusinessObjectService;
import org.kuali.rice.krad.service.KualiModuleService;
import org.kuali.rice.krad.service.ModuleService;
import org.kuali.rice.krad.service.PersistenceStructureService;
import org.kuali.rice.location.api.LocationConstants;
import org.kuali.rice.location.framework.postalcode.PostalCodeEbo;
import org.kuali.rice.location.framework.state.StateEbo;
/**
*
*/
public class AccountGlobal extends PersistableBusinessObjectBase implements GlobalBusinessObject {
protected String documentNumber;
protected String accountFiscalOfficerSystemIdentifier;
protected String accountsSupervisorySystemsIdentifier;
protected String accountManagerSystemIdentifier;
protected String chartOfAccountsCode;
protected String organizationCode;
protected String subFundGroupCode;
protected String accountCityName;
protected String accountStateCode;
protected String accountStreetAddress;
protected String accountZipCode;
protected Date accountExpirationDate;
protected String continuationFinChrtOfAcctCd;
protected String continuationAccountNumber;
protected String incomeStreamFinancialCoaCode;
protected String incomeStreamAccountNumber;
protected String accountCfdaNumber;
protected String financialHigherEdFunctionCd;
protected String accountSufficientFundsCode;
protected Boolean pendingAcctSufficientFundsIndicator;
protected String accountSearchCriteriaTxt;
protected List<AccountGlobalDetail> accountGlobalDetails;
protected DocumentHeader financialDocument;
protected Person accountFiscalOfficerUser;
protected Person accountSupervisoryUser;
protected Person accountManagerUser;
protected Chart continuationFinChrtOfAcct;
protected Account continuationAccount;
protected Account incomeStreamAccount;
protected Chart incomeStreamFinancialCoa;
protected Chart chartOfAccounts;
protected Organization organization;
protected SubFundGroup subFundGroup;
protected StateEbo accountState;
protected HigherEducationFunction financialHigherEdFunction;
protected PostalCodeEbo postalZipCode;
protected SufficientFundsCode sufficientFundsCode;
protected ContractsAndGrantsCfda cfda;
// added for the employee labor benefit calculation
protected String laborBenefitRateCategoryCode;
protected LaborBenefitRateCategory laborBenefitRateCategory;
/**
* Default constructor.
*/
public AccountGlobal() {
accountGlobalDetails = new ArrayList<AccountGlobalDetail>();
}
/**
* @see org.kuali.rice.krad.document.GlobalBusinessObject#getGlobalChangesToDelete()
*/
@Override
public List<PersistableBusinessObject> generateDeactivationsToPersist() {
return null;
}
/**
* @see org.kuali.rice.krad.document.GlobalBusinessObject#applyGlobalChanges(org.kuali.rice.krad.bo.BusinessObject)
*/
@Override
public List<PersistableBusinessObject> generateGlobalChangesToPersist() {
// the list of persist-ready BOs
List<PersistableBusinessObject> persistables = new ArrayList<PersistableBusinessObject>();
// walk over each change detail record
for (AccountGlobalDetail detail : accountGlobalDetails) {
// load the object by keys
Account account = SpringContext.getBean(BusinessObjectService.class).findByPrimaryKey(Account.class, detail.getPrimaryKeys());
// if we got a valid account, do the processing
if (account != null) {
// NOTE that the list of fields that are updated may be a subset of the total
// number of fields in this class. This is because the class may contain a superset
// of the fields actually used in the Global Maintenance Document.
// FISCAL OFFICER
if (StringUtils.isNotBlank(accountFiscalOfficerSystemIdentifier)) {
account.setAccountFiscalOfficerSystemIdentifier(accountFiscalOfficerSystemIdentifier);
}
// ACCOUNT SUPERVISOR
if (StringUtils.isNotBlank(accountsSupervisorySystemsIdentifier)) {
account.setAccountsSupervisorySystemsIdentifier(accountsSupervisorySystemsIdentifier);
}
// ACCOUNT MANAGER
if (StringUtils.isNotBlank(accountManagerSystemIdentifier)) {
account.setAccountManagerSystemIdentifier(accountManagerSystemIdentifier);
}
// ORGANIZATION CODE
if (StringUtils.isNotBlank(organizationCode)) {
account.setOrganizationCode(organizationCode);
}
// SUB FUND GROUP CODE
if (StringUtils.isNotBlank(subFundGroupCode)) {
account.setSubFundGroupCode(subFundGroupCode);
}
// CITY NAME
if (StringUtils.isNotBlank(accountCityName)) {
account.setAccountCityName(accountCityName);
}
// STATE CODE
if (StringUtils.isNotBlank(accountStateCode)) {
account.setAccountStateCode(accountStateCode);
}
// STREET ADDRESS
if (StringUtils.isNotBlank(accountStreetAddress)) {
account.setAccountStreetAddress(accountStreetAddress);
}
// ZIP CODE
if (StringUtils.isNotBlank(accountZipCode)) {
account.setAccountZipCode(accountZipCode);
}
// EXPIRATION DATE
if (accountExpirationDate != null) {
account.setAccountExpirationDate(new Date(accountExpirationDate.getTime()));
}
// CONTINUATION CHART OF ACCOUNTS CODE
if (StringUtils.isNotBlank(continuationFinChrtOfAcctCd)) {
account.setContinuationFinChrtOfAcctCd(continuationFinChrtOfAcctCd);
}
// CONTINUATION ACCOUNT NUMBER
if (StringUtils.isNotBlank(continuationAccountNumber)) {
account.setContinuationAccountNumber(continuationAccountNumber);
}
// INCOME STREAM CHART OF ACCOUNTS CODE
if (StringUtils.isNotBlank(incomeStreamFinancialCoaCode)) {
account.setIncomeStreamFinancialCoaCode(incomeStreamFinancialCoaCode);
}
// INCOME STREAM ACCOUNT NUMBER
if (StringUtils.isNotBlank(incomeStreamAccountNumber)) {
account.setIncomeStreamAccountNumber(incomeStreamAccountNumber);
}
// CG CATL FED DOMESTIC ASSIST NBR
if (StringUtils.isNotBlank(accountCfdaNumber)) {
account.setAccountCfdaNumber(accountCfdaNumber);
}
// FINANCIAL HIGHER ED FUNCTION CODE
if (StringUtils.isNotBlank(financialHigherEdFunctionCd)) {
account.setFinancialHigherEdFunctionCd(financialHigherEdFunctionCd);
}
// SUFFICIENT FUNDS CODE
if (StringUtils.isNotBlank(accountSufficientFundsCode)) {
account.setAccountSufficientFundsCode(accountSufficientFundsCode);
}
// LABOR BENEFIT RATE CATEGORY CODE
if (StringUtils.isNotBlank(laborBenefitRateCategoryCode)) {
account.setLaborBenefitRateCategoryCode(laborBenefitRateCategoryCode);
}
// PENDING ACCOUNT SUFFICIENT FUNDS CODE INDICATOR
if (pendingAcctSufficientFundsIndicator != null) {
account.setPendingAcctSufficientFundsIndicator(pendingAcctSufficientFundsIndicator);
}
// LABOR BENEFIT RATE CATEGORY CODE
if (StringUtils.isNotBlank(laborBenefitRateCategoryCode)) {
account.setLaborBenefitRateCategoryCode(laborBenefitRateCategoryCode);
}
persistables.add(account);
}
}
return persistables;
}
/**
* Gets the documentNumber attribute.
*
* @return Returns the documentNumber
*/
@Override
public String getDocumentNumber() {
return documentNumber;
}
/**
* Sets the documentNumber attribute.
*
* @param documentNumber The documentNumber to set.
*/
@Override
public void setDocumentNumber(String documentNumber) {
this.documentNumber = documentNumber;
}
/**
* 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 organizationCode attribute.
*
* @return Returns the organizationCode
*/
public String getOrganizationCode() {
return organizationCode;
}
/**
* Sets the organizationCode attribute.
*
* @param organizationCode The organizationCode to set.
*/
public void setOrganizationCode(String organizationCode) {
this.organizationCode = organizationCode;
}
/**
* Gets the subFundGroupCode attribute.
*
* @return Returns the subFundGroupCode
*/
public String getSubFundGroupCode() {
return subFundGroupCode;
}
/**
* Sets the subFundGroupCode attribute.
*
* @param subFundGroupCode The subFundGroupCode to set.
*/
public void setSubFundGroupCode(String subFundGroupCode) {
this.subFundGroupCode = subFundGroupCode;
}
/**
* Gets the accountCityName attribute.
*
* @return Returns the accountCityName
*/
public String getAccountCityName() {
return accountCityName;
}
/**
* Sets the accountCityName attribute.
*
* @param accountCityName The accountCityName to set.
*/
public void setAccountCityName(String accountCityName) {
this.accountCityName = accountCityName;
}
/**
* Gets the accountStateCode attribute.
*
* @return Returns the accountStateCode
*/
public String getAccountStateCode() {
return accountStateCode;
}
/**
* Sets the accountStateCode attribute.
*
* @param accountStateCode The accountStateCode to set.
*/
public void setAccountStateCode(String accountStateCode) {
this.accountStateCode = accountStateCode;
}
/**
* Gets the accountStreetAddress attribute.
*
* @return Returns the accountStreetAddress
*/
public String getAccountStreetAddress() {
return accountStreetAddress;
}
/**
* Sets the accountStreetAddress attribute.
*
* @param accountStreetAddress The accountStreetAddress to set.
*/
public void setAccountStreetAddress(String accountStreetAddress) {
this.accountStreetAddress = accountStreetAddress;
}
/**
* Gets the accountZipCode attribute.
*
* @return Returns the accountZipCode
*/
public String getAccountZipCode() {
return accountZipCode;
}
/**
* Sets the accountZipCode attribute.
*
* @param accountZipCode The accountZipCode to set.
*/
public void setAccountZipCode(String accountZipCode) {
this.accountZipCode = accountZipCode;
}
/**
* Gets the accountExpirationDate attribute.
*
* @return Returns the accountExpirationDate
*/
public Date getAccountExpirationDate() {
return accountExpirationDate;
}
/**
* Sets the accountExpirationDate attribute.
*
* @param accountExpirationDate The accountExpirationDate to set.
*/
public void setAccountExpirationDate(Date accountExpirationDate) {
this.accountExpirationDate = accountExpirationDate;
}
/**
* Gets the continuationFinChrtOfAcctCd attribute.
*
* @return Returns the continuationFinChrtOfAcctCd
*/
public String getContinuationFinChrtOfAcctCd() {
return continuationFinChrtOfAcctCd;
}
/**
* Sets the continuationFinChrtOfAcctCd attribute.
*
* @param continuationFinChrtOfAcctCd The continuationFinChrtOfAcctCd to set.
*/
public void setContinuationFinChrtOfAcctCd(String continuationFinChrtOfAcctCd) {
this.continuationFinChrtOfAcctCd = continuationFinChrtOfAcctCd;
}
/**
* Gets the continuationAccountNumber attribute.
*
* @return Returns the continuationAccountNumber
*/
public String getContinuationAccountNumber() {
return continuationAccountNumber;
}
/**
* Sets the continuationAccountNumber attribute.
*
* @param continuationAccountNumber The continuationAccountNumber to set.
*/
public void setContinuationAccountNumber(String continuationAccountNumber) {
this.continuationAccountNumber = continuationAccountNumber;
}
/**
* Gets the incomeStreamFinancialCoaCode attribute.
*
* @return Returns the incomeStreamFinancialCoaCode
*/
public String getIncomeStreamFinancialCoaCode() {
return incomeStreamFinancialCoaCode;
}
/**
* Sets the incomeStreamFinancialCoaCode attribute.
*
* @param incomeStreamFinancialCoaCode The incomeStreamFinancialCoaCode to set.
*/
public void setIncomeStreamFinancialCoaCode(String incomeStreamFinancialCoaCode) {
this.incomeStreamFinancialCoaCode = incomeStreamFinancialCoaCode;
}
/**
* Gets the incomeStreamAccountNumber attribute.
*
* @return Returns the incomeStreamAccountNumber
*/
public String getIncomeStreamAccountNumber() {
return incomeStreamAccountNumber;
}
/**
* Sets the incomeStreamAccountNumber attribute.
*
* @param incomeStreamAccountNumber The incomeStreamAccountNumber to set.
*/
public void setIncomeStreamAccountNumber(String incomeStreamAccountNumber) {
this.incomeStreamAccountNumber = incomeStreamAccountNumber;
}
/**
* Gets the accountSufficientFundsCode attribute.
*
* @return Returns the accountSufficientFundsCode
*/
public String getAccountSufficientFundsCode() {
return accountSufficientFundsCode;
}
/**
* Sets the accountSufficientFundsCode attribute.
*
* @param accountSufficientFundsCode The accountSufficientFundsCode to set.
*/
public void setAccountSufficientFundsCode(String accountSufficientFundsCode) {
this.accountSufficientFundsCode = accountSufficientFundsCode;
}
/**
* Gets the pendingAcctSufficientFundsIndicator attribute.
*
* @return Returns the pendingAcctSufficientFundsIndicator
*/
public Boolean getPendingAcctSufficientFundsIndicator() {
return pendingAcctSufficientFundsIndicator;
}
/**
* Sets the pendingAcctSufficientFundsIndicator attribute.
*
* @param pendingAcctSufficientFundsIndicator The pendingAcctSufficientFundsIndicator to set.
*/
public void setPendingAcctSufficientFundsIndicator(Boolean pendingAcctSufficientFundsIndicator) {
this.pendingAcctSufficientFundsIndicator = pendingAcctSufficientFundsIndicator;
}
/**
* Gets the accountCfdaNumber attribute.
*
* @return Returns the accountCfdaNumber
*/
public String getAccountCfdaNumber() {
return accountCfdaNumber;
}
/**
* Sets the accountCfdaNumber attribute.
*
* @param accountCfdaNumber The accountCfdaNumber to set.
*/
public void setAccountCfdaNumber(String accountCfdaNumber) {
this.accountCfdaNumber = accountCfdaNumber;
}
/**
* Gets the related CFDA record for this account
*
* @return a CFDA record
*/
public ContractsAndGrantsCfda getCfda() {
return cfda = SpringContext.getBean(KualiModuleService.class).getResponsibleModuleService(ContractsAndGrantsCfda.class).retrieveExternalizableBusinessObjectIfNecessary(this, cfda, "cfda");
}
/**
* Gets the accountSearchCriteriaTxt attribute.
*
* @return Returns the accountSearchCriteriaTxt
*/
public String getAccountSearchCriteriaTxt() {
return accountSearchCriteriaTxt;
}
/**
* Sets the accountSearchCriteriaTxt attribute.
*
* @param accountSearchCriteriaTxt The accountSearchCriteriaTxt to set.
*/
public void setAccountSearchCriteriaTxt(String accountSearchCriteriaTxt) {
this.accountSearchCriteriaTxt = accountSearchCriteriaTxt;
}
/**
* Gets the financialDocument attribute.
*
* @return Returns the financialDocument
*/
public DocumentHeader getFinancialDocument() {
return financialDocument;
}
/**
* Sets the financialDocument attribute.
*
* @param financialDocument The financialDocument to set.
* @deprecated
*/
@Deprecated
public void setFinancialDocument(DocumentHeader financialDocument) {
this.financialDocument = financialDocument;
}
public Person getAccountFiscalOfficerUser() {
accountFiscalOfficerUser = SpringContext.getBean(org.kuali.rice.kim.api.identity.PersonService.class).updatePersonIfNecessary(accountFiscalOfficerSystemIdentifier, accountFiscalOfficerUser);
return accountFiscalOfficerUser;
}
/**
* @param accountFiscalOfficerUser The accountFiscalOfficerUser to set.
* @deprecated
*/
@Deprecated
public void setAccountFiscalOfficerUser(Person accountFiscalOfficerUser) {
this.accountFiscalOfficerUser = accountFiscalOfficerUser;
}
public Person getAccountManagerUser() {
accountManagerUser = SpringContext.getBean(org.kuali.rice.kim.api.identity.PersonService.class).updatePersonIfNecessary(accountManagerSystemIdentifier, accountManagerUser);
return accountManagerUser;
}
/**
* @param accountManagerUser The accountManagerUser to set.
* @deprecated
*/
@Deprecated
public void setAccountManagerUser(Person accountManagerUser) {
this.accountManagerUser = accountManagerUser;
}
public Person getAccountSupervisoryUser() {
accountSupervisoryUser = SpringContext.getBean(org.kuali.rice.kim.api.identity.PersonService.class).updatePersonIfNecessary(accountsSupervisorySystemsIdentifier, accountSupervisoryUser);
return accountSupervisoryUser;
}
/**
* @param accountSupervisoryUser The accountSupervisoryUser to set.
* @deprecated
*/
@Deprecated
public void setAccountSupervisoryUser(Person accountSupervisoryUser) {
this.accountSupervisoryUser = accountSupervisoryUser;
}
/**
* Gets the continuationFinChrtOfAcct attribute.
*
* @return Returns the continuationFinChrtOfAcct
*/
public Chart getContinuationFinChrtOfAcct() {
return continuationFinChrtOfAcct;
}
/**
* Sets the continuationFinChrtOfAcct attribute.
*
* @param continuationFinChrtOfAcct The continuationFinChrtOfAcct to set.
* @deprecated
*/
@Deprecated
public void setContinuationFinChrtOfAcct(Chart continuationFinChrtOfAcct) {
this.continuationFinChrtOfAcct = continuationFinChrtOfAcct;
}
/**
* Gets the continuationAccount attribute.
*
* @return Returns the continuationAccount
*/
public Account getContinuationAccount() {
return continuationAccount;
}
/**
* Sets the continuationAccount attribute.
*
* @param continuationAccount The continuationAccount to set.
* @deprecated
*/
@Deprecated
public void setContinuationAccount(Account continuationAccount) {
this.continuationAccount = continuationAccount;
}
/**
* Gets the incomeStreamAccount attribute.
*
* @return Returns the incomeStreamAccount
*/
public Account getIncomeStreamAccount() {
return incomeStreamAccount;
}
/**
* Sets the incomeStreamAccount attribute.
*
* @param incomeStreamAccount The incomeStreamAccount to set.
* @deprecated
*/
@Deprecated
public void setIncomeStreamAccount(Account incomeStreamAccount) {
this.incomeStreamAccount = incomeStreamAccount;
}
/**
* Gets the incomeStreamFinancialCoa attribute.
*
* @return Returns the incomeStreamFinancialCoa
*/
public Chart getIncomeStreamFinancialCoa() {
return incomeStreamFinancialCoa;
}
/**
* Sets the incomeStreamFinancialCoa attribute.
*
* @param incomeStreamFinancialCoa The incomeStreamFinancialCoa to set.
* @deprecated
*/
@Deprecated
public void setIncomeStreamFinancialCoa(Chart incomeStreamFinancialCoa) {
this.incomeStreamFinancialCoa = incomeStreamFinancialCoa;
}
/**
* @return Returns the accountGlobalDetail.
*/
public List<AccountGlobalDetail> getAccountGlobalDetails() {
return accountGlobalDetails;
}
/**
* @param accountGlobalDetail The accountGlobalDetail to set.
*/
public void setAccountGlobalDetails(List<AccountGlobalDetail> accountGlobalDetails) {
this.accountGlobalDetails = accountGlobalDetails;
}
/**
* Gets the financialHigherEdFunctionCd attribute.
*
* @return Returns the financialHigherEdFunctionCd.
*/
public String getFinancialHigherEdFunctionCd() {
return financialHigherEdFunctionCd;
}
/**
* Sets the financialHigherEdFunctionCd attribute value.
*
* @param financialHigherEdFunctionCd The financialHigherEdFunctionCd to set.
*/
public void setFinancialHigherEdFunctionCd(String financialHigherEdFunctionCd) {
this.financialHigherEdFunctionCd = financialHigherEdFunctionCd;
}
/**
* Gets the accountFiscalOfficerSystemIdentifier attribute.
*
* @return Returns the accountFiscalOfficerSystemIdentifier.
*/
public String getAccountFiscalOfficerSystemIdentifier() {
return accountFiscalOfficerSystemIdentifier;
}
/**
* Sets the accountFiscalOfficerSystemIdentifier attribute value.
*
* @param accountFiscalOfficerSystemIdentifier The accountFiscalOfficerSystemIdentifier to set.
*/
public void setAccountFiscalOfficerSystemIdentifier(String accountFiscalOfficerSystemIdentifier) {
this.accountFiscalOfficerSystemIdentifier = accountFiscalOfficerSystemIdentifier;
}
/**
* Gets the accountManagerSystemIdentifier attribute.
*
* @return Returns the accountManagerSystemIdentifier.
*/
public String getAccountManagerSystemIdentifier() {
return accountManagerSystemIdentifier;
}
/**
* Sets the accountManagerSystemIdentifier attribute value.
*
* @param accountManagerSystemIdentifier The accountManagerSystemIdentifier to set.
*/
public void setAccountManagerSystemIdentifier(String accountManagerSystemIdentifier) {
this.accountManagerSystemIdentifier = accountManagerSystemIdentifier;
}
/**
* Gets the accountsSupervisorySystemsIdentifier attribute.
*
* @return Returns the accountsSupervisorySystemsIdentifier.
*/
public String getAccountsSupervisorySystemsIdentifier() {
return accountsSupervisorySystemsIdentifier;
}
/**
* Sets the accountsSupervisorySystemsIdentifier attribute value.
*
* @param accountsSupervisorySystemsIdentifier The accountsSupervisorySystemsIdentifier to set.
*/
public void setAccountsSupervisorySystemsIdentifier(String accountsSupervisorySystemsIdentifier) {
this.accountsSupervisorySystemsIdentifier = accountsSupervisorySystemsIdentifier;
}
/**
* Gets the chartOfAccounts attribute.
*
* @return Returns the chartOfAccounts.
*/
public Chart getChartOfAccounts() {
return chartOfAccounts;
}
/**
* Sets the chartOfAccounts attribute value.
*
* @param chartOfAccounts The chartOfAccounts to set.
* @deprecated
*/
@Deprecated
public void setChartOfAccounts(Chart chartOfAccounts) {
this.chartOfAccounts = chartOfAccounts;
}
/**
* Gets the accountState attribute.
*
* @return Returns the accountState.
*/
public StateEbo getAccountState() {
if ( StringUtils.isBlank(accountStateCode) || StringUtils.isBlank(KFSConstants.COUNTRY_CODE_UNITED_STATES ) ) {
accountState = null;
} else {
if ( accountState == null || !StringUtils.equals( accountState.getCode(),accountStateCode) || !StringUtils.equals(accountState.getCountryCode(), KFSConstants.COUNTRY_CODE_UNITED_STATES ) ) {
ModuleService moduleService = SpringContext.getBean(KualiModuleService.class).getResponsibleModuleService(StateEbo.class);
if ( moduleService != null ) {
Map<String,Object> keys = new HashMap<String, Object>(2);
keys.put(LocationConstants.PrimaryKeyConstants.COUNTRY_CODE, KFSConstants.COUNTRY_CODE_UNITED_STATES);/*RICE20_REFACTORME*/
keys.put(LocationConstants.PrimaryKeyConstants.CODE, accountStateCode);
accountState = moduleService.getExternalizableBusinessObject(StateEbo.class, keys);
} else {
throw new RuntimeException( "CONFIGURATION ERROR: No responsible module found for EBO class. Unable to proceed." );
}
}
}
return accountState;
}
/**
* Sets the accountState attribute value.
*
* @param accountState The accountState to set.
*/
public void setAccountState(StateEbo accountState) {
this.accountState = accountState;
}
/**
* Gets the financialHigherEdFunction attribute.
*
* @return Returns the financialHigherEdFunction.
*/
public HigherEducationFunction getFinancialHigherEdFunction() {
return financialHigherEdFunction;
}
/**
* Sets the financialHigherEdFunction attribute value.
*
* @param financialHigherEdFunction The financialHigherEdFunction to set.
*/
public void setFinancialHigherEdFunction(HigherEducationFunction financialHigherEdFunction) {
this.financialHigherEdFunction = financialHigherEdFunction;
}
/**
* Gets the organization attribute.
*
* @return Returns the organization.
*/
public Organization getOrganization() {
return organization;
}
/**
* Sets the organization attribute value.
*
* @param organization The organization to set.
*/
public void setOrganization(Organization organization) {
this.organization = organization;
}
/**
* Gets the postalZipCode attribute.
*
* @return Returns the postalZipCode.
*/
public PostalCodeEbo getPostalZipCode() {
if ( StringUtils.isBlank(accountZipCode) || StringUtils.isBlank(KFSConstants.COUNTRY_CODE_UNITED_STATES ) ) {
postalZipCode = null;
} else {
if ( postalZipCode == null || !StringUtils.equals( postalZipCode.getCode(),accountZipCode) || !StringUtils.equals(postalZipCode.getCountryCode(), KFSConstants.COUNTRY_CODE_UNITED_STATES ) ) {
ModuleService moduleService = SpringContext.getBean(KualiModuleService.class).getResponsibleModuleService(PostalCodeEbo.class);
if ( moduleService != null ) {
Map<String,Object> keys = new HashMap<String, Object>(2);
keys.put(LocationConstants.PrimaryKeyConstants.COUNTRY_CODE, KFSConstants.COUNTRY_CODE_UNITED_STATES);/*RICE20_REFACTORME*/
keys.put(LocationConstants.PrimaryKeyConstants.CODE, accountZipCode);
postalZipCode = moduleService.getExternalizableBusinessObject(PostalCodeEbo.class, keys);
} else {
throw new RuntimeException( "CONFIGURATION ERROR: No responsible module found for EBO class. Unable to proceed." );
}
}
}
return postalZipCode;
}
/**
* Sets the postalZipCode attribute value.
*
* @param postalZipCode The postalZipCode to set.
*/
public void setPostalZipCode(PostalCodeEbo postalZipCode) {
this.postalZipCode = postalZipCode;
}
/**
* Gets the subFundGroup attribute.
*
* @return Returns the subFundGroup.
*/
public SubFundGroup getSubFundGroup() {
return subFundGroup;
}
/**
* Sets the subFundGroup attribute value.
*
* @param subFundGroup The subFundGroup to set.
*/
public void setSubFundGroup(SubFundGroup subFundGroup) {
this.subFundGroup = subFundGroup;
}
/**
* Gets the sufficientFundsCode attribute.
*
* @return Returns the sufficientFundsCode.
*/
public final SufficientFundsCode getSufficientFundsCode() {
return sufficientFundsCode;
}
/**
* Sets the sufficientFundsCode attribute value.
*
* @param sufficientFundsCode The sufficientFundsCode to set.
*/
public final void setSufficientFundsCode(SufficientFundsCode sufficientFundsCode) {
this.sufficientFundsCode = sufficientFundsCode;
}
/**
* @see org.kuali.rice.krad.document.GlobalBusinessObject#isPersistable()
*/
@Override
public boolean isPersistable() {
PersistenceStructureService persistenceStructureService = SpringContext.getBean(PersistenceStructureService.class);
// fail if the PK for this object is emtpy
if (StringUtils.isBlank(documentNumber)) {
return false;
}
// fail if the PKs for any of the contained objects are empty
for (AccountGlobalDetail account : getAccountGlobalDetails()) {
if (!persistenceStructureService.hasPrimaryKeyFieldValues(account)) {
return false;
}
}
// otherwise, its all good
return true;
}
@Override
public List<? extends GlobalBusinessObjectDetail> getAllDetailObjects() {
return accountGlobalDetails;
}
/**
* @see org.kuali.rice.krad.bo.PersistableBusinessObjectBase#buildListOfDeletionAwareLists()
*/
@Override
public List<Collection<PersistableBusinessObject>> buildListOfDeletionAwareLists() {
List<Collection<PersistableBusinessObject>> managedLists = super.buildListOfDeletionAwareLists();
managedLists.add( new ArrayList<PersistableBusinessObject>( getAccountGlobalDetails() ) );
return managedLists;
}
/**
* Gets the laborBenefitRateCategoryCode attribute.
*
* @return Returns the laborBenefitRateCategoryCode.
*/
public String getLaborBenefitRateCategoryCode() {
return laborBenefitRateCategoryCode;
}
/**
* Sets the laborBenefitRateCategoryCode attribute value.
*
* @param laborBenefitRateCategoryCode The laborBenefitRateCategoryCode to set.
*/
public void setLaborBenefitRateCategoryCode(String laborBenefitRateCategoryCode) {
this.laborBenefitRateCategoryCode = laborBenefitRateCategoryCode;
}
/**
* Sets the laborBenefitRateCategory attribute value.
*
* @param laborBenefitRateCategory The laborBenefitRateCategory to set.
*/
public void setLaborBenefitRateCategory(LaborBenefitRateCategory laborBenefitRateCategory) {
this.laborBenefitRateCategory = laborBenefitRateCategory;
}
/**
* Gets the laborBenefitRateCategory attribute.
*
* @return Returns the laborBenefitRateCategory.
*/
public LaborBenefitRateCategory getLaborBenefitRateCategory() {
laborBenefitRateCategory = (LaborBenefitRateCategory) SpringContext.getBean(KualiModuleService.class).getResponsibleModuleService(LaborBenefitRateCategory.class).retrieveExternalizableBusinessObjectsList(this, "LaborBenefitRateCategory", LaborBenefitRateCategory.class);
return laborBenefitRateCategory;
}
}