1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.kpme.core.assignment.account;
17
18 import org.apache.commons.lang.StringUtils;
19 import org.kuali.kpme.core.api.assignment.account.AssignmentAccount;
20 import org.kuali.kpme.core.api.assignment.account.AssignmentAccountContract;
21 import org.kuali.kpme.core.api.workarea.WorkArea;
22 import org.kuali.kpme.core.assignment.AssignmentBo;
23 import org.kuali.kpme.core.earncode.EarnCodeBo;
24 import org.kuali.kpme.core.job.JobBo;
25 import org.kuali.kpme.core.kfs.coa.businessobject.*;
26 import org.kuali.kpme.core.service.HrServiceLocator;
27 import org.kuali.rice.core.api.mo.ModelObjectUtils;
28 import org.kuali.rice.krad.bo.PersistableBusinessObjectBase;
29 import org.kuali.rice.krad.service.KRADServiceLocator;
30
31 import java.math.BigDecimal;
32 import java.sql.Timestamp;
33 import java.util.HashMap;
34 import java.util.Map;
35
36 public class AssignmentAccountBo extends PersistableBusinessObjectBase implements AssignmentAccountContract {
37
38 private static final long serialVersionUID = 2414818440020234952L;
39 public static final ModelObjectUtils.Transformer<AssignmentAccount, AssignmentAccountBo> toAssignmentAccountBo =
40 new ModelObjectUtils.Transformer<AssignmentAccount, AssignmentAccountBo>() {
41 public AssignmentAccountBo transform(AssignmentAccount input) {
42 return AssignmentAccountBo.from(input);
43 };
44 };
45
46 private String tkAssignAcctId;
47 private String finCoaCd;
48 private String accountNbr;
49 private String subAcctNbr;
50 private String finObjectCd;
51 private String finSubObjCd;
52 private String projectCd;
53 private String orgRefId;
54 private BigDecimal percent;
55 private String earnCode;
56 private String tkAssignmentId;
57 private String userPrincipalId;
58 private boolean active=true;
59 private AssignmentBo assignmentObj;
60
61 private Account accountObj;
62 private SubAccount subAccountObj;
63 private ObjectCode objectCodeObj;
64 private SubObjectCode subObjectCodeObj;
65 private ProjectCode projectCodeObj;
66 private EarnCodeBo earnCodeObj;
67
68
69
70
71
72
73
74
75 public AssignmentBo getAssignmentObj() {
76 if(assignmentObj == null && StringUtils.isNotBlank(this.getTkAssignmentId())) {
77 this.setAssignmentObj(AssignmentBo.from(HrServiceLocator.getAssignmentService().getAssignment(this.getTkAssignmentId())));
78 }
79 return assignmentObj;
80 }
81
82 public void setAssignmentObj(AssignmentBo assignmentObj) {
83 this.assignmentObj = assignmentObj;
84 }
85
86 public String getFinCoaCd() {
87 Map<String, String> fields = new HashMap<String, String>();
88 fields.put("accountNumber", this.accountNbr);
89 fields.put("active", "true");
90 Account account = (Account) KRADServiceLocator.getBusinessObjectService().findByPrimaryKey(Account.class, fields);
91 if(account != null && !account.isClosed()) {
92 this.setFinCoaCd(account.getChartOfAccountsCode());
93 } else {
94 this.setFinCoaCd(null);
95 }
96 return finCoaCd;
97 }
98
99 public void setFinCoaCd(String finCoaCd) {
100 this.finCoaCd = finCoaCd;
101 }
102
103 public String getAccountNbr() {
104 return accountNbr;
105 }
106
107 public void setAccountNbr(String accountNbr) {
108 this.accountNbr = accountNbr;
109 }
110
111 public String getSubAcctNbr() {
112 return subAcctNbr;
113 }
114
115 public void setSubAcctNbr(String subAcctNbr) {
116 this.subAcctNbr = subAcctNbr;
117 }
118
119 public String getFinObjectCd() {
120 return finObjectCd;
121 }
122
123 public void setFinObjectCd(String finObjectCd) {
124 this.finObjectCd = finObjectCd;
125 }
126
127 public String getFinSubObjCd() {
128 return finSubObjCd;
129 }
130
131 public void setFinSubObjCd(String finSubObjCd) {
132 this.finSubObjCd = finSubObjCd;
133 }
134
135 public String getProjectCd() {
136 return projectCd;
137 }
138
139 public void setProjectCd(String projectCd) {
140 this.projectCd = projectCd;
141 }
142
143 public String getOrgRefId() {
144 return orgRefId;
145 }
146
147 public void setOrgRefId(String orgRefId) {
148 this.orgRefId = orgRefId;
149 }
150
151 public BigDecimal getPercent() {
152 return percent;
153 }
154
155 public void setPercent(BigDecimal percent) {
156 this.percent = percent;
157 }
158
159 public String getTkAssignAcctId() {
160 return tkAssignAcctId;
161 }
162
163 public void setTkAssignAcctId(String tkAssignAcctId) {
164 this.tkAssignAcctId = tkAssignAcctId;
165 }
166
167 public String getTkAssignmentId() {
168 return tkAssignmentId;
169 }
170
171 public void setTkAssignmentId(String tkAssignmentId) {
172 this.tkAssignmentId = tkAssignmentId;
173 }
174
175 public String getEarnCode() {
176 return earnCode;
177 }
178
179 public void setEarnCode(String earnCode) {
180 this.earnCode = earnCode;
181 }
182
183 public Account getAccountObj() {
184 return accountObj;
185 }
186
187 public void setAccountObj(Account accountObj) {
188 this.accountObj = accountObj;
189 }
190
191 public SubAccount getSubAccountObj() {
192 return subAccountObj;
193 }
194
195 public void setSubAccountObj(SubAccount subAccountObj) {
196 this.subAccountObj = subAccountObj;
197 }
198
199 public ObjectCode getObjectCodeObj() {
200 return objectCodeObj;
201 }
202
203 public void setObjectCodeObj(ObjectCode objectCodeObj) {
204 this.objectCodeObj = objectCodeObj;
205 }
206
207 public SubObjectCode getSubObjectCodeObj() {
208 return subObjectCodeObj;
209 }
210
211 public void setSubObjectCodeObj(SubObjectCode subObjectCodeObj) {
212 this.subObjectCodeObj = subObjectCodeObj;
213 }
214
215 public ProjectCode getProjectCodeObj() {
216 return projectCodeObj;
217 }
218
219 public void setProjectCodeObj(ProjectCode projectCodeObj) {
220 this.projectCodeObj = projectCodeObj;
221 }
222
223 public EarnCodeBo getEarnCodeObj() {
224 return earnCodeObj;
225 }
226
227 public void setEarnCodeObj(EarnCodeBo earnCodeObj) {
228 this.earnCodeObj = earnCodeObj;
229 }
230
231
232 public String getUniqueKey() {
233 return earnCode +"_"+accountNbr+"_"+subAcctNbr;
234 }
235
236 @Override
237 public String getId() {
238 return tkAssignAcctId;
239 }
240
241 public void setId(String id) {
242 setTkAssignAcctId(id);
243 }
244
245 public String getUserPrincipalId() {
246 return userPrincipalId;
247 }
248
249 public void setUserPrincipalId(String userPrincipalId) {
250 this.userPrincipalId = userPrincipalId;
251 }
252
253 public boolean isActive() {
254 return active;
255 }
256
257 public void setActive(boolean active) {
258 this.active = active;
259 }
260
261 public static AssignmentAccountBo from(AssignmentAccount im) {
262 if (im == null) {
263 return null;
264 }
265 AssignmentAccountBo acct = new AssignmentAccountBo();
266
267 acct.setTkAssignAcctId(im.getTkAssignAcctId());
268 acct.setFinCoaCd(im.getFinCoaCd());
269 acct.setAccountNbr(im.getAccountNbr());
270 acct.setSubAcctNbr(im.getSubAcctNbr());
271 acct.setFinObjectCd(im.getFinObjectCd());
272 acct.setFinSubObjCd(im.getFinSubObjCd());
273 acct.setProjectCd(im.getProjectCd());
274 acct.setOrgRefId(im.getOrgRefId());
275 acct.setEarnCode(im.getEarnCode());
276 acct.setTkAssignmentId(im.getTkAssignmentId());
277 acct.setUserPrincipalId(im.getUserPrincipalId());
278 acct.setPercent(im.getPercent());
279 acct.setActive(im.isActive());
280
281 acct.setUserPrincipalId(im.getUserPrincipalId());
282 acct.setVersionNumber(im.getVersionNumber());
283 acct.setObjectId(im.getObjectId());
284
285 return acct;
286 }
287
288 public static AssignmentAccount to(AssignmentAccountBo bo) {
289 if (bo == null) {
290 return null;
291 }
292
293 return AssignmentAccount.Builder.create(bo).build();
294 }
295 }