001 /*
002 * Copyright 2011 The Kuali Foundation.
003 *
004 * Licensed under the Educational Community License, Version 2.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/ecl2.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 * Created on Aug 17, 2004
018 *
019 */
020 package org.kuali.kfs.pdp.businessobject;
021
022 import java.util.LinkedHashMap;
023
024 import org.apache.commons.lang.builder.EqualsBuilder;
025 import org.apache.commons.lang.builder.HashCodeBuilder;
026 import org.apache.commons.lang.builder.ToStringBuilder;
027 import org.kuali.kfs.pdp.PdpConstants;
028 import org.kuali.kfs.pdp.PdpPropertyConstants;
029 import org.kuali.kfs.pdp.service.PaymentGroupService;
030 import org.kuali.kfs.sys.context.SpringContext;
031 import org.kuali.rice.kns.bo.TransientBusinessObjectBase;
032 import org.kuali.rice.kns.util.KualiDecimal;
033 import org.kuali.rice.kns.util.KualiInteger;
034
035
036 /**
037 *
038 */
039 public class FormatResult extends TransientBusinessObjectBase implements Comparable {
040 private Integer procId;
041 private boolean pymtAttachment;
042 private boolean pymtSpecialHandling;
043 private boolean processImmediate;
044 private CustomerProfile cust;
045 private int payments;
046 private KualiDecimal amount;
047 private DisbursementType disbursementType;
048 private int beginDisbursementNbr;
049 private int endDisbursementNbr;
050 private KualiInteger sortGroup;
051
052
053 public FormatResult() {
054 super();
055 amount = KualiDecimal.ZERO;
056 payments = 0;
057 }
058
059 public FormatResult(Integer p, CustomerProfile c) {
060 procId = p;
061 cust = c;
062 amount = KualiDecimal.ZERO;
063 payments = 0;
064 }
065
066 public KualiInteger getSortGroupId() {
067
068 return sortGroup;
069 }
070
071 public KualiInteger getSortGroupOverride() {
072 return sortGroup;
073 }
074
075 public void setSortGroupOverride(KualiInteger sortGroup) {
076 this.sortGroup = sortGroup;
077 }
078
079 public boolean isProcessImmediate() {
080 return processImmediate;
081 }
082
083 public void setProcessImmediate(boolean processImmediate) {
084 this.processImmediate = processImmediate;
085 }
086
087 public boolean isPymtAttachment() {
088 return pymtAttachment;
089 }
090
091 public void setPymtAttachment(boolean pymtAttachment) {
092 this.pymtAttachment = pymtAttachment;
093 }
094
095 public boolean isPymtSpecialHandling() {
096 return pymtSpecialHandling;
097 }
098
099 public void setPymtSpecialHandling(boolean pymtSpecialHandling) {
100 this.pymtSpecialHandling = pymtSpecialHandling;
101 }
102
103 public int getBeginDisbursementNbr() {
104 return beginDisbursementNbr;
105 }
106
107 public void setBeginDisbursementNbr(int beginDisbursementNbr) {
108 this.beginDisbursementNbr = beginDisbursementNbr;
109 }
110
111 public DisbursementType getDisbursementType() {
112 return disbursementType;
113 }
114
115 public void setDisbursementType(DisbursementType disbursementType) {
116 this.disbursementType = disbursementType;
117 }
118
119 public int getEndDisbursementNbr() {
120 return endDisbursementNbr;
121 }
122
123 public void setEndDisbursementNbr(int endDisbursementNbr) {
124 this.endDisbursementNbr = endDisbursementNbr;
125 }
126
127 public KualiDecimal getAmount() {
128 return amount;
129 }
130
131 public void setAmount(KualiDecimal amount) {
132 this.amount = amount;
133 }
134
135 public CustomerProfile getCust() {
136 return cust;
137 }
138
139 public void setCust(CustomerProfile cust) {
140 this.cust = cust;
141 }
142
143 public int getPayments() {
144 return payments;
145 }
146
147 public void setPayments(int payments) {
148 this.payments = payments;
149 }
150
151 public Integer getProcId() {
152 return procId;
153 }
154
155 public void setProcId(Integer procId) {
156 this.procId = procId;
157 }
158
159 public String getSortString() {
160 StringBuffer sb = new StringBuffer();
161 if (getDisbursementType() != null) {
162 if (PdpConstants.DisbursementTypeCodes.CHECK.equals(getDisbursementType().getCode())) {
163 sb.append("B");
164 }
165 else {
166 sb.append("A");
167 }
168 }
169 else {
170 sb.append("A");
171 }
172 sb.append(getSortGroupId());
173 sb.append(cust.getChartCode());
174 sb.append(cust.getUnitCode());
175 sb.append(cust.getSubUnitCode());
176 return sb.toString();
177 }
178
179 public int compareTo(Object a) {
180 FormatResult f = (FormatResult) a;
181
182 return this.getSortString().compareTo(f.getSortString());
183 }
184
185 public boolean equals(Object obj) {
186 if (!(obj instanceof FormatResult)) {
187 return false;
188 }
189 FormatResult o = (FormatResult) obj;
190 return new EqualsBuilder().append(procId, o.getProcId()).append(getSortGroupId(), o.getSortGroupId()).append(cust, o.getCust()).isEquals();
191 }
192
193 public int hashCode() {
194 return new HashCodeBuilder(7, 3).append(procId).append(getSortGroupId()).append(cust).toHashCode();
195 }
196
197 public String toString() {
198 return new ToStringBuilder(this).append("procId", procId).append("sortGroupId", getSortGroupId()).append("cust", cust).toString();
199 }
200
201 @Override
202 protected LinkedHashMap toStringMapper() {
203 LinkedHashMap m = new LinkedHashMap();
204
205 m.put(PdpPropertyConstants.FormatResult.PROC_ID, this.procId);
206
207 return m;
208 }
209
210 public String getSortGroupName(){
211 PaymentGroupService paymentGroupService = SpringContext.getBean(PaymentGroupService.class);
212 String sortGroupName = paymentGroupService.getSortGroupName(sortGroup.intValue());
213 return sortGroupName;
214 }
215
216 public void setSortGroupName(){
217
218 }
219 }