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.module.ec.service;
017    
018    import java.util.List;
019    import java.util.Map;
020    
021    import org.kuali.kfs.integration.ld.LaborLedgerBalance;
022    import org.kuali.kfs.module.ec.businessobject.EffortCertificationDocumentBuild;
023    import org.kuali.kfs.module.ec.businessobject.EffortCertificationReportDefinition;
024    
025    /**
026     * Provide the facility used to generate documents (build) from the labor ledger balances
027     */
028    public interface EffortCertificationDocumentBuildService {
029        
030        /**
031         * clear up documents and detail lines (build) with the fiscal year and report number of the given field values
032         * 
033         * @param fieldValues the map containing fiscalYear and report number
034         */
035        public void removeExistingDocumentBuild(Map<String, String> fieldValues);
036    
037        /**
038         * generate documents(build) for effort certification from the given collection of labor ledger balance
039         * 
040         * @param postingYear the fiscal year when the document is generated
041         * @param reportDefinition the given report definition of effort certification
042         * @param ledgerBalances the given labor ledger balances
043         * @return documents(build) for effort certification from the given collection of labor ledger balance
044         */
045        public List<EffortCertificationDocumentBuild> generateDocumentBuildList(Integer postingYear, EffortCertificationReportDefinition reportDefinition, List<LaborLedgerBalance> ledgerBalances);
046        
047        /**
048         * generate a document(build) for effort certification from the given collection of labor ledger balance
049         * 
050         * @param postingYear the fiscal year when the document is generated
051         * @param reportDefinition the given report definition of effort certification
052         * @param ledgerBalances the given labor ledger balances
053         * @return a document(build) for effort certification from the given collection of labor ledger balance
054         */
055        public EffortCertificationDocumentBuild generateDocumentBuild(Integer postingYear, EffortCertificationReportDefinition reportDefinition, List<LaborLedgerBalance> ledgerBalances);
056    }