/* * The Kuali Financial System, a comprehensive financial management system for higher education. * * Copyright 2005-2014 The Kuali Foundation * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.kuali.kfs.gl.service.impl; import java.util.Iterator; import java.util.Map; import org.kuali.kfs.gl.businessobject.Encumbrance; import org.kuali.kfs.gl.dataaccess.EncumbranceDao; import org.kuali.kfs.gl.service.EncumbranceService; import org.kuali.kfs.sys.context.SpringContext; import org.kuali.rice.krad.service.BusinessObjectService; import org.springframework.transaction.annotation.Transactional; /** * The base implementation of EncumbranaceService */ @Transactional public class EncumbranceServiceImpl implements EncumbranceService { private static org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(EncumbranceServiceImpl.class); private EncumbranceDao encumbranceDao; /** * Saves an encumbrance * * @param enc an encumbrance to save * @see org.kuali.kfs.gl.service.EncumbranceService#save(org.kuali.kfs.gl.businessobject.Encumbrance) */ public void save(Encumbrance enc) { LOG.debug("save() started"); SpringContext.getBean(BusinessObjectService.class).save(enc); } /** * Removes all encumbrances from the database having a certain chart and fiscal year * @param chartOfAccountsCode the chart of encumbrances to purge * @param year the year of encumbrances to purge * @see org.kuali.kfs.gl.service.EncumbranceService#purgeYearByChart(java.lang.String, int) */ public void purgeYearByChart(String chartOfAccountsCode, int year) { LOG.debug("purgeYearByChart() started"); encumbranceDao.purgeYearByChart(chartOfAccountsCode, year); } /** * Returns an iterator with all encumbrances from the database. * @return an Iterator of all encumbrances * @see org.kuali.kfs.gl.service.EncumbranceService#getAllEncumbrances() */ public Iterator getAllEncumbrances() { return encumbranceDao.getAllEncumbrances(); } /** * Field accessor for EncumbranceDao * * @param ed */ public void setEncumbranceDao(EncumbranceDao ed) { encumbranceDao = ed; } /** * group all encumbrances with/without the given document type code by fiscal year, chart, account, sub-account, object code, * sub object code, and balance type code, and summarize the encumbrance amount and the encumbrance close amount. * * @param documentTypeCode the given document type code * @param included indicate if all encumbrances with the given document type are included in the results or not * @see org.kuali.kfs.gl.service.EncumbranceService#getSummarizedEncumbrances(java.lang.String, boolean) */ public Iterator getSummarizedEncumbrances(String documentTypeCode, boolean included) { return encumbranceDao.getSummarizedEncumbrances(documentTypeCode, included); } /** * Given the fieldValues, forms a query and finds the open encumbrances that match it * @param fieldValues the values to form an encumbrance query out of * @param includeZeroEncumbrances * @return an Iterator full of qualifying encumbrances * @see org.kuali.kfs.gl.service.EncumbranceService#findOpenEncumbrance(java.util.Map) */ public Iterator findOpenEncumbrance(Map fieldValues, boolean includeZeroEncumbrances) { return encumbranceDao.findOpenEncumbrance(fieldValues, includeZeroEncumbrances); } /** * Returns the count of all open encumbrances in the database, matching the given field values * @param fieldValues the field values to build an encumbrance query out of * @param includeZeroEncumbrances * @return the number of qualifying open encumbrances * @see org.kuali.kfs.gl.service.EncumbranceService#getOpenEncumbranceCount(java.util.Map) */ public Integer getOpenEncumbranceRecordCount(Map fieldValues, boolean includeZeroEncumbrances) { return encumbranceDao.getOpenEncumbranceRecordCount(fieldValues, includeZeroEncumbrances); } /** * Finds open encumbrances that have the keys given in the map summarized by balance type codes * where the sum(ACCOUNT_LINE_ENCUMBRANCE_AMOUNT - sum(ACCOUNT_LINE_ENCUMBRANCE_CLOSED_AMOUNT ) != 0 * and returns true if there are any results. * * @param fieldValues the input fields and values * @param includeZeroEncumbrances * @return true if there any open encumbrances when summarized by balance type * @see org.kuali.kfs.gl.dataaccess.EncumbranceDao#hasSummarizedOpenEncumbranceRecords(java.util.Map) */ public boolean hasSummarizedOpenEncumbranceRecords(Map fieldValues, boolean includeZeroEncumbrances) { return encumbranceDao.hasSummarizedOpenEncumbranceRecords(fieldValues, includeZeroEncumbrances); } }