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.HashMap;
019 import java.util.List;
020 import java.util.Map;
021
022 import javax.servlet.http.HttpServletRequest;
023
024 import org.apache.log4j.Logger;
025 import org.kuali.kfs.module.purap.PurapAuthorizationConstants;
026 import org.kuali.kfs.module.purap.PurapKeyConstants;
027 import org.kuali.kfs.module.purap.document.BulkReceivingDocument;
028 import org.kuali.kfs.sys.KFSConstants;
029 import org.kuali.kfs.sys.document.web.struts.FinancialSystemTransactionalDocumentFormBase;
030 import org.kuali.rice.kew.util.KEWConstants;
031 import org.kuali.rice.kns.util.KNSConstants;
032 import org.kuali.rice.kns.util.ObjectUtils;
033 import org.kuali.rice.kns.web.ui.ExtraButton;
034
035 public class BulkReceivingForm extends FinancialSystemTransactionalDocumentFormBase {
036
037 protected static final Logger LOG = Logger.getLogger(BulkReceivingForm.class);
038 protected Integer purchaseOrderId;
039
040 public BulkReceivingForm() {
041 super();
042 }
043
044 @Override
045 protected String getDefaultDocumentTypeName() {
046 return "RCVB";
047 }
048
049 public BulkReceivingDocument getBulkReceivingDocument() {
050 return (BulkReceivingDocument) getDocument();
051 }
052
053 public void setBulkReceivingDocument(BulkReceivingDocument bulkReceivingDocument) {
054 setDocument(bulkReceivingDocument);
055 }
056
057 public Integer getPurchaseOrderId() {
058 return purchaseOrderId;
059 }
060
061 public void setPurchaseOrderId(Integer purchaseOrderId) {
062 this.purchaseOrderId = purchaseOrderId;
063 }
064
065 /**
066 * Override the superclass method to add appropriate buttons for
067 * BulkReceivingDocument.
068 *
069 * @see org.kuali.rice.kns.web.struts.form.KualiForm#getExtraButtons()
070 */
071 @Override
072 public List<ExtraButton> getExtraButtons() {
073 extraButtons.clear();
074
075 String displayInitTab = (String)getEditingMode().get(PurapAuthorizationConstants.BulkReceivingEditMode.DISPLAY_INIT_TAB);
076 if (ObjectUtils.isNotNull(displayInitTab) && displayInitTab.equalsIgnoreCase("true")) {
077 extraButtons.add(createBulkReceivingContinueButton());
078 extraButtons.add(createClearInitFieldsButton());
079 }
080 else if (getBulkReceivingDocument().getDocumentHeader().getWorkflowDocument().stateIsEnroute() ||
081 getBulkReceivingDocument().getDocumentHeader().getWorkflowDocument().stateIsProcessed() ||
082 getBulkReceivingDocument().getDocumentHeader().getWorkflowDocument().stateIsFinal()) {
083 extraButtons.add(createPrintReceivingTicketButton());
084 }
085
086 return extraButtons;
087 }
088
089 protected ExtraButton createBulkReceivingContinueButton(){
090 ExtraButton continueButton = new ExtraButton();
091 continueButton.setExtraButtonProperty("methodToCall.continueBulkReceiving");
092 continueButton.setExtraButtonSource("${" + KFSConstants.RICE_EXTERNALIZABLE_IMAGES_URL_KEY + "}buttonsmall_continue.gif");
093 continueButton.setExtraButtonAltText("Continue");
094 return continueButton;
095 }
096
097 protected ExtraButton createClearInitFieldsButton(){
098 ExtraButton clearButton = new ExtraButton();
099 clearButton.setExtraButtonProperty("methodToCall.clearInitFields");
100 clearButton.setExtraButtonSource("${" + KFSConstants.RICE_EXTERNALIZABLE_IMAGES_URL_KEY + "}buttonsmall_clear.gif");
101 clearButton.setExtraButtonAltText("Clear");
102 return clearButton;
103 }
104
105 protected ExtraButton createPrintReceivingTicketButton(){
106 ExtraButton printButton = new ExtraButton();
107 printButton.setExtraButtonProperty("methodToCall.printReceivingTicketPDF");
108 printButton.setExtraButtonSource("${" + KFSConstants.EXTERNALIZABLE_IMAGES_URL_KEY + "}buttonsmall_print.gif");
109 printButton.setExtraButtonAltText("Print");
110 return printButton;
111 }
112
113 public String getGoodsDeliveredByLabel(){
114 return PurapKeyConstants.MESSAGE_BULK_RECEIVING_GOODSDELIVEREDBY_LABEL;
115 }
116
117
118 @Override
119 public boolean shouldMethodToCallParameterBeUsed(String methodToCallParameterName, String methodToCallParameterValue, HttpServletRequest request) {
120 if (KNSConstants.DISPATCH_REQUEST_PARAMETER.equals(methodToCallParameterName) && "printReceivingTicket".equals(methodToCallParameterValue)) {
121 return true;
122 }
123 return super.shouldMethodToCallParameterBeUsed(methodToCallParameterName, methodToCallParameterValue, request);
124 }
125 }