001: /*
002: * Copyright 2006-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.financial.service.impl;
017:
018: import java.util.ArrayList;
019: import java.util.Collection;
020: import java.util.HashMap;
021: import java.util.List;
022:
023: import org.kuali.core.service.BusinessObjectService;
024: import org.kuali.kfs.KFSPropertyConstants;
025: import org.kuali.module.financial.bo.FiscalYearFunctionControl;
026: import org.kuali.module.financial.service.FiscalYearFunctionControlService;
027:
028: /**
029: *
030: * This is the default implementation of the FiscalyearFunctionControlService interface.
031: *
032: */
033: public class FiscalYearFunctionControlServiceImpl implements
034: FiscalYearFunctionControlService {
035:
036: public static String FY_FUNCTION_CONTROL_BA_ALLOWED = "BAACTV";
037: public static String FY_FUNCTION_CONTROL_BASE_AMT_ALLOWED = "BASEAD";
038:
039: private BusinessObjectService businessObjectService;
040:
041: /**
042: * Retrieves the FiscalYearFunctionControl by its composite primary key (all passed in as parameters) and returns the active
043: * indicator.
044: *
045: * @param postingYear The posting year associated with the fiscal year function control being retrieved.
046: * @param financialSystemFunctionControlCode The function control code associated with the fiscal year function control being retrieved.
047: * @return Returns the value of the active indicator; returns null if PK is not found
048: */
049: private boolean getActiveIndByPrimaryId(Integer postingYear,
050: String financialSystemFunctionControlCode) {
051: HashMap<String, Object> keys = new HashMap();
052: keys.put(KFSPropertyConstants.UNIVERSITY_FISCAL_YEAR,
053: postingYear);
054: keys
055: .put(
056: KFSPropertyConstants.FINANCIAL_SYSTEM_FUNCTION_CONTROL_CODE,
057: financialSystemFunctionControlCode);
058: FiscalYearFunctionControl control = (FiscalYearFunctionControl) businessObjectService
059: .findByPrimaryKey(FiscalYearFunctionControl.class, keys);
060: return (control != null)
061: && control.isFinancialSystemFunctionActiveIndicator();
062: }
063:
064: /**
065: * Retrieves list of FiscalYearFunctionControls by its function control code.
066: *
067: * @param financialSystemFunctionControlCode The function control code to search by.
068: * @param financialSystemFunctionActiveIndicator An active indicator used as a search parameter.
069: * @return The list of FiscalYearFunctionControls matching the search criteria provided.
070: */
071: private List getByFunctionControlCodeAndActiveInd(
072: String financialSystemFunctionControlCode,
073: String financialSystemFunctionActiveIndicator) {
074: HashMap values = new HashMap();
075: values
076: .put(
077: KFSPropertyConstants.FINANCIAL_SYSTEM_FUNCTION_CONTROL_CODE,
078: financialSystemFunctionControlCode);
079: values
080: .put(
081: KFSPropertyConstants.FINANCIAL_SYSTEM_FUNCTION_ACTIVE_INDICATOR,
082: financialSystemFunctionActiveIndicator);
083: Collection controls = businessObjectService.findMatching(
084: FiscalYearFunctionControl.class, values);
085: return new ArrayList(controls);
086: }
087:
088: /**
089: * Retrieves a collection of FiscalYearFunctionControls allowed for use in a budget adjustment.
090: *
091: * @return A collection of FiscalYearFunctionControls representing the years allowed in a budget adjustment.
092: *
093: * @see FiscalYearFunctionControlService#getBudgetAdjustmentAllowedYears(String)
094: */
095: public List getBudgetAdjustmentAllowedYears() {
096: return getByFunctionControlCodeAndActiveInd(
097: FY_FUNCTION_CONTROL_BA_ALLOWED, "Y");
098: }
099:
100: /**
101: * This method retrieves the value of the active indicator for a FiscalYearFunctionControl instance for the
102: * given posting year.
103: *
104: * @param postingYear The posting year used as a search parameter.
105: * @return True if the active indicator for the retrieved FiscalYearFunctionControl value retrieved is true, false otherwise.
106: *
107: * @see FiscalYearFunctionControlService#isBaseAmountChangeAllowed(Integer, String)
108: */
109: public boolean isBaseAmountChangeAllowed(Integer postingYear) {
110: return getActiveIndByPrimaryId(postingYear,
111: FY_FUNCTION_CONTROL_BASE_AMT_ALLOWED);
112: }
113:
114: /**
115: *
116: * Gets the value of the businessObjectService attribute.
117: * @return An instance of the businessObjectService attribute.
118: */
119: public BusinessObjectService getBusinessObjectService() {
120: return businessObjectService;
121: }
122:
123: /**
124: *
125: * Sets the businessObjectService attribute.
126: * @param businessObjectService The businessObjectService instance to set.
127: */
128: public void setBusinessObjectService(
129: BusinessObjectService businessObjectService) {
130: this.businessObjectService = businessObjectService;
131: }
132: }
|