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.validation.impl; 017 018 import org.kuali.kfs.module.purap.PurapWorkflowConstants.RequisitionDocument.NodeDetailEnum; 019 import org.kuali.kfs.module.purap.businessobject.PurApItem; 020 import org.kuali.kfs.module.purap.document.RequisitionDocument; 021 import org.kuali.kfs.sys.KFSConstants; 022 import org.kuali.kfs.sys.document.validation.BranchingValidation; 023 import org.kuali.kfs.sys.document.validation.event.AttributedDocumentEvent; 024 025 public class RequisitionRequiresAccountValidationBranchingValidation extends BranchingValidation { 026 027 public static final String NEEDS_ACCOUNT_VALIDATION = "needsAccountValidation"; 028 029 private PurApItem itemForValidation; 030 031 /** 032 * Requisition should only force complete accounting strings under the following cases: any accounts have been entered, document 033 * is in "hasAccountingLines" route level, or if document is in "account review" route level. 034 * 035 * @see org.kuali.kfs.sys.document.validation.BranchingValidation#determineBranch(org.kuali.kfs.sys.document.validation.event.AttributedDocumentEvent) 036 */ 037 @Override 038 protected String determineBranch(AttributedDocumentEvent event) { 039 RequisitionDocument req = (RequisitionDocument)event.getDocument(); 040 041 if (req.isDocumentStoppedInRouteNode(NodeDetailEnum.HAS_ACCOUNTING_LINES) || 042 req.isDocumentStoppedInRouteNode(NodeDetailEnum.ACCOUNT_REVIEW) || 043 req.isDocumentStoppedInRouteNode(NodeDetailEnum.CONTENT_REVIEW) || 044 !itemForValidation.getSourceAccountingLines().isEmpty() || req.isBlanketApproveRequest()) { 045 return NEEDS_ACCOUNT_VALIDATION; 046 } else { 047 return KFSConstants.EMPTY_STRING; 048 } 049 } 050 051 public PurApItem getItemForValidation() { 052 return itemForValidation; 053 } 054 055 public void setItemForValidation(PurApItem itemForValidation) { 056 this.itemForValidation = itemForValidation; 057 } 058 059 }