1 /* 2 * Copyright 2007 The Kuali Foundation 3 * 4 * Licensed under the Educational Community License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.opensource.org/licenses/ecl2.php 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 /* 17 * Created on Aug 12, 2004 18 */ 19 package org.kuali.ole.pdp.service; 20 21 import org.kuali.rice.kim.api.identity.Person; 22 23 /** 24 * This class has methods for payment maintenance. 25 */ 26 public interface PaymentMaintenanceService { 27 28 /** 29 * This method cancels the pending payment of the given payment id if the following rules apply. - 30 * Payment status must be: "open", "held", or "pending/ACH". 31 * @param paymentGroupId Primary key of the PaymentGroup that the Payment Detail to be canceled belongs to. 32 * @param paymentDetailId Primary key of the PaymentDetail that was actually canceled. 33 * @param note Change note text entered by user. 34 * @param user The user that cancels the payment 35 * @return true if cancel payment succesful, false otherwise 36 */ 37 public boolean cancelPendingPayment(Integer paymentGroupId, Integer paymentDetailId, String note, Person user); 38 39 /** 40 * This method holds pending payment of the given payment id if the following rules apply. - Payment status 41 * must be: "open". 42 * @param paymentGroupId Primary key of the PaymentGroup that the Payment Detail to be held belongs to. 43 * @param note Change note text entered by user. 44 * @param user The user that holds the payment 45 */ 46 public boolean holdPendingPayment(Integer paymentGroupId, String note, Person user); 47 48 /** 49 * This method removes holds on pending payments of the given payment id if the following rules 50 * apply. - Payment status must be: "held". 51 * 52 * @param paymentGroupId Primary key of the PaymentGroup that the Payment Detail to be un-held belongs to 53 * @param note Change note text entered by user. 54 * @param user the user that removes hold on payment 55 */ 56 public boolean removeHoldPendingPayment(Integer paymentGroupId, String note, Person user); 57 58 /** 59 * This method cancels all disbursements with the same disbursment number as that of the given payment id 60 * if the following rules apply. - Payment status must be: "extr". 61 * @param paymentGroupId Primary key of the PaymentGroup that the Payment Detail to be cancelled belongs to. 62 * @param paymentDetailId Primary key of the PaymentDetail that was actually cancelled. 63 * @param note Change note text entered by user. 64 * @param user The user that cancels the disbursement 65 */ 66 public boolean cancelDisbursement(Integer paymentGroupId, Integer paymentDetailId, String note, Person user); 67 68 /** 69 * This method re-opens all disbursements with the same disbursment number as that of 70 * the given payment id if the following rules apply. - Payment status must be: "cdis". 71 * @param paymentGroupId Primary key of the PaymentGroup that the Payment Detail to be canceled/reissued belongs to. 72 * @param changeText Change note text entered by user. 73 * @param user The user that cancels/reissues disbursement 74 */ 75 public boolean reissueDisbursement(Integer paymentGroupId, String changeText, Person user); 76 77 /** 78 * This method cancels and re-opens all disbursements with the same disbursment number as that of 79 * the given payment id if the following rules apply. - Payment status must be: "extr". 80 * @param paymentGroupId Primary key of the PaymentGroup that the Payment Detail to be canceled/reissued belongs to. 81 * @param changeText Change note text entered by user. 82 * @param user The user that cancels/reissues disbursement 83 */ 84 public boolean cancelReissueDisbursement(Integer paymentGroupId, String changeText, Person user); 85 86 /** 87 * This method changes the immediate flag 88 * @param paymentGroupId the payment group id 89 * @param changeText the change text 90 * @param user the user that changes the immediate flag 91 */ 92 public void changeImmediateFlag(Integer paymentGroupId, String changeText, Person user); 93 } 94