1 package org.kuali.ole.ncip.service.impl;
2
3 import org.apache.log4j.Logger;
4 import org.extensiblecatalog.ncip.v2.service.*;
5 import org.kuali.ole.OLEConstants;
6 import org.kuali.ole.deliver.processor.LoanProcessor;
7 import org.kuali.ole.ncip.bo.*;
8 import org.kuali.ole.ncip.converter.OLELookupUserConverter;
9 import org.kuali.ole.ncip.service.OLECirculationService;
10 import org.kuali.ole.ncip.service.OLELookupUserService;
11 import org.kuali.ole.select.document.service.OleSelectDocumentService;
12 import org.kuali.ole.sys.context.SpringContext;
13 import org.kuali.rice.core.api.config.property.ConfigContext;
14 import org.kuali.rice.core.api.resourceloader.GlobalResourceLoader;
15
16 import java.math.BigDecimal;
17 import java.util.ArrayList;
18 import java.util.HashMap;
19 import java.util.List;
20
21
22
23
24
25
26
27
28 public class OLELookupUserServiceImpl implements OLELookupUserService {
29 private static final Logger LOG = Logger.getLogger(OLELookupUserServiceImpl.class);
30 private OLECirculationService oleCirculationService = getOleCirculationService();
31 private OLECirculationHelperServiceImpl oleCirculationHelperService= getOleCirculationHelperService();
32 private LoanProcessor loanProcessor;
33 private OLELookupUserConverter oleLookupUserConverter = getOleLookupUserConverter();
34 private OleSelectDocumentService oleSelectDocumentService;
35
36
37 public LoanProcessor getLoanProcessor() {
38 if (loanProcessor == null) {
39 loanProcessor = SpringContext.getBean(LoanProcessor.class);
40 }
41 return loanProcessor;
42 }
43
44 public OLECirculationService getOleCirculationService() {
45 if (null == oleCirculationService) {
46 oleCirculationService = GlobalResourceLoader.getService(OLENCIPConstants.CIRCULATION_SERVICE);
47 }
48 return oleCirculationService;
49 }
50
51 public void setOleCirculationService(OLECirculationService oleCirculationService) {
52 this.oleCirculationService = oleCirculationService;
53 }
54
55 public OLECirculationHelperServiceImpl getOleCirculationHelperService() {
56 if (null == oleCirculationHelperService) {
57 oleCirculationHelperService = GlobalResourceLoader.getService(OLENCIPConstants.CIRCULATION_HELPER_SERVICE);
58 }
59 return oleCirculationHelperService;
60 }
61
62 public void setOleCirculationHelperService(OLECirculationHelperServiceImpl oleCirculationHelperService) {
63 this.oleCirculationHelperService = oleCirculationHelperService;
64 }
65
66 public OLELookupUserConverter getOleLookupUserConverter() {
67 if(null == oleLookupUserConverter ){
68 oleLookupUserConverter = GlobalResourceLoader.getService(OLENCIPConstants.LOOKUP_USER_CONVERTER);
69 }
70 return oleLookupUserConverter;
71 }
72
73 public void setOleLookupUserConverter(OLELookupUserConverter oleLookupUserConverter) {
74 this.oleLookupUserConverter = oleLookupUserConverter;
75 }
76
77 @Override
78 public LookupUserResponseData performService(LookupUserInitiationData initData,
79 ServiceContext serviceContext,
80 RemoteServiceManager serviceManager) {
81
82 LookupUserResponseData responseData = new LookupUserResponseData();
83 oleCirculationService = getOleCirculationService();
84 oleCirculationHelperService = getOleCirculationHelperService();
85 OLELookupUserConverter OLELookupUserConverter = new org.kuali.ole.ncip.converter.OLELookupUserConverter();
86
87 String lookUpUserResponseXml = null;
88 OLELookupUser oleLookupUser = null;
89 List<Problem> problems = new ArrayList<Problem>();
90 AgencyId agencyId = null;
91 if (initData.getInitiationHeader() != null && initData.getInitiationHeader().getFromAgencyId() != null && initData.getInitiationHeader().getFromAgencyId().getAgencyId() != null && initData.getInitiationHeader().getFromAgencyId().getAgencyId().getValue() != null && !initData.getInitiationHeader().getFromAgencyId().getAgencyId().getValue().trim().isEmpty())
92 agencyId = new AgencyId(initData.getInitiationHeader().getFromAgencyId().getAgencyId().getValue());
93 else if (initData.getInitiationHeader() != null && initData.getInitiationHeader().getApplicationProfileType() != null && initData.getInitiationHeader().getApplicationProfileType().getValue() != null && !initData.getInitiationHeader().getApplicationProfileType().getValue().trim().isEmpty())
94 agencyId = new AgencyId(initData.getInitiationHeader().getApplicationProfileType().getValue());
95 else
96 agencyId = new AgencyId(getLoanProcessor().getParameter(OLENCIPConstants.AGENCY_ID_PARAMETER));
97
98 String operatorId, itemType = "";
99 HashMap<String, String> agencyPropertyMap = oleCirculationHelperService.getAgencyPropertyMap(agencyId.getValue());
100 itemType = agencyPropertyMap.get(OLENCIPConstants.ITEM_TYPE);
101 operatorId = agencyPropertyMap.get(OLENCIPConstants.OPERATOR_ID);
102 Problem problem = new Problem();
103 ProblemType problemType = new ProblemType("");
104 if (agencyPropertyMap.size() > 0) {
105 try {
106 LOG.info("User Id : "+initData.getUserId().getUserIdentifierValue() + " Operator Id : " + operatorId + " Agency Id "+agencyId.getValue());
107 lookUpUserResponseXml = oleCirculationService.lookupUserForNCIP(initData.getUserId().getUserIdentifierValue(), operatorId, agencyId.getValue());
108 oleLookupUser = (OLELookupUser) oleLookupUserConverter.getLookupUser(lookUpUserResponseXml);
109 if (oleLookupUser.getMessage() != null) {
110 if (oleLookupUser.getMessage().equalsIgnoreCase(ConfigContext.getCurrentContextConfig().getProperty(OLEConstants.RTRVD_SUCCESS))) {
111 responseData = generateResponseDataFromLookupUser(oleLookupUser, initData, agencyId);
112 responseData.setUserId(initData.getUserId());
113 } else if (oleLookupUser.getMessage().equalsIgnoreCase(ConfigContext.getCurrentContextConfig().getProperty(OLEConstants.NO_PATRON_INFO))) {
114 problem.setProblemDetail(ConfigContext.getCurrentContextConfig().getProperty(OLENCIPConstants.USER_UN_AVAILABLE));
115 problem.setProblemElement(OLENCIPConstants.USER);
116 problem.setProblemType(problemType);
117 problem.setProblemValue(initData.getUserId().getUserIdentifierValue());
118 problems.add(problem);
119 responseData.setProblems(problems);
120 } else if (oleLookupUser.getMessage().equalsIgnoreCase(ConfigContext.getCurrentContextConfig().getProperty(OLEConstants.INVALID_OPRTR_ID))) {
121 problem.setProblemDetail(ConfigContext.getCurrentContextConfig().getProperty(OLENCIPConstants.OPERATOR_UN_AVAILABLE));
122 problem.setProblemElement(OLENCIPConstants.OPERATOR);
123 problem.setProblemType(problemType);
124 problem.setProblemValue(initData.getUserId().getUserIdentifierValue());
125 problems.add(problem);
126 responseData.setProblems(problems);
127 }
128 }
129
130 } catch (Exception e) {
131 LOG.error(e);
132 }
133 } else {
134 problem.setProblemDetail(ConfigContext.getCurrentContextConfig().getProperty(OLENCIPConstants.INVALID_AGENCY_ID));
135 problem.setProblemElement(OLENCIPConstants.AGENCY_ID);
136 problem.setProblemType(problemType);
137 problem.setProblemValue(agencyId.getValue());
138 problems.add(problem);
139 responseData.setProblems(problems);
140 }
141
142 return responseData;
143 }
144
145 public LookupUserResponseData generateResponseDataFromLookupUser(OLELookupUser oleLookupUser, LookupUserInitiationData initData, AgencyId agencyId) {
146 LookupUserResponseData lookupUserResponseData = new LookupUserResponseData();
147 if (initData.getUserFiscalAccountDesired())
148 lookupUserResponseData.setUserFiscalAccounts(getUserFiscalAccounts(oleLookupUser.getOleItemFines(), agencyId));
149 if (initData.getLoanedItemsDesired())
150 lookupUserResponseData.setLoanedItems(getLoanedItems(oleLookupUser.getOleCheckedOutItems(), agencyId));
151 if (initData.getRequestedItemsDesired())
152 lookupUserResponseData.setRequestedItems(getRequestedItems(oleLookupUser.getOleHolds(), agencyId));
153 UserOptionalFields userOptionalFields = new UserOptionalFields();
154 PersonalNameInformation pni = new PersonalNameInformation();
155 String patronName = null;
156 String firstName = null;
157 String lastName = null;
158 String middleName = null;
159 if (oleLookupUser.getPatronName() != null) {
160 if (oleLookupUser.getPatronName().getFirstName() != null) {
161 firstName = oleLookupUser.getPatronName().getFirstName();
162 patronName = firstName;
163 }
164 if (oleLookupUser.getPatronName().getMiddleName() != null) {
165 middleName = oleLookupUser.getPatronName().getMiddleName();
166 if(patronName!=null){
167 patronName = patronName + " " + middleName;
168 }else{
169 patronName = middleName;
170 }
171 }
172 if (oleLookupUser.getPatronName().getLastName() != null) {
173 lastName = oleLookupUser.getPatronName().getLastName();
174 if(patronName!=null){
175 patronName = patronName + " " + lastName;
176 }else{
177 patronName = lastName;
178 }
179 }
180 StructuredPersonalUserName structuredPersonalUserName = new StructuredPersonalUserName();
181 if (firstName != null) {
182 structuredPersonalUserName.setGivenName(firstName);
183 }
184 if (lastName != null) {
185 structuredPersonalUserName.setSurname(lastName);
186 }
187 pni.setStructuredPersonalUserName(structuredPersonalUserName);
188 pni.setUnstructuredPersonalUserName(patronName);
189 }
190
191 NameInformation ni = new NameInformation();
192 ni.setPersonalNameInformation(pni);
193
194
195 List<OLEUserPrivilege> oleUserPrivilegeList = oleLookupUser.getOleUserPrivileges();
196 List<UserPrivilege> userPrivilegeList = new ArrayList<UserPrivilege>();
197 UserPrivilege userPrivilege;
198 UserPrivilegeStatus userPrivilegeStatus;
199 UserPrivilegeStatusType userPrivilegeStatusType;
200 for (OLEUserPrivilege oleUserPrivilege : oleUserPrivilegeList) {
201 userPrivilege = new UserPrivilege();
202 userPrivilegeStatus = new UserPrivilegeStatus();
203 AgencyUserPrivilegeType agencyUserPrivilegeType = new AgencyUserPrivilegeType("", oleUserPrivilege.getUserPrivilegeType());
204 userPrivilegeStatusType = new UserPrivilegeStatusType("", oleUserPrivilege.getUserPrivilegeStatus());
205 userPrivilegeStatus.setUserPrivilegeStatusType(userPrivilegeStatusType);
206 userPrivilege.setAgencyUserPrivilegeType(agencyUserPrivilegeType);
207 userPrivilege.setUserPrivilegeDescription(oleUserPrivilege.getUserPrivilegeDescription());
208 userPrivilege.setAgencyId(agencyId);
209 userPrivilege.setUserPrivilegeStatus(userPrivilegeStatus);
210 userPrivilegeList.add(userPrivilege);
211 }
212 if (lookupUserResponseData.getUserOptionalFields() == null) {
213 lookupUserResponseData.setUserOptionalFields(new UserOptionalFields());
214 }
215 if (initData.getUserAddressInformationDesired()) {
216 userOptionalFields.setUserAddressInformations(retrieveAddress(oleLookupUser));
217 }
218 if (initData.getUserPrivilegeDesired()) {
219 userOptionalFields.setUserPrivileges(userPrivilegeList);
220 }
221 if (initData.getNameInformationDesired()) {
222 userOptionalFields.setNameInformation(ni);
223 }
224 lookupUserResponseData.setUserOptionalFields(userOptionalFields);
225 return lookupUserResponseData;
226 }
227
228 private ArrayList<UserAddressInformation> retrieveAddress(OLELookupUser oleLookupUser) {
229 ArrayList<UserAddressInformation> userAddressInformationList = new ArrayList<UserAddressInformation>();
230 if (oleLookupUser.getPatronAddress() != null) {
231 userAddressInformationList.add(retrievePhysicalAddress(oleLookupUser));
232 }
233 if (oleLookupUser.getPatronEmail() != null) {
234 userAddressInformationList.add(retrieveElectronicAddress(oleLookupUser));
235 }
236 if (oleLookupUser.getPatronPhone() != null) {
237 userAddressInformationList.add(retrieveTelephoneNumber(oleLookupUser));
238 }
239 return userAddressInformationList;
240 }
241
242 private UserAddressInformation retrievePhysicalAddress(OLELookupUser oleLookupUser) {
243 UserAddressInformation userAddressInformation = new UserAddressInformation();
244 PhysicalAddress physicalAddress = new PhysicalAddress();
245 StructuredAddress structuredAddress = new StructuredAddress();
246 structuredAddress.setLine1(oleLookupUser.getPatronAddress().getLine1());
247 structuredAddress.setLine2(oleLookupUser.getPatronAddress().getLine2());
248 structuredAddress.setPostalCode(oleLookupUser.getPatronAddress().getPostalCode());
249 structuredAddress.setCountry(oleLookupUser.getPatronAddress().getCountryCode());
250 structuredAddress.setRegion(oleLookupUser.getPatronAddress().getStateProvinceCode());
251 structuredAddress.setLocality(oleLookupUser.getPatronAddress().getCity());
252 physicalAddress.setStructuredAddress(structuredAddress);
253 UserAddressRoleType userAddressRoleType = new UserAddressRoleType(oleLookupUser.getPatronAddress().getAddressTypeCode());
254 userAddressInformation.setUserAddressRoleType(userAddressRoleType);
255 PhysicalAddressType physicalAddressType = new PhysicalAddressType(OLENCIPConstants.ADDRESS_TYPE_SCHEME, oleLookupUser.getPatronAddress().getAddressTypeCode());
256 physicalAddress.setPhysicalAddressType(physicalAddressType);
257 userAddressInformation.setPhysicalAddress(physicalAddress);
258 return userAddressInformation;
259 }
260
261 private UserAddressInformation retrieveElectronicAddress(OLELookupUser oleLookupUser) {
262 ElectronicAddress electronicAddress = new ElectronicAddress();
263 electronicAddress.setElectronicAddressData(oleLookupUser.getPatronEmail().getEmailAddress());
264 ElectronicAddressType electronicAddressType = new ElectronicAddressType(getOleSelectDocumentService().getSelectParameterValue(OLENCIPConstants.EMAIL));
265 electronicAddress.setElectronicAddressType(electronicAddressType);
266 UserAddressInformation userAddressInformation = new UserAddressInformation();
267 UserAddressRoleType userAddressRoleType = new UserAddressRoleType(oleLookupUser.getPatronEmail().getEmailTypeCode());
268 userAddressInformation.setUserAddressRoleType(userAddressRoleType);
269 userAddressInformation.setElectronicAddress(electronicAddress);
270 return userAddressInformation;
271 }
272
273 private UserAddressInformation retrieveTelephoneNumber(OLELookupUser oleLookupUser) {
274 if (oleLookupUser.getPatronPhone() != null) {
275 ElectronicAddress phone = new ElectronicAddress();
276 phone.setElectronicAddressData(oleLookupUser.getPatronPhone().getPhoneNumber());
277 phone.setElectronicAddressType(new ElectronicAddressType(OLENCIPConstants.TELEPHONE_CODE));
278 UserAddressInformation uai = new UserAddressInformation();
279 uai.setUserAddressRoleType(new UserAddressRoleType(oleLookupUser.getPatronPhone().getPhoneTypeCode()));
280 uai.setElectronicAddress(phone);
281 return uai;
282 } else return null;
283 }
284
285 private List<LoanedItem> getLoanedItems(OLECheckedOutItems oleCheckedOutItems, AgencyId agencyId) {
286 LoanedItem loanedItem;
287 List<LoanedItem> loanedItems = new ArrayList<LoanedItem>();
288 if (oleCheckedOutItems != null && oleCheckedOutItems.getCheckedOutItems() != null) {
289 for (OLECheckedOutItem oleCheckedOutItems1 : oleCheckedOutItems.getCheckedOutItems()) {
290 loanedItem = new LoanedItem();
291 ItemId itemId = new ItemId();
292 itemId.setAgencyId(agencyId);
293 ItemIdentifierType itemIdentifierType = new ItemIdentifierType(OLENCIPConstants.IDENTIFIER_TYPE, oleCheckedOutItems1.getItemType());
294 itemId.setItemIdentifierType(itemIdentifierType);
295 itemId.setItemIdentifierValue(oleCheckedOutItems1.getItemId());
296 loanedItem.setItemId(itemId);
297 loanedItem.setReminderLevel(new BigDecimal(oleCheckedOutItems1.getNumberOfOverdueSent()));
298 Amount amount = new Amount();
299 CurrencyCode currencyCode = new CurrencyCode(OLENCIPConstants.USD, 1);
300 amount.setCurrencyCode(currencyCode);
301 amount.setMonetaryValue(new BigDecimal(0));
302 loanedItem.setAmount(amount);
303 List<BibliographicId> bibliographicIds = new ArrayList<BibliographicId>();
304 BibliographicId bibliographicId = new BibliographicId();
305 BibliographicItemId bibliographicItemId = new BibliographicItemId();
306 bibliographicItemId.setBibliographicItemIdentifier(oleCheckedOutItems1.getItemId());
307 BibliographicRecordId bibliographicRecordId = new BibliographicRecordId();
308 bibliographicRecordId.setAgencyId(agencyId);
309 bibliographicRecordId.setBibliographicRecordIdentifier(oleCheckedOutItems1.getCatalogueId());
310 bibliographicId.setBibliographicRecordId(bibliographicRecordId);
311 bibliographicId.setBibliographicItemId(bibliographicItemId);
312 bibliographicIds.add(bibliographicId);
313 loanedItem.setBibliographicIds(bibliographicIds);
314 loanedItem.setDateDue(oleCirculationHelperService.getGregorianCalendarDate(oleCheckedOutItems1.getDueDate()));
315 loanedItem.setTitle(oleCheckedOutItems1.getTitle());
316 MediumType mediumType = new MediumType(OLENCIPConstants.MEDIUM_TYPE, oleCheckedOutItems1.getItemType());
317 loanedItem.setMediumType(mediumType);
318
319 loanedItem.setDateCheckedOut(oleCirculationHelperService.getGregorianCalendarDate(oleCheckedOutItems1.getLoanDate()));
320 loanedItems.add(loanedItem);
321 }
322 }
323 return loanedItems;
324 }
325
326
327 private List<RequestedItem> getRequestedItems(OLEHolds oleHolds, AgencyId agencyId) {
328 RequestedItem requestedItem;
329 List<RequestedItem> requestedItems = new ArrayList<RequestedItem>();
330 if (oleHolds != null && oleHolds.getOleHoldList() != null) {
331 for (OLEHold oleHold : oleHolds.getOleHoldList()) {
332 requestedItem = new RequestedItem();
333 requestedItem.setHoldQueuePosition(new BigDecimal(oleHold.getPriority()));
334 ItemId itemId = new ItemId();
335 itemId.setItemIdentifierValue(oleHold.getItemId());
336 ItemIdentifierType itemIdentifierType = new ItemIdentifierType(OLENCIPConstants.IDENTIFIER_TYPE, oleHold.getItemType());
337 itemId.setItemIdentifierType(itemIdentifierType);
338 requestedItem.setItemId(itemId);
339 requestedItem.setItemId(itemId);
340 RequestId requestId = new RequestId();
341 requestId.setAgencyId(agencyId);
342 requestId.setRequestIdentifierValue(oleHold.getRequestId());
343 requestedItem.setRequestId(requestId);
344 RequestType requestType = new RequestType(OLENCIPConstants.REQUEST_TYPES, oleHold.getRequestType());
345 requestedItem.setRequestType(requestType);
346 RequestStatusType requestStatusType = new RequestStatusType("");
347 requestedItem.setRequestStatusType(requestStatusType);
348 requestedItem.setDatePlaced(oleCirculationHelperService.getGregorianCalendarDate(oleHold.getCreateDate()));
349 requestedItem.setPickupDate(oleCirculationHelperService.getGregorianCalendarDate(oleHold.getAvailableDate()));
350 PickupLocation pickupLocation = new PickupLocation(oleHold.getPickupLocation());
351 requestedItem.setPickupLocation(pickupLocation);
352 requestedItem.setTitle(oleHold.getTitle());
353 requestedItems.add(requestedItem);
354 }
355
356 }
357 return requestedItems;
358 }
359
360 private List<UserFiscalAccount> getUserFiscalAccounts(OLEItemFines oleItemFines, AgencyId agencyId) {
361 UserFiscalAccount userFiscalAccount;
362 List<UserFiscalAccount> userFiscalAccounts = new ArrayList<UserFiscalAccount>();
363
364 if (oleItemFines != null && oleItemFines.getOleItemFineList() != null) {
365 for (OLEItemFine oleItemFine : oleItemFines.getOleItemFineList()) {
366 userFiscalAccount = new UserFiscalAccount();
367 AccountBalance accountBalance = new AccountBalance();
368 CurrencyCode currencyCode = new CurrencyCode(OLENCIPConstants.USD, 1);
369 accountBalance.setCurrencyCode(currencyCode);
370 accountBalance.setMonetaryValue(new BigDecimal(oleItemFine.getBalance().intValue()));
371 userFiscalAccount.setAccountBalance(accountBalance);
372 List<AccountDetails> accountDetailsList = new ArrayList<AccountDetails>();
373 AccountDetails accountDetails = new AccountDetails();
374 accountDetails.setAccrualDate(oleCirculationHelperService.getGregorianCalendarDate(oleItemFine.getDateCharged()));
375 FiscalTransactionInformation fiscalTransactionInformation = new FiscalTransactionInformation();
376 Amount amount = new Amount();
377 amount.setCurrencyCode(currencyCode);
378 amount.setMonetaryValue(new BigDecimal(oleItemFine.getAmount().intValue()));
379 fiscalTransactionInformation.setAmount(amount);
380 PaymentMethodType paymentMethodType = new PaymentMethodType(OLENCIPConstants.PAYMENT_METHOD_TYPE, OLENCIPConstants.CASH);
381 fiscalTransactionInformation.setPaymentMethodType(paymentMethodType);
382 FiscalActionType fiscalActionType = new FiscalActionType(OLENCIPConstants.FISCAL_ACTION_TYPE, OLENCIPConstants.FINES);
383 fiscalTransactionInformation.setFiscalActionType(fiscalActionType);
384 FiscalTransactionType fiscalTransactionType = new FiscalTransactionType(OLENCIPConstants.FISCAL_TRANSACTION_TYPE, oleItemFine.getReason());
385 fiscalTransactionInformation.setFiscalTransactionType(fiscalTransactionType);
386 ItemDetails itemDetails = new ItemDetails();
387 ItemId itemId = new ItemId();
388 if (oleItemFine.getItemId() != null)
389 itemId.setItemIdentifierValue(oleItemFine.getItemId());
390 else
391 itemId.setItemIdentifierValue("");
392 itemId.setAgencyId(agencyId);
393 ItemIdentifierType itemIdentifierType = new ItemIdentifierType(OLENCIPConstants.IDENTIFIER_TYPE, OLENCIPConstants.ITEM_BARCODES);
394 itemId.setItemIdentifierType(itemIdentifierType);
395 itemDetails.setItemId(itemId);
396 BibliographicDescription bibliographicDescription = new BibliographicDescription();
397 bibliographicDescription.setTitle(oleItemFine.getTitle());
398 bibliographicDescription.setAuthor(oleItemFine.getAuthor());
399 itemDetails.setBibliographicDescription(bibliographicDescription);
400 fiscalTransactionInformation.setItemDetails(itemDetails);
401 accountDetails.setFiscalTransactionInformation(fiscalTransactionInformation);
402 accountDetailsList.add(accountDetails);
403 userFiscalAccount.setAccountDetails(accountDetailsList);
404 userFiscalAccounts.add(userFiscalAccount);
405 }
406 }
407 return userFiscalAccounts;
408 }
409
410
411 public OleSelectDocumentService getOleSelectDocumentService() {
412 if(oleSelectDocumentService == null){
413 oleSelectDocumentService = SpringContext.getBean(OleSelectDocumentService.class);
414 }
415 return oleSelectDocumentService;
416 }
417
418 public void setOleSelectDocumentService(OleSelectDocumentService oleSelectDocumentService) {
419 this.oleSelectDocumentService = oleSelectDocumentService;
420 }
421
422
423
424 }