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.purap.document.web.struts; 017 018 import java.util.List; 019 import java.util.Properties; 020 021 import org.kuali.kfs.module.purap.document.ElectronicInvoiceRejectDocument; 022 import org.kuali.kfs.pdp.PdpPropertyConstants; 023 import org.kuali.kfs.pdp.businessobject.PurchasingPaymentDetail; 024 import org.kuali.kfs.sys.KFSConstants; 025 import org.kuali.kfs.sys.KFSParameterKeyConstants; 026 import org.kuali.kfs.sys.context.SpringContext; 027 import org.kuali.kfs.sys.document.web.struts.FinancialSystemTransactionalDocumentFormBase; 028 import org.kuali.kfs.sys.service.impl.KfsParameterConstants; 029 import org.kuali.rice.kns.service.KualiConfigurationService; 030 import org.kuali.rice.kns.service.ParameterService; 031 import org.kuali.rice.kns.util.KNSConstants; 032 import org.kuali.rice.kns.util.UrlFactory; 033 import org.kuali.rice.kns.web.ui.ExtraButton; 034 035 /** 036 * Struts Action Form for Electronic Invoice Reject document. 037 */ 038 public class ElectronicInvoiceRejectForm extends FinancialSystemTransactionalDocumentFormBase { 039 040 /** 041 * Constructs a PaymentRequestForm instance and sets up the appropriately casted document. 042 */ 043 public ElectronicInvoiceRejectForm() { 044 super(); 045 } 046 047 @Override 048 protected String getDefaultDocumentTypeName() { 049 return "EIRT"; 050 } 051 052 public ElectronicInvoiceRejectDocument getElectronicInvoiceRejectDocument() { 053 return (ElectronicInvoiceRejectDocument) getDocument(); 054 } 055 056 public void setElectronicInvoiceRejectDocument(ElectronicInvoiceRejectDocument eirDocument) { 057 setDocument(eirDocument); 058 } 059 060 /** 061 * Build additional electronic invoice specific buttons and set extraButtons list. 062 * 063 * @return - list of extra buttons to be displayed to the user 064 */ 065 @Override 066 public List<ExtraButton> getExtraButtons() { 067 // clear out the extra buttons array 068 extraButtons.clear(); 069 070 ElectronicInvoiceRejectDocument eirDoc = this.getElectronicInvoiceRejectDocument(); 071 072 String externalImageURL = SpringContext.getBean(KualiConfigurationService.class).getPropertyString(KFSConstants.RICE_EXTERNALIZABLE_IMAGES_URL_KEY); 073 String appExternalImageURL = SpringContext.getBean(KualiConfigurationService.class).getPropertyString(KFSConstants.EXTERNALIZABLE_IMAGES_URL_KEY); 074 075 if (eirDoc.getDocumentHeader().getWorkflowDocument().stateIsEnroute()){ 076 if (eirDoc.isInvoiceResearchIndicator()) { 077 addExtraButton("methodToCall.completeResearch", appExternalImageURL + "buttonsmall_complresearch.gif", "Complete Research"); 078 } else { 079 addExtraButton("methodToCall.startResearch", appExternalImageURL + "buttonsmall_research.gif", "Research"); 080 } 081 } 082 083 return extraButtons; 084 } 085 086 /** 087 * Adds a new button to the extra buttons collection. 088 * 089 * @param property - property for button 090 * @param source - location of image 091 * @param altText - alternate text for button if images don't appear 092 */ 093 protected void addExtraButton(String property, String source, String altText) { 094 095 ExtraButton newButton = new ExtraButton(); 096 097 newButton.setExtraButtonProperty(property); 098 newButton.setExtraButtonSource(source); 099 newButton.setExtraButtonAltText(altText); 100 101 extraButtons.add(newButton); 102 } 103 104 /** 105 * This method builds the url for the disbursement info on the purap documents. 106 * @return the disbursement info url 107 */ 108 public String getDisbursementInfoUrl() { 109 String basePath = SpringContext.getBean(KualiConfigurationService.class).getPropertyString(KFSConstants.APPLICATION_URL_KEY); 110 ParameterService parameterService = SpringContext.getBean(ParameterService.class); 111 112 String orgCode = parameterService.getParameterValue(KfsParameterConstants.PURCHASING_BATCH.class, KFSParameterKeyConstants.PurapPdpParameterConstants.PURAP_PDP_ORG_CODE); 113 String subUnitCode = parameterService.getParameterValue(KfsParameterConstants.PURCHASING_BATCH.class, KFSParameterKeyConstants.PurapPdpParameterConstants.PURAP_PDP_SUB_UNIT_CODE); 114 115 Properties parameters = new Properties(); 116 parameters.put(KFSConstants.DISPATCH_REQUEST_PARAMETER, KFSConstants.SEARCH_METHOD); 117 parameters.put(KFSConstants.BACK_LOCATION, basePath + "/" + KFSConstants.MAPPING_PORTAL + ".do"); 118 parameters.put(KNSConstants.DOC_FORM_KEY, "88888888"); 119 parameters.put(KFSConstants.BUSINESS_OBJECT_CLASS_ATTRIBUTE, PurchasingPaymentDetail.class.getName()); 120 parameters.put(KFSConstants.HIDE_LOOKUP_RETURN_LINK, "true"); 121 parameters.put(KFSConstants.SUPPRESS_ACTIONS, "false"); 122 parameters.put(PdpPropertyConstants.PaymentDetail.PAYMENT_UNIT_CODE, orgCode); 123 parameters.put(PdpPropertyConstants.PaymentDetail.PAYMENT_SUBUNIT_CODE, subUnitCode); 124 125 String lookupUrl = UrlFactory.parameterizeUrl(basePath + "/" + KFSConstants.LOOKUP_ACTION, parameters); 126 127 return lookupUrl; 128 } 129 130 }