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 * This class has methods for payment maintenance. 025 */ 026public interface PaymentMaintenanceService { 027 028 /** 029 * This method cancels the pending payment of the given payment id if the following rules apply. - 030 * Payment status must be: "open", "held", or "pending/ACH". 031 * @param paymentGroupId Primary key of the PaymentGroup that the Payment Detail to be canceled belongs to. 032 * @param paymentDetailId Primary key of the PaymentDetail that was actually canceled. 033 * @param note Change note text entered by user. 034 * @param user The user that cancels the payment 035 * @return true if cancel payment succesful, false otherwise 036 */ 037 public boolean cancelPendingPayment(Integer paymentGroupId, Integer paymentDetailId, String note, Person user); 038 039 /** 040 * This method holds pending payment of the given payment id if the following rules apply. - Payment status 041 * must be: "open". 042 * @param paymentGroupId Primary key of the PaymentGroup that the Payment Detail to be held belongs to. 043 * @param note Change note text entered by user. 044 * @param user The user that holds the payment 045 */ 046 public boolean holdPendingPayment(Integer paymentGroupId, String note, Person user); 047 048 /** 049 * This method removes holds on pending payments of the given payment id if the following rules 050 * apply. - Payment status must be: "held". 051 * 052 * @param paymentGroupId Primary key of the PaymentGroup that the Payment Detail to be un-held belongs to 053 * @param note Change note text entered by user. 054 * @param user the user that removes hold on payment 055 */ 056 public boolean removeHoldPendingPayment(Integer paymentGroupId, String note, Person user); 057 058 /** 059 * This method cancels all disbursements with the same disbursment number as that of the given payment id 060 * if the following rules apply. - Payment status must be: "extr". 061 * @param paymentGroupId Primary key of the PaymentGroup that the Payment Detail to be cancelled belongs to. 062 * @param paymentDetailId Primary key of the PaymentDetail that was actually cancelled. 063 * @param note Change note text entered by user. 064 * @param user The user that cancels the disbursement 065 */ 066 public boolean cancelDisbursement(Integer paymentGroupId, Integer paymentDetailId, String note, Person user); 067 068 /** 069 * This method re-opens all disbursements with the same disbursment number as that of 070 * the given payment id if the following rules apply. - Payment status must be: "cdis". 071 * @param paymentGroupId Primary key of the PaymentGroup that the Payment Detail to be canceled/reissued belongs to. 072 * @param changeText Change note text entered by user. 073 * @param user The user that cancels/reissues disbursement 074 */ 075 public boolean reissueDisbursement(Integer paymentGroupId, String changeText, Person user); 076 077 /** 078 * This method cancels and re-opens all disbursements with the same disbursment number as that of 079 * the given payment id if the following rules apply. - Payment status must be: "extr". 080 * @param paymentGroupId Primary key of the PaymentGroup that the Payment Detail to be canceled/reissued belongs to. 081 * @param changeText Change note text entered by user. 082 * @param user The user that cancels/reissues disbursement 083 */ 084 public boolean cancelReissueDisbursement(Integer paymentGroupId, String changeText, Person user); 085 086 /** 087 * This method changes the immediate flag 088 * @param paymentGroupId the payment group id 089 * @param changeText the change text 090 * @param user the user that changes the immediate flag 091 */ 092 public void changeImmediateFlag(Integer paymentGroupId, String changeText, Person user); 093} 094