001 /*
002 * Copyright 2011 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 30, 2004
018 *
019 */
020 package org.kuali.kfs.pdp.service;
021
022 import java.util.Iterator;
023
024 import org.kuali.kfs.pdp.businessobject.GlPendingTransaction;
025 import org.kuali.kfs.pdp.businessobject.PaymentDetail;
026 import org.kuali.kfs.pdp.businessobject.PaymentGroup;
027
028 /**
029 * Creates GLPEs for PDP extracted and canceled payments.
030 */
031 public interface PendingTransactionService {
032
033 /**
034 * Creates GLPE entries for the Payment record and stores to PDP pending entry table
035 *
036 * @param paymentGroup payment group record to create GLPE for
037 */
038 public void generatePaymentGeneralLedgerPendingEntry(PaymentGroup paymentGroup);
039
040 /**
041 * Creates GLPE entries for a payment cancel and stores to PDP pending entry table. Debit/Credit codes are
042 * reversed backing out the original GLPEs for the payment.
043 *
044 * @param paymentGroup payment group record to create GLPE for
045 */
046 public void generateCancellationGeneralLedgerPendingEntry(PaymentGroup paymentGroup);
047
048 /**
049 * Creates GLPE entries for a reissue and stores to PDP pending entry table. Debit/Credit codes are
050 * reversed backing out the original GLPEs for the payment.
051 *
052 * @param paymentGroup payment group record to create GLPE for
053 */
054 public void generateReissueGeneralLedgerPendingEntry(PaymentGroup paymentGroup);
055
056 /**
057 * Save a transaction
058 *
059 * @param tran
060 */
061 public void save(GlPendingTransaction tran);
062
063 /**
064 * Get all of the GL transactions where the extract flag is null
065 *
066 * @return Iterator of all the transactions
067 */
068 public Iterator<GlPendingTransaction> getUnextractedTransactions();
069
070 /**
071 * Deletes transactions records that have been copied to the GL
072 */
073 public void clearExtractedTransactions();
074 }