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.gl.businessobject.inquiry; 017 018 import org.apache.commons.lang.StringUtils; 019 import org.kuali.kfs.gl.businessobject.Encumbrance; 020 import org.kuali.kfs.gl.businessobject.Transaction; 021 import org.kuali.kfs.sys.KFSConstants; 022 import org.kuali.kfs.sys.context.SpringContext; 023 import org.kuali.rice.kns.service.KualiConfigurationService; 024 025 /** 026 * This class provides a placeholder that can connect General Ledger business object with financial document in the presentation 027 * tier. The typical method is to generate url for the inquirable financial document. 028 */ 029 public class InquirableFinancialDocument { 030 031 private KualiConfigurationService kualiConfigurationService = SpringContext.getBean(KualiConfigurationService.class); 032 033 /** 034 * get the url of inquirable financial document for the given transaction 035 * 036 * @param transaction the business object that implements Transaction interface 037 * @return the url of inquirable financial document for the given transaction if the document is inquirable; otherwise, return 038 * empty string 039 */ 040 public String getInquirableDocumentUrl(Transaction transaction) { 041 if (transaction == null) { 042 return KFSConstants.EMPTY_STRING; 043 } 044 045 String docNumber = transaction.getDocumentNumber(); 046 String originationCode = transaction.getFinancialSystemOriginationCode(); 047 048 return getUrl(originationCode, docNumber); 049 } 050 051 /** 052 * Creates the url for a document drill down 053 * 054 * @param originCode the originatino code of the document 055 * @param docNumber the document number of the document to drill down on 056 * @return the URL for the drill down 057 */ 058 private String getUrl(String originCode, String docNumber) { 059 if (KFSConstants.ORIGIN_CODE_KUALI.equals(originCode) && !StringUtils.isBlank(docNumber)) { 060 return kualiConfigurationService.getPropertyString(KFSConstants.WORKFLOW_URL_KEY) + "/DocHandler.do?docId=" + docNumber + "&command=displayDocSearchView"; 061 } 062 return KFSConstants.EMPTY_STRING; 063 } 064 065 /** 066 * get the url of inquirable financial document for the given encumbrance 067 * 068 * @param encumbrance the encumrbance record 069 * @return the url of inquirable financial document for the given encumbrance if the document is inquirable; otherwise, return 070 * empty string 071 */ 072 public String getInquirableDocumentUrl(Encumbrance encumbrance) { 073 if (encumbrance == null) { 074 return KFSConstants.EMPTY_STRING; 075 } 076 077 String docNumber = encumbrance.getDocumentNumber(); 078 String originationCode = encumbrance.getOriginCode(); 079 080 return getUrl(originationCode, docNumber); 081 } 082 }