001/*
002 * Copyright 2007 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 */
019package org.kuali.ole.pdp.service;
020
021import org.kuali.rice.kim.api.identity.Person;
022
023/**
024 * @author HSTAPLET
025 */
026/**
027 * This class defines services for Batch maintenance.
028 */
029public 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