1 /*
2 * Copyright 2008-2009 The Kuali Foundation
3 *
4 * Licensed under the Educational Community License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.opensource.org/licenses/ecl2.php
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16 package org.kuali.ole.module.purap.document.validation.impl;
17
18 import org.kuali.ole.module.purap.PurapConstants.RequisitionStatuses;
19 import org.kuali.ole.module.purap.businessobject.PurApItem;
20 import org.kuali.ole.module.purap.document.RequisitionDocument;
21 import org.kuali.ole.sys.OLEConstants;
22 import org.kuali.ole.sys.document.validation.BranchingValidation;
23 import org.kuali.ole.sys.document.validation.event.AttributedDocumentEvent;
24
25 public class RequisitionRequiresAccountValidationBranchingValidation extends BranchingValidation {
26
27 public static final String NEEDS_ACCOUNT_VALIDATION = "needsAccountValidation";
28
29 private PurApItem itemForValidation;
30
31 /**
32 * Requisition should only force complete accounting strings under the following cases: any accounts have been entered, document
33 * is in "hasAccountingLines" route level, or if document is in "account review" route level.
34 *
35 * @see org.kuali.ole.sys.document.validation.BranchingValidation#determineBranch(org.kuali.ole.sys.document.validation.event.AttributedDocumentEvent)
36 */
37 @Override
38 protected String determineBranch(AttributedDocumentEvent event) {
39 RequisitionDocument req = (RequisitionDocument) event.getDocument();
40 //for app doc status
41 //to be removed
42 /*remove req.isDocumentStoppedInRouteNode(NodeDetailEnum.HAS_ACCOUNTING_LINES) ||
43 req.isDocumentStoppedInRouteNode(NodeDetailEnum.ACCOUNT_REVIEW) ||
44 req.isDocumentStoppedInRouteNode(NodeDetailEnum.CONTENT_REVIEW) ||
45 -kfsmi-4592*/
46 if (req.isDocumentStoppedInRouteNode(RequisitionStatuses.NODE_HAS_ACCOUNTING_LINES) ||
47 req.isDocumentStoppedInRouteNode(RequisitionStatuses.NODE_ACCOUNT) ||
48 req.isDocumentStoppedInRouteNode(RequisitionStatuses.NODE_CONTENT_REVIEW) ||
49 !itemForValidation.getSourceAccountingLines().isEmpty() || req.isBlanketApproveRequest()) {
50 return NEEDS_ACCOUNT_VALIDATION;
51 } else {
52 return OLEConstants.EMPTY_STRING;
53 }
54 }
55
56 public PurApItem getItemForValidation() {
57 return itemForValidation;
58 }
59
60 public void setItemForValidation(PurApItem itemForValidation) {
61 this.itemForValidation = itemForValidation;
62 }
63
64 }