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 Feb 28, 2006
018 *
019 */
020 package org.kuali.kfs.module.purap.businessobject;
021
022 import java.sql.Timestamp;
023 import java.util.Date;
024 import java.util.LinkedHashMap;
025
026 import org.kuali.kfs.sys.context.SpringContext;
027 import org.kuali.rice.kns.bo.PersistableBusinessObjectBase;
028 import org.kuali.rice.kns.service.DateTimeService;
029 import org.kuali.rice.kns.util.KualiDecimal;
030
031 public class ElectronicInvoiceLoadSummary extends PersistableBusinessObjectBase {
032
033 private Integer invoiceLoadSummaryIdentifier;
034 private String vendorDunsNumber; // this is string constant if DUNS not found
035 private Integer vendorHeaderGeneratedIdentifier;
036 private Integer vendorDetailAssignedIdentifier;
037 private String vendorName;
038 private Integer invoiceLoadSuccessCount = new Integer(0);
039 private KualiDecimal invoiceLoadSuccessAmount = new KualiDecimal(0.00);
040 private Integer invoiceLoadFailCount = new Integer(0);
041 private KualiDecimal invoiceLoadFailAmount = new KualiDecimal(0.00);
042 private Boolean isEmpty = Boolean.TRUE;
043 private Timestamp fileProcessTimestamp;
044
045 public ElectronicInvoiceLoadSummary() {
046 super();
047 }
048
049 public ElectronicInvoiceLoadSummary(String vendorDunsNumber) {
050 super();
051 this.vendorDunsNumber = vendorDunsNumber;
052 }
053
054 public void addSuccessfulInvoiceOrder(KualiDecimal amount,
055 ElectronicInvoice eInvoice) {
056 isEmpty = Boolean.FALSE;
057 invoiceLoadSuccessCount = new Integer(invoiceLoadSuccessCount.intValue() + 1);
058 fileProcessTimestamp = SpringContext.getBean(DateTimeService.class).getCurrentTimestamp();
059
060 if (amount != null) {
061 invoiceLoadSuccessAmount = invoiceLoadSuccessAmount.add(amount);
062 }
063
064 setupVendorInformation(eInvoice);
065 }
066
067 public void addFailedInvoiceOrder(KualiDecimal amount,
068 ElectronicInvoice eInvoice) {
069 isEmpty = Boolean.FALSE;
070 invoiceLoadFailCount = new Integer(invoiceLoadFailCount.intValue() + 1);
071 fileProcessTimestamp = SpringContext.getBean(DateTimeService.class).getCurrentTimestamp();
072
073 if (amount != null) {
074 invoiceLoadFailAmount = invoiceLoadFailAmount.add(amount);
075 }
076
077 setupVendorInformation(eInvoice);
078 }
079
080 public void addFailedInvoiceOrder(ElectronicInvoice ei) {
081 this.addFailedInvoiceOrder(new KualiDecimal(0),ei);
082 }
083
084 public void addFailedInvoiceOrder() {
085 this.addFailedInvoiceOrder(new KualiDecimal(0),null);
086 }
087
088 private void setupVendorInformation(ElectronicInvoice eInvoice) {
089
090 if (eInvoice != null &&
091 getVendorHeaderGeneratedIdentifier() == null &&
092 getVendorDetailAssignedIdentifier() == null) {
093
094 setVendorHeaderGeneratedIdentifier(eInvoice.getVendorHeaderID());
095 setVendorDetailAssignedIdentifier(eInvoice.getVendorDetailID());
096 setVendorName(eInvoice.getVendorName());
097
098 }
099 }
100
101 public String getVendorDescriptor() {
102 String kualiDescriptor = null;
103 if ( (this.vendorName != null) && (this.vendorHeaderGeneratedIdentifier != null) && (this.vendorDetailAssignedIdentifier != null) ) {
104 kualiDescriptor = " (Kuali Match: " + this.vendorName + " ~ " + vendorHeaderGeneratedIdentifier + "-" + vendorDetailAssignedIdentifier + ")";
105 } else if ( (this.vendorHeaderGeneratedIdentifier != null) && (this.vendorDetailAssignedIdentifier != null) ) {
106 kualiDescriptor = " (Kuali Match: " + vendorHeaderGeneratedIdentifier + "-" + vendorDetailAssignedIdentifier + ")";
107 } else if (this.vendorName != null) {
108 kualiDescriptor = " (Kuali Match: " + this.vendorName + ")";
109 }
110 return this.getVendorDunsNumber() + ((kualiDescriptor != null) ? kualiDescriptor : "");
111 }
112
113 /**
114 * @return the vendorDetailAssignedIdentifier
115 */
116 public Integer getVendorDetailAssignedIdentifier() {
117 return vendorDetailAssignedIdentifier;
118 }
119
120 /**
121 * @param vendorDetailAssignedIdentifier the vendorDetailAssignedIdentifier to set
122 */
123 public void setVendorDetailAssignedIdentifier(Integer kualiVendorDetailId) {
124 this.vendorDetailAssignedIdentifier = kualiVendorDetailId;
125 }
126
127 /**
128 * @return the vendorHeaderGeneratedIdentifier
129 */
130 public Integer getVendorHeaderGeneratedIdentifier() {
131 return vendorHeaderGeneratedIdentifier;
132 }
133
134 /**
135 * @param vendorHeaderGeneratedIdentifier the vendorHeaderGeneratedIdentifier to set
136 */
137 public void setVendorHeaderGeneratedIdentifier(Integer kualiVendorHeaderId) {
138 this.vendorHeaderGeneratedIdentifier = kualiVendorHeaderId;
139 }
140
141 /**
142 * @return the vendorName
143 */
144 public String getVendorName() {
145 return vendorName;
146 }
147
148 /**
149 * @param vendorName the vendorName to set
150 */
151 public void setVendorName(String kualiVendorName) {
152 this.vendorName = kualiVendorName;
153 }
154
155 /**
156 * @return the invoiceLoadFailAmount
157 */
158 public KualiDecimal getInvoiceLoadFailAmount() {
159 return invoiceLoadFailAmount;
160 }
161
162 /**
163 * @param invoiceLoadFailAmount the invoiceLoadFailAmount to set
164 */
165 public void setInvoiceLoadFailAmount(KualiDecimal failAmount) {
166 this.invoiceLoadFailAmount = failAmount;
167 }
168
169 /**
170 * @return the invoiceLoadFailCount
171 */
172 public Integer getInvoiceLoadFailCount() {
173 return invoiceLoadFailCount;
174 }
175
176 /**
177 * @param invoiceLoadFailCount the invoiceLoadFailCount to set
178 */
179 public void setInvoiceLoadFailCount(Integer failCount) {
180 this.invoiceLoadFailCount = failCount;
181 }
182
183 /**
184 * @return the invoiceLoadSummaryIdentifier
185 */
186 public Integer getInvoiceLoadSummaryIdentifier() {
187 return invoiceLoadSummaryIdentifier;
188 }
189
190 /**
191 * @param invoiceLoadSummaryIdentifier the invoiceLoadSummaryIdentifier to set
192 */
193 public void setInvoiceLoadSummaryIdentifier(Integer id) {
194 this.invoiceLoadSummaryIdentifier = id;
195 }
196
197 /**
198 * @return the isEmpty
199 */
200 public Boolean isEmpty() {
201 return isEmpty;
202 }
203
204 /**
205 * @param isEmpty the isEmpty to set
206 */
207 public void setIsEmpty(Boolean isEmpty) {
208 this.isEmpty = isEmpty;
209 }
210
211 /**
212 * @return the invoiceLoadSuccessAmount
213 */
214 public KualiDecimal getInvoiceLoadSuccessAmount() {
215 return invoiceLoadSuccessAmount;
216 }
217
218 /**
219 * @param invoiceLoadSuccessAmount the invoiceLoadSuccessAmount to set
220 */
221 public void setInvoiceLoadSuccessAmount(KualiDecimal successAmount) {
222 this.invoiceLoadSuccessAmount = successAmount;
223 }
224
225 /**
226 * @return the invoiceLoadSuccessCount
227 */
228 public Integer getInvoiceLoadSuccessCount() {
229 return invoiceLoadSuccessCount;
230 }
231
232 /**
233 * @param invoiceLoadSuccessCount the invoiceLoadSuccessCount to set
234 */
235 public void setInvoiceLoadSuccessCount(Integer successCount) {
236 this.invoiceLoadSuccessCount = successCount;
237 }
238
239 /**
240 * @return the vendorDunsNumber
241 */
242 public String getVendorDunsNumber() {
243 return vendorDunsNumber;
244 }
245
246 /**
247 * @param vendorDunsNumber the vendorDunsNumber to set
248 */
249 public void setVendorDunsNumber(String vendorDunsNumber) {
250 this.vendorDunsNumber = vendorDunsNumber;
251 }
252
253 public Timestamp getFileProcessTimestamp() {
254 return fileProcessTimestamp;
255 }
256
257 public void setFileProcessTimestamp(Timestamp fileProcessTimestamp) {
258 this.fileProcessTimestamp = fileProcessTimestamp;
259 }
260
261 /**
262 * @see org.kuali.rice.kns.bo.BusinessObjectBase#toStringMapper()
263 */
264 protected LinkedHashMap toStringMapper() {
265 LinkedHashMap m = new LinkedHashMap();
266 m.put("invoiceLoadSummaryIdentifier", this.invoiceLoadSummaryIdentifier);
267 return m;
268 }
269 }