001 /* 002 * Copyright 2011 The Kuali Foundation. 003 * 004 * Licensed under the Educational Community License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.opensource.org/licenses/ecl2.php 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016 package org.kuali.kfs.module.endow.document.web.struts; 017 018 import javax.servlet.http.HttpServletRequest; 019 import javax.servlet.http.HttpServletResponse; 020 021 import org.apache.struts.action.ActionForm; 022 import org.apache.struts.action.ActionForward; 023 import org.apache.struts.action.ActionMapping; 024 import org.kuali.kfs.module.endow.businessobject.ClassCode; 025 import org.kuali.kfs.module.endow.businessobject.EndowmentTransactionCode; 026 import org.kuali.kfs.module.endow.businessobject.Security; 027 import org.kuali.kfs.module.endow.businessobject.SecurityValuationMethod; 028 import org.kuali.kfs.module.endow.document.EndowmentSecurityDetailsDocumentBase; 029 import org.kuali.kfs.module.endow.document.EndowmentTransactionLinesDocumentBase; 030 import org.kuali.kfs.module.endow.document.HoldingHistoryValueAdjustmentDocument; 031 import org.kuali.kfs.module.endow.document.service.ClassCodeService; 032 import org.kuali.kfs.module.endow.document.service.EndowmentTransactionCodeService; 033 import org.kuali.kfs.module.endow.document.service.SecurityService; 034 import org.kuali.kfs.module.endow.document.service.SecurityValuationMethodService; 035 import org.kuali.kfs.sys.KFSConstants; 036 import org.kuali.kfs.sys.context.SpringContext; 037 import org.kuali.kfs.sys.document.web.struts.FinancialSystemTransactionalDocumentActionBase; 038 import org.kuali.kfs.module.endow.document.HoldingHistoryValueAdjustmentDocument; 039 040 public class HoldingHistoryValueAdjustmentDocumentAction extends FinancialSystemTransactionalDocumentActionBase { 041 042 /** 043 * @see org.kuali.rice.kns.web.struts.action.KualiDocumentActionBase#refresh(org.apache.struts.action.ActionMapping, 044 * org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) 045 */ 046 @Override 047 public ActionForward refresh(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { 048 super.refresh(mapping, form, request, response); 049 050 // To Determine if the refresh is coming from Security lookup 051 refreshSecurityDetails(mapping, form, request, response); 052 053 return mapping.findForward(KFSConstants.MAPPING_BASIC); 054 } 055 056 /** 057 * Retrieves and sets the reference Security object on Source or Target transactionsecurity based on the looked up value. 058 * 059 * @param mapping 060 * @param form 061 * @param request 062 * @param response 063 * @return 064 * @throws Exception 065 */ 066 public ActionForward refreshSecurityDetails(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { 067 HoldingHistoryValueAdjustmentDocumentForm ehvaForm = (HoldingHistoryValueAdjustmentDocumentForm) form; 068 069 HoldingHistoryValueAdjustmentDocument ehvaDocument = (HoldingHistoryValueAdjustmentDocument) ehvaForm.getDocument(); 070 Security security = SpringContext.getBean(SecurityService.class).getByPrimaryKey(ehvaDocument.getSecurityId()); 071 072 ClassCode classCode = SpringContext.getBean(ClassCodeService.class).getByPrimaryKey(security.getSecurityClassCode()); 073 security.setClassCode(classCode); 074 075 SecurityValuationMethod securityValuation = SpringContext.getBean(SecurityValuationMethodService.class).getByPrimaryKey(classCode.getValuationMethod()); 076 classCode.setSecurityValuationMethod(securityValuation); 077 ehvaDocument.setSecurity(security); 078 079 return null; 080 } 081 082 }