1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.kuali.kfs.module.ar.businessobject;
20
21 import java.util.Collection;
22 import java.util.LinkedHashMap;
23 import java.util.List;
24
25 import org.kuali.kfs.coa.businessobject.AccountingPeriod;
26 import org.kuali.kfs.module.ar.document.CustomerInvoiceDocument;
27 import org.kuali.kfs.module.ar.document.service.SystemInformationService;
28 import org.kuali.kfs.sys.businessobject.FinancialSystemDocumentHeader;
29 import org.kuali.kfs.sys.context.SpringContext;
30 import org.kuali.kfs.sys.service.UniversityDateService;
31 import org.kuali.rice.core.api.util.type.KualiDecimal;
32 import org.kuali.rice.kew.api.exception.WorkflowException;
33 import org.kuali.rice.krad.bo.PersistableBusinessObjectBase;
34 import org.kuali.rice.krad.service.DocumentService;
35
36
37
38
39 public class InvoicePaidApplied extends PersistableBusinessObjectBase {
40
41 private String documentNumber;
42 private Integer paidAppliedItemNumber;
43 private String financialDocumentReferenceInvoiceNumber;
44 private Integer invoiceItemNumber;
45 private Integer universityFiscalYear;
46 private String universityFiscalPeriodCode;
47 private KualiDecimal invoiceItemAppliedAmount = KualiDecimal.ZERO;
48
49 private CustomerInvoiceDetail invoiceDetail;
50 private AccountingPeriod universityFiscalPeriod;
51 private FinancialSystemDocumentHeader documentHeader;
52 transient private DocumentService documentService;
53 private KualiDecimal paidAppiedDistributionAmount = KualiDecimal.ZERO;
54 private Collection<NonInvoicedDistribution> nonInvoicedDistributions;
55 private Collection<NonAppliedDistribution> nonAppliedDistributions;
56 private transient CustomerInvoiceDocument customerInvoiceDocument;
57
58 public InvoicePaidApplied() {
59 super();
60 }
61
62 public InvoicePaidApplied(String documentNumber, String refInvoiceDocNumber, Integer invoiceSequenceNumber, KualiDecimal appliedAmount, Integer paidAppliedItemNumber, Integer universityFiscalYear, String universityFiscalPeriodCode) {
63 this.documentNumber = documentNumber;
64 this.financialDocumentReferenceInvoiceNumber = refInvoiceDocNumber;
65 this.invoiceItemNumber = invoiceSequenceNumber;
66 this.paidAppliedItemNumber = paidAppliedItemNumber;
67 this.invoiceItemAppliedAmount = appliedAmount;
68 this.universityFiscalYear = universityFiscalYear;
69 this.universityFiscalPeriodCode = universityFiscalPeriodCode;
70 }
71
72
73
74
75
76
77
78
79
80
81 public InvoicePaidApplied(String documentNumber, String refInvoiceDocNumber, Integer invoiceSequenceNumber, KualiDecimal appliedAmount, Integer paidAppliedItemNumber) {
82 this.documentNumber = documentNumber;
83 this.financialDocumentReferenceInvoiceNumber = refInvoiceDocNumber;
84 this.invoiceItemNumber = invoiceSequenceNumber;
85 this.paidAppliedItemNumber = paidAppliedItemNumber;
86 this.invoiceItemAppliedAmount = appliedAmount;
87
88 UniversityDateService universityDateService = SpringContext.getBean(UniversityDateService.class);
89 this.universityFiscalYear = universityDateService.getCurrentFiscalYear();
90 this.universityFiscalPeriodCode = universityDateService.getCurrentUniversityDate().getAccountingPeriod().getUniversityFiscalPeriodCode();
91 }
92
93 public DocumentService getDocumentService() {
94 if (null == documentService) {
95 documentService = SpringContext.getBean(DocumentService.class);
96 }
97 return documentService;
98 }
99
100 public void setDocumentService(DocumentService documentService) {
101 this.documentService = documentService;
102 }
103
104 public CustomerInvoiceDocument getCustomerInvoiceDocument() {
105 CustomerInvoiceDocument customerInvoiceDocument = null;
106 try {
107 customerInvoiceDocument = (CustomerInvoiceDocument) getDocumentService().getByDocumentHeaderId(getFinancialDocumentReferenceInvoiceNumber());
108 }
109 catch (WorkflowException e) {
110 throw new RuntimeException("WorkflowException thrown when trying to retrieve Invoice document [" + getFinancialDocumentReferenceInvoiceNumber() + "]", e);
111 }
112 return customerInvoiceDocument;
113 }
114
115 public SystemInformation getSystemInformation() {
116 String processingOrgCode = getCustomerInvoiceDocument().getAccountsReceivableDocumentHeader().getProcessingOrganizationCode();
117 String processingChartCode = getCustomerInvoiceDocument().getAccountsReceivableDocumentHeader().getProcessingChartOfAccountCode();
118
119 SystemInformationService sysInfoService = SpringContext.getBean(SystemInformationService.class);
120 Integer currentFiscalYear = SpringContext.getBean(UniversityDateService.class).getCurrentFiscalYear();
121 SystemInformation systemInformation = sysInfoService.getByProcessingChartOrgAndFiscalYear(processingChartCode, processingOrgCode, currentFiscalYear);
122
123 if (systemInformation == null) {
124 throw new RuntimeException("The InvoicePaidApplied doesnt have an associated SystemInformation. This should never happen.");
125 }
126 return systemInformation;
127 }
128
129
130
131
132
133
134 public String getDocumentNumber() {
135 return documentNumber;
136 }
137
138
139
140
141
142
143 public void setDocumentNumber(String documentNumber) {
144 this.documentNumber = documentNumber;
145 }
146
147
148
149
150
151
152
153 public Integer getPaidAppliedItemNumber() {
154 return paidAppliedItemNumber;
155 }
156
157
158
159
160
161
162 public void setPaidAppliedItemNumber(Integer paidAppliedItemNumber) {
163 this.paidAppliedItemNumber = paidAppliedItemNumber;
164 }
165
166
167
168
169
170
171
172 public String getFinancialDocumentReferenceInvoiceNumber() {
173 return financialDocumentReferenceInvoiceNumber;
174 }
175
176
177
178
179
180
181 public void setFinancialDocumentReferenceInvoiceNumber(String financialDocumentReferenceInvoiceNumber) {
182 this.financialDocumentReferenceInvoiceNumber = financialDocumentReferenceInvoiceNumber;
183 }
184
185
186
187
188
189
190 public Integer getInvoiceItemNumber() {
191 return invoiceItemNumber;
192 }
193
194
195
196
197
198
199 public void setInvoiceItemNumber(Integer invoiceItemNumber) {
200 this.invoiceItemNumber = invoiceItemNumber;
201 }
202
203
204
205
206
207
208 public Integer getUniversityFiscalYear() {
209 return universityFiscalYear;
210 }
211
212
213
214
215
216
217 public void setUniversityFiscalYear(Integer universityFiscalYear) {
218 this.universityFiscalYear = universityFiscalYear;
219 }
220
221
222
223
224
225
226 public String getUniversityFiscalPeriodCode() {
227 return universityFiscalPeriodCode;
228 }
229
230
231
232
233
234
235 public void setUniversityFiscalPeriodCode(String universityFiscalPeriodCode) {
236 this.universityFiscalPeriodCode = universityFiscalPeriodCode;
237 }
238
239 public FinancialSystemDocumentHeader getDocumentHeader() {
240 return documentHeader;
241 }
242
243 public void setDocumentHeader(FinancialSystemDocumentHeader documentHeader) {
244 this.documentHeader = documentHeader;
245 }
246
247
248
249
250
251
252 public KualiDecimal getInvoiceItemAppliedAmount() {
253 return invoiceItemAppliedAmount;
254 }
255
256
257
258
259
260
261 public void setInvoiceItemAppliedAmount(KualiDecimal invoiceItemAppliedAmount) {
262 this.invoiceItemAppliedAmount = invoiceItemAppliedAmount;
263 }
264
265
266
267
268
269
270 public CustomerInvoiceDetail getInvoiceDetail() {
271 return invoiceDetail;
272 }
273
274
275
276
277
278
279 public AccountingPeriod getUniversityFiscalPeriod() {
280 return universityFiscalPeriod;
281 }
282
283
284
285
286
287
288
289 @Deprecated
290 public void setUniversityFiscalPeriod(AccountingPeriod universityFiscalPeriod) {
291 this.universityFiscalPeriod = universityFiscalPeriod;
292 }
293
294
295
296
297 @SuppressWarnings("unchecked")
298 protected LinkedHashMap toStringMapper_RICE20_REFACTORME() {
299 LinkedHashMap m = new LinkedHashMap();
300 m.put("documentNumber", this.documentNumber);
301 if (this.paidAppliedItemNumber != null) {
302 m.put("paidAppliedItemNumber", this.paidAppliedItemNumber.toString());
303 }
304 return m;
305 }
306
307
308
309
310
311
312 public KualiDecimal getPaidAppiedDistributionAmount() {
313 return paidAppiedDistributionAmount;
314 }
315
316
317
318
319
320
321 public void setPaidAppiedDistributionAmount(KualiDecimal paidAppiedDistributionAmount) {
322 this.paidAppiedDistributionAmount = paidAppiedDistributionAmount;
323 }
324
325
326
327
328
329
330 public Collection<NonInvoicedDistribution> getNonInvoicedDistributions() {
331 return nonInvoicedDistributions;
332 }
333
334
335
336
337
338
339 public void setNonInvoicedDistributions(Collection<NonInvoicedDistribution> nonInvoicedDistributions) {
340 this.nonInvoicedDistributions = nonInvoicedDistributions;
341 }
342
343
344
345
346
347
348 public Collection<NonAppliedDistribution> getNonAppliedDistributions() {
349 return nonAppliedDistributions;
350 }
351
352
353
354
355
356
357 public void setNonAppliedDistributions(List<NonAppliedDistribution> nonAppliedDistributions) {
358 this.nonAppliedDistributions = nonAppliedDistributions;
359 }
360
361
362
363
364
365
366 public void setCustomerInvoiceDocument(CustomerInvoiceDocument customerInvoiceDocument) {
367 this.customerInvoiceDocument = customerInvoiceDocument;
368 }
369 }