1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.kuali.kfs.sys.businessobject;
20
21 import java.sql.Date;
22 import java.sql.Timestamp;
23
24 import org.apache.commons.lang.StringUtils;
25 import org.kuali.kfs.sys.KFSConstants;
26 import org.kuali.kfs.sys.context.SpringContext;
27 import org.kuali.rice.core.api.util.type.KualiDecimal;
28 import org.kuali.rice.kew.api.WorkflowDocument;
29 import org.kuali.rice.kew.api.exception.WorkflowException;
30 import org.kuali.rice.krad.bo.DocumentHeader;
31 import org.kuali.rice.krad.service.BusinessObjectService;
32 import org.kuali.rice.krad.util.GlobalVariables;
33 import org.kuali.rice.krad.workflow.service.WorkflowDocumentService;
34
35
36
37
38 public class FinancialSystemDocumentHeader extends DocumentHeader {
39
40 protected KualiDecimal financialDocumentTotalAmount;
41 protected String correctedByDocumentId;
42 protected String financialDocumentInErrorNumber;
43 protected String financialDocumentStatusCode;
44 protected String workflowDocumentStatusCode;
45 protected String applicationDocumentStatus;
46 protected String initiatorPrincipalId;
47 protected String workflowDocumentTypeName;
48 protected Timestamp workflowCreateDate;
49
50
51
52
53
54 public FinancialSystemDocumentHeader() {
55 super();
56 financialDocumentStatusCode = KFSConstants.DocumentStatusCodes.INITIATED;
57 }
58
59
60
61
62
63 public KualiDecimal getFinancialDocumentTotalAmount() {
64 return financialDocumentTotalAmount;
65 }
66
67
68
69
70
71 public void setFinancialDocumentTotalAmount(KualiDecimal financialDocumentTotalAmount) {
72 this.financialDocumentTotalAmount = financialDocumentTotalAmount;
73 }
74
75
76
77
78
79 public String getCorrectedByDocumentId() {
80 return correctedByDocumentId;
81 }
82
83
84
85
86
87 public void setCorrectedByDocumentId(String correctedByDocumentId) {
88 this.correctedByDocumentId = correctedByDocumentId;
89 }
90
91
92
93
94
95 public String getFinancialDocumentInErrorNumber() {
96 return financialDocumentInErrorNumber;
97 }
98
99
100
101
102
103 public void setFinancialDocumentInErrorNumber(String financialDocumentInErrorNumber) {
104 this.financialDocumentInErrorNumber = financialDocumentInErrorNumber;
105 }
106
107
108
109
110
111 public String getFinancialDocumentStatusCode() {
112 return financialDocumentStatusCode;
113 }
114
115
116
117
118
119 public void setFinancialDocumentStatusCode(String financialDocumentStatusCode) {
120 this.financialDocumentStatusCode = financialDocumentStatusCode;
121 }
122
123 public String getWorkflowDocumentStatusCode() {
124 return workflowDocumentStatusCode;
125 }
126
127 public void setWorkflowDocumentStatusCode(String workflowDocumentStatusCode) {
128 this.workflowDocumentStatusCode = workflowDocumentStatusCode;
129 }
130
131 public String getInitiatorPrincipalId() {
132 return initiatorPrincipalId;
133 }
134
135 public void setInitiatorPrincipalId(String initiatorPrincipalId) {
136 this.initiatorPrincipalId = initiatorPrincipalId;
137 }
138
139 public String getWorkflowDocumentTypeName() {
140 return workflowDocumentTypeName;
141 }
142
143 public void setWorkflowDocumentTypeName(String workflowDocumentTypeName) {
144 this.workflowDocumentTypeName = workflowDocumentTypeName;
145 }
146
147
148
149
150
151 public Date getDocumentFinalDate() {
152 WorkflowDocument workflowDoc = this.getWorkflowDocument();
153 if (workflowDoc == null || (workflowDoc.getDateFinalized() == null)) {
154 return null;
155 }
156 return new java.sql.Date(workflowDoc.getDateFinalized().getMillis());
157 }
158
159
160
161
162
163
164
165 public String getApplicationDocumentStatus() {
166 return applicationDocumentStatus;
167 }
168
169
170
171
172
173
174 public void setApplicationDocumentStatus(String applicationDocumentStatus) {
175 WorkflowDocument document = getWorkflowDocument();
176
177 document.setApplicationDocumentStatus(applicationDocumentStatus);
178 this.applicationDocumentStatus = applicationDocumentStatus;
179 }
180
181
182
183
184
185
186 @Override
187 public WorkflowDocument getWorkflowDocument() {
188
189 WorkflowDocument workflowDocument = null;
190
191 if (hasWorkflowDocument()) {
192 workflowDocument = super.getWorkflowDocument();
193 }
194
195 try {
196 if (workflowDocument != null) {
197 return workflowDocument;
198 }
199 if ( StringUtils.isNotBlank(getDocumentNumber()) ) {
200 workflowDocument = SpringContext.getBean(WorkflowDocumentService.class).loadWorkflowDocument(getDocumentNumber(), GlobalVariables.getUserSession().getPerson());
201 } else {
202 throw new RuntimeException("Document number is blank/null. Unable to load a WorkflowDocument" );
203 }
204 }
205 catch (WorkflowException we) {
206 throw new RuntimeException("Unable to load a WorkflowDocument object for " + getDocumentNumber(), we);
207 }
208
209 return workflowDocument;
210 }
211
212
213
214
215
216
217
218 public void updateAndSaveAppDocStatus(String applicationDocumentStatus) throws WorkflowException {
219 setApplicationDocumentStatus(applicationDocumentStatus);
220 SpringContext.getBean(WorkflowDocumentService.class).saveRoutingData(getWorkflowDocument());
221 SpringContext.getBean(BusinessObjectService.class).save(this);
222 }
223
224 public Timestamp getWorkflowCreateDate() {
225 return workflowCreateDate;
226 }
227
228 public void setWorkflowCreateDate(Timestamp workflowCreateDate) {
229 this.workflowCreateDate = workflowCreateDate;
230 }
231 }