001: /*
002: * Copyright 2005-2007 The Kuali Foundation.
003: *
004: * Licensed under the Educational Community License, Version 1.0 (the "License");
005: * you may not use this file except in compliance with the License.
006: * You may obtain a copy of the License at
007: *
008: * http://www.opensource.org/licenses/ecl1.php
009: *
010: * Unless required by applicable law or agreed to in writing, software
011: * distributed under the License is distributed on an "AS IS" BASIS,
012: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013: * See the License for the specific language governing permissions and
014: * limitations under the License.
015: */
016: package org.kuali.module.chart.service.impl;
017:
018: import java.util.ArrayList;
019: import java.util.Iterator;
020: import java.util.List;
021:
022: import org.apache.log4j.Logger;
023: import org.kuali.core.bo.user.UniversalUser;
024: import org.kuali.core.util.spring.Cached;
025: import org.kuali.module.chart.bo.Account;
026: import org.kuali.module.chart.bo.Delegate;
027: import org.kuali.module.chart.dao.AccountDao;
028: import org.kuali.module.chart.service.AccountService;
029: import org.springframework.transaction.annotation.Transactional;
030:
031: /**
032: * This class is the service implementation for the Account structure. This is the default, Kuali provided implementation.
033: */
034: @Transactional
035: public class AccountServiceImpl implements AccountService {
036: private static final Logger LOG = Logger
037: .getLogger(AccountServiceImpl.class);
038:
039: private AccountDao accountDao;
040:
041: /**
042: * Retrieves an Account object based on primary key.
043: *
044: * @param chartOfAccountsCode - Chart of Accounts Code
045: * @param accountNumber - Account Number
046: * @return Account
047: * @see AccountService
048: */
049: public Account getByPrimaryId(String chartOfAccountsCode,
050: String accountNumber) {
051: if (LOG.isDebugEnabled()) {
052: LOG.debug("retrieving account by primaryId ("
053: + chartOfAccountsCode + "," + accountNumber + ")");
054: }
055:
056: Account account = accountDao.getByPrimaryId(
057: chartOfAccountsCode, accountNumber);
058:
059: if (LOG.isDebugEnabled()) {
060: LOG.debug("retrieved account by primaryId ("
061: + chartOfAccountsCode + "," + accountNumber + ")");
062: }
063: return account;
064: }
065:
066: /**
067: * Method is used by KualiAccountAttribute to enable caching of accounts for routing.
068: *
069: * @see org.kuali.module.chart.service.impl.AccountServiceImpl#getByPrimaryId(java.lang.String, java.lang.String)
070: */
071: @Cached
072: public Account getByPrimaryIdWithCaching(
073: String chartOfAccountsCode, String accountNumber) {
074: return accountDao.getByPrimaryId(chartOfAccountsCode,
075: accountNumber);
076: }
077:
078: /**
079: * @see org.kuali.module.chart.service.AccountService#getAccountsThatUserIsResponsibleFor(org.kuali.bo.user.KualiUser)
080: */
081: public List getAccountsThatUserIsResponsibleFor(
082: UniversalUser universalUser) {
083: if (LOG.isDebugEnabled()) {
084: LOG.debug("retrieving accountsResponsible list for user "
085: + universalUser.getPersonName());
086: }
087:
088: // gets the list of accounts that the user is the Fiscal Officer of
089: List accountList = accountDao
090: .getAccountsThatUserIsResponsibleFor(universalUser);
091: if (LOG.isDebugEnabled()) {
092: LOG.debug("retrieved accountsResponsible list for user "
093: + universalUser.getPersonName());
094: }
095: return accountList;
096: }
097:
098: /**
099: * @see org.kuali.module.chart.service.AccountService#hasResponsibilityOnAccount(org.kuali.core.bo.user.UniversalUser,
100: * org.kuali.module.chart.bo.Account)
101: */
102: public boolean hasResponsibilityOnAccount(UniversalUser kualiUser,
103: Account account) {
104: return accountDao.determineUserResponsibilityOnAccount(
105: kualiUser, account);
106: }
107:
108: /**
109: * @see org.kuali.module.chart.service.AccountService#getPrimaryDelegationByExample(org.kuali.module.chart.bo.Delegate,
110: * java.lang.String)
111: */
112: public Delegate getPrimaryDelegationByExample(
113: Delegate delegateExample, String totalDollarAmount) {
114: return accountDao.getPrimaryDelegationByExample(
115: delegateExample, totalDollarAmount);
116: }
117:
118: /**
119: * @see org.kuali.module.chart.service.AccountService#getSecondaryDelegationsByExample(org.kuali.module.chart.bo.Delegate,
120: * java.lang.String)
121: */
122: public List getSecondaryDelegationsByExample(
123: Delegate delegateExample, String totalDollarAmount) {
124: return accountDao.getSecondaryDelegationsByExample(
125: delegateExample, totalDollarAmount);
126: }
127:
128: /**
129: * get all accounts in the system. This is needed by a sufficient funds rebuilder job
130: *
131: * @return iterator of all accounts
132: */
133: public Iterator getAllAccounts() {
134: LOG.debug("getAllAccounts() started");
135:
136: Iterator accountIter = accountDao.getAllAccounts();
137: List accountList = new ArrayList();
138: while (accountIter.hasNext()) {
139: accountList.add(accountIter.next());
140: }
141: return accountList.iterator();
142: }
143:
144: /**
145: * @param accountDao The accountDao to set.
146: */
147: public void setAccountDao(AccountDao accountDao) {
148: this.accountDao = accountDao;
149: }
150:
151: }
|