View Javadoc
1   package org.kuali.ole.batch.keyvalue;
2   
3   import org.apache.commons.lang.StringUtils;
4   import org.kuali.ole.OLEConstants;
5   import org.kuali.ole.batch.bo.OLEBatchProcessProfileConstantsBo;
6   import org.kuali.ole.coa.businessobject.Account;
7   import org.kuali.ole.coa.businessobject.Chart;
8   import org.kuali.ole.coa.businessobject.ObjectCode;
9   import org.kuali.ole.coa.businessobject.Organization;
10  import org.kuali.ole.describe.bo.OleItemAvailableStatus;
11  import org.kuali.ole.describe.bo.OleLocation;
12  import org.kuali.ole.describe.bo.OleLocationLevel;
13  import org.kuali.ole.module.purap.businessobject.FundingSource;
14  import org.kuali.ole.module.purap.businessobject.PurchaseOrderTransmissionMethod;
15  import org.kuali.ole.module.purap.businessobject.PurchaseOrderType;
16  import org.kuali.ole.module.purap.businessobject.PurchaseOrderVendorChoice;
17  import org.kuali.ole.select.businessobject.OLERequestorPatronDocument;
18  import org.kuali.ole.select.businessobject.OleRequestSourceType;
19  import org.kuali.ole.select.document.service.OleSelectDocumentService;
20  import org.kuali.ole.sys.businessobject.Building;
21  import org.kuali.ole.sys.businessobject.Room;
22  import org.kuali.ole.sys.context.SpringContext;
23  import org.kuali.ole.vnd.businessobject.*;
24  import org.kuali.rice.core.api.util.ConcreteKeyValue;
25  import org.kuali.rice.core.api.util.KeyValue;
26  import org.kuali.rice.coreservice.api.CoreServiceApiServiceLocator;
27  import org.kuali.rice.coreservice.api.parameter.Parameter;
28  import org.kuali.rice.coreservice.api.parameter.ParameterKey;
29  import org.kuali.rice.kim.impl.identity.principal.PrincipalBo;
30  import org.kuali.rice.krad.service.BusinessObjectService;
31  import org.kuali.rice.krad.service.KRADServiceLocator;
32  import org.kuali.rice.krad.service.KeyValuesService;
33  import org.kuali.rice.krad.uif.control.UifKeyValuesFinderBase;
34  import org.kuali.rice.krad.uif.view.ViewModel;
35  import org.kuali.rice.krad.web.form.MaintenanceDocumentForm;
36  import org.springframework.util.CollectionUtils;
37  
38  import java.util.*;
39  
40  /**
41   * Created with IntelliJ IDEA.
42   * User: syedk
43   * Date: 6/6/14
44   * Time: 7:47 PM
45   * To change this template use File | Settings | File Templates.
46   */
47  public class OLEBatchProcessOrderImportValuesFinder extends UifKeyValuesFinderBase {
48  
49      private BusinessObjectService businessObjectService;
50      private OleSelectDocumentService oleSelectDocumentService;
51  
52      public BusinessObjectService getBusinessObjectService() {
53          if(businessObjectService==null)
54              businessObjectService = KRADServiceLocator.getBusinessObjectService();
55          return businessObjectService;
56      }
57  
58      public OleSelectDocumentService getOleSelectDocumentService() {
59          if (oleSelectDocumentService == null) {
60              oleSelectDocumentService = SpringContext.getBean(OleSelectDocumentService.class);
61          }
62          return oleSelectDocumentService;
63      }
64  
65      @Override
66      public List<KeyValue> getKeyValues(ViewModel model) {
67          List<KeyValue> keyValues = new ArrayList<KeyValue>();
68          MaintenanceDocumentForm maintenanceForm = (MaintenanceDocumentForm) model;
69          OLEBatchProcessProfileConstantsBo oleBatchProcessProfileConstantsBo = null;
70          if (!CollectionUtils.isEmpty(maintenanceForm.getNewCollectionLines())) {
71              oleBatchProcessProfileConstantsBo = (OLEBatchProcessProfileConstantsBo) maintenanceForm.getNewCollectionLines().get("document.newMaintainableObject.dataObject.oleBatchProcessProfileConstantsList");
72          }
73          if (oleBatchProcessProfileConstantsBo != null) {
74              String dataType = oleBatchProcessProfileConstantsBo.getDataType();
75              if (StringUtils.isNotBlank(dataType)) {
76                  String attributeName = oleBatchProcessProfileConstantsBo.getAttributeName();
77                  String oldAttributeName = oleBatchProcessProfileConstantsBo.getOldAttributeName();
78                  if(!StringUtils.isBlank(attributeName)){
79                      if(oldAttributeName == null || !attributeName.equalsIgnoreCase(oldAttributeName)){
80                          oleBatchProcessProfileConstantsBo.setOldAttributeName(attributeName);
81                          if (dataType.equalsIgnoreCase(OLEConstants.OLEBatchProcess.ORDER_IMPORT)) {
82                              if(attributeName.equalsIgnoreCase(OLEConstants.OLEBatchProcess.CHART_CODE)){
83                                  List<Organization> chartCodeList = (List<Organization>) KRADServiceLocator.getBusinessObjectService().findAll(Organization.class);
84                                  if(chartCodeList != null && chartCodeList.size()>0){
85                                      Set<KeyValue> chartCodes  = new HashSet<>();
86                                      for(Organization chartCode : chartCodeList) {
87                                          chartCodes.add(new ConcreteKeyValue(chartCode.getChartOfAccountsCode(), chartCode.getChartOfAccountsCode()));
88                                      }
89                                      keyValues.addAll(chartCodes);
90                                  }
91                              }
92                              else if(attributeName.equalsIgnoreCase(OLEConstants.OLEBatchProcess.ITEM_CHART_CODE)){
93                                  List<Chart> itemChartCodeList = (List<Chart>) KRADServiceLocator.getBusinessObjectService().findAll(Chart.class);
94                                  for (Chart itemChartCode : itemChartCodeList) {
95                                      keyValues.add(new ConcreteKeyValue(itemChartCode.getChartOfAccountsCode(), itemChartCode.getChartOfAccountsCode()));
96                                  }
97                              }
98                              else if(attributeName.equalsIgnoreCase(OLEConstants.OLEBatchProcess.ORG_CODE)){
99                                  List<Organization> organizationCodeList = (List<Organization>) KRADServiceLocator.getBusinessObjectService().findAll(Organization.class);
100                                 if(organizationCodeList != null && organizationCodeList.size() >0){
101                                     Set<KeyValue> orgCodes  = new HashSet<>();
102                                     for (Organization organizationCode : organizationCodeList) {
103                                         orgCodes.add(new ConcreteKeyValue(organizationCode.getOrganizationCode(), organizationCode.getOrganizationCode()));
104                                     }
105                                     keyValues.addAll(orgCodes);
106                                 }
107                             }
108                             else if(attributeName.equalsIgnoreCase(OLEConstants.OLEBatchProcess.CONTRACT_MANAGER)){
109                                 List<ContractManager> contractManagerList = (List<ContractManager>) KRADServiceLocator.getBusinessObjectService().findAll(ContractManager.class);
110                                 for (ContractManager contractManager : contractManagerList) {
111                                     keyValues.add(new ConcreteKeyValue(contractManager.getContractManagerName(), contractManager.getContractManagerName()));
112                                 }
113                             }
114                             else if(attributeName.equalsIgnoreCase(OLEConstants.OLEBatchProcess.ORDER_TYPE)){
115                                 List<PurchaseOrderType> purchaseOrderTypeList = (List<PurchaseOrderType>) KRADServiceLocator.getBusinessObjectService().findAll(PurchaseOrderType.class);
116                                 for (PurchaseOrderType purchaseOrderType : purchaseOrderTypeList) {
117                                     keyValues.add(new ConcreteKeyValue(purchaseOrderType.getPurchaseOrderType(), purchaseOrderType.getPurchaseOrderType()));
118                                 }
119                             }
120                             else if(attributeName.equalsIgnoreCase(OLEConstants.OLEBatchProcess.FUNDING_SOURCE)){
121                                 List<FundingSource> fundingSourceList = (List<FundingSource>) KRADServiceLocator.getBusinessObjectService().findAll(FundingSource.class);
122                                 for (FundingSource fundingSource : fundingSourceList) {
123                                     keyValues.add(new ConcreteKeyValue(fundingSource.getFundingSourceCode(), fundingSource.getFundingSourceCode()));
124                                 }
125                             }
126                             else if(attributeName.equalsIgnoreCase(OLEConstants.OLEBatchProcess.DELIVERY_CAMPUS_CODE)){
127                                 List<Building> campusList = (List<Building>) KRADServiceLocator.getBusinessObjectService().findAll(Building.class);
128                                 if(campusList != null && campusList.size() >0){
129                                     Set<KeyValue> chartCodes  = new HashSet<>();
130                                     for (Building campus : campusList) {
131                                         chartCodes.add(new ConcreteKeyValue(campus.getCampusCode(), campus.getCampusCode()));
132                                     }
133                                     keyValues.addAll(chartCodes);
134                                 }
135                             }
136                             else if(attributeName.equalsIgnoreCase(OLEConstants.OLEBatchProcess.BUILDING_CODE)){
137                                 List<Building> buildingList = (List<Building>) KRADServiceLocator.getBusinessObjectService().findAll(Building.class);
138                                 for (Building building : buildingList) {
139                                     keyValues.add(new ConcreteKeyValue(building.getBuildingCode(), building.getBuildingCode()));
140                                 }
141                             }
142                             else if(attributeName.equalsIgnoreCase(OLEConstants.OLEBatchProcess.DELIVERY_BUILDING_ROOM_NUMBER)){
143                                 List<Room> roomList = (List<Room>) KRADServiceLocator.getBusinessObjectService().findAll(Room.class);
144                                 if (roomList!=null && roomList.size()>0) {
145                                     Set<KeyValue> roomNos = new HashSet<>();
146                                     for (Room room : roomList) {
147                                         roomNos.add(new ConcreteKeyValue(room.getBuildingRoomNumber(),room.getBuildingRoomNumber()));
148                                     }
149                                     keyValues.addAll(roomNos);
150                                 }
151                             }
152                             else if(attributeName.equalsIgnoreCase(OLEConstants.OLEBatchProcess.VENDOR_CHOICE)){
153                                 List<PurchaseOrderVendorChoice> purchaseOrderVendorChoiceList = (List<PurchaseOrderVendorChoice>) KRADServiceLocator.getBusinessObjectService().findAll(PurchaseOrderVendorChoice.class);
154                                 for (PurchaseOrderVendorChoice purchaseOrderVendorChoice : purchaseOrderVendorChoiceList) {
155                                     keyValues.add(new ConcreteKeyValue(purchaseOrderVendorChoice.getPurchaseOrderVendorChoiceCode(), purchaseOrderVendorChoice.getPurchaseOrderVendorChoiceCode()));
156                                 }
157                             }
158                             else if(attributeName.equalsIgnoreCase(OLEConstants.OLEBatchProcess.COST_SOURCE)){
159                                 List<PurchaseOrderCostSource> purchaseOrderCostSourceList = (List<PurchaseOrderCostSource>) KRADServiceLocator.getBusinessObjectService().findAll(PurchaseOrderCostSource.class);
160                                 for (PurchaseOrderCostSource purchaseOrderCostSource : purchaseOrderCostSourceList) {
161                                     keyValues.add(new ConcreteKeyValue(purchaseOrderCostSource.getPurchaseOrderCostSourceCode(), purchaseOrderCostSource.getPurchaseOrderCostSourceCode()));
162                                 }
163                             }
164                             else if(attributeName.equalsIgnoreCase(OLEConstants.OLEBatchProcess.DEFAULT_LOCATION)){
165                                 List<String> locationList = getItemLocation();
166                                 for(int locationCount = 0;locationCount < locationList.size();locationCount++) {
167                                     keyValues.add(new ConcreteKeyValue(locationList.get(locationCount),locationList.get(locationCount)));
168                                 }
169                             }
170                             else if(attributeName.equalsIgnoreCase(OLEConstants.OLEBatchProcess.VENDOR_NUMBER)){
171                                 List<VendorDetail> vendorDetailList = (List<VendorDetail>) KRADServiceLocator.getBusinessObjectService().findAll(VendorDetail.class);
172                                 for (VendorDetail vendorDetail : vendorDetailList) {
173                                     keyValues.add(new ConcreteKeyValue(vendorDetail.getVendorHeaderGeneratedIdentifier() + "-" + vendorDetail.getVendorDetailAssignedIdentifier(), vendorDetail.getVendorHeaderGeneratedIdentifier() + "-" + vendorDetail.getVendorDetailAssignedIdentifier()));
174                                 }
175                             }
176                             else if(attributeName.equalsIgnoreCase(OLEConstants.OLEBatchProcess.VENDOR_CUST_NBR)){
177                                 List<VendorCustomerNumber> vendorCustomerList = (List<VendorCustomerNumber>) KRADServiceLocator.getBusinessObjectService().findAll(VendorCustomerNumber.class);
178                                 for (VendorCustomerNumber vendorCustomer : vendorCustomerList) {
179                                     keyValues.add(new ConcreteKeyValue(vendorCustomer.getVendorCustomerNumber(), vendorCustomer.getVendorCustomerNumber()));
180                                 }
181                             }
182                             else if(attributeName.equalsIgnoreCase(OLEConstants.OLEBatchProcess.REQUESTOR_NAME)){
183                                 List<OLERequestorPatronDocument> olePatronDocumentList = getOleSelectDocumentService().getPatronDocumentListFromWebService();
184                                 if(olePatronDocumentList != null && olePatronDocumentList.size()>0){
185                                     for(int recCount = 0;recCount < olePatronDocumentList.size();recCount++) {
186                                         keyValues.add(new ConcreteKeyValue(olePatronDocumentList.get(recCount).getLastName() + ", " +  olePatronDocumentList.get(recCount).getFirstName(),olePatronDocumentList.get(recCount).getLastName() + ", " +  olePatronDocumentList.get(recCount).getFirstName()));
187                                     }
188                                 }
189                             }
190                             else if(attributeName.equalsIgnoreCase(OLEConstants.OLEBatchProcess.ITEM_STATUS)){
191                                 List<KeyValue> itemStatusList = getItemStatus();
192                                 for(int itemStatusCount = 0; itemStatusCount < itemStatusList.size(); itemStatusCount++){
193                                     keyValues.add(new ConcreteKeyValue(itemStatusList.get(itemStatusCount).getKey(),itemStatusList.get(itemStatusCount).getKey()));
194                                 }
195                             }
196                             else if(attributeName.equalsIgnoreCase(OLEConstants.OLEBatchProcess.DISCOUNT_TYPE)){
197                                 keyValues.add(new ConcreteKeyValue("%", "%"));
198                                 keyValues.add(new ConcreteKeyValue("#", "#"));
199                             }
200                             else if(attributeName.equalsIgnoreCase(OLEConstants.OLEBatchProcess.ACCOUNT_NUMBER)){
201                                 List<Account> accountNumberList = (List<Account>) KRADServiceLocator.getBusinessObjectService().findAll(Account.class);
202                                 for (Account account : accountNumberList) {
203                                     keyValues.add(new ConcreteKeyValue(account.getAccountNumber(), account.getAccountNumber()));
204                                 }
205                             }
206                             else if(attributeName.equalsIgnoreCase(OLEConstants.OLEBatchProcess.OBJECT_CODE)){
207                                 List<ObjectCode> objectCodeList = (List<ObjectCode>) KRADServiceLocator.getBusinessObjectService().findAll(ObjectCode.class);
208                                 if(objectCodeList != null && objectCodeList.size() >0){
209                                     Set<KeyValue> objectCodes  = new HashSet<>();
210                                     for (ObjectCode objectCode : objectCodeList) {
211                                         objectCodes.add(new ConcreteKeyValue(objectCode.getFinancialObjectCode(), objectCode.getFinancialObjectCode()));
212                                     }
213                                     keyValues.addAll(objectCodes);
214                                 }
215                             }
216                             else if(attributeName.equalsIgnoreCase(OLEConstants.OLEBatchProcess.REQUEST_SRC)){
217                                 List<OleRequestSourceType> requestSourceTypeList = (List<OleRequestSourceType>) KRADServiceLocator.getBusinessObjectService().findAll(OleRequestSourceType.class);
218                                 for (OleRequestSourceType requestSourceType : requestSourceTypeList) {
219                                     keyValues.add(new ConcreteKeyValue(requestSourceType.getRequestSourceType(),requestSourceType.getRequestSourceType()));
220                                 }
221                             }
222                             else if(attributeName.equalsIgnoreCase(OLEConstants.OLEBatchProcess.ASSIGN_TO_USER)){
223                                 List<PrincipalBo> assignedUserList = (List<PrincipalBo>) KRADServiceLocator.getBusinessObjectService().findAll(PrincipalBo.class);
224                                 for (PrincipalBo assignedUser : assignedUserList) {
225                                     keyValues.add(new ConcreteKeyValue(assignedUser.getPrincipalName(), assignedUser.getPrincipalName()));
226                                 }
227                             }
228                             else if(attributeName.equalsIgnoreCase(OLEConstants.OLEBatchProcess.METHOD_OF_PO_TRANSMISSION)){
229                                 KeyValuesService boService = SpringContext.getBean(KeyValuesService.class);
230                                 List<PurchaseOrderTransmissionMethod> transmissionMethodList = (List<PurchaseOrderTransmissionMethod>) boService.findAll(PurchaseOrderTransmissionMethod.class);
231                                 for (PurchaseOrderTransmissionMethod transmissionMethod : transmissionMethodList) {
232                                     if(transmissionMethod.isDisplayToUser()){
233                                         keyValues.add(new ConcreteKeyValue(transmissionMethod.getPurchaseOrderTransmissionMethodDescription(), transmissionMethod.getPurchaseOrderTransmissionMethodDescription()));
234                                     }
235                                 }
236                             }
237                             else if(attributeName.equalsIgnoreCase(OLEConstants.OLEBatchProcess.RECEIVING_REQUIRED) ||
238                                     attributeName.equalsIgnoreCase(OLEConstants.OLEBatchProcess.USE_TAX_INDICATOR) ||
239                                     attributeName.equalsIgnoreCase(OLEConstants.OLEBatchProcess.PREQ_POSITIVE_APPROVAL_REQ) ||
240                                     attributeName.equalsIgnoreCase(OLEConstants.OLEBatchProcess.PO_CONFIRMATION_INDICATOR) ||
241                                     attributeName.equalsIgnoreCase(OLEConstants.OLEBatchProcess.ROUTE_TO_REQUESTOR)){
242                                 keyValues.add(new ConcreteKeyValue(OLEConstants.OLEBatchProcess.TRUE,OLEConstants.OLEBatchProcess.TRUE));
243                                 keyValues.add(new ConcreteKeyValue(OLEConstants.OLEBatchProcess.FALSE,OLEConstants.OLEBatchProcess.FALSE));
244                             }
245                         }
246                         else if (dataType.equalsIgnoreCase(OLEConstants.OLEBatchProcess.INVOICE_IMPORT)) {
247                             if(attributeName.equalsIgnoreCase(OLEConstants.OLEBatchProcess.ACCOUNT_NUMBER)){
248                                 List<Account> accountNumberList = (List<Account>) KRADServiceLocator.getBusinessObjectService().findAll(Account.class);
249                                 for (Account account : accountNumberList) {
250                                     keyValues.add(new ConcreteKeyValue(account.getAccountNumber(), account.getAccountNumber()));
251                                 }
252                             }
253                             else if(attributeName.equalsIgnoreCase(OLEConstants.OLEBatchProcess.OBJECT_CODE)){
254                                 List<ObjectCode> objectCodeList = (List<ObjectCode>) KRADServiceLocator.getBusinessObjectService().findAll(ObjectCode.class);
255                                 if(objectCodeList != null && objectCodeList.size() >0){
256                                     Set<KeyValue> objectCodes  = new HashSet<>();
257                                     for (ObjectCode objectCode : objectCodeList) {
258                                         objectCodes.add(new ConcreteKeyValue(objectCode.getFinancialObjectCode(), objectCode.getFinancialObjectCode()));
259                                     }
260                                     keyValues.addAll(objectCodes);
261                                 }
262                             }
263                             else if(attributeName.equalsIgnoreCase(OLEConstants.OLEBatchProcess.VENDOR_NUMBER)){
264                                 List<VendorDetail> vendorDetailList = (List<VendorDetail>) KRADServiceLocator.getBusinessObjectService().findAll(VendorDetail.class);
265                                 for (VendorDetail vendorDetail : vendorDetailList) {
266                                     keyValues.add(new ConcreteKeyValue(vendorDetail.getVendorHeaderGeneratedIdentifier() + "-" + vendorDetail.getVendorDetailAssignedIdentifier(), vendorDetail.getVendorHeaderGeneratedIdentifier() + "-" + vendorDetail.getVendorDetailAssignedIdentifier()));
267                                 }
268                             }
269                             else if(attributeName.equalsIgnoreCase(OLEConstants.OLEBatchProcess.CURRENCY_TYPE)){
270                                 List<OleCurrencyType> currencyTypeList = (List<OleCurrencyType>) KRADServiceLocator.getBusinessObjectService().findAll(OleCurrencyType.class);
271                                 for (OleCurrencyType currencyType : currencyTypeList) {
272                                     keyValues.add(new ConcreteKeyValue(currencyType.getCurrencyType(), currencyType.getCurrencyType()));
273                                 }
274                             }
275                         }
276                     }
277                 }
278             }
279         Collections.sort(keyValues, new Comparator<KeyValue>() {
280             public int compare(KeyValue keyValue1, KeyValue keyValue2) {
281                 return keyValue1.getValue().compareTo(keyValue2.getValue());
282 
283             }
284         });
285     }
286         return keyValues;
287 }
288 
289     public List<String> getItemLocation() {
290         List<String> locationList = new ArrayList<String>();
291         List<KeyValue> options = new ArrayList<KeyValue>();
292         Map parentCriteria1 = new HashMap();
293         parentCriteria1.put(OLEConstants.OLEBatchProcess.LEVEL_CODE, OLEConstants.LOC_LEVEL_SHELVING);
294         List<OleLocationLevel> oleLocationLevel = (List<OleLocationLevel>) getBusinessObjectService().findMatching(OleLocationLevel.class, parentCriteria1);
295         String shelvingId = oleLocationLevel.get(0).getLevelId();
296         Map parentCriteria = new HashMap();
297         parentCriteria.put(OLEConstants.LEVEL_ID, shelvingId);
298         Collection<OleLocation> oleLocationCollection = getBusinessObjectService().findMatching(OleLocation.class, parentCriteria);
299         for (OleLocation oleLocation : oleLocationCollection) {
300             String locationName = oleLocation.getLocationName();
301             String levelCode = oleLocation.getLocationCode();
302             boolean parentId = oleLocation.getParentLocationId() != null ? true : false;
303             while (parentId) {
304                 Map criteriaMap = new HashMap();
305                 criteriaMap.put(OLEConstants.LOCATION_ID, oleLocation.getParentLocationId());
306                 OleLocation location = getBusinessObjectService().findByPrimaryKey(OleLocation.class,
307                         criteriaMap);
308                 if (locationName != null) {
309                     locationName = location.getLocationName() + OLEConstants.SLASH + locationName;
310                 }
311                 if (levelCode != null) {
312                     levelCode = location.getLocationCode() + OLEConstants.SLASH + levelCode;
313                 }
314                 parentId = location.getParentLocationId() != null ? true : false;
315                 oleLocation = location;
316             }
317             options.add(new ConcreteKeyValue(levelCode, levelCode));
318         }
319         Map<String, String> map = new HashMap<String, String>();
320         for (KeyValue option : options) {
321             map.put(option.getKey(), option.getValue());
322         }
323         Map<String, Object> map1 = sortByLocation(map);
324         for (Map.Entry<String, Object> entry : map1.entrySet()) {
325             locationList.add((String) entry.getValue());
326         }
327         return locationList;
328     }
329     private Map<String, Object> sortByLocation(Map<String, String> parentCriteria) {
330         Map<String, Object> map = new LinkedHashMap<String, Object>();
331         List<String> keyList = new ArrayList<String>(parentCriteria.keySet());
332         List<String> valueList = new ArrayList<String>(parentCriteria.values());
333         Set<String> sortedSet = new TreeSet<String>(valueList);
334         Object[] sortedArray = sortedSet.toArray();
335         int size = sortedArray.length;
336         for (int i = 0; i < size; i++) {
337             map.put(keyList.get(valueList.indexOf(sortedArray[i])), sortedArray[i]);
338         }
339         return map;
340     }
341 
342     public List<KeyValue> getItemStatus() {
343 
344         List<KeyValue> options = new ArrayList<KeyValue>();
345         Collection<OleItemAvailableStatus> oleItemAvailableStatuses = KRADServiceLocator.getBusinessObjectService().findAll(OleItemAvailableStatus.class);
346         String excludeItemStatus = getParameter(OLEConstants.EXCLUDE_ITEM_STATUS);
347         Map<String,String> map = new HashMap<>();
348         if(excludeItemStatus!=null && !excludeItemStatus.isEmpty()){
349             String[] itemStatusList = excludeItemStatus.split(",");
350             for(String itemStatus : itemStatusList){
351                 map.put(itemStatus,itemStatus);
352             }
353         }
354         for (OleItemAvailableStatus type : oleItemAvailableStatuses) {
355             if (type.isActive() && !map.containsKey(type.getItemAvailableStatusCode())) {
356                 options.add(new ConcreteKeyValue(type.getItemAvailableStatusCode(), type.getItemAvailableStatusName()));
357             }
358         }
359         return options;
360     }
361 
362     public String getParameter(String name){
363         ParameterKey parameterKey = ParameterKey.create(OLEConstants.APPL_ID, OLEConstants.SELECT_NMSPC, OLEConstants.SELECT_CMPNT,name);
364         Parameter parameter = CoreServiceApiServiceLocator.getParameterRepositoryService().getParameter(parameterKey);
365         return parameter!=null?parameter.getValue():null;
366     }
367 }