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.businessobject.inquiry; 017 018 import java.math.BigDecimal; 019 import java.util.HashMap; 020 import java.util.Map; 021 import java.util.Properties; 022 023 import org.kuali.kfs.module.endow.EndowPropertyConstants; 024 import org.kuali.kfs.module.endow.businessobject.KEMIDHistoricalBalanceDetail; 025 import org.kuali.kfs.module.endow.businessobject.KEMIDHistoricalReportingGroup; 026 import org.kuali.kfs.sys.KFSConstants; 027 import org.kuali.kfs.sys.businessobject.inquiry.KfsInquirableImpl; 028 import org.kuali.kfs.sys.context.SpringContext; 029 import org.kuali.rice.kns.bo.BusinessObject; 030 import org.kuali.rice.kns.lookup.HtmlData; 031 import org.kuali.rice.kns.lookup.HtmlData.AnchorHtmlData; 032 import org.kuali.rice.kns.service.KualiConfigurationService; 033 import org.kuali.rice.kns.util.KNSConstants; 034 import org.kuali.rice.kns.util.ObjectUtils; 035 import org.kuali.rice.kns.util.UrlFactory; 036 037 public class KEMIDHistoricalBalanceDetailInquirable extends KfsInquirableImpl { 038 039 /** 040 * @see org.kuali.kfs.sys.businessobject.inquiry.KfsInquirableImpl#getInquiryUrl(org.kuali.rice.kns.bo.BusinessObject, 041 * java.lang.String, boolean) 042 */ 043 @Override 044 public HtmlData getInquiryUrl(BusinessObject businessObject, String attributeName, boolean forceInquiry) { 045 KEMIDHistoricalBalanceDetail historicalBalanceDetail = (KEMIDHistoricalBalanceDetail) businessObject; 046 047 boolean isIncome = EndowPropertyConstants.KEMID_HIST_BAL_DET_INC_AT_MARKET.equals(attributeName); 048 boolean isIncomeNotNullOrZero = ObjectUtils.isNotNull(historicalBalanceDetail.getIncomeAtMarket()) && (historicalBalanceDetail.getIncomeAtMarket().compareTo(BigDecimal.ZERO) != 0); 049 boolean isPrincipal = EndowPropertyConstants.KEMID_HIST_BAL_DET_PRINC_AT_MARKET.equals(attributeName); 050 boolean isPrincipalNotNullOrZero = ObjectUtils.isNotNull(historicalBalanceDetail.getPrincipalAtMarket()) && (historicalBalanceDetail.getPrincipalAtMarket().compareTo(BigDecimal.ZERO) != 0); 051 052 if ((isIncome && isIncomeNotNullOrZero) || (isPrincipal && isPrincipalNotNullOrZero)) { 053 054 Properties params = new Properties(); 055 params.put(KFSConstants.DISPATCH_REQUEST_PARAMETER, KFSConstants.SEARCH_METHOD); 056 params.put(KFSConstants.BUSINESS_OBJECT_CLASS_ATTRIBUTE, KEMIDHistoricalReportingGroup.class.getName()); 057 params.put(KNSConstants.DOC_FORM_KEY, "88888888"); 058 params.put(KFSConstants.HIDE_LOOKUP_RETURN_LINK, "true"); 059 params.put(KFSConstants.BACK_LOCATION, SpringContext.getBean(KualiConfigurationService.class).getPropertyString(KNSConstants.APPLICATION_URL_KEY) + "/" + KFSConstants.MAPPING_PORTAL + ".do"); 060 params.put(KFSConstants.LOOKUP_READ_ONLY_FIELDS, EndowPropertyConstants.KEMID + "," + EndowPropertyConstants.KEMID_HIST_BAL_DET_PURPOSE_CODE + "," + EndowPropertyConstants.KEMID_HIST_REP_GRP_CD + "," + EndowPropertyConstants.KEMID_HIST_REP_GRP_IP_IND + "," + EndowPropertyConstants.KEMID_HIST_BAL_DET_DATE_ID + "," + EndowPropertyConstants.KEMID_HIST_BAL_DET_KEMID_CLOSED_INDICATOR + "," + EndowPropertyConstants.KEMID_HIST_REP_GRP_KEMID_SHORT_TTL + "," + EndowPropertyConstants.KEMID_HIST_REP_GRP_PURPOSE_DESC + "," + EndowPropertyConstants.KEMID_HIST_REP_GRP_DESC + "," + EndowPropertyConstants.KEMID_HIST_REP_GRP_IP_IND_DESC); 061 062 params.put(EndowPropertyConstants.KEMID, UrlFactory.encode(String.valueOf(historicalBalanceDetail.getKemid()))); 063 params.put(EndowPropertyConstants.KEMID_HIST_BAL_DET_PURPOSE_CODE, UrlFactory.encode(historicalBalanceDetail.getKemidObj().getPurposeCode())); 064 params.put(EndowPropertyConstants.KEMID_HIST_BAL_DET_DATE_ID, UrlFactory.encode(String.valueOf(historicalBalanceDetail.getHistoryBalanceDateId()))); 065 params.put(EndowPropertyConstants.KEMID_HIST_BAL_DET_KEMID_CLOSED_INDICATOR, historicalBalanceDetail.getKemidObj().isClose() ? "Yes" : "No"); 066 params.put(EndowPropertyConstants.KEMID_HIST_REP_GRP_IP_IND, historicalBalanceDetail.getIncomePrincipalIndicator()); 067 params.put(EndowPropertyConstants.KEMID_HIST_REP_GRP_CD, historicalBalanceDetail.getReportingGroupCode()); 068 params.put(EndowPropertyConstants.KEMID_HIST_REP_GRP_KEMID_SHORT_TTL, historicalBalanceDetail.getKemidObj().getShortTitle()); 069 params.put(EndowPropertyConstants.KEMID_HIST_REP_GRP_PURPOSE_DESC, historicalBalanceDetail.getKemidObj().getPurpose().getName()); 070 params.put(EndowPropertyConstants.KEMID_HIST_REP_GRP_DESC, historicalBalanceDetail.getReportingGroup().getName()); 071 072 String url = UrlFactory.parameterizeUrl(KNSConstants.LOOKUP_ACTION, params); 073 074 Map<String, String> fieldList = new HashMap<String, String>(); 075 fieldList.put(EndowPropertyConstants.KEMID, historicalBalanceDetail.getKemid().toString()); 076 fieldList.put(EndowPropertyConstants.KEMID_HIST_BAL_DET_PURPOSE_CODE, historicalBalanceDetail.getKemidObj().getPurposeCode()); 077 fieldList.put(EndowPropertyConstants.KEMID_HIST_BAL_DET_DATE_ID, String.valueOf(historicalBalanceDetail.getHistoryBalanceDateId())); 078 fieldList.put(EndowPropertyConstants.KEMID_HIST_BAL_DET_KEMID_CLOSED_INDICATOR, historicalBalanceDetail.getKemidObj().isClose() ? "Yes" : "No"); 079 fieldList.put(EndowPropertyConstants.KEMID_HIST_REP_GRP_IP_IND, historicalBalanceDetail.getIncomePrincipalIndicator()); 080 fieldList.put(EndowPropertyConstants.KEMID_HIST_REP_GRP_CD, historicalBalanceDetail.getReportingGroupCode()); 081 fieldList.put(EndowPropertyConstants.KEMID_HIST_REP_GRP_KEMID_SHORT_TTL, historicalBalanceDetail.getKemidObj().getShortTitle()); 082 fieldList.put(EndowPropertyConstants.KEMID_HIST_REP_GRP_PURPOSE_DESC, historicalBalanceDetail.getKemidObj().getPurpose().getName()); 083 fieldList.put(EndowPropertyConstants.KEMID_HIST_REP_GRP_DESC, historicalBalanceDetail.getReportingGroup().getName()); 084 085 086 return getHyperLink(KEMIDHistoricalReportingGroup.class, fieldList, url); 087 } 088 else if ((isIncome && !isIncomeNotNullOrZero) || (isPrincipal && !isPrincipalNotNullOrZero)) { 089 return new AnchorHtmlData(" ", " ", " "); 090 } 091 else 092 093 return super.getInquiryUrl(businessObject, attributeName, forceInquiry); 094 } 095 096 }