001    /*
002     * Copyright 2011 The Kuali Foundation.
003     * 
004     * Licensed under the Educational Community License, Version 2.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/ecl2.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.kfs.integration.ec;
017    
018    import java.util.List;
019    
020    
021    /**
022     * Exposes service methods that may be used by the modules outside of Effort Certification
023     */
024    public interface EffortCertificationModuleService {
025    
026        /**
027         * Returns open or closed report definitions whose reporting period span the given accounting period and
028         * report on pay for given position object group code.
029         * 
030         * @param fiscalYear - fiscal year of accounting period
031         * @param periodCode - month of accounting period
032         * @return report definitions whose period contain the give period
033         */
034        public List<EffortCertificationReport> findReportDefinitionsForPeriod(Integer fiscalYear, String periodCode, String positionObjectGroupCode);
035    
036        /**
037         * Checks whether the given employee has an certification for one of the given open report periods.
038         * 
039         * @param effortCertificationReports - report periods to check for employee certification
040         * @param emplid - employee id of certification
041         * @return report definition for which emplid has certification, or null
042         */
043        public EffortCertificationReport isEmployeeWithOpenCertification(List<EffortCertificationReport> effortCertificationReports, String emplid);
044        
045        /**
046         * Returns sub account type codes defined for cost share.
047         */
048        public List<String> getCostShareSubAccountTypeCodes();
049    }