001: /*
002: * Copyright 2007 The Kuali Foundation.
003: *
004: * Licensed under the Educational Community License, Version 1.0 (the "License");
005: * you may not use this file except in compliance with the License.
006: * You may obtain a copy of the License at
007: *
008: * http://www.opensource.org/licenses/ecl1.php
009: *
010: * Unless required by applicable law or agreed to in writing, software
011: * distributed under the License is distributed on an "AS IS" BASIS,
012: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013: * See the License for the specific language governing permissions and
014: * limitations under the License.
015: */
016:
017: package org.kuali.module.cg.bo;
018:
019: import java.sql.Date;
020: import java.util.LinkedHashMap;
021:
022: import org.kuali.core.bo.user.UniversalUser;
023: import org.kuali.core.document.TransactionalDocumentBase;
024: import org.kuali.core.service.UniversalUserService;
025: import org.kuali.kfs.KFSConstants;
026: import org.kuali.kfs.context.SpringContext;
027:
028: /**
029: * Instances of this class are used to signal to the CloseBatchStep that a close should occur on a particular day.
030: */
031: public class Close extends TransactionalDocumentBase {
032:
033: private Date closeOnOrBeforeDate;
034: private Date userInitiatedCloseDate;
035: private Long awardClosedCount;
036: private Long proposalClosedCount;
037: private String personUserIdentifier;
038:
039: private UniversalUser personUser;
040:
041: /**
042: * Default constructor.
043: */
044: public Close() {
045: }
046:
047: /**
048: * @return whether or not this document has been approved.
049: */
050: public boolean isApproved() {
051: return KFSConstants.DocumentStatusCodes.APPROVED
052: .equals(getDocumentHeader()
053: .getFinancialDocumentStatusCode());
054: }
055:
056: /**
057: * Gets the closeOnOrBeforeDate attribute.
058: *
059: * @return Returns the closeOnOrBeforeDate
060: */
061: public Date getCloseOnOrBeforeDate() {
062: return closeOnOrBeforeDate;
063: }
064:
065: /**
066: * Sets the closeOnOrBeforeDate attribute.
067: *
068: * @param closeOnOrBeforeDate The closeOnOrBeforeDate to set.
069: */
070: public void setCloseOnOrBeforeDate(Date closeOnOrBeforeDate) {
071: this .closeOnOrBeforeDate = closeOnOrBeforeDate;
072: }
073:
074: /**
075: * Gets the awardClosedCount attribute.
076: *
077: * @return Returns the awardClosedCount
078: */
079: public Long getAwardClosedCount() {
080: return awardClosedCount;
081: }
082:
083: /**
084: * Sets the awardClosedCount attribute.
085: *
086: * @param awardClosedCount The awardClosedCount to set.
087: */
088: public void setAwardClosedCount(Long awardClosedCount) {
089: this .awardClosedCount = awardClosedCount;
090: }
091:
092: /**
093: * Gets the proposalClosedCount attribute.
094: *
095: * @return Returns the proposalClosedCount
096: */
097: public Long getProposalClosedCount() {
098: return proposalClosedCount;
099: }
100:
101: /**
102: * Sets the proposalClosedCount attribute.
103: *
104: * @param proposalClosedCount The proposalClosedCount to set.
105: */
106: public void setProposalClosedCount(Long proposalClosedCount) {
107: this .proposalClosedCount = proposalClosedCount;
108: }
109:
110: /**
111: * Gets the personUserIdentifier attribute.
112: *
113: * @return Returns the personUserIdentifier
114: */
115: public String getPersonUserIdentifier() {
116: return personUserIdentifier;
117: }
118:
119: /**
120: * Sets the personUserIdentifier attribute.
121: *
122: * @param personUserIdentifier The personUserIdentifier to set.
123: */
124: public void setPersonUserIdentifier(String personUserIdentifier) {
125: this .personUserIdentifier = personUserIdentifier;
126: }
127:
128: /**
129: * Gets the userInitiatedCloseDate attribute.
130: *
131: * @return Returns the userInitiatedCloseDate
132: */
133: public Date getUserInitiatedCloseDate() {
134: return userInitiatedCloseDate;
135: }
136:
137: /**
138: * Sets the userInitiatedCloseDate attribute.
139: *
140: * @param userInitiatedCloseDate The userInitiatedCloseDate to set.
141: */
142: public void setUserInitiatedCloseDate(Date userInitiatedCloseDate) {
143: this .userInitiatedCloseDate = userInitiatedCloseDate;
144: }
145:
146: /**
147: * @return the {@link UniversalUser} for the personUser
148: */
149: public UniversalUser getPersonUser() {
150: personUser = SpringContext.getBean(UniversalUserService.class)
151: .updateUniversalUserIfNecessary(personUserIdentifier,
152: personUser);
153: return personUser;
154: }
155:
156: /**
157: * @param personUser The personUser to set.
158: * @deprecated
159: */
160: public void setPersonUser(UniversalUser personUser) {
161: this .personUser = personUser;
162: }
163:
164: /**
165: * @see org.kuali.core.bo.BusinessObjectBase#toStringMapper()
166: */
167: protected LinkedHashMap toStringMapper() {
168: LinkedHashMap m = new LinkedHashMap();
169: if (this .documentNumber != null) {
170: m.put("documentNumber", this.documentNumber.toString());
171: }
172: return m;
173: }
174: }
|