/* * The Kuali Financial System, a comprehensive financial management system for higher education. * * Copyright 2005-2014 The Kuali Foundation * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.kuali.kfs.coa.businessobject; import java.sql.Date; import java.util.Calendar; import java.util.LinkedHashMap; import org.kuali.kfs.sys.KFSConstants; import org.kuali.kfs.sys.businessobject.FiscalYearBasedBusinessObject; import org.kuali.kfs.sys.businessobject.SystemOptions; import org.kuali.kfs.sys.context.SpringContext; import org.kuali.rice.core.api.datetime.DateTimeService; import org.kuali.rice.core.api.mo.common.active.MutableInactivatable; import org.kuali.rice.krad.bo.PersistableBusinessObjectBase; /** * */ public class AccountingPeriod extends PersistableBusinessObjectBase implements MutableInactivatable, FiscalYearBasedBusinessObject { public static final String CACHE_NAME = KFSConstants.APPLICATION_NAMESPACE_CODE + "/" + "AccountingPeriod"; private Integer universityFiscalYear; private String universityFiscalPeriodCode; private String universityFiscalPeriodName; private boolean active; private boolean budgetRolloverIndicator; private Date universityFiscalPeriodEndDate; private SystemOptions options; /** * Default constructor. */ public AccountingPeriod() { } /** * Gets the universityFiscalYear attribute. * * @return Returns the universityFiscalYear */ public Integer getUniversityFiscalYear() { return universityFiscalYear; } /** * Sets the universityFiscalYear attribute. * * @param universityFiscalYear The universityFiscalYear to set. */ public void setUniversityFiscalYear(Integer universityFiscalYear) { this.universityFiscalYear = universityFiscalYear; } /** * Gets the universityFiscalPeriodCode attribute. * * @return Returns the universityFiscalPeriodCode */ public String getUniversityFiscalPeriodCode() { return universityFiscalPeriodCode; } /** * Sets the universityFiscalPeriodCode attribute. * * @param universityFiscalPeriodCode The universityFiscalPeriodCode to set. */ public void setUniversityFiscalPeriodCode(String universityFiscalPeriodCode) { this.universityFiscalPeriodCode = universityFiscalPeriodCode; } /** * Gets the universityFiscalPeriodName attribute. * * @return Returns the universityFiscalPeriodName */ public String getUniversityFiscalPeriodName() { return universityFiscalPeriodName; } /** * Sets the universityFiscalPeriodName attribute. * * @param universityFiscalPeriodName The universityFiscalPeriodName to set. */ public void setUniversityFiscalPeriodName(String universityFiscalPeriodName) { this.universityFiscalPeriodName = universityFiscalPeriodName; } /** * 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 budgetRolloverIndicator attribute. * * @return Returns the budgetRolloverIndicator */ public boolean isBudgetRolloverIndicator() { return budgetRolloverIndicator; } /** * Sets the budgetRolloverIndicator attribute. * * @param budgetRolloverIndicator The budgetRolloverIndicator to set. */ public void setBudgetRolloverIndicator(boolean budgetRolloverIndicator) { this.budgetRolloverIndicator = budgetRolloverIndicator; } /** * Gets the universityFiscalPeriodEndDate attribute. * * @return Returns the universityFiscalPeriodEndDate */ public Date getUniversityFiscalPeriodEndDate() { return universityFiscalPeriodEndDate; } /** * Sets the universityFiscalPeriodEndDate attribute. * * @param universityFiscalPeriodEndDate The universityFiscalPeriodEndDate to set. */ public void setUniversityFiscalPeriodEndDate(Date universityFiscalPeriodEndDate) { this.universityFiscalPeriodEndDate = universityFiscalPeriodEndDate; } /** * Determine if the current account period is open * * @return true if the accounting period is open; otherwise, false */ public boolean isOpen() { return this.isActive(); } /** * @return Returns the options. */ public SystemOptions getOptions() { return options; } /** * @param options The options to set. * @deprecated */ public void setOptions(SystemOptions options) { this.options = options; } /** * This method returns the month that this period represents * * @return the actual month (1 - 12) that this period represents */ public int getMonth() { DateTimeService dateTimeService = SpringContext.getBean(DateTimeService.class); Calendar cal = dateTimeService.getCalendar(new Date(this.universityFiscalPeriodEndDate.getTime())); return cal.get(Calendar.MONTH) + 1; } /** * @see org.kuali.rice.krad.bo.BusinessObjectBase#toStringMapper() */ protected LinkedHashMap toStringMapper_RICE20_REFACTORME() { LinkedHashMap m = new LinkedHashMap(); m.put("universityFiscalYear", "" + this.universityFiscalYear); m.put("universityFiscalPeriodCode", this.universityFiscalPeriodCode); return m; } /** * generates a hash code for this accounting period, based on the primary keys of the AccountingPeriod BusinesObject: university * fiscal year and university fiscal period code * * @see java.lang.Object#hashCode() */ @Override public int hashCode() { final int PRIME = 31; int result = 1; result = PRIME * result + ((universityFiscalPeriodCode == null) ? 0 : universityFiscalPeriodCode.hashCode()); result = PRIME * result + ((universityFiscalYear == null) ? 0 : universityFiscalYear.hashCode()); return result; } /** * determines if two accounting periods are equal, based on the primary keys of the AccountingPeriod BusinesObject: university * fiscal year and university fiscal period code * * @see java.lang.Object#equals(java.lang.Object) */ @Override public boolean equals(Object obj) { // this method was added so that // org.kuali.kfs.fp.document.web.struts.AuxiliaryVoucherForm.populateAccountingPeriodListForRendering works properly if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; final AccountingPeriod other = (AccountingPeriod) obj; if (universityFiscalPeriodCode == null) { if (other.universityFiscalPeriodCode != null) return false; } else if (!universityFiscalPeriodCode.equals(other.universityFiscalPeriodCode)) return false; if (universityFiscalYear == null) { if (other.universityFiscalYear != null) return false; } else if (!universityFiscalYear.equals(other.universityFiscalYear)) return false; return true; } }