/*
* 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.businessobject;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import org.apache.commons.lang.StringUtils;
import org.kuali.kfs.sys.KFSConstants;
import org.kuali.kfs.sys.context.SpringContext;
import org.kuali.rice.core.api.util.type.KualiDecimal;
import org.kuali.rice.krad.bo.PersistableBusinessObjectBase;
import org.kuali.rice.krad.service.KualiModuleService;
import org.kuali.rice.krad.service.ModuleService;
import org.kuali.rice.location.api.LocationConstants;
import org.kuali.rice.location.framework.campus.CampusEbo;
/**
* This class represents a cash drawer used in cash management document. It contains amounts for
* different types of denominations for currency and coin.
*/
public class CashDrawer extends PersistableBusinessObjectBase {
private String campusCode;
private String statusCode;
private KualiDecimal cashDrawerTotalAmount;
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;
private KualiDecimal financialDocumentMiscellaneousAdvanceAmount;
private String referenceFinancialDocumentNumber;
private CampusEbo campus;
/**
* Default constructor.
*/
public CashDrawer() {
}
/**
* This method returns true if the cash drawer is open.
*
* @return boolean
*/
public boolean isOpen() {
return StringUtils.equals(KFSConstants.CashDrawerConstants.STATUS_OPEN, statusCode);
}
/**
* This method returns true if the cash drawer is closed.
*
* @return boolean
*/
public boolean isClosed() {
return (statusCode == null || StringUtils.equals(KFSConstants.CashDrawerConstants.STATUS_CLOSED, statusCode) || referenceFinancialDocumentNumber == null);
}
/**
* This method returns true if the cash drawer is locked.
*
* @return boolean
*/
public boolean isLocked() {
return StringUtils.equals(KFSConstants.CashDrawerConstants.STATUS_LOCKED, statusCode);
}
/**
* Gets the campusCode attribute.
*
* @return Returns the campusCode
*/
public String getCampusCode() {
return campusCode;
}
/**
* Sets the campusCode attribute.
*
* @param campusCode The campusCode to set.
*/
public void setCampusCode(String campusCode) {
this.campusCode = campusCode;
}
/**
* Gets the statusCode attribute.
*
* @return Returns the statusCode
*/
public String getStatusCode() {
return statusCode;
}
/**
* Sets the statusCode attribute.
*
* @param financialDocumentOpenDepositCode The statusCode to set.
*/
public void setStatusCode(String financialDocumentOpenDepositCode) {
this.statusCode = financialDocumentOpenDepositCode;
}
/**
* Gets the cashDrawerTotalAmount attribute.
*
* @return Returns the cashDrawerTotalAmount
*/
public KualiDecimal getCashDrawerTotalAmount() {
return cashDrawerTotalAmount;
}
/**
* Sets the cashDrawerTotalAmount attribute.
*
* @param cashDrawerTotalAmount The cashDrawerTotalAmount to set.
*/
public void setCashDrawerTotalAmount(KualiDecimal cashDrawerTotalAmount) {
this.cashDrawerTotalAmount = cashDrawerTotalAmount;
}
/**
* Gets the financialDocumentHundredDollarAmount attribute.
*
* @return Returns the financialDocumentHundredDollarAmount
*/
public KualiDecimal getFinancialDocumentHundredDollarAmount() {
return financialDocumentHundredDollarAmount;
}
/**
* Sets the financialDocumentHundredDollarAmount attribute.
*
* @param financialDocumentHundredDollarAmount The financialDocumentHundredDollarAmount to set.
*/
public void setFinancialDocumentHundredDollarAmount(KualiDecimal financialDocumentHundredDollarAmount) {
this.financialDocumentHundredDollarAmount = financialDocumentHundredDollarAmount;
}
/**
* Returns the actual count of hundred dollar bills
*
* @return the number of hundred dollar bills present in the drawer
*/
public Integer getHundredDollarCount() {
return (financialDocumentHundredDollarAmount != null) ? new Integer(financialDocumentHundredDollarAmount.divide(KFSConstants.CurrencyTypeAmounts.HUNDRED_DOLLAR_AMOUNT).intValue()) : new Integer(0);
}
/**
* This sets the count of hundred dollar bills present in the drawer
*
* @param count the number of hundred dollar bills present in the drawer
*/
public void setHundredDollarCount(Integer count) {
if (count != null) {
this.financialDocumentHundredDollarAmount = new KualiDecimal(count.intValue()).multiply(KFSConstants.CurrencyTypeAmounts.HUNDRED_DOLLAR_AMOUNT);
}
}
/**
* Gets the financialDocumentFiftyDollarAmount attribute.
*
* @return Returns the financialDocumentFiftyDollarAmount
*/
public KualiDecimal getFinancialDocumentFiftyDollarAmount() {
return financialDocumentFiftyDollarAmount;
}
/**
* Sets the financialDocumentFiftyDollarAmount attribute.
*
* @param financialDocumentFiftyDollarAmount The financialDocumentFiftyDollarAmount to set.
*/
public void setFinancialDocumentFiftyDollarAmount(KualiDecimal financialDocumentFiftyDollarAmount) {
this.financialDocumentFiftyDollarAmount = financialDocumentFiftyDollarAmount;
}
/**
* Returns the actual count of fifty dollar bills
*
* @return the number of fifty dollar bills present in the drawer
*/
public Integer getFiftyDollarCount() {
return (financialDocumentFiftyDollarAmount != null) ? new Integer(financialDocumentFiftyDollarAmount.divide(KFSConstants.CurrencyTypeAmounts.FIFTY_DOLLAR_AMOUNT).intValue()) : new Integer(0);
}
/**
* This sets the count of hundred dollar bills present in the drawer
*
* @param count the number of hundred dollar bills present in the drawer
*/
public void setFiftyDollarCount(Integer count) {
if (count != null) {
this.financialDocumentFiftyDollarAmount = new KualiDecimal(count.intValue()).multiply(KFSConstants.CurrencyTypeAmounts.FIFTY_DOLLAR_AMOUNT);
}
}
/**
* Gets the financialDocumentTwentyDollarAmount attribute.
*
* @return Returns the financialDocumentTwentyDollarAmount
*/
public KualiDecimal getFinancialDocumentTwentyDollarAmount() {
return financialDocumentTwentyDollarAmount;
}
/**
* Sets the financialDocumentTwentyDollarAmount attribute.
*
* @param financialDocumentTwentyDollarAmount The financialDocumentTwentyDollarAmount to set.
*/
public void setFinancialDocumentTwentyDollarAmount(KualiDecimal financialDocumentTwentyDollarAmount) {
this.financialDocumentTwentyDollarAmount = financialDocumentTwentyDollarAmount;
}
/**
* Returns the actual count of twenty dollar bills
*
* @return the number of twenty dollar bills present in the drawer
*/
public Integer getTwentyDollarCount() {
return (financialDocumentTwentyDollarAmount != null) ? new Integer(financialDocumentTwentyDollarAmount.divide(KFSConstants.CurrencyTypeAmounts.TWENTY_DOLLAR_AMOUNT).intValue()) : new Integer(0);
}
/**
* This sets the count of twenty dollar bills present in the drawer
*
* @param count the number of twenty dollar bills present in the drawer
*/
public void setTwentyDollarCount(Integer count) {
if (count != null) {
this.financialDocumentTwentyDollarAmount = new KualiDecimal(count.intValue()).multiply(KFSConstants.CurrencyTypeAmounts.TWENTY_DOLLAR_AMOUNT);
}
}
/**
* Gets the financialDocumentTenDollarAmount attribute.
*
* @return Returns the financialDocumentTenDollarAmount
*/
public KualiDecimal getFinancialDocumentTenDollarAmount() {
return financialDocumentTenDollarAmount;
}
/**
* Sets the financialDocumentTenDollarAmount attribute.
*
* @param financialDocumentTenDollarAmount The financialDocumentTenDollarAmount to set.
*/
public void setFinancialDocumentTenDollarAmount(KualiDecimal financialDocumentTenDollarAmount) {
this.financialDocumentTenDollarAmount = financialDocumentTenDollarAmount;
}
/**
* Returns the actual count of ten dollar bills
*
* @return the number of ten dollar bills present in the drawer
*/
public Integer getTenDollarCount() {
return (financialDocumentTenDollarAmount != null) ? new Integer(financialDocumentTenDollarAmount.divide(KFSConstants.CurrencyTypeAmounts.TEN_DOLLAR_AMOUNT).intValue()) : new Integer(0);
}
/**
* This sets the count of ten dollar bills present in the drawer
*
* @param count the number of ten dollar bills present in the drawer
*/
public void setTenDollarCount(Integer count) {
if (count != null) {
this.financialDocumentTenDollarAmount = new KualiDecimal(count.intValue()).multiply(KFSConstants.CurrencyTypeAmounts.TEN_DOLLAR_AMOUNT);
}
}
/**
* Gets the financialDocumentFiveDollarAmount attribute.
*
* @return Returns the financialDocumentFiveDollarAmount
*/
public KualiDecimal getFinancialDocumentFiveDollarAmount() {
return financialDocumentFiveDollarAmount;
}
/**
* Sets the financialDocumentFiveDollarAmount attribute.
*
* @param financialDocumentFiveDollarAmount The financialDocumentFiveDollarAmount to set.
*/
public void setFinancialDocumentFiveDollarAmount(KualiDecimal financialDocumentFiveDollarAmount) {
this.financialDocumentFiveDollarAmount = financialDocumentFiveDollarAmount;
}
/**
* Returns the actual count of five dollar bills
*
* @return the number of five dollar bills present in the drawer
*/
public Integer getFiveDollarCount() {
return (financialDocumentFiveDollarAmount != null) ? new Integer(financialDocumentFiveDollarAmount.divide(KFSConstants.CurrencyTypeAmounts.FIVE_DOLLAR_AMOUNT).intValue()) : new Integer(0);
}
/**
* This sets the count of five dollar bills present in the drawer
*
* @param count the number of five dollar bills present in the drawer
*/
public void setFiveDollarCount(Integer count) {
if (count != null) {
this.financialDocumentFiveDollarAmount = new KualiDecimal(count.intValue()).multiply(KFSConstants.CurrencyTypeAmounts.FIVE_DOLLAR_AMOUNT);
}
}
/**
* Gets the financialDocumentTwoDollarAmount attribute.
*
* @return Returns the financialDocumentTwoDollarAmount
*/
public KualiDecimal getFinancialDocumentTwoDollarAmount() {
return financialDocumentTwoDollarAmount;
}
/**
* Sets the financialDocumentTwoDollarAmount attribute.
*
* @param financialDocumentTwoDollarAmount The financialDocumentTwoDollarAmount to set.
*/
public void setFinancialDocumentTwoDollarAmount(KualiDecimal financialDocumentTwoDollarAmount) {
this.financialDocumentTwoDollarAmount = financialDocumentTwoDollarAmount;
}
/**
* Returns the actual count of two dollar bills
*
* @return the number of two dollar bills present in the drawer
*/
public Integer getTwoDollarCount() {
return (financialDocumentTwoDollarAmount != null) ? new Integer(financialDocumentTwoDollarAmount.divide(KFSConstants.CurrencyTypeAmounts.TWO_DOLLAR_AMOUNT).intValue()) : new Integer(0);
}
/**
* This sets the count of two dollar bills present in the drawer
*
* @param count the number of two dollar bills present in the drawer
*/
public void setTwoDollarCount(Integer count) {
if (count != null) {
this.financialDocumentTwoDollarAmount = new KualiDecimal(count.intValue()).multiply(KFSConstants.CurrencyTypeAmounts.TWO_DOLLAR_AMOUNT);
}
}
/**
* Gets the financialDocumentOneDollarAmount attribute.
*
* @return Returns the financialDocumentOneDollarAmount
*/
public KualiDecimal getFinancialDocumentOneDollarAmount() {
return financialDocumentOneDollarAmount;
}
/**
* Sets the financialDocumentOneDollarAmount attribute.
*
* @param financialDocumentOneDollarAmount The financialDocumentOneDollarAmount to set.
*/
public void setFinancialDocumentOneDollarAmount(KualiDecimal financialDocumentOneDollarAmount) {
this.financialDocumentOneDollarAmount = financialDocumentOneDollarAmount;
}
/**
* Returns the actual count of one dollar bills
*
* @return the number of one dollar bills present in the drawer
*/
public Integer getOneDollarCount() {
return (financialDocumentOneDollarAmount != null) ? new Integer(financialDocumentOneDollarAmount.divide(KFSConstants.CurrencyTypeAmounts.ONE_DOLLAR_AMOUNT).intValue()) : new Integer(0);
}
/**
* This sets the count of one dollar bills present in the drawer
*
* @param count the number of one dollar bills present in the drawer
*/
public void setOneDollarCount(Integer count) {
if (count != null) {
this.financialDocumentOneDollarAmount = new KualiDecimal(count.intValue()).multiply(KFSConstants.CurrencyTypeAmounts.ONE_DOLLAR_AMOUNT);
}
}
/**
* Gets the financialDocumentOtherDollarAmount attribute.
*
* @return Returns the financialDocumentOtherDollarAmount
*/
public KualiDecimal getFinancialDocumentOtherDollarAmount() {
return financialDocumentOtherDollarAmount;
}
/**
* Sets the financialDocumentOtherDollarAmount attribute.
*
* @param financialDocumentOtherDollarAmount The financialDocumentOtherDollarAmount to set.
*/
public void setFinancialDocumentOtherDollarAmount(KualiDecimal financialDocumentOtherDollarAmount) {
this.financialDocumentOtherDollarAmount = financialDocumentOtherDollarAmount;
}
/**
* Gets the financialDocumentFiftyCentAmount attribute.
*
* @return Returns the financialDocumentFiftyCentAmount
*/
public KualiDecimal getFinancialDocumentFiftyCentAmount() {
return financialDocumentFiftyCentAmount;
}
/**
* Sets the financialDocumentFiftyCentAmount attribute.
*
* @param financialDocumentFiftyCentAmount The financialDocumentFiftyCentAmount to set.
*/
public void setFinancialDocumentFiftyCentAmount(KualiDecimal financialDocumentFiftyCentAmount) {
this.financialDocumentFiftyCentAmount = financialDocumentFiftyCentAmount;
}
/**
* Returns the number of half-cent coins in the drawer
*
* @return the count of half cent coins in the drawer
*/
public Integer getFiftyCentCount() {
return (financialDocumentFiftyCentAmount != null) ? new Integer(financialDocumentFiftyCentAmount.divide(KFSConstants.CoinTypeAmounts.FIFTY_CENT_AMOUNT).intValue()) : new Integer(0);
}
/**
* Sets the number of fifty cent coins in the drawer. This is useful if, you know, you're in da club, with, say a bottle full of
* "bub"
*
* @param count the number of fifty cent coins present in the drawer
*/
public void setFiftyCentCount(Integer count) {
if (count != null) {
financialDocumentFiftyCentAmount = new KualiDecimal(count.intValue()).multiply(KFSConstants.CoinTypeAmounts.FIFTY_CENT_AMOUNT);
}
}
/**
* Gets the financialDocumentTwentyFiveCentAmount attribute.
*
* @return Returns the financialDocumentTwentyFiveCentAmount
*/
public KualiDecimal getFinancialDocumentTwentyFiveCentAmount() {
return financialDocumentTwentyFiveCentAmount;
}
/**
* Sets the financialDocumentTwentyFiveCentAmount attribute.
*
* @param financialDocumentTwentyFiveCentAmount The financialDocumentTwentyFiveCentAmount to set.
*/
public void setFinancialDocumentTwentyFiveCentAmount(KualiDecimal financialDocumentTwentyFiveCentAmount) {
this.financialDocumentTwentyFiveCentAmount = financialDocumentTwentyFiveCentAmount;
}
/**
* Returns the number of quarters in the drawer
*
* @return the count of quarters in the drawer
*/
public Integer getTwentyFiveCentCount() {
return (financialDocumentTwentyFiveCentAmount != null) ? new Integer(financialDocumentTwentyFiveCentAmount.divide(KFSConstants.CoinTypeAmounts.TWENTY_FIVE_CENT_AMOUNT).intValue()) : new Integer(0);
}
/**
* Sets the number of quarters in the drawer
*
* @param count the number of quarters present in the drawer
*/
public void setTwentyFiveCentCount(Integer count) {
if (count != null) {
financialDocumentTwentyFiveCentAmount = new KualiDecimal(count.intValue()).multiply(KFSConstants.CoinTypeAmounts.TWENTY_FIVE_CENT_AMOUNT);
}
}
/**
* Gets the financialDocumentTenCentAmount attribute.
*
* @return Returns the financialDocumentTenCentAmount
*/
public KualiDecimal getFinancialDocumentTenCentAmount() {
return financialDocumentTenCentAmount;
}
/**
* Sets the financialDocumentTenCentAmount attribute.
*
* @param financialDocumentTenCentAmount The financialDocumentTenCentAmount to set.
*/
public void setFinancialDocumentTenCentAmount(KualiDecimal financialDocumentTenCentAmount) {
this.financialDocumentTenCentAmount = financialDocumentTenCentAmount;
}
/**
* Returns the number of dimes in the drawer
*
* @return the count of dimes in the drawer
*/
public Integer getTenCentCount() {
return (financialDocumentTenCentAmount != null) ? new Integer(financialDocumentTenCentAmount.divide(KFSConstants.CoinTypeAmounts.TEN_CENT_AMOUNT).intValue()) : new Integer(0);
}
/**
* Sets the number of dimes in the drawer
*
* @param count the number of dimes present in the drawer
*/
public void setTenCentCount(Integer count) {
if (count != null) {
financialDocumentTenCentAmount = new KualiDecimal(count.intValue()).multiply(KFSConstants.CoinTypeAmounts.TEN_CENT_AMOUNT);
}
}
/**
* Gets the financialDocumentFiveCentAmount attribute.
*
* @return Returns the financialDocumentFiveCentAmount
*/
public KualiDecimal getFinancialDocumentFiveCentAmount() {
return financialDocumentFiveCentAmount;
}
/**
* Sets the financialDocumentFiveCentAmount attribute.
*
* @param financialDocumentFiveCentAmount The financialDocumentFiveCentAmount to set.
*/
public void setFinancialDocumentFiveCentAmount(KualiDecimal financialDocumentFiveCentAmount) {
this.financialDocumentFiveCentAmount = financialDocumentFiveCentAmount;
}
/**
* Returns the number of nickels in the drawer
*
* @return the count of nickels in the drawer
*/
public Integer getFiveCentCount() {
return (financialDocumentFiveCentAmount != null) ? new Integer(financialDocumentFiveCentAmount.divide(KFSConstants.CoinTypeAmounts.FIVE_CENT_AMOUNT).intValue()) : new Integer(0);
}
/**
* Sets the number of nickels in the drawer
*
* @param count the number of nickels present in the drawer
*/
public void setFiveCentCount(Integer count) {
if (count != null) {
financialDocumentFiveCentAmount = new KualiDecimal(count.intValue()).multiply(KFSConstants.CoinTypeAmounts.FIVE_CENT_AMOUNT);
}
}
/**
* Gets the financialDocumentOneCentAmount attribute.
*
* @return Returns the financialDocumentOneCentAmount
*/
public KualiDecimal getFinancialDocumentOneCentAmount() {
return financialDocumentOneCentAmount;
}
/**
* Sets the financialDocumentOneCentAmount attribute.
*
* @param financialDocumentOneCentAmount The financialDocumentOneCentAmount to set.
*/
public void setFinancialDocumentOneCentAmount(KualiDecimal financialDocumentOneCentAmount) {
this.financialDocumentOneCentAmount = financialDocumentOneCentAmount;
}
/**
* Returns the number of pennies in the drawer
*
* @return the count of pennies in the drawer
*/
public Integer getOneCentCount() {
return (financialDocumentOneCentAmount != null) ? new Integer(financialDocumentOneCentAmount.divide(KFSConstants.CoinTypeAmounts.ONE_CENT_AMOUNT).intValue()) : new Integer(0);
}
/**
* Sets the number of pennies in the drawer
*
* @param count the number of pennies present in the drawer
*/
public void setOneCentCount(Integer count) {
if (count != null) {
financialDocumentOneCentAmount = new KualiDecimal(count.intValue()).multiply(KFSConstants.CoinTypeAmounts.ONE_CENT_AMOUNT);
}
}
/**
* Gets the financialDocumentOtherCentAmount attribute.
*
* @return Returns the financialDocumentOtherCentAmount
*/
public KualiDecimal getFinancialDocumentOtherCentAmount() {
return financialDocumentOtherCentAmount;
}
/**
* Sets the financialDocumentOtherCentAmount attribute.
*
* @param financialDocumentOtherCentAmount The financialDocumentOtherCentAmount to set.
*/
public void setFinancialDocumentOtherCentAmount(KualiDecimal financialDocumentOtherCentAmount) {
this.financialDocumentOtherCentAmount = financialDocumentOtherCentAmount;
}
/**
* Gets the financialDocumentHundredCentAmount attribute.
*
* @return Returns the financialDocumentHundredCentAmount
*/
public KualiDecimal getFinancialDocumentHundredCentAmount() {
return financialDocumentHundredCentAmount;
}
/**
* Sets the financialDocumentHundredCentAmount attribute.
*
* @param financialDocumentHundredCentAmount The financialDocumentHundredCentAmount to set.
*/
public void setFinancialDocumentHundredCentAmount(KualiDecimal financialDocumentHundredCentAmount) {
this.financialDocumentHundredCentAmount = financialDocumentHundredCentAmount;
}
/**
* Returns the number of dollar coins--Sacajawea, Susan B. Anthony, or otherwise--in the drawer
*
* @return the count of dollar coins in the drawer
*/
public Integer getHundredCentCount() {
return (financialDocumentHundredCentAmount != null) ? new Integer(financialDocumentHundredCentAmount.divide(KFSConstants.CoinTypeAmounts.HUNDRED_CENT_AMOUNT).intValue()) : new Integer(0);
}
/**
* Sets the number of hundred cent coins in the drawer
*
* @param count the number of hundred cent coins present in the drawer
*/
public void setHundredCentCount(Integer count) {
if (count != null) {
financialDocumentHundredCentAmount = new KualiDecimal(count.intValue()).multiply(KFSConstants.CoinTypeAmounts.HUNDRED_CENT_AMOUNT);
}
}
/**
* Gets the financialDocumentMiscellaneousAdvanceAmount attribute.
*
* @return Returns the financialDocumentMiscellaneousAdvanceAmount
*/
public KualiDecimal getFinancialDocumentMiscellaneousAdvanceAmount() {
return financialDocumentMiscellaneousAdvanceAmount;
}
/**
* Sets the financialDocumentMiscellaneousAdvanceAmount attribute.
*
* @param financialDocumentMiscellaneousAdvanceAmount The financialDocumentMiscellaneousAdvanceAmount to set.
*/
public void setFinancialDocumentMiscellaneousAdvanceAmount(KualiDecimal financialDocumentMiscellaneousAdvanceAmount) {
this.financialDocumentMiscellaneousAdvanceAmount = financialDocumentMiscellaneousAdvanceAmount;
}
/**
* Gets the referenceFinancialDocumentNumber attribute.
*
* @return Returns the referenceFinancialDocumentNumber
*/
public String getReferenceFinancialDocumentNumber() {
return referenceFinancialDocumentNumber;
}
/**
* Sets the referenceFinancialDocumentNumber attribute.
*
* @param referenceFinancialDocumentNumber The referenceFinancialDocumentNumber to set.
*/
public void setReferenceFinancialDocumentNumber(String referenceFinancialDocumentNumber) {
this.referenceFinancialDocumentNumber = referenceFinancialDocumentNumber;
}
/**
* This method calculates the total amount of currency in the cash drawer
*
* @return the total amount of currency
*/
public KualiDecimal getCurrencyTotalAmount() {
KualiDecimal result = KualiDecimal.ZERO;
if (this.financialDocumentHundredDollarAmount != null) {
result = result.add(this.financialDocumentHundredDollarAmount);
}
if (this.financialDocumentFiftyDollarAmount != null) {
result = result.add(this.financialDocumentFiftyDollarAmount);
}
if (this.financialDocumentTwentyDollarAmount != null) {
result = result.add(this.financialDocumentTwentyDollarAmount);
}
if (this.financialDocumentTenDollarAmount != null) {
result = result.add(this.financialDocumentTenDollarAmount);
}
if (this.financialDocumentFiveDollarAmount != null) {
result = result.add(this.financialDocumentFiveDollarAmount);
}
if (this.financialDocumentTwoDollarAmount != null) {
result = result.add(this.financialDocumentTwoDollarAmount);
}
if (this.financialDocumentOneDollarAmount != null) {
result = result.add(this.financialDocumentOneDollarAmount);
}
if (this.financialDocumentOtherDollarAmount != null) {
result = result.add(this.financialDocumentOtherDollarAmount);
}
return result;
}
/**
* This method calculates the total amount of coin in the cash drawer
*
* @return the total amount of coin
*/
public KualiDecimal getCoinTotalAmount() {
KualiDecimal result = KualiDecimal.ZERO;
if (this.financialDocumentHundredCentAmount != null) {
result = result.add(this.financialDocumentHundredCentAmount);
}
if (this.financialDocumentFiftyCentAmount != null) {
result = result.add(this.financialDocumentFiftyCentAmount);
}
if (this.financialDocumentTwentyFiveCentAmount != null) {
result = result.add(this.financialDocumentTwentyFiveCentAmount);
}
if (this.financialDocumentTenCentAmount != null) {
result = result.add(this.financialDocumentTenCentAmount);
}
if (this.financialDocumentFiveCentAmount != null) {
result = result.add(this.financialDocumentFiveCentAmount);
}
if (this.financialDocumentOneCentAmount != null) {
result = result.add(this.financialDocumentOneCentAmount);
}
if (this.financialDocumentOtherCentAmount != null) {
result = result.add(this.financialDocumentOtherCentAmount);
}
return result;
}
/**
* This calculates the total amount of money currently in the cash drawer
*
* @return the amount currently in the cash drawer
*/
public KualiDecimal getTotalAmount() {
return this.getCurrencyTotalAmount().add(this.getCoinTotalAmount());
}
/**
* This method adds currency to the cash drawer
*
* @param detail the record indicating how much of each denomination of currency to add
*/
public void addCurrency(CurrencyDetail detail) {
if (detail.getFinancialDocumentHundredDollarAmount() != null) {
if (financialDocumentHundredDollarAmount == null) {
financialDocumentHundredDollarAmount = new KualiDecimal(detail.getFinancialDocumentHundredDollarAmount().bigDecimalValue());
}
else {
financialDocumentHundredDollarAmount = financialDocumentHundredDollarAmount.add(detail.getFinancialDocumentHundredDollarAmount());
}
}
if (detail.getFinancialDocumentFiftyDollarAmount() != null) {
if (financialDocumentFiftyDollarAmount == null) {
financialDocumentFiftyDollarAmount = new KualiDecimal(detail.getFinancialDocumentFiftyDollarAmount().bigDecimalValue());
}
else {
financialDocumentFiftyDollarAmount = financialDocumentFiftyDollarAmount.add(detail.getFinancialDocumentFiftyDollarAmount());
}
}
if (detail.getFinancialDocumentTwentyDollarAmount() != null) {
if (financialDocumentTwentyDollarAmount == null) {
financialDocumentTwentyDollarAmount = new KualiDecimal(detail.getFinancialDocumentTwentyDollarAmount().bigDecimalValue());
}
else {
financialDocumentTwentyDollarAmount = financialDocumentTwentyDollarAmount.add(detail.getFinancialDocumentTwentyDollarAmount());
}
}
if (detail.getFinancialDocumentTenDollarAmount() != null) {
if (financialDocumentTenDollarAmount == null) {
financialDocumentTenDollarAmount = new KualiDecimal(detail.getFinancialDocumentTenDollarAmount().bigDecimalValue());
}
else {
financialDocumentTenDollarAmount = financialDocumentTenDollarAmount.add(detail.getFinancialDocumentTenDollarAmount());
}
}
if (detail.getFinancialDocumentFiveDollarAmount() != null) {
if (financialDocumentFiveDollarAmount == null) {
financialDocumentFiveDollarAmount = new KualiDecimal(detail.getFinancialDocumentFiveDollarAmount().bigDecimalValue());
}
else {
financialDocumentFiveDollarAmount = financialDocumentFiveDollarAmount.add(detail.getFinancialDocumentFiveDollarAmount());
}
}
if (detail.getFinancialDocumentTwoDollarAmount() != null) {
if (financialDocumentTwoDollarAmount == null) {
financialDocumentTwoDollarAmount = new KualiDecimal(detail.getFinancialDocumentTwoDollarAmount().bigDecimalValue());
}
else {
financialDocumentTwoDollarAmount = financialDocumentTwoDollarAmount.add(detail.getFinancialDocumentTwoDollarAmount());
}
}
if (detail.getFinancialDocumentOneDollarAmount() != null) {
if (financialDocumentOneDollarAmount == null) {
financialDocumentOneDollarAmount = new KualiDecimal(detail.getFinancialDocumentOneDollarAmount().bigDecimalValue());
}
else {
financialDocumentOneDollarAmount = financialDocumentOneDollarAmount.add(detail.getFinancialDocumentOneDollarAmount());
}
}
if (detail.getFinancialDocumentOtherDollarAmount() != null) {
if (financialDocumentOtherDollarAmount == null) {
financialDocumentOtherDollarAmount = new KualiDecimal(detail.getFinancialDocumentOtherDollarAmount().bigDecimalValue());
}
else {
financialDocumentOtherDollarAmount = financialDocumentOtherDollarAmount.add(detail.getFinancialDocumentOtherDollarAmount());
}
}
}
/**
* This method puts coin into the cash drawer
*
* @param detail the record indicating how much coin of each denomiation to add
*/
public void addCoin(CoinDetail detail) {
if (detail.getFinancialDocumentHundredCentAmount() != null) {
if (getFinancialDocumentHundredCentAmount() == null) {
setFinancialDocumentHundredCentAmount(new KualiDecimal(detail.getFinancialDocumentHundredCentAmount().bigDecimalValue()));
}
else {
setFinancialDocumentHundredCentAmount(getFinancialDocumentHundredCentAmount().add(detail.getFinancialDocumentHundredCentAmount()));
}
}
if (detail.getFinancialDocumentFiftyCentAmount() != null) {
if (getFinancialDocumentFiftyCentAmount() == null) {
setFinancialDocumentFiftyCentAmount(new KualiDecimal(detail.getFinancialDocumentFiftyCentAmount().bigDecimalValue()));
}
else {
setFinancialDocumentFiftyCentAmount(getFinancialDocumentFiftyCentAmount().add(detail.getFinancialDocumentFiftyCentAmount()));
}
}
if (detail.getFinancialDocumentTwentyFiveCentAmount() != null) {
if (getFinancialDocumentTwentyFiveCentAmount() == null) {
setFinancialDocumentTwentyFiveCentAmount(new KualiDecimal(detail.getFinancialDocumentTwentyFiveCentAmount().bigDecimalValue()));
}
else {
setFinancialDocumentTwentyFiveCentAmount(getFinancialDocumentTwentyFiveCentAmount().add(detail.getFinancialDocumentTwentyFiveCentAmount()));
}
}
if (detail.getFinancialDocumentTenCentAmount() != null) {
if (getFinancialDocumentTenCentAmount() == null) {
setFinancialDocumentTenCentAmount(new KualiDecimal(detail.getFinancialDocumentTenCentAmount().bigDecimalValue()));
}
else {
setFinancialDocumentTenCentAmount(getFinancialDocumentTenCentAmount().add(detail.getFinancialDocumentTenCentAmount()));
}
}
if (detail.getFinancialDocumentFiveCentAmount() != null) {
if (getFinancialDocumentFiveCentAmount() == null) {
setFinancialDocumentFiveCentAmount(new KualiDecimal(detail.getFinancialDocumentFiveCentAmount().bigDecimalValue()));
}
else {
setFinancialDocumentFiveCentAmount(getFinancialDocumentFiveCentAmount().add(detail.getFinancialDocumentFiveCentAmount()));
}
}
if (detail.getFinancialDocumentOneCentAmount() != null) {
if (getFinancialDocumentOneCentAmount() == null) {
setFinancialDocumentOneCentAmount(new KualiDecimal(detail.getFinancialDocumentOneCentAmount().bigDecimalValue()));
}
else {
setFinancialDocumentOneCentAmount(getFinancialDocumentOneCentAmount().add(detail.getFinancialDocumentOneCentAmount()));
}
}
if (detail.getFinancialDocumentOtherCentAmount() != null) {
if (getFinancialDocumentOtherCentAmount() == null) {
setFinancialDocumentOtherCentAmount(new KualiDecimal(detail.getFinancialDocumentOtherCentAmount().bigDecimalValue()));
}
else {
setFinancialDocumentOtherCentAmount(getFinancialDocumentOtherCentAmount().add(detail.getFinancialDocumentOtherCentAmount()));
}
}
}
/**
* This method removes currency amounts from the cash drawer
*
* @param detail the record indicating how much currency of each denomination to remove
*/
public void removeCurrency(CurrencyDetail detail) {
if (detail.getFinancialDocumentHundredDollarAmount() != null) {
if (this.getFinancialDocumentHundredDollarAmount() == null || detail.getFinancialDocumentHundredDollarAmount().isGreaterThan(this.getFinancialDocumentHundredDollarAmount())) {
throw new IllegalArgumentException("The requested amount of hundred dollar bills exceeds the amount in the cash drawer");
}
else {
setFinancialDocumentHundredDollarAmount(getFinancialDocumentHundredDollarAmount().subtract(detail.getFinancialDocumentHundredDollarAmount()));
}
}
if (detail.getFinancialDocumentFiftyDollarAmount() != null) {
if (this.getFinancialDocumentFiftyDollarAmount() == null || detail.getFinancialDocumentFiftyDollarAmount().isGreaterThan(this.getFinancialDocumentFiftyDollarAmount())) {
throw new IllegalArgumentException("The requested amount of fifty dollar bills exceeds the amount in the cash drawer");
}
else {
setFinancialDocumentFiftyDollarAmount(getFinancialDocumentFiftyDollarAmount().subtract(detail.getFinancialDocumentFiftyDollarAmount()));
}
}
if (detail.getFinancialDocumentTwentyDollarAmount() != null) {
if (this.getFinancialDocumentTwentyDollarAmount() == null || detail.getFinancialDocumentTwentyDollarAmount().isGreaterThan(this.getFinancialDocumentTwentyDollarAmount())) {
throw new IllegalArgumentException("The requested amount of twenty dollar bills exceeds the amount in the cash drawer");
}
else {
setFinancialDocumentTwentyDollarAmount(getFinancialDocumentTwentyDollarAmount().subtract(detail.getFinancialDocumentTwentyDollarAmount()));
}
}
if (detail.getFinancialDocumentTenDollarAmount() != null) {
if (this.getFinancialDocumentTenDollarAmount() == null || detail.getFinancialDocumentTenDollarAmount().isGreaterThan(this.getFinancialDocumentTenDollarAmount())) {
throw new IllegalArgumentException("The requested amount of ten dollar bills exceeds the amount in the cash drawer");
}
else {
setFinancialDocumentTenDollarAmount(getFinancialDocumentTenDollarAmount().subtract(detail.getFinancialDocumentTenDollarAmount()));
}
}
if (detail.getFinancialDocumentFiveDollarAmount() != null) {
if (this.getFinancialDocumentFiveDollarAmount() == null || detail.getFinancialDocumentFiveDollarAmount().isGreaterThan(this.getFinancialDocumentFiveDollarAmount())) {
throw new IllegalArgumentException("The requested amount of five dollar bills exceeds the amount in the cash drawer");
}
else {
setFinancialDocumentFiveDollarAmount(getFinancialDocumentFiveDollarAmount().subtract(detail.getFinancialDocumentFiveDollarAmount()));
}
}
if (detail.getFinancialDocumentTwoDollarAmount() != null) {
if (this.getFinancialDocumentTwoDollarAmount() == null || detail.getFinancialDocumentTwoDollarAmount().isGreaterThan(this.getFinancialDocumentTwoDollarAmount())) {
throw new IllegalArgumentException("The requested amount of two dollar bills exceeds the amount in the cash drawer");
}
else {
setFinancialDocumentTwoDollarAmount(getFinancialDocumentTwoDollarAmount().subtract(detail.getFinancialDocumentTwoDollarAmount()));
}
}
if (detail.getFinancialDocumentOneDollarAmount() != null) {
if (this.getFinancialDocumentOneDollarAmount() == null || detail.getFinancialDocumentOneDollarAmount().isGreaterThan(this.getFinancialDocumentOneDollarAmount())) {
throw new IllegalArgumentException("The requested amount of one dollar bills exceeds the amount in the cash drawer");
}
else {
setFinancialDocumentOneDollarAmount(getFinancialDocumentOneDollarAmount().subtract(detail.getFinancialDocumentOneDollarAmount()));
}
}
if (detail.getFinancialDocumentOtherDollarAmount() != null) {
if (this.getFinancialDocumentOtherDollarAmount() == null || detail.getFinancialDocumentOtherDollarAmount().isGreaterThan(this.getFinancialDocumentOtherDollarAmount())) {
throw new IllegalArgumentException("The requested other dollar amount exceeds the amount in the cash drawer");
}
else {
setFinancialDocumentOtherDollarAmount(getFinancialDocumentOtherDollarAmount().subtract(detail.getFinancialDocumentOtherDollarAmount()));
}
}
}
/**
* This method takes coin out of the cash drawer
*
* @param detail the record indicating how much coin of each denomination to remove
*/
public void removeCoin(CoinDetail detail) {
if (detail.getFinancialDocumentHundredCentAmount() != null) {
if (this.getFinancialDocumentHundredCentAmount() == null || detail.getFinancialDocumentHundredCentAmount().isGreaterThan(this.getFinancialDocumentHundredCentAmount())) {
throw new IllegalArgumentException("The requested amount of hundred cent pieces exceeds the amount in the cash drawer");
}
else {
setFinancialDocumentHundredCentAmount(getFinancialDocumentHundredCentAmount().subtract(detail.getFinancialDocumentHundredCentAmount()));
}
}
if (detail.getFinancialDocumentFiftyCentAmount() != null) {
if (this.getFinancialDocumentFiftyCentAmount() == null || detail.getFinancialDocumentFiftyCentAmount().isGreaterThan(this.getFinancialDocumentFiftyCentAmount())) {
throw new IllegalArgumentException("The requested amount of fifty cent pieces exceeds the amount in the cash drawer");
}
else {
setFinancialDocumentFiftyCentAmount(getFinancialDocumentFiftyCentAmount().subtract(detail.getFinancialDocumentFiftyCentAmount()));
}
}
if (detail.getFinancialDocumentTwentyFiveCentAmount() != null) {
if (this.getFinancialDocumentTwentyFiveCentAmount() == null || detail.getFinancialDocumentTwentyFiveCentAmount().isGreaterThan(this.getFinancialDocumentTwentyFiveCentAmount())) {
throw new IllegalArgumentException("The requested amount of twenty five cent pieces exceeds the amount in the cash drawer");
}
else {
setFinancialDocumentTwentyFiveCentAmount(getFinancialDocumentTwentyFiveCentAmount().subtract(detail.getFinancialDocumentTwentyFiveCentAmount()));
}
}
if (detail.getFinancialDocumentTenCentAmount() != null) {
if (this.getFinancialDocumentTenCentAmount() == null || detail.getFinancialDocumentTenCentAmount().isGreaterThan(this.getFinancialDocumentTenCentAmount())) {
throw new IllegalArgumentException("The requested amount of ten cent pieces exceeds the amount in the cash drawer");
}
else {
setFinancialDocumentTenCentAmount(getFinancialDocumentTenCentAmount().subtract(detail.getFinancialDocumentTenCentAmount()));
}
}
if (detail.getFinancialDocumentFiveCentAmount() != null) {
if (this.getFinancialDocumentFiveCentAmount() == null || detail.getFinancialDocumentFiveCentAmount().isGreaterThan(this.getFinancialDocumentFiveCentAmount())) {
throw new IllegalArgumentException("The requested amount of five cent pieces exceeds the amount in the cash drawer");
}
else {
setFinancialDocumentFiveCentAmount(getFinancialDocumentFiveCentAmount().subtract(detail.getFinancialDocumentFiveCentAmount()));
}
}
if (detail.getFinancialDocumentOneCentAmount() != null) {
if (this.getFinancialDocumentOneCentAmount() == null || detail.getFinancialDocumentOneCentAmount().isGreaterThan(this.getFinancialDocumentOneCentAmount())) {
throw new IllegalArgumentException("The requested amount of one cent pieces exceeds the amount in the cash drawer");
}
else {
setFinancialDocumentOneCentAmount(getFinancialDocumentOneCentAmount().subtract(detail.getFinancialDocumentOneCentAmount()));
}
}
if (detail.getFinancialDocumentOtherCentAmount() != null) {
if (this.getFinancialDocumentOtherCentAmount() == null || detail.getFinancialDocumentOtherCentAmount().isGreaterThan(this.getFinancialDocumentOtherCentAmount())) {
throw new IllegalArgumentException("The requested other cent amount exceeds the amount in the cash drawer");
}
else {
setFinancialDocumentOtherCentAmount(getFinancialDocumentOtherCentAmount().subtract(detail.getFinancialDocumentOtherCentAmount()));
}
}
}
/**
* Gets the campus attribute.
*
* @return Returns the campus.
*/
public CampusEbo getCampus() {
if ( StringUtils.isBlank(campusCode) ) {
campus = null;
} else {
if ( campus == null || !StringUtils.equals( campus.getCode(),campusCode) ) {
ModuleService moduleService = SpringContext.getBean(KualiModuleService.class).getResponsibleModuleService(CampusEbo.class);
if ( moduleService != null ) {
Map<String,Object> keys = new HashMap<String, Object>(1);
keys.put(LocationConstants.PrimaryKeyConstants.CODE, campusCode);
campus = moduleService.getExternalizableBusinessObject(CampusEbo.class, keys);
} else {
throw new RuntimeException( "CONFIGURATION ERROR: No responsible module found for EBO class. Unable to proceed." );
}
}
}
return campus;
}
/**
* @see org.kuali.rice.krad.bo.BusinessObjectBase#toStringMapper()
*/
protected LinkedHashMap toStringMapper_RICE20_REFACTORME() {
@SuppressWarnings("rawtypes")
LinkedHashMap m = new LinkedHashMap();
m.put("campusCode", this.campusCode);
return m;
}
}