1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.ole.sys.document.authorization;
17
18 import java.util.Map;
19
20 import org.apache.commons.logging.Log;
21 import org.apache.commons.logging.LogFactory;
22 import org.kuali.ole.coa.businessobject.Account;
23 import org.kuali.ole.coa.service.AccountService;
24 import org.kuali.ole.sys.businessobject.AccountingLine;
25 import org.kuali.ole.sys.businessobject.FinancialSystemDocumentHeader;
26 import org.kuali.ole.sys.document.AccountingDocument;
27 import org.kuali.ole.sys.document.OLEAccountingDocument;
28 import org.kuali.ole.sys.identity.OleKimAttributes;
29 import org.kuali.rice.kim.api.identity.Person;
30 import org.kuali.rice.krad.document.Document;
31
32
33
34
35 public class AccountingDocumentAuthorizerBase extends FinancialSystemTransactionalDocumentAuthorizerBase {
36 private static final Log LOG = LogFactory.getLog(AccountingDocumentAuthorizerBase.class);
37
38
39
40
41
42
43
44
45 protected boolean determineLineEditability(AccountingLine line, Person currentUser, AccountService accountService) {
46 Account acct = accountService.getByPrimaryId(line.getChartOfAccountsCode(), line.getAccountNumber());
47 if (acct == null) return true;
48 return accountService.hasResponsibilityOnAccount(currentUser, acct);
49 }
50
51 @Override
52 protected void addRoleQualification(Object dataObject, Map<String,String> attributes) {
53 super.addRoleQualification(dataObject, attributes);
54 Document document = (Document)dataObject;
55
56
57
58
59
60
61 if ( ((OLEAccountingDocument)document).getSourceTotal() != null && (((OLEAccountingDocument) document).getFinancialSystemDocumentHeader()).getFinancialDocumentTotalAmount() != null ) {
62 attributes.put(OleKimAttributes.FINANCIAL_DOCUMENT_TOTAL_AMOUNT, ((FinancialSystemDocumentHeader)document).getFinancialDocumentTotalAmount().toString());
63 } else {
64 attributes.put(OleKimAttributes.FINANCIAL_DOCUMENT_TOTAL_AMOUNT, "0" );
65 }
66 }
67 }
68