View Javadoc
1   /*
2    * Copyright 2008 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.fp.document.validation.impl;
17  
18  import org.kuali.ole.sys.OLEConstants;
19  import org.kuali.ole.sys.OLEKeyConstants;
20  import org.kuali.ole.sys.businessobject.AccountingLine;
21  import org.kuali.ole.sys.document.validation.GenericValidation;
22  import org.kuali.ole.sys.document.validation.event.AttributedDocumentEvent;
23  import org.kuali.rice.core.api.util.type.KualiDecimal;
24  import org.kuali.rice.krad.util.GlobalVariables;
25  
26  /**
27   * Validation that validates the amounts on accounting lines for the Cash Receipt family of documents. 
28   */
29  public class CashReceiptFamilyAccountingLineAmountValidation extends GenericValidation {
30      private AccountingLine accountingLineForValidation;
31      
32      /**
33       * Cash Receipt documents allow both positive and negative values, so we only need to check for zero amounts.
34       * @see org.kuali.ole.sys.document.validation.Validation#validate(org.kuali.ole.sys.document.validation.event.AttributedDocumentEvent)
35       */
36      public boolean validate(AttributedDocumentEvent event) {
37          KualiDecimal amount = getAccountingLineForValidation().getAmount();
38  
39          if (KualiDecimal.ZERO.compareTo(amount) == 0) { // amount == 0
40              GlobalVariables.getMessageMap().putError(OLEConstants.AMOUNT_PROPERTY_NAME, OLEKeyConstants.ERROR_ZERO_AMOUNT, "an accounting line");
41              return false;
42          }
43  
44          return true;
45      }
46  
47      /**
48       * Gets the accountingLineForValidation attribute. 
49       * @return Returns the accountingLineForValidation.
50       */
51      public AccountingLine getAccountingLineForValidation() {
52          return accountingLineForValidation;
53      }
54  
55      /**
56       * Sets the accountingLineForValidation attribute value.
57       * @param accountingLineForValidation The accountingLineForValidation to set.
58       */
59      public void setAccountingLineForValidation(AccountingLine accountingLineForValidation) {
60          this.accountingLineForValidation = accountingLineForValidation;
61      }
62  }