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.util;
20
21 import java.util.ArrayList;
22 import java.util.Collection;
23
24 import org.kuali.kfs.module.ar.businessobject.CustomerInvoiceDetail;
25 import org.kuali.kfs.module.ar.businessobject.InvoicePaidApplied;
26 import org.kuali.kfs.module.ar.document.CustomerInvoiceDocument;
27 import org.kuali.kfs.module.ar.document.service.CustomerInvoiceDocumentService;
28 import org.kuali.kfs.sys.context.SpringContext;
29 import org.kuali.rice.core.api.util.type.KualiDecimal;
30
31 public class CustomerInvoiceBalanceHelper {
32
33 private CustomerInvoiceDocument invoice;
34 private Collection<InvoicePaidApplied> invoicePaidApplieds;
35 private Collection<CustomerInvoiceDetail> customerInvoiceDetails;
36
37 public CustomerInvoiceBalanceHelper() {
38
39 }
40
41 public CustomerInvoiceBalanceHelper(CustomerInvoiceDocument invoice, Collection<InvoicePaidApplied> invoicePaidApplieds) {
42 this.invoice = invoice;
43 this.invoicePaidApplieds = new ArrayList<InvoicePaidApplied>(invoicePaidApplieds);
44 }
45
46
47
48
49
50 public KualiDecimal getCalculatedBalance() {
51 return invoice.getTotalDollarAmount().subtract(getTotalAppliedAmountForAppDoc());
52 }
53
54
55
56
57
58 public KualiDecimal getOpenAmount() {
59 CustomerInvoiceDocumentService customerInvoiceDocumentService = SpringContext.getBean(CustomerInvoiceDocumentService.class);
60 return customerInvoiceDocumentService.getOpenAmountForCustomerInvoiceDocument(this.invoice.getDocumentNumber());
61 }
62
63
64
65
66
67 public KualiDecimal getTotalAppliedAmountForAppDoc() {
68 KualiDecimal appliedAmount = new KualiDecimal(0);
69 for (InvoicePaidApplied invoicePaidApplied : invoicePaidApplieds) {
70 appliedAmount = appliedAmount.add(invoicePaidApplied.getInvoiceItemAppliedAmount());
71 }
72 return appliedAmount;
73 }
74
75
76
77
78
79
80 public CustomerInvoiceDocument getInvoice() {
81 return invoice;
82 }
83
84
85
86
87
88 public void setInvoice(CustomerInvoiceDocument invoice) {
89 this.invoice = invoice;
90 }
91
92
93
94
95
96 public Collection<InvoicePaidApplied> getInvoicePaidApplieds() {
97 return invoicePaidApplieds;
98 }
99
100
101
102
103
104 public void setInvoicePaidApplieds(Collection<InvoicePaidApplied> invoicePaidApplieds) {
105 this.invoicePaidApplieds = invoicePaidApplieds;
106 }
107
108 }