1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.ole.coa.service.impl;
17
18 import java.util.ArrayList;
19 import java.util.Collection;
20 import java.util.Collections;
21 import java.util.HashMap;
22 import java.util.List;
23 import java.util.Map;
24
25 import org.kuali.ole.coa.businessobject.OrganizationReversion;
26 import org.kuali.ole.coa.businessobject.OrganizationReversionCategory;
27 import org.kuali.ole.coa.service.OrganizationReversionService;
28 import org.kuali.ole.gl.GeneralLedgerConstants;
29 import org.kuali.ole.gl.batch.service.OrganizationReversionCategoryLogic;
30 import org.kuali.ole.gl.batch.service.impl.GenericOrganizationReversionCategory;
31 import org.kuali.ole.sys.OLEPropertyConstants;
32 import org.kuali.ole.sys.context.SpringContext;
33 import org.kuali.ole.sys.service.NonTransactional;
34 import org.kuali.rice.coreservice.framework.parameter.ParameterService;
35 import org.kuali.rice.krad.service.BusinessObjectService;
36
37
38
39
40
41
42 @NonTransactional
43 public class OrganizationReversionServiceImpl implements OrganizationReversionService {
44 private static final org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(OrganizationReversionServiceImpl.class);
45
46 protected BusinessObjectService businessObjectService;
47 protected ParameterService parameterService;
48
49
50
51
52
53 @Override
54 public OrganizationReversion getByPrimaryId(Integer fiscalYear, String chartCode, String orgCode) {
55 Map<String, Object> keys = new HashMap<String, Object>(3);
56 keys.put(OLEPropertyConstants.UNIVERSITY_FISCAL_YEAR, fiscalYear);
57 keys.put(OLEPropertyConstants.CHART_OF_ACCOUNTS_CODE, chartCode);
58 keys.put(OLEPropertyConstants.ORGANIZATION_CODE, orgCode);
59 return SpringContext.getBean(BusinessObjectService.class).findByPrimaryKey(OrganizationReversion.class, keys);
60 }
61
62
63
64
65 @Override
66 public Map<String, OrganizationReversionCategoryLogic> getCategories() {
67 List<OrganizationReversionCategory> cats = getCategoryList();
68 Map<String, OrganizationReversionCategoryLogic> orgReversionCategoryLogicMap = SpringContext.getBeansOfType(OrganizationReversionCategoryLogic.class);
69 Map<String, OrganizationReversionCategoryLogic> categories = new HashMap<String, OrganizationReversionCategoryLogic>(cats.size());
70
71 for ( OrganizationReversionCategory orc : cats ) {
72 String categoryCode = orc.getOrganizationReversionCategoryCode();
73 OrganizationReversionCategoryLogic cat = null;
74 String key = "gl" + categoryCode + "OrganizationReversionCategory";
75 if (orgReversionCategoryLogicMap.containsKey(key)) {
76 if ( LOG.isDebugEnabled() ) {
77 LOG.debug("Found Organization Reversion Category Logic for " + key);
78 }
79 cat = orgReversionCategoryLogicMap.get(key);
80 } else {
81 if ( LOG.isInfoEnabled() ) {
82 LOG.info("No Organization Reversion Category Logic for " + key + "; using generic");
83 }
84
85 cat = SpringContext.getBean(GenericOrganizationReversionCategory.class);
86 ((GenericOrganizationReversionCategory) cat).setCategoryCode(categoryCode);
87 ((GenericOrganizationReversionCategory) cat).setCategoryName(orc.getOrganizationReversionCategoryName());
88 }
89 categories.put(categoryCode, cat);
90 }
91 return categories;
92 }
93
94
95
96
97
98 @Override
99 public List<OrganizationReversionCategory> getCategoryList() {
100 return new ArrayList<OrganizationReversionCategory>(
101 businessObjectService.findMatchingOrderBy(OrganizationReversionCategory.class, Collections.singletonMap(OLEPropertyConstants.ACTIVE, true), "organizationReversionSortCode", true)
102 );
103 }
104
105
106
107
108
109 @Override
110 public String getOrganizationReversionDetaiFromSystemParameters() {
111 return parameterService.getParameterValueAsString(OrganizationReversion.class, GeneralLedgerConstants.OrganizationReversionProcess.UNALLOC_OBJECT_CODE_PARM);
112 }
113
114
115
116
117
118 @Override
119 public boolean isCategoryActive(String categoryCode) {
120 OrganizationReversionCategory category = businessObjectService.findBySinglePrimaryKey(OrganizationReversionCategory.class, categoryCode);
121 if (category == null) {
122 return false;
123 }
124 return category.isActive();
125 }
126
127
128
129
130 @Override
131 public boolean isCategoryActiveByName(String categoryName) {
132 Collection<OrganizationReversionCategory> categories = businessObjectService.findMatching(OrganizationReversionCategory.class, Collections.singletonMap("organizationReversionCategoryName", categoryName));
133 for ( OrganizationReversionCategory category : categories ) {
134 if ( category.isActive() ) {
135 return true;
136 }
137 }
138 return false;
139 }
140
141 public void setParameterService(ParameterService parameterService) {
142 this.parameterService = parameterService;
143 }
144
145 public void setBusinessObjectService(BusinessObjectService boService) {
146 this.businessObjectService = boService;
147 }
148 }