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 }