/* * 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.tem.businessobject; import java.sql.Timestamp; import org.apache.commons.lang.StringUtils; import org.kuali.kfs.coa.businessobject.Account; import org.kuali.kfs.coa.businessobject.BalanceType; import org.kuali.kfs.coa.businessobject.Chart; import org.kuali.kfs.coa.businessobject.ObjectCode; import org.kuali.kfs.coa.businessobject.ProjectCode; import org.kuali.kfs.coa.businessobject.SubAccount; import org.kuali.kfs.coa.businessobject.SubObjectCode; import org.kuali.kfs.sys.context.SpringContext; import org.kuali.kfs.sys.document.validation.impl.AccountingDocumentRuleBaseConstants.GENERAL_LEDGER_PENDING_ENTRY_CODE; import org.kuali.rice.core.api.util.type.KualiDecimal; import org.kuali.rice.kew.api.doctype.DocumentTypeService; import org.kuali.rice.kew.doctype.bo.DocumentType; import org.kuali.rice.kew.doctype.bo.DocumentTypeEBO; import org.kuali.rice.krad.bo.PersistableBusinessObjectBase; /** * Table which holds travel encumbrances waiting for the next fiscal year to be created */ public class HeldEncumbranceEntry extends PersistableBusinessObjectBase { private String documentNumber; private Integer transactionLedgerEntrySequenceNumber; private String travelDocumentIdentifier; private String chartOfAccountsCode; private String accountNumber; private String subAccountNumber; private String financialObjectCode; private String financialSubObjectCode; private String financialBalanceTypeCode; private String transactionLedgerEntryDescription; private KualiDecimal transactionLedgerEntryAmount; private String transactionDebitCreditCode; private String projectCode; private String financialDocumentTypeCode; private String organizationReferenceId; private String acctSufficientFundsFinObjCd; private boolean transactionEntryOffsetIndicator; private Timestamp transactionEntryProcessedTs; private DocumentTypeEBO financialSystemDocumentTypeCode; private Chart chart; private Account account; private SubAccount subAccount; private ObjectCode financialObject; private SubObjectCode financialSubObject; private BalanceType balanceType; private ProjectCode project; public ProjectCode getProject() { return project; } public void setProject(ProjectCode project) { this.project = project; } /** * Gets the documentNumber attribute. * * @return Returns the documentNumber */ public String getDocumentNumber() { return documentNumber; } /** * Sets the documentNumber attribute. * * @param documentNumber The documentNumber to set. */ public void setDocumentNumber(String documentNumber) { this.documentNumber = documentNumber; } /** * Gets the transactionLedgerEntrySequenceNumber attribute. * * @return Returns the transactionLedgerEntrySequenceNumber */ public Integer getTransactionLedgerEntrySequenceNumber() { return transactionLedgerEntrySequenceNumber; } /** * Sets the transactionLedgerEntrySequenceNumber attribute. * * @param transactionLedgerEntrySequenceNumber The transactionLedgerEntrySequenceNumber to set. */ public void setTransactionLedgerEntrySequenceNumber(Integer transactionLedgerEntrySequenceNumber) { this.transactionLedgerEntrySequenceNumber = transactionLedgerEntrySequenceNumber; } /** * Gets the chartOfAccountsCode attribute. * * @return Returns the chartOfAccountsCode */ public String getChartOfAccountsCode() { return chartOfAccountsCode; } /** * Sets the chartOfAccountsCode attribute. * * @param chartOfAccountsCode The chartOfAccountsCode to set. */ public void setChartOfAccountsCode(String chartOfAccountsCode) { this.chartOfAccountsCode = chartOfAccountsCode; } /** * Gets the accountNumber attribute. * * @return Returns the accountNumber */ public String getAccountNumber() { return accountNumber; } /** * Sets the accountNumber attribute. * * @param accountNumber The accountNumber to set. */ public void setAccountNumber(String accountNumber) { this.accountNumber = accountNumber; } /** * Gets the subAccountNumber attribute. * * @return Returns the subAccountNumber */ public String getSubAccountNumber() { return subAccountNumber; } /** * Sets the subAccountNumber attribute. * * @param subAccountNumber The subAccountNumber to set. */ public void setSubAccountNumber(String subAccountNumber) { this.subAccountNumber = subAccountNumber; } /** * Gets the financialObjectCode attribute. * * @return Returns the financialObjectCode */ public String getFinancialObjectCode() { return financialObjectCode; } /** * Sets the financialObjectCode attribute. * * @param financialObjectCode The financialObjectCode to set. */ public void setFinancialObjectCode(String financialObjectCode) { this.financialObjectCode = financialObjectCode; } /** * Gets the financialSubObjectCode attribute. * * @return Returns the financialSubObjectCode */ public String getFinancialSubObjectCode() { return financialSubObjectCode; } /** * Sets the financialSubObjectCode attribute. * * @param financialSubObjectCode The financialSubObjectCode to set. */ public void setFinancialSubObjectCode(String financialSubObjectCode) { this.financialSubObjectCode = financialSubObjectCode; } /** * Gets the financialBalanceTypeCode attribute. * * @return Returns the financialBalanceTypeCode */ public String getFinancialBalanceTypeCode() { return financialBalanceTypeCode; } /** * Sets the financialBalanceTypeCode attribute. * * @param financialBalanceTypeCode The financialBalanceTypeCode to set. */ public void setFinancialBalanceTypeCode(String financialBalanceTypeCode) { this.financialBalanceTypeCode = financialBalanceTypeCode; } /** * Gets the transactionLedgerEntryDescription attribute. * * @return Returns the transactionLedgerEntryDescription */ public String getTransactionLedgerEntryDescription() { return transactionLedgerEntryDescription; } /** * Sets the transactionLedgerEntryDescription attribute. * * @param transactionLedgerEntryDescription The transactionLedgerEntryDescription to set. */ public void setTransactionLedgerEntryDescription(String transactionLedgerEntryDescription) { this.transactionLedgerEntryDescription = transactionLedgerEntryDescription; } /** * Gets the transactionLedgerEntryAmount attribute. * * @return Returns the transactionLedgerEntryAmount */ public KualiDecimal getTransactionLedgerEntryAmount() { return transactionLedgerEntryAmount; } /** * Sets the transactionLedgerEntryAmount attribute. * * @param transactionLedgerEntryAmount The transactionLedgerEntryAmount to set. */ public void setTransactionLedgerEntryAmount(KualiDecimal transactionLedgerEntryAmount) { this.transactionLedgerEntryAmount = transactionLedgerEntryAmount; } /** * Gets the transactionDebitCreditCode attribute. * * @return Returns the transactionDebitCreditCode */ public String getTransactionDebitCreditCode() { return transactionDebitCreditCode; } /** * Sets the transactionDebitCreditCode attribute. * * @param transactionDebitCreditCode The transactionDebitCreditCode to set. */ public void setTransactionDebitCreditCode(String transactionDebitCreditCode) { this.transactionDebitCreditCode = transactionDebitCreditCode; } /** * Gets the projectCode attribute. * * @return Returns the projectCode */ public String getProjectCode() { return projectCode; } /** * Sets the projectCode attribute. * * @param projectCode The projectCode to set. */ public void setProjectCode(String projectCode) { this.projectCode = projectCode; } public String getFinancialDocumentTypeCode() { return financialDocumentTypeCode; } public void setFinancialDocumentTypeCode(String financialDocumentTypeCode) { this.financialDocumentTypeCode = financialDocumentTypeCode; } /** * Gets the organizationReferenceId attribute. * * @return Returns the organizationReferenceId */ public String getOrganizationReferenceId() { return organizationReferenceId; } /** * Sets the organizationReferenceId attribute. * * @param organizationReferenceId The organizationReferenceId to set. */ public void setOrganizationReferenceId(String organizationReferenceId) { this.organizationReferenceId = organizationReferenceId; } /** * Gets the acctSufficientFundsFinObjCd attribute. * * @return Returns the acctSufficientFundsFinObjCd */ public String getAcctSufficientFundsFinObjCd() { return acctSufficientFundsFinObjCd; } /** * Sets the acctSufficientFundsFinObjCd attribute. * * @param acctSufficientFundsFinObjCd The acctSufficientFundsFinObjCd to set. */ public void setAcctSufficientFundsFinObjCd(String acctSufficientFundsFinObjCd) { this.acctSufficientFundsFinObjCd = acctSufficientFundsFinObjCd; } /** * Gets the transactionEntryOffsetIndicator attribute. * * @return Returns the transactionEntryOffsetIndicator */ public boolean isTransactionEntryOffsetIndicator() { return transactionEntryOffsetIndicator; } /** * Sets the transactionEntryOffsetIndicator attribute. * * @param transactionEntryOffsetIndicator The transactionEntryOffsetIndicator to set. */ public void setTransactionEntryOffsetIndicator(boolean transactionEntryOffsetIndicator) { this.transactionEntryOffsetIndicator = transactionEntryOffsetIndicator; } /** * Gets the transactionEntryProcessedTs attribute. * * @return Returns the transactionEntryProcessedTs */ public Timestamp getTransactionEntryProcessedTs() { return transactionEntryProcessedTs; } /** * Sets the transactionEntryProcessedTs attribute. * * @param transactionEntryProcessedTs The transactionEntryProcessedTs to set. */ public void setTransactionEntryProcessedTs(Timestamp transactionEntryProcessedTs) { this.transactionEntryProcessedTs = transactionEntryProcessedTs; } public String getTravelDocumentIdentifier() { return travelDocumentIdentifier; } public void setTravelDocumentIdentifier(String travelDocumentIdentifier) { this.travelDocumentIdentifier = travelDocumentIdentifier; } /** * Gets the account attribute. * * @return Returns the account. */ public Account getAccount() { return account; } /** * Sets the account attribute value. * * @param account The account to set. */ public void setAccount(Account account) { this.account = account; } /** * Gets the balanceType attribute. * * @return Returns the balanceType. */ public BalanceType getBalanceType() { return balanceType; } /** * Sets the balanceType attribute value. * * @param balanceType The balanceType to set. */ public void setBalanceType(BalanceType balanceType) { this.balanceType = balanceType; } /** * Gets the chart attribute. * * @return Returns the chart. */ public Chart getChart() { return chart; } /** * Sets the chart attribute value. * * @param chart The chart to set. */ public void setChart(Chart chart) { this.chart = chart; } /** * Gets the financialObject attribute. * * @return Returns the financialObject. */ public ObjectCode getFinancialObject() { return financialObject; } /** * Sets the financialObject attribute value. * * @param financialObject The financialObject to set. */ public void setFinancialObject(ObjectCode financialObject) { this.financialObject = financialObject; } public SubAccount getSubAccount() { return subAccount; } public void setSubAccount(SubAccount subAccount) { this.subAccount = subAccount; } public SubObjectCode getFinancialSubObject() { return financialSubObject; } public void setFinancialSubObject(SubObjectCode financialSubObject) { this.financialSubObject = financialSubObject; } public boolean isSubAccountNumberBlank() { return subAccountNumber == null || GENERAL_LEDGER_PENDING_ENTRY_CODE.getBlankSubAccountNumber().equals(subAccountNumber); } public boolean isFinancialObjectCodeBlank() { return financialObjectCode == null || GENERAL_LEDGER_PENDING_ENTRY_CODE.getBlankFinancialObjectCode().equals(financialObjectCode); } public boolean isFinancialSubObjectCodeBlank() { return financialSubObjectCode == null || GENERAL_LEDGER_PENDING_ENTRY_CODE.getBlankFinancialSubObjectCode().equals(financialSubObjectCode); } public boolean isProjectCodeBlank() { return projectCode == null || GENERAL_LEDGER_PENDING_ENTRY_CODE.getBlankProjectCode().equals(projectCode); } /** * Gets the financialSystemDocumentTypeCode attribute. * @return Returns the financialSystemDocumentTypeCode. */ public DocumentTypeEBO getFinancialSystemDocumentTypeCode() { if ( StringUtils.isBlank( financialDocumentTypeCode ) ) { financialSystemDocumentTypeCode = null; } else { if ( financialSystemDocumentTypeCode == null || !StringUtils.equals(financialDocumentTypeCode, financialSystemDocumentTypeCode.getName() ) ) { org.kuali.rice.kew.api.doctype.DocumentType temp = SpringContext.getBean(DocumentTypeService.class).getDocumentTypeByName(financialDocumentTypeCode); if ( temp != null ) { financialSystemDocumentTypeCode = DocumentType.from( temp ); } else { financialSystemDocumentTypeCode = null; } } } return financialSystemDocumentTypeCode; } }