/* * 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.util.LinkedHashMap; import org.apache.commons.lang.StringUtils; import org.kuali.kfs.coa.service.ChartService; 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.kim.api.identity.PersonService; import org.kuali.rice.krad.bo.KualiCode; import org.kuali.rice.krad.bo.PersistableBusinessObjectBase; /** * */ public class Chart extends PersistableBusinessObjectBase implements KualiCode { private static final long serialVersionUID = 4129020803214027609L; public static final String CACHE_NAME = KFSConstants.APPLICATION_NAMESPACE_CODE + "/" + "Chart"; protected String finChartOfAccountDescription; protected boolean active; protected String finCoaManagerPrincipalId; protected String reportsToChartOfAccountsCode; protected String chartOfAccountsCode; protected String finAccountsPayableObjectCode; protected String finExternalEncumbranceObjCd; protected String finPreEncumbranceObjectCode; protected String financialCashObjectCode; protected String icrIncomeFinancialObjectCode; protected String finAccountsReceivableObjCode; protected String finInternalEncumbranceObjCd; protected String icrExpenseFinancialObjectCd; protected String incBdgtEliminationsFinObjCd; protected String expBdgtEliminationsFinObjCd; protected String fundBalanceObjectCode; protected ObjectCode incBdgtEliminationsFinObj; protected ObjectCode expBdgtEliminationsFinObj; protected ObjectCode finAccountsPayableObject; protected ObjectCode finExternalEncumbranceObj; protected ObjectCode finPreEncumbranceObject; protected ObjectCode financialCashObject; protected ObjectCode icrIncomeFinancialObject; protected ObjectCode finAccountsReceivableObj; protected ObjectCode finInternalEncumbranceObj; protected ObjectCode icrExpenseFinancialObject; protected ObjectCode fundBalanceObject; protected Person finCoaManager; protected Chart reportsToChartOfAccounts; private static transient ChartService chartService; /** * Gets the finChartOfAccountDescription attribute. * * @return Returns the finChartOfAccountDescription */ public String getFinChartOfAccountDescription() { return finChartOfAccountDescription; } /** * Sets the finChartOfAccountDescription attribute. * * @param finChartOfAccountDescription The finChartOfAccountDescription to set. */ public void setFinChartOfAccountDescription(String finChartOfAccountDescription) { this.finChartOfAccountDescription = finChartOfAccountDescription; } /** * Gets the active attribute. * * @return Returns the active */ public boolean isActive() { return active; } /** * Sets the active attribute. * * @param active The active to set. */ public void setActive(boolean active) { this.active = active; } /** * Gets the finAccountsPayableObject attribute. * * @return Returns the finAccountsPayableObject */ public ObjectCode getFinAccountsPayableObject() { return finAccountsPayableObject; } /** * Sets the finAccountsPayableObject attribute. * * @param finAccountsPayableObject The finAccountsPayableObject to set. * @deprecated */ public void setFinAccountsPayableObject(ObjectCode finAccountsPayableObject) { this.finAccountsPayableObject = finAccountsPayableObject; } /** * Gets the finExternalEncumbranceObj attribute. * * @return Returns the finExternalEncumbranceObj. */ public ObjectCode getFinExternalEncumbranceObj() { return finExternalEncumbranceObj; } /** * Sets the finExternalEncumbranceObj attribute value. * * @param finExternalEncumbranceObj The finExternalEncumbranceObj to set. * @deprecated */ public void setFinExternalEncumbranceObj(ObjectCode finExternalEncumbranceObj) { this.finExternalEncumbranceObj = finExternalEncumbranceObj; } /** * Gets the finPreEncumbranceObject attribute. * * @return Returns the finPreEncumbranceObject */ public ObjectCode getFinPreEncumbranceObject() { return finPreEncumbranceObject; } /** * Sets the finPreEncumbranceObject attribute. * * @param finPreEncumbranceObject The finPreEncumbranceObject to set. * @deprecated */ public void setFinPreEncumbranceObject(ObjectCode finPreEncumbranceObject) { this.finPreEncumbranceObject = finPreEncumbranceObject; } /** * Gets the financialCashObject attribute. * * @return Returns the financialCashObject */ public ObjectCode getFinancialCashObject() { return financialCashObject; } /** * Sets the financialCashObject attribute. * * @param financialCashObject The financialCashObject to set. * @deprecated */ public void setFinancialCashObject(ObjectCode financialCashObject) { this.financialCashObject = financialCashObject; } /** * Gets the icrIncomeFinancialObject attribute. * * @return Returns the icrIncomeFinancialObject */ public ObjectCode getIcrIncomeFinancialObject() { return icrIncomeFinancialObject; } /** * Sets the icrIncomeFinancialObject attribute. * * @param icrIncomeFinancialObject The icrIncomeFinancialObject to set. * @deprecated */ public void setIcrIncomeFinancialObject(ObjectCode icrIncomeFinancialObject) { this.icrIncomeFinancialObject = icrIncomeFinancialObject; } /** * Gets the finAccountsReceivableObj attribute. * * @return Returns the finAccountsReceivableObj */ public ObjectCode getFinAccountsReceivableObj() { return finAccountsReceivableObj; } /** * Sets the finAccountsReceivableObj attribute. * * @param finAccountsReceivableObj The finAccountsReceivableObj to set. * @deprecated */ public void setFinAccountsReceivableObj(ObjectCode finAccountsReceivableObj) { this.finAccountsReceivableObj = finAccountsReceivableObj; } public Person getFinCoaManager() { finCoaManager = SpringContext.getBean(PersonService.class).updatePersonIfNecessary(getFinCoaManagerPrincipalId(), finCoaManager); return finCoaManager; } /** * Sets the finCoaManagerUniversal attribute. * * @param finCoaManagerUniversal The finCoaManagerUniversal to set. * @deprecated */ public void setFinCoaManager(Person finCoaManagerUniversal) { this.finCoaManager = finCoaManagerUniversal; } /** * Gets the reportsToChartOfAccounts attribute. * * @return Returns the reportsToChartOfAccounts */ public Chart getReportsToChartOfAccounts() { return reportsToChartOfAccounts; } /** * Sets the reportsToChartOfAccounts attribute. * * @param reportsToChartOfAccounts The reportsToChartOfAccounts to set. * @deprecated */ public void setReportsToChartOfAccounts(Chart reportsToChartOfAccounts) { this.reportsToChartOfAccounts = reportsToChartOfAccounts; } /** * Gets the finInternalEncumbranceObj attribute. * * @return Returns the finInternalEncumbranceObj. */ public ObjectCode getFinInternalEncumbranceObj() { return finInternalEncumbranceObj; } /** * Sets the finInternalEncumbranceObj attribute value. * * @param finInternalEncumbranceObj The finInternalEncumbranceObj to set. * @deprecated */ public void setFinInternalEncumbranceObj(ObjectCode finInternalEncumbranceObj) { this.finInternalEncumbranceObj = finInternalEncumbranceObj; } /** * Gets the icrExpenseFinancialObject attribute. * * @return Returns the icrExpenseFinancialObject. */ public ObjectCode getIcrExpenseFinancialObject() { return icrExpenseFinancialObject; } /** * Sets the icrExpenseFinancialObject attribute value. * * @param icrExpenseFinancialObject The icrExpenseFinancialObject to set. * @deprecated */ public void setIcrExpenseFinancialObject(ObjectCode icrExpenseFinancialObject) { this.icrExpenseFinancialObject = icrExpenseFinancialObject; } /** * 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 expBdgtEliminationsFinObj attribute. * * @return Returns the expBdgtEliminationsFinObj. */ public ObjectCode getExpBdgtEliminationsFinObj() { return expBdgtEliminationsFinObj; } /** * Sets the expBdgtEliminationsFinObj attribute value. * * @param expBdgtEliminationsFinObj The expBdgtEliminationsFinObj to set. * @deprecated */ public void setExpBdgtEliminationsFinObj(ObjectCode expBdgtEliminationsFinObj) { this.expBdgtEliminationsFinObj = expBdgtEliminationsFinObj; } /** * Gets the incBdgtEliminationsFinObj attribute. * * @return Returns the incBdgtEliminationsFinObj. */ public ObjectCode getIncBdgtEliminationsFinObj() { return incBdgtEliminationsFinObj; } /** * Sets the incBdgtEliminationsFinObj attribute value. * * @param incBdgtEliminationsFinObj The incBdgtEliminationsFinObj to set. * @deprecated */ public void setIncBdgtEliminationsFinObj(ObjectCode incBdgtEliminationsFinObj) { this.incBdgtEliminationsFinObj = incBdgtEliminationsFinObj; } /** * @see org.kuali.rice.krad.bo.BusinessObjectBase#toStringMapper() */ @SuppressWarnings("unchecked") protected LinkedHashMap toStringMapper_RICE20_REFACTORME() { LinkedHashMap m = new LinkedHashMap(); m.put("chartOfAccountsCode", this.chartOfAccountsCode); return m; } /** * Gets the finAccountsPayableObjectCode attribute. * * @return Returns the finAccountsPayableObjectCode. */ public String getFinAccountsPayableObjectCode() { return finAccountsPayableObjectCode; } /** * Sets the finAccountsPayableObjectCode attribute value. * * @param finAccountsPayableObjectCode The finAccountsPayableObjectCode to set. */ public void setFinAccountsPayableObjectCode(String finAccountsPayableObjectCode) { this.finAccountsPayableObjectCode = finAccountsPayableObjectCode; } /** * Gets the finAccountsReceivableObjCode attribute. * * @return Returns the finAccountsReceivableObjCode. */ public String getFinAccountsReceivableObjCode() { return finAccountsReceivableObjCode; } /** * Sets the finAccountsReceivableObjCode attribute value. * * @param finAccountsReceivableObjCode The finAccountsReceivableObjCode to set. */ public void setFinAccountsReceivableObjCode(String finAccountsReceivableObjCode) { this.finAccountsReceivableObjCode = finAccountsReceivableObjCode; } /** * Gets the financialCashObjectCode attribute. * * @return Returns the financialCashObjectCode. */ public String getFinancialCashObjectCode() { return financialCashObjectCode; } /** * Sets the financialCashObjectCode attribute value. * * @param financialCashObjectCode The financialCashObjectCode to set. */ public void setFinancialCashObjectCode(String financialCashObjectCode) { this.financialCashObjectCode = financialCashObjectCode; } /** * Gets the finExternalEncumbranceObjCd attribute. * * @return Returns the finExternalEncumbranceObjCd. */ public String getFinExternalEncumbranceObjCd() { return finExternalEncumbranceObjCd; } /** * Sets the finExternalEncumbranceObjCd attribute value. * * @param finExternalEncumbranceObjCd The finExternalEncumbranceObjCd to set. */ public void setFinExternalEncumbranceObjCd(String finExternalEncumbranceObjCd) { this.finExternalEncumbranceObjCd = finExternalEncumbranceObjCd; } /** * Gets the finInternalEncumbranceObjCd attribute. * * @return Returns the finInternalEncumbranceObjCd. */ public String getFinInternalEncumbranceObjCd() { return finInternalEncumbranceObjCd; } /** * Sets the finInternalEncumbranceObjCd attribute value. * * @param finInternalEncumbranceObjCd The finInternalEncumbranceObjCd to set. */ public void setFinInternalEncumbranceObjCd(String finInternalEncumbranceObjCd) { this.finInternalEncumbranceObjCd = finInternalEncumbranceObjCd; } /** * Gets the finPreEncumbranceObjectCode attribute. * * @return Returns the finPreEncumbranceObjectCode. */ public String getFinPreEncumbranceObjectCode() { return finPreEncumbranceObjectCode; } /** * Sets the finPreEncumbranceObjectCode attribute value. * * @param finPreEncumbranceObjectCode The finPreEncumbranceObjectCode to set. */ public void setFinPreEncumbranceObjectCode(String finPreEncumbranceObjectCode) { this.finPreEncumbranceObjectCode = finPreEncumbranceObjectCode; } /** * Gets the icrExpenseFinancialObjectCd attribute. * * @return Returns the icrExpenseFinancialObjectCd. */ public String getIcrExpenseFinancialObjectCd() { return icrExpenseFinancialObjectCd; } /** * Sets the icrExpenseFinancialObjectCd attribute value. * * @param icrExpenseFinancialObjectCd The icrExpenseFinancialObjectCd to set. */ public void setIcrExpenseFinancialObjectCd(String icrExpenseFinancialObjectCd) { this.icrExpenseFinancialObjectCd = icrExpenseFinancialObjectCd; } /** * Gets the icrIncomeFinancialObjectCode attribute. * * @return Returns the icrIncomeFinancialObjectCode. */ public String getIcrIncomeFinancialObjectCode() { return icrIncomeFinancialObjectCode; } /** * Sets the icrIncomeFinancialObjectCode attribute value. * * @param icrIncomeFinancialObjectCode The icrIncomeFinancialObjectCode to set. */ public void setIcrIncomeFinancialObjectCode(String icrIncomeFinancialObjectCode) { this.icrIncomeFinancialObjectCode = icrIncomeFinancialObjectCode; } /** * Gets the expBdgtEliminationsFinObjCd attribute. * * @return Returns the expBdgtEliminationsFinObjCd */ public String getExpBdgtEliminationsFinObjCd() { return expBdgtEliminationsFinObjCd; } /** * Sets the expBdgtEliminationsFinObjCd attribute. * * @param expBdgtEliminationsFinObjCd The expBdgtEliminationsFinObjCd to set. */ public void setExpBdgtEliminationsFinObjCd(String expBdgtEliminationsFinObjCd) { this.expBdgtEliminationsFinObjCd = expBdgtEliminationsFinObjCd; } /** * Gets the incBdgtEliminationsFinObjCd attribute. * * @return Returns the incBdgtEliminationsFinObjCd */ public String getIncBdgtEliminationsFinObjCd() { return incBdgtEliminationsFinObjCd; } /** * Sets the incBdgtEliminationsFinObjCd attribute. * * @param incBdgtEliminationsFinObjCd The incBdgtEliminationsFinObjCd to set. */ public void setIncBdgtEliminationsFinObjCd(String incBdgtEliminationsFinObjCd) { this.incBdgtEliminationsFinObjCd = incBdgtEliminationsFinObjCd; } /** * Gets the finCoaManagerPrincipalId attribute. * * @return Returns the finCoaManagerPrincipalId. */ public String getFinCoaManagerPrincipalId() { if (StringUtils.isNotBlank(chartOfAccountsCode) && StringUtils.isBlank(finCoaManagerPrincipalId)) { Person chartManager = getChartService().getChartManager(chartOfAccountsCode); if (chartManager != null) { finCoaManager = chartManager; finCoaManagerPrincipalId = chartManager.getPrincipalId(); } else { finCoaManagerPrincipalId = null; finCoaManager = null; } } return finCoaManagerPrincipalId; } /** * Sets the finCoaManagerPrincipalId attribute value. * * @param finCoaManagerPrincipalId The finCoaManagerPrincipalId to set. */ public void setFinCoaManagerPrincipalId(String finCoaManagerPrincipalId) { this.finCoaManagerPrincipalId = finCoaManagerPrincipalId; } /** * @return Returns the reportsToChartOfAccountsCode. */ public String getReportsToChartOfAccountsCode() { return reportsToChartOfAccountsCode; } /** * @param reportsToChartOfAccountsCode The reportsToChartOfAccountsCode to set. */ public void setReportsToChartOfAccountsCode(String reportsToChartOfAccountsCode) { this.reportsToChartOfAccountsCode = reportsToChartOfAccountsCode; } /** * Gets the fundBalanceObject attribute. * * @return Returns the fundBalanceObject. */ public ObjectCode getFundBalanceObject() { return fundBalanceObject; } /** * Sets the fundBalanceObject attribute value. * * @param fundBalanceObject The fundBalanceObject to set. * @deprecated */ public void setFundBalanceObject(ObjectCode fundBalanceObject) { this.fundBalanceObject = fundBalanceObject; } /** * Gets the fundBalanceObjectCode attribute. * * @return Returns the fundBalanceObjectCode. */ public String getFundBalanceObjectCode() { return fundBalanceObjectCode; } /** * Sets the fundBalanceObjectCode attribute value. * * @param fundBalanceObjectCode The fundBalanceObjectCode to set. */ public void setFundBalanceObjectCode(String fundBalanceObjectCode) { this.fundBalanceObjectCode = fundBalanceObjectCode; } /** * @return Returns the code and description in format: xx - xxxxxxxxxxxxxxxx */ public String getCodeAndDescription() { if (StringUtils.isNotBlank(getChartOfAccountsCode()) && StringUtils.isNotBlank(getFinChartOfAccountDescription())) return getChartOfAccountsCode() + " - " + getFinChartOfAccountDescription(); else return ""; } public String getCode() { return this.chartOfAccountsCode; } public String getName() { return this.finChartOfAccountDescription; } protected static ChartService getChartService() { if ( chartService == null ) { chartService = SpringContext.getBean(ChartService.class); } return chartService; } public void setCode(String chartOfAccountsCode) { setChartOfAccountsCode(chartOfAccountsCode); } public void setName(String finChartOfAccountDescription) { setFinChartOfAccountDescription(finChartOfAccountDescription); } public String getChartCodeForReport() { return this.chartOfAccountsCode; } }