View Javadoc
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  }