View Javadoc
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