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    /*
017     * Created on Aug 12, 2004
018     */
019    package org.kuali.kfs.pdp.service;
020    
021    import org.kuali.rice.kim.bo.Person;
022    
023    /**
024     * @author HSTAPLET
025     */
026    /**
027     * This class defines services for Batch maintenance.
028     */
029    public interface BatchMaintenanceService {
030    
031        /**
032         * This method cancels a pending Batch.
033         * @param batchId the id of the batch to be canceled
034         * @param note  a note stating the reason for the batch cancelation
035         * @param user the user that performed the batch cancelation
036         * @return true if batch successfully canceled, false otherwise
037         */
038        public boolean cancelPendingBatch(Integer batchId, String note, Person user);
039    
040        /**
041         * This method holds a pending Batch.
042         * @param batchId the id of the batch to perfomr hold on
043         * @param note a nite stating the reason for holding batch
044         * @param user the user that performed the batch hold
045         * @return true if batch successfully hold, false otherwise
046         */
047        public boolean holdPendingBatch(Integer batchId, String note, Person user);
048    
049        /**
050         * This method removes a hold on a Batch.
051         * @param batchId the id of the batch we want to remove the hold
052         * @param changeText a text stating the reason for removing the hold
053         * @param user the user that removed hold on batch
054         * @return  true if batch hold successfully removed, false otherwise
055         */
056        public boolean removeBatchHold(Integer batchId, String changeText, Person user);
057    
058        /**
059         * This method checks if the batch has open payments.
060         * @param batchId the id of the batch
061         * @return returns true if batch has open payments, false otherwise
062         */
063        public boolean doBatchPaymentsHaveOpenStatus(Integer batchId);
064    
065        /**
066         * This method checks if batch payments has open or held payments.
067         * @param batchId the id of the batch
068         * @return true if batch has open or held payments, false otherwise
069         */
070        public boolean doBatchPaymentsHaveOpenOrHeldStatus(Integer batchId);
071    
072        /**
073         * This method checks if batch payments have held status.
074         * @param batchId the id of the batch
075         * @return true if batch payments have held status, false otherwise
076         */
077        public boolean doBatchPaymentsHaveHeldStatus(Integer batchId);
078    }
079