001package org.kuali.ole.deliver.maintenance; 002 003 004import org.kuali.ole.OLEConstants; 005import org.kuali.ole.deliver.bo.OleDeliverRequestBo; 006import org.kuali.ole.deliver.service.OleDeliverRequestDocumentHelperServiceImpl; 007import org.kuali.ole.docstore.common.client.DocstoreClientLocator; 008import org.kuali.ole.sys.context.SpringContext; 009import org.kuali.ole.util.DocstoreUtil; 010import org.kuali.rice.krad.maintenance.MaintainableImpl; 011import org.kuali.rice.krad.maintenance.MaintenanceDocument; 012import org.kuali.rice.krad.maintenance.MaintenanceLock; 013import org.kuali.rice.krad.util.GlobalVariables; 014import org.kuali.rice.krad.util.ObjectUtils; 015 016import java.sql.Date; 017import java.util.Collections; 018import java.util.List; 019import java.util.Map; 020 021/** 022 * Created with IntelliJ IDEA. 023 * User: ? 024 * Date: 10/11/12 025 * Time: 7:01 PM 026 * To change this template use File | Settings | File Templates. 027 */ 028public class OleDeliverRequestMaintenanceImpl extends MaintainableImpl { 029 030 private DocstoreUtil docstoreUtil; 031 public DocstoreUtil getDocstoreUtil() { 032 033 if (docstoreUtil == null) { 034 docstoreUtil = SpringContext.getBean(DocstoreUtil.class); 035 036 } 037 return docstoreUtil; 038 } 039 040 041 /** 042 * This method will set the default value for the name object and also set the description when a new patron document is created 043 * 044 * @param document 045 * @param requestParameters 046 */ 047 @Override 048 public void processAfterNew(MaintenanceDocument document, 049 Map<String, String[]> requestParameters) { 050 super.processAfterNew(document, requestParameters); 051 document.getDocumentHeader().setDocumentDescription(OLEConstants.NEW_REQUEST_DOC); 052 OleDeliverRequestBo oleDeliverRequestBo = (OleDeliverRequestBo) document.getNewMaintainableObject().getDataObject(); 053 oleDeliverRequestBo.setRequestCreator(OLEConstants.OleDeliverRequest.REQUESTER_PATRON); 054 oleDeliverRequestBo.setOperatorCreateId(GlobalVariables.getUserSession().getPrincipalId()); 055 oleDeliverRequestBo.setOperatorCreateName(GlobalVariables.getUserSession().getPrincipalName()); 056 oleDeliverRequestBo.setCreateDate(new Date(System.currentTimeMillis())); 057 058 059 } 060 061 /** 062 * This method will set the description when copy is selected 063 * 064 * @param document 065 * @param requestParameters 066 */ 067 @Override 068 public void processAfterCopy(MaintenanceDocument document, Map<String, String[]> requestParameters) { 069 super.processAfterCopy(document, requestParameters); 070 document.getDocumentHeader().setDocumentDescription(OLEConstants.COPY_REQUEST_DOC); 071 OleDeliverRequestBo oleDeliverRequestBo = (OleDeliverRequestBo) document.getNewMaintainableObject().getDataObject(); 072 oleDeliverRequestBo.setCreateDate(new Date(System.currentTimeMillis())); 073 } 074 075 /** 076 * This method will set the description for edit operation 077 * 078 * @param document 079 * @param requestParameters 080 */ 081 @Override 082 public void processAfterEdit(MaintenanceDocument document, Map<String, String[]> requestParameters) { 083 super.processAfterEdit(document, requestParameters); 084 OleDeliverRequestBo oleDeliverRequestBo = (OleDeliverRequestBo) document.getNewMaintainableObject().getDataObject(); 085 document.getDocumentHeader().setDocumentDescription(OLEConstants.EDIT_REQUEST_DOC); 086 } 087 088 @Override 089 public Object retrieveObjectForEditOrCopy(MaintenanceDocument document, Map<String, String> dataObjectKeys) { 090 OleDeliverRequestBo oleDeliverRequestBo = (OleDeliverRequestBo) super.retrieveObjectForEditOrCopy(document, dataObjectKeys); 091 OleDeliverRequestBo newOleDeliverRequestBo = (OleDeliverRequestBo) ObjectUtils.deepCopy(oleDeliverRequestBo); 092 if (newOleDeliverRequestBo.getModifiedDate() == null) { 093 newOleDeliverRequestBo.setModifiedDate(new Date(System.currentTimeMillis())); 094 } // 095 // if(newOleDeliverRequestBo.getOperatorModifiedId()==null || (newOleDeliverRequestBo.getOperatorModifiedId()!=null && newOleDeliverRequestBo.getOperatorModifiedId().isEmpty())){ 096 newOleDeliverRequestBo.setOperatorModifiedId(GlobalVariables.getUserSession().getPrincipalId()); 097 newOleDeliverRequestBo.setOperatorModifierName(GlobalVariables.getUserSession().getPrincipalName()); 098 // } 099 if (newOleDeliverRequestBo.getOperatorCreateId() != null && !newOleDeliverRequestBo.getOperatorCreateId().isEmpty()) { 100 newOleDeliverRequestBo.setRequestCreator(OLEConstants.OleDeliverRequest.REQUESTER_OPERATOR); 101 } else if (newOleDeliverRequestBo.getProxyBorrowerId() != null && !newOleDeliverRequestBo.getProxyBorrowerId().isEmpty()) { 102 newOleDeliverRequestBo.setRequestCreator(OLEConstants.OleDeliverRequest.REQUESTER_PROXY_PATRON); 103 } else { 104 newOleDeliverRequestBo.setRequestCreator(OLEConstants.OleDeliverRequest.REQUESTER_PATRON); 105 } 106 OleDeliverRequestDocumentHelperServiceImpl oleDeliverRequestDocumentHelperService = new OleDeliverRequestDocumentHelperServiceImpl(); 107 // newOleDeliverRequestBo = oleDeliverRequestDocumentHelperService.processItem(newOleDeliverRequestBo); 108 OleDeliverRequestBo oleDeliverRequestBo1 = newOleDeliverRequestBo; 109 110 getDocstoreUtil().isItemAvailableInDocStore(newOleDeliverRequestBo); 111 112 newOleDeliverRequestBo.setOleItem(null); 113 114 return newOleDeliverRequestBo; 115 116 117 } 118 119 @Override 120 public List<MaintenanceLock> generateMaintenanceLocks() { 121 return Collections.emptyList(); 122 } 123 124}