/* * 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.fp.document; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import org.kuali.kfs.fp.businessobject.CashDrawer; import org.kuali.kfs.fp.businessobject.CashieringItemInProcess; import org.kuali.kfs.fp.businessobject.CashieringTransaction; import org.kuali.kfs.fp.businessobject.Check; import org.kuali.kfs.fp.businessobject.Deposit; import org.kuali.kfs.fp.document.service.CashManagementService; import org.kuali.kfs.fp.service.CashDrawerService; import org.kuali.kfs.sys.KFSConstants; import org.kuali.kfs.sys.KFSConstants.DepositConstants; import org.kuali.kfs.sys.KFSKeyConstants; import org.kuali.kfs.sys.KFSPropertyConstants; import org.kuali.kfs.sys.businessobject.GeneralLedgerPendingEntry; import org.kuali.kfs.sys.businessobject.GeneralLedgerPendingEntrySequenceHelper; import org.kuali.kfs.sys.businessobject.GeneralLedgerPendingEntrySourceDetail; import org.kuali.kfs.sys.context.SpringContext; import org.kuali.kfs.sys.document.GeneralLedgerPendingEntrySource; import org.kuali.kfs.sys.document.GeneralLedgerPostingDocumentBase; import org.kuali.kfs.sys.document.service.AccountingDocumentRuleHelperService; import org.kuali.kfs.sys.service.BankService; import org.kuali.kfs.sys.service.GeneralLedgerPendingEntryService; import org.kuali.kfs.sys.service.UniversityDateService; import org.kuali.rice.core.api.datetime.DateTimeService; import org.kuali.rice.core.api.util.type.KualiDecimal; import org.kuali.rice.kew.api.WorkflowDocument; import org.kuali.rice.kew.framework.postprocessor.DocumentRouteStatusChange; import org.kuali.rice.krad.exception.ValidationException; import org.kuali.rice.krad.rules.rule.event.KualiDocumentEvent; import org.kuali.rice.krad.util.KRADPropertyConstants; import org.kuali.rice.krad.util.ObjectUtils; import org.kuali.rice.location.api.campus.Campus; import org.kuali.rice.location.api.campus.CampusService; /** * This class represents the CashManagementDocument. */ public class CashManagementDocument extends GeneralLedgerPostingDocumentBase implements GeneralLedgerPendingEntrySource { protected static final long serialVersionUID = 7475843770851900297L; protected static Logger LOG = Logger.getLogger(CashManagementDocument.class); protected String campusCode; protected List<Deposit> deposits; protected List<Check> checks; protected CashieringTransaction currentTransaction; protected CashDrawer cashDrawer; protected Campus campus; private KualiDecimal financialDocumentHundredDollarAmount; private KualiDecimal financialDocumentFiftyDollarAmount; private KualiDecimal financialDocumentTwentyDollarAmount; private KualiDecimal financialDocumentTenDollarAmount; private KualiDecimal financialDocumentFiveDollarAmount; private KualiDecimal financialDocumentTwoDollarAmount; private KualiDecimal financialDocumentOneDollarAmount; private KualiDecimal financialDocumentOtherDollarAmount; private KualiDecimal financialDocumentHundredCentAmount; private KualiDecimal financialDocumentFiftyCentAmount; private KualiDecimal financialDocumentTwentyFiveCentAmount; private KualiDecimal financialDocumentTenCentAmount; private KualiDecimal financialDocumentFiveCentAmount; private KualiDecimal financialDocumentOneCentAmount; private KualiDecimal financialDocumentOtherCentAmount; /** * Default constructor. */ public CashManagementDocument() { super(); deposits = new ArrayList<Deposit>(); checks = new ArrayList<Check>(); this.resetCurrentTransaction(); } /** * @return current value of campusCode. */ public String getCampusCode() { return campusCode; } /** * Sets the campusCode attribute value. * * @param campusCode The campusCode to set. */ public void setCampusCode(String campusCode) { this.campusCode = campusCode; } /** * Derives and returns the cash drawer status for the document's workgroup */ public String getCashDrawerStatus() { return getCashDrawer().getStatusCode(); } /** * @param cashDrawerStatus */ public void setCashDrawerStatus(String cashDrawerStatus) { // ignored, because that value is dynamically retrieved from the service // required, because POJO pitches a fit if this method doesn't exist } /** * Alias for getCashDrawerStatus which avoids the automagic formatting */ public String getRawCashDrawerStatus() { return getCashDrawerStatus(); } /* Deposit-list maintenance */ /** * @return current List of Deposits */ public List<Deposit> getDeposits() { return deposits; } /** * Sets the current List of Deposits * * @param deposits */ public void setDeposits(List<Deposit> deposits) { this.deposits = deposits; } /** * Implementation creates empty Deposits as a side-effect, so that Struts' efforts to set fields of lines which haven't been * created will succeed rather than causing a NullPointerException. * * @return Deposit at the given index */ public Deposit getDeposit(int index) { extendDeposits(index + 1); return (Deposit) deposits.get(index); } /** * Removes and returns the Deposit at the given index. * * @param index * @return Deposit at the given index */ public Deposit removeDeposit(int index) { extendDeposits(index + 1); return (Deposit) deposits.remove(index); } /** * @return true if one of the Deposits contained in this document has a type of "final" */ public boolean hasFinalDeposit() { boolean hasFinal = false; for (Iterator i = deposits.iterator(); !hasFinal && i.hasNext();) { Deposit d = (Deposit) i.next(); hasFinal = StringUtils.equals(DepositConstants.DEPOSIT_TYPE_FINAL, d.getDepositTypeCode()); } return hasFinal; } /** * @return lowest unused deposit-line-number, to simplify adding and canceling deposits out-of-order */ public Integer getNextDepositLineNumber() { int maxLineNumber = -1; for (Iterator i = deposits.iterator(); i.hasNext();) { Deposit d = (Deposit) i.next(); Integer depositLineNumber = d.getFinancialDocumentDepositLineNumber(); if ((depositLineNumber != null) && (depositLineNumber.intValue() > maxLineNumber)) { maxLineNumber = depositLineNumber.intValue(); } } return new Integer(maxLineNumber + 1); } /** * Adds default AccountingLineDecorators to sourceAccountingLineDecorators until it contains at least minSize elements * * @param minSize */ protected void extendDeposits(int minSize) { while (deposits.size() < minSize) { deposits.add(new Deposit()); } } /** * @see org.kuali.rice.krad.document.DocumentBase#buildListOfDeletionAwareLists() */ @Override public List buildListOfDeletionAwareLists() { List managedLists = super.buildListOfDeletionAwareLists(); managedLists.add(getDeposits()); return managedLists; } /** * Gets the cashDrawer attribute. * * @return Returns the cashDrawer. */ public CashDrawer getCashDrawer() { return cashDrawer; } /** * Sets the cashDrawer attribute * * @param cd the cash drawer to set */ public void setCashDrawer(CashDrawer cd) { cashDrawer = cd; } /** * Gets the currentTransaction attribute. * * @return Returns the currentTransaction. */ public CashieringTransaction getCurrentTransaction() { return currentTransaction; } /** * Sets the currentTransaction attribute value. * * @param currentTransaction The currentTransaction to set. */ public void setCurrentTransaction(CashieringTransaction currentTransaction) { this.currentTransaction = currentTransaction; } /** * Gets the checks attribute. * * @return Returns the checks. */ public List<Check> getChecks() { return checks; } /** * Sets the checks attribute value. * * @param checks The checks to set. */ public void setChecks(List<Check> checks) { this.checks = checks; } /** * Add a check to the cash management document * * @param check */ public void addCheck(Check check) { this.checks.add(check); } /** * @see org.kuali.rice.krad.document.DocumentBase#doRouteStatusChange() */ @Override public void doRouteStatusChange(DocumentRouteStatusChange statusChangeEvent) { super.doRouteStatusChange(statusChangeEvent); WorkflowDocument kwd = getDocumentHeader().getWorkflowDocument(); if (LOG.isDebugEnabled()) { logState(); } if (kwd.isProcessed()) { // all approvals have been processed, finalize everything SpringContext.getBean(CashManagementService.class).finalizeCashManagementDocument(this); } else if (kwd.isCanceled() || kwd.isDisapproved()) { // document has been canceled or disapproved SpringContext.getBean(CashManagementService.class).cancelCashManagementDocument(this); } } protected void logState() { WorkflowDocument kwd = getDocumentHeader().getWorkflowDocument(); if (kwd.isInitiated()) { LOG.debug("CMD isInitiated"); } if (kwd.isProcessed()) { LOG.debug("CMD isProcessed"); } if (kwd.isCanceled()) { LOG.debug("CMD isCanceled"); } if (kwd.isDisapproved()) { LOG.debug("CMD isDisapproved"); } } /** * @see org.kuali.rice.krad.document.DocumentBase#processAfterRetrieve() */ @Override public void processAfterRetrieve() { super.processAfterRetrieve(); // grab the cash drawer if (this.getCampusCode() != null) { this.cashDrawer = SpringContext.getBean(CashDrawerService.class).getByCampusCode(this.getCampusCode()); this.resetCurrentTransaction(); } SpringContext.getBean(CashManagementService.class).populateCashDetailsForDeposit(this); } /** * This method creates a clean current transaction to be the new current transaction on this document */ public void resetCurrentTransaction() { if (this.currentTransaction != null) { this.currentTransaction.setTransactionEnded(SpringContext.getBean(DateTimeService.class).getCurrentDate()); } currentTransaction = new CashieringTransaction(campusCode, documentNumber); if (this.getCampusCode() != null) { List<CashieringItemInProcess> openItemsInProcess = SpringContext.getBean(CashManagementService.class).getOpenItemsInProcess(this); if (openItemsInProcess != null) { currentTransaction.setOpenItemsInProcess(openItemsInProcess); } currentTransaction.setNextCheckSequenceId(SpringContext.getBean(CashManagementService.class).selectNextAvailableCheckLineNumber(this.documentNumber)); } } /** * Does nothing, as there aren't any accounting lines on this doc, so no GeneralLedgerPendingEntrySourceDetail create GLPEs * @see org.kuali.kfs.document.GeneralLedgerPostingHelper#customizeExplicitGeneralLedgerPendingEntry(org.kuali.kfs.sys.businessobject.GeneralLedgerPendingEntrySourceDetail, org.kuali.kfs.sys.businessobject.GeneralLedgerPendingEntry) */ public void customizeExplicitGeneralLedgerPendingEntry(GeneralLedgerPendingEntrySourceDetail postable, GeneralLedgerPendingEntry explicitEntry) {} /** * Does nothing save return true, as this document has no GLPEs created from a source of GeneralLedgerPostables * @see org.kuali.kfs.document.GeneralLedgerPostingHelper#customizeOffsetGeneralLedgerPendingEntry(org.kuali.kfs.sys.businessobject.GeneralLedgerPendingEntrySourceDetail, org.kuali.kfs.sys.businessobject.GeneralLedgerPendingEntry, org.kuali.kfs.sys.businessobject.GeneralLedgerPendingEntry) */ public boolean customizeOffsetGeneralLedgerPendingEntry(GeneralLedgerPendingEntrySourceDetail accountingLine, GeneralLedgerPendingEntry explicitEntry, GeneralLedgerPendingEntry offsetEntry) { return true; } /** * Returns an empty list as this document has no GeneralLedgerPostables * @see org.kuali.kfs.document.GeneralLedgerPostingHelper#getGeneralLedgerPostables() */ @Override public List<GeneralLedgerPendingEntrySourceDetail> getGeneralLedgerPendingEntrySourceDetails() { return new ArrayList<GeneralLedgerPendingEntrySourceDetail>(); } /** * Always returns true, as there are no GeneralLedgerPostables to create GLPEs * @see org.kuali.kfs.document.GeneralLedgerPostingHelper#isDebit(org.kuali.kfs.sys.businessobject.GeneralLedgerPendingEntrySourceDetail) */ @Override public boolean isDebit(GeneralLedgerPendingEntrySourceDetail postable) { return true; } /** * Generates bank offset GLPEs for deposits, if enabled. * * @param financialDocument submitted accounting document * @param sequenceHelper helper class to keep track of sequence of general ledger pending entries * @see org.kuali.kfs.document.GeneralLedgerPostingHelper#processGenerateDocumentGeneralLedgerPendingEntries(org.kuali.kfs.sys.businessobject.GeneralLedgerPendingEntrySequenceHelper) */ @Override public boolean generateDocumentGeneralLedgerPendingEntries(GeneralLedgerPendingEntrySequenceHelper sequenceHelper) { boolean success = true; GeneralLedgerPendingEntryService glpeService = SpringContext.getBean(GeneralLedgerPendingEntryService.class); if (SpringContext.getBean(BankService.class).isBankSpecificationEnabled()) { Integer universityFiscalYear = getUniversityFiscalYear(); int interimDepositNumber = 1; for (Deposit deposit: getDeposits()) { deposit.refreshReferenceObject(KFSPropertyConstants.BANK); GeneralLedgerPendingEntry bankOffsetEntry = new GeneralLedgerPendingEntry(); if (!glpeService.populateBankOffsetGeneralLedgerPendingEntry(deposit.getBank(), deposit.getDepositAmount(), this, universityFiscalYear, sequenceHelper, bankOffsetEntry, KFSConstants.CASH_MANAGEMENT_DEPOSIT_ERRORS)) { success = false; LOG.warn("Skipping ledger entries for deposit " + deposit.getDepositTicketNumber() + "."); continue; // An unsuccessfully populated bank offset entry may contain invalid relations, so don't add it } bankOffsetEntry.setTransactionLedgerEntryDescription(createDescription(deposit, interimDepositNumber++)); getGeneralLedgerPendingEntries().add(bankOffsetEntry); sequenceHelper.increment(); GeneralLedgerPendingEntry offsetEntry = (GeneralLedgerPendingEntry) ObjectUtils.deepCopy(bankOffsetEntry); success &= glpeService.populateOffsetGeneralLedgerPendingEntry(universityFiscalYear, bankOffsetEntry, sequenceHelper, offsetEntry); getGeneralLedgerPendingEntries().add(offsetEntry); sequenceHelper.increment(); } } return success; } /** * Create description for deposit * * @param deposit deposit from cash management document * @param interimDepositNumber * @return the description for the given deposit's GLPE bank offset */ protected static String createDescription(Deposit deposit, int interimDepositNumber) { String descriptionKey; if (KFSConstants.DepositConstants.DEPOSIT_TYPE_FINAL.equals(deposit.getDepositTypeCode())) { descriptionKey = KFSKeyConstants.CashManagement.DESCRIPTION_GLPE_BANK_OFFSET_FINAL; } else { // assertThat(KFSConstants.DepositConstants.DEPOSIT_TYPE_INTERIM.equals(deposit.getDepositTypeCode()), deposit.getDepositTypeCode()); descriptionKey = KFSKeyConstants.CashManagement.DESCRIPTION_GLPE_BANK_OFFSET_INTERIM; } AccountingDocumentRuleHelperService accountingDocumentRuleUtil = SpringContext.getBean(AccountingDocumentRuleHelperService.class); return accountingDocumentRuleUtil.formatProperty(descriptionKey, interimDepositNumber); } /** * Gets the fiscal year for the GLPEs generated by this document. This works the same way as in TransactionalDocumentBase. The * property is down in TransactionalDocument because no FinancialDocument (currently only CashManagementDocument) allows the * user to override it. So, that logic is duplicated here. A comment in TransactionalDocumentBase says that this implementation * is a hack right now because it's intended to be set by the * <code>{@link org.kuali.kfs.coa.service.AccountingPeriodService}</code>, which suggests to me that pulling that * property up to FinancialDocument is preferable to duplicating this logic here. * * @return the fiscal year for the GLPEs generated by this document */ protected Integer getUniversityFiscalYear() { return SpringContext.getBean(UniversityDateService.class).getCurrentFiscalYear(); } /** * The Cash Management doc doesn't have accounting lines, so it doesn't create general ledger pending entries for the accounting lines it doesn't have * @see org.kuali.kfs.sys.document.GeneralLedgerPendingEntrySource#generateGeneralLedgerPendingEntries(org.kuali.kfs.sys.businessobject.GeneralLedgerPendingEntrySourceDetail, org.kuali.kfs.sys.businessobject.GeneralLedgerPendingEntrySequenceHelper) */ @Override public boolean generateGeneralLedgerPendingEntries(GeneralLedgerPendingEntrySourceDetail glpeSourceDetail, GeneralLedgerPendingEntrySequenceHelper sequenceHelper) { return true; } /** * @see org.kuali.kfs.sys.document.GeneralLedgerPendingEntrySource#getGeneralLedgerPendingEntryAmountForGeneralLedgerPostable(org.kuali.kfs.sys.businessobject.GeneralLedgerPendingEntrySourceDetail) */ @Override public KualiDecimal getGeneralLedgerPendingEntryAmountForDetail(GeneralLedgerPendingEntrySourceDetail postable) { return postable.getAmount().abs(); } /** * Helper method on document for determining whether the document can have GLPEs. * * @return true if document can have GLPEs */ public boolean getBankCashOffsetEnabled() { return SpringContext.getBean(BankService.class).isBankSpecificationEnabled(); } /** * @see org.kuali.kfs.sys.document.GeneralLedgerPostingDocumentBase#prepareForSave(org.kuali.rice.krad.rule.event.KualiDocumentEvent) */ @Override public void prepareForSave(KualiDocumentEvent event) { if (getBankCashOffsetEnabled()) { if (!SpringContext.getBean(GeneralLedgerPendingEntryService.class).generateGeneralLedgerPendingEntries(this)) { logErrors(); throw new ValidationException("general ledger GLPE generation failed"); } } super.prepareForSave(event); } /** * @return the campus associated with this cash drawer */ public Campus getCampus() { if (campusCode != null && (campus == null || !campus.getCode().equals(campusCode))) { campus = retrieveCampus(); } return campus; } protected Campus retrieveCampus() { Map<String, Object> criteria = new HashMap<String, Object>(); criteria.put(KRADPropertyConstants.CAMPUS_CODE, campusCode); return campus = SpringContext.getBean(CampusService.class).getCampus(campusCode/*RICE_20_REFACTORME criteria */); } /** * Gets the financialDocumentHundredDollarAmount attribute. * @return Returns the financialDocumentHundredDollarAmount. */ public KualiDecimal getFinancialDocumentHundredDollarAmount() { return financialDocumentHundredDollarAmount; } /** * Sets the financialDocumentHundredDollarAmount attribute value. * @param financialDocumentHundredDollarAmount The financialDocumentHundredDollarAmount to set. */ public void setFinancialDocumentHundredDollarAmount(KualiDecimal financialDocumentHundredDollarAmount) { this.financialDocumentHundredDollarAmount = financialDocumentHundredDollarAmount; } /** * Gets the financialDocumentFiftyDollarAmount attribute. * @return Returns the financialDocumentFiftyDollarAmount. */ public KualiDecimal getFinancialDocumentFiftyDollarAmount() { return financialDocumentFiftyDollarAmount; } /** * Sets the financialDocumentFiftyDollarAmount attribute value. * @param financialDocumentFiftyDollarAmount The financialDocumentFiftyDollarAmount to set. */ public void setFinancialDocumentFiftyDollarAmount(KualiDecimal financialDocumentFiftyDollarAmount) { this.financialDocumentFiftyDollarAmount = financialDocumentFiftyDollarAmount; } /** * Gets the financialDocumentTwentyDollarAmount attribute. * @return Returns the financialDocumentTwentyDollarAmount. */ public KualiDecimal getFinancialDocumentTwentyDollarAmount() { return financialDocumentTwentyDollarAmount; } /** * Sets the financialDocumentTwentyDollarAmount attribute value. * @param financialDocumentTwentyDollarAmount The financialDocumentTwentyDollarAmount to set. */ public void setFinancialDocumentTwentyDollarAmount(KualiDecimal financialDocumentTwentyDollarAmount) { this.financialDocumentTwentyDollarAmount = financialDocumentTwentyDollarAmount; } /** * Gets the financialDocumentTenDollarAmount attribute. * @return Returns the financialDocumentTenDollarAmount. */ public KualiDecimal getFinancialDocumentTenDollarAmount() { return financialDocumentTenDollarAmount; } /** * Sets the financialDocumentTenDollarAmount attribute value. * @param financialDocumentTenDollarAmount The financialDocumentTenDollarAmount to set. */ public void setFinancialDocumentTenDollarAmount(KualiDecimal financialDocumentTenDollarAmount) { this.financialDocumentTenDollarAmount = financialDocumentTenDollarAmount; } /** * Gets the financialDocumentFiveDollarAmount attribute. * @return Returns the financialDocumentFiveDollarAmount. */ public KualiDecimal getFinancialDocumentFiveDollarAmount() { return financialDocumentFiveDollarAmount; } /** * Sets the financialDocumentFiveDollarAmount attribute value. * @param financialDocumentFiveDollarAmount The financialDocumentFiveDollarAmount to set. */ public void setFinancialDocumentFiveDollarAmount(KualiDecimal financialDocumentFiveDollarAmount) { this.financialDocumentFiveDollarAmount = financialDocumentFiveDollarAmount; } /** * Gets the financialDocumentTwoDollarAmount attribute. * @return Returns the financialDocumentTwoDollarAmount. */ public KualiDecimal getFinancialDocumentTwoDollarAmount() { return financialDocumentTwoDollarAmount; } /** * Sets the financialDocumentTwoDollarAmount attribute value. * @param financialDocumentTwoDollarAmount The financialDocumentTwoDollarAmount to set. */ public void setFinancialDocumentTwoDollarAmount(KualiDecimal financialDocumentTwoDollarAmount) { this.financialDocumentTwoDollarAmount = financialDocumentTwoDollarAmount; } /** * Gets the financialDocumentOneDollarAmount attribute. * @return Returns the financialDocumentOneDollarAmount. */ public KualiDecimal getFinancialDocumentOneDollarAmount() { return financialDocumentOneDollarAmount; } /** * Sets the financialDocumentOneDollarAmount attribute value. * @param financialDocumentOneDollarAmount The financialDocumentOneDollarAmount to set. */ public void setFinancialDocumentOneDollarAmount(KualiDecimal financialDocumentOneDollarAmount) { this.financialDocumentOneDollarAmount = financialDocumentOneDollarAmount; } /** * Gets the financialDocumentOtherDollarAmount attribute. * @return Returns the financialDocumentOtherDollarAmount. */ public KualiDecimal getFinancialDocumentOtherDollarAmount() { return financialDocumentOtherDollarAmount; } /** * Sets the financialDocumentOtherDollarAmount attribute value. * @param financialDocumentOtherDollarAmount The financialDocumentOtherDollarAmount to set. */ public void setFinancialDocumentOtherDollarAmount(KualiDecimal financialDocumentOtherDollarAmount) { this.financialDocumentOtherDollarAmount = financialDocumentOtherDollarAmount; } /** * Gets the financialDocumentHundredCentAmount attribute. * @return Returns the financialDocumentHundredCentAmount. */ public KualiDecimal getFinancialDocumentHundredCentAmount() { return financialDocumentHundredCentAmount; } /** * Sets the financialDocumentHundredCentAmount attribute value. * @param financialDocumentHundredCentAmount The financialDocumentHundredCentAmount to set. */ public void setFinancialDocumentHundredCentAmount(KualiDecimal financialDocumentHundredCentAmount) { this.financialDocumentHundredCentAmount = financialDocumentHundredCentAmount; } /** * Gets the financialDocumentFiftyCentAmount attribute. * @return Returns the financialDocumentFiftyCentAmount. */ public KualiDecimal getFinancialDocumentFiftyCentAmount() { return financialDocumentFiftyCentAmount; } /** * Sets the financialDocumentFiftyCentAmount attribute value. * @param financialDocumentFiftyCentAmount The financialDocumentFiftyCentAmount to set. */ public void setFinancialDocumentFiftyCentAmount(KualiDecimal financialDocumentFiftyCentAmount) { this.financialDocumentFiftyCentAmount = financialDocumentFiftyCentAmount; } /** * Gets the financialDocumentTwentyFiveCentAmount attribute. * @return Returns the financialDocumentTwentyFiveCentAmount. */ public KualiDecimal getFinancialDocumentTwentyFiveCentAmount() { return financialDocumentTwentyFiveCentAmount; } /** * Sets the financialDocumentTwentyFiveCentAmount attribute value. * @param financialDocumentTwentyFiveCentAmount The financialDocumentTwentyFiveCentAmount to set. */ public void setFinancialDocumentTwentyFiveCentAmount(KualiDecimal financialDocumentTwentyFiveCentAmount) { this.financialDocumentTwentyFiveCentAmount = financialDocumentTwentyFiveCentAmount; } /** * Gets the financialDocumentTenCentAmount attribute. * @return Returns the financialDocumentTenCentAmount. */ public KualiDecimal getFinancialDocumentTenCentAmount() { return financialDocumentTenCentAmount; } /** * Sets the financialDocumentTenCentAmount attribute value. * @param financialDocumentTenCentAmount The financialDocumentTenCentAmount to set. */ public void setFinancialDocumentTenCentAmount(KualiDecimal financialDocumentTenCentAmount) { this.financialDocumentTenCentAmount = financialDocumentTenCentAmount; } /** * Gets the financialDocumentFiveCentAmount attribute. * @return Returns the financialDocumentFiveCentAmount. */ public KualiDecimal getFinancialDocumentFiveCentAmount() { return financialDocumentFiveCentAmount; } /** * Sets the financialDocumentFiveCentAmount attribute value. * @param financialDocumentFiveCentAmount The financialDocumentFiveCentAmount to set. */ public void setFinancialDocumentFiveCentAmount(KualiDecimal financialDocumentFiveCentAmount) { this.financialDocumentFiveCentAmount = financialDocumentFiveCentAmount; } /** * Gets the financialDocumentOneCentAmount attribute. * @return Returns the financialDocumentOneCentAmount. */ public KualiDecimal getFinancialDocumentOneCentAmount() { return financialDocumentOneCentAmount; } /** * Sets the financialDocumentOneCentAmount attribute value. * @param financialDocumentOneCentAmount The financialDocumentOneCentAmount to set. */ public void setFinancialDocumentOneCentAmount(KualiDecimal financialDocumentOneCentAmount) { this.financialDocumentOneCentAmount = financialDocumentOneCentAmount; } /** * Gets the financialDocumentOtherCentAmount attribute. * @return Returns the financialDocumentOtherCentAmount. */ public KualiDecimal getFinancialDocumentOtherCentAmount() { return financialDocumentOtherCentAmount; } /** * Sets the financialDocumentOtherCentAmount attribute value. * @param financialDocumentOtherCentAmount The financialDocumentOtherCentAmount to set. */ public void setFinancialDocumentOtherCentAmount(KualiDecimal financialDocumentOtherCentAmount) { this.financialDocumentOtherCentAmount = financialDocumentOtherCentAmount; } }