1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.ole.module.purap.document.validation.impl;
17
18 import org.kuali.ole.module.purap.PurapConstants;
19 import org.kuali.ole.module.purap.PurapKeyConstants;
20 import org.kuali.ole.module.purap.businessobject.PurApAccountingLine;
21 import org.kuali.ole.module.purap.businessobject.PurApItem;
22 import org.kuali.ole.sys.document.validation.GenericValidation;
23 import org.kuali.ole.sys.document.validation.event.AttributedDocumentEvent;
24 import org.kuali.rice.krad.util.GlobalVariables;
25
26 import java.math.BigDecimal;
27
28 public class PurchasingAccountsPayableAccountPercentValidation extends GenericValidation {
29
30 private PurApItem itemForValidation;
31
32
33
34
35 @Override
36 public boolean validate(AttributedDocumentEvent event) {
37 boolean valid = true;
38 boolean isAnyAccountingLineZero = false;
39
40 BigDecimal totalPercent = BigDecimal.ZERO;
41 BigDecimal desiredPercent = new BigDecimal("100");
42 for (PurApAccountingLine account : itemForValidation.getSourceAccountingLines()) {
43 if (account.getAccountLinePercent() != null
44 && account.getAccountLinePercent().compareTo(BigDecimal.ZERO) == 0) {
45 isAnyAccountingLineZero = true;
46 }
47 if (account.getAccountLinePercent() != null) {
48 totalPercent = totalPercent.add(account.getAccountLinePercent());
49 } else {
50 totalPercent = totalPercent.add(BigDecimal.ZERO);
51 }
52 }
53 if (desiredPercent.compareTo(totalPercent) != 0) {
54 GlobalVariables.getMessageMap().putError(PurapConstants.ITEM_TAB_ERROR_PROPERTY, PurapKeyConstants.ERROR_ITEM_ACCOUNTING_TOTAL, itemForValidation.getItemIdentifierString());
55 valid = false;
56 }
57
58
59 if (isAnyAccountingLineZero && itemForValidation.getSourceAccountingLines().size() > 1) {
60 GlobalVariables.getMessageMap().putError(PurapConstants.ITEM_TAB_ERROR_PROPERTY,
61 PurapKeyConstants.ERROR_ITEM_ACCOUNTING_ZERO, itemForValidation.getItemIdentifierString());
62 valid = false;
63 }
64
65 return valid;
66 }
67
68 public PurApItem getItemForValidation() {
69 return itemForValidation;
70 }
71
72 public void setItemForValidation(PurApItem itemForValidation) {
73 this.itemForValidation = itemForValidation;
74 }
75
76 }