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 package org.kuali.ole.fp.batch.service;
17
18 import org.kuali.ole.fp.document.DisbursementVoucherDocument;
19
20 /**
21 *
22 * This service interface defines the methods that a DisbursementVoucherExtractService implementation must provide.
23 *
24 */
25 public interface DisbursementVoucherExtractService {
26
27 /**
28 * Extract all disbursement vouchers that need to be paid from the database and prepares them for payment.
29 *
30 * @return True if the extraction of payments is successful, false if not.
31 */
32 public boolean extractPayments();
33
34 /**
35 * Pulls all disbursement voucher which pay checks and which are marked as "immediate payment" from the database and builds payment information for them
36 * @deprecated this method is not used in batch any longer (immediate extract of DV's occurs in the DV's own route status change handler) and the code seems a bit fishy at this point, so likely, institutions shouldn't be using this
37 */
38 public void extractImmediatePayments();
39
40 /**
41 * Cancels a disbursement voucher completely, because its payment has been canceled
42 * @param dv the disbursement voucher to cancel
43 */
44 public abstract void cancelExtractedDisbursementVoucher(DisbursementVoucherDocument dv, java.sql.Date processDate);
45
46 /**
47 * Resets the disbursement voucher so that it can be reextracted
48 * @param dv the disbursement voucher to reset for reextraction
49 */
50 public abstract void resetExtractedDisbursementVoucher(DisbursementVoucherDocument dv, java.sql.Date processDate);
51
52 /**
53 * Returns the disbursement voucher document associated with the given document number
54 * @param documentNumber the id of the document to retrieve
55 * @return the DV document if found, or null
56 */
57 public abstract DisbursementVoucherDocument getDocumentById(String documentNumber);
58
59 /**
60 * Marks a disbursement voucher as paid
61 * @param dv the disbursement voucher to mark
62 * @param processDate the date when the dv was paid
63 */
64 public abstract void markDisbursementVoucherAsPaid(DisbursementVoucherDocument dv, java.sql.Date processDate);
65
66 /**
67 * Creates a batch payment for a single disbursement voucher
68 * @param disbursementVoucher the voucher to immediately extract
69 */
70 public abstract void extractImmediatePayment(DisbursementVoucherDocument disbursementVoucher);
71 }