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 PurchasingAccountsPayableAccountTotalValidation extends GenericValidation {
29
30 private PurApItem itemForValidation;
31
32
33
34
35 public boolean validate(AttributedDocumentEvent event) {
36 boolean valid = true;
37
38
39 BigDecimal totalAmount = BigDecimal.ZERO;
40 BigDecimal desiredAmount =
41 (itemForValidation.getTotalAmount() == null) ? new BigDecimal(0) : itemForValidation.getTotalAmount().bigDecimalValue();
42 for (PurApAccountingLine account : itemForValidation.getSourceAccountingLines()) {
43 if (account.getAmount() != null) {
44 totalAmount = totalAmount.add(account.getAmount().bigDecimalValue());
45 } else {
46 totalAmount = totalAmount.add(BigDecimal.ZERO);
47 }
48 }
49 if (desiredAmount.compareTo(totalAmount) != 0) {
50 GlobalVariables.getMessageMap().putError(PurapConstants.ITEM_TAB_ERROR_PROPERTY, PurapKeyConstants.ERROR_ITEM_ACCOUNTING_TOTAL_AMOUNT, itemForValidation.getItemIdentifierString(), desiredAmount.toString());
51 valid = false;
52 }
53
54
55 return valid;
56 }
57
58 public PurApItem getItemForValidation() {
59 return itemForValidation;
60 }
61
62 public void setItemForValidation(PurApItem itemForValidation) {
63 this.itemForValidation = itemForValidation;
64 }
65
66 }