1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.kuali.kfs.fp.document.validation.impl;
20
21 import org.apache.commons.lang.StringUtils;
22 import org.kuali.kfs.fp.document.CapitalAccountingLinesDocumentBase;
23 import org.kuali.kfs.fp.document.authorization.CapitalAccountingLinesAuthorizer;
24 import org.kuali.kfs.integration.cab.CapitalAssetBuilderModuleService;
25 import org.kuali.kfs.sys.KFSPropertyConstants;
26 import org.kuali.kfs.sys.businessobject.FinancialSystemDocumentHeader;
27 import org.kuali.kfs.sys.document.Correctable;
28 import org.kuali.kfs.sys.document.validation.event.AttributedDocumentEvent;
29 import org.kuali.kfs.sys.document.validation.impl.AccountingLineAccessibleValidation;
30
31
32
33
34 public class CapitalAccountingLinesAccessibleValidation extends AccountingLineAccessibleValidation {
35
36 protected CapitalAssetBuilderModuleService capitalAssetBuilderModuleService;
37
38
39
40
41
42
43
44 @Override
45 public boolean validate(AttributedDocumentEvent event) {
46 if (accountingDocumentForValidation instanceof CapitalAccountingLinesDocumentBase) {
47 CapitalAccountingLinesDocumentBase caldb = (CapitalAccountingLinesDocumentBase) accountingDocumentForValidation;
48
49 if(caldb.getCapitalAccountingLines().size() > 0 && capitalAssetBuilderModuleService.hasCapitalAssetObjectSubType(accountingLineForValidation)) {
50
51
52
53 if (accountingDocumentForValidation instanceof Correctable) {
54 final String errorDocumentNumber = ((FinancialSystemDocumentHeader)accountingDocumentForValidation.getDocumentHeader()).getFinancialDocumentInErrorNumber();
55 if (StringUtils.isNotBlank(errorDocumentNumber)) {
56 return true;
57 }
58 }
59
60
61
62 final CapitalAccountingLinesAuthorizer capitalAccountingLineAuthorizer = (CapitalAccountingLinesAuthorizer) lookupAccountingLineAuthorizer();
63 return capitalAccountingLineAuthorizer.determineEditPermissionOnFieldBypassCapitalCheck(accountingDocumentForValidation, accountingLineForValidation, getAccountingLineCollectionProperty(), KFSPropertyConstants.ACCOUNT_NUMBER, true);
64 }
65 }
66
67 return super.validate(event);
68 }
69
70
71
72
73
74
75 public void setCapitalAssetBuilderModuleService(CapitalAssetBuilderModuleService capitalAssetBuilderModuleService) {
76 this.capitalAssetBuilderModuleService = capitalAssetBuilderModuleService;
77 }
78 }