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