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.module.purap.service; 17 18 import org.kuali.ole.module.purap.document.*; 19 import org.kuali.ole.sys.businessobject.AccountingLine; 20 import org.kuali.ole.sys.businessobject.GeneralLedgerPendingEntry; 21 22 23 public interface PurapGeneralLedgerService { 24 25 public final static String CREATE_PAYMENT_REQUEST = "create"; 26 public final static String CANCEL_PAYMENT_REQUEST = "cancel"; 27 public final static String MODIFY_PAYMENT_REQUEST = "modify"; 28 public final static String CREATE_INVOICE = "create"; 29 public final static String CANCEL_INVOICE = "cancel"; 30 public final static String MODIFY_INVOICE = "modify"; 31 public final static boolean CREATE_CREDIT_MEMO = false; 32 public final static boolean CANCEL_CREDIT_MEMO = !CREATE_CREDIT_MEMO; 33 34 /** 35 * Customize the given general ledger entry based on the document type. 36 * 37 * @param purapDocument Document creating entries 38 * @param accountingLine AccountingLine from document used to create the pending entry 39 * @param explicitEntry GeneralLedgerPendingEntry that has been created with account info 40 * @param referenceDocumentNumber Number of the referenced document 41 * @param debitCreditCode String field indicating if the entry is a debit or credit 42 * @param docType Document type creating the pending entries 43 * @param isEncumbrance Boolean to indicate if the entry is an encumbrance 44 */ 45 public void customizeGeneralLedgerPendingEntry(PurchasingAccountsPayableDocument purapDocument, AccountingLine accountingLine, GeneralLedgerPendingEntry explicitEntry, Integer referenceDocumentNumber, String debitCreditCode, String docType, boolean isEncumbrance); 46 47 /** 48 * Generates general ledger pending entries for the creation of a Payment Request 49 * 50 * @param preq PaymentRequestDocument which holds the accounts to create the entries 51 */ 52 public void generateEntriesCreatePaymentRequest(PaymentRequestDocument preq); 53 54 /** 55 * Generates general ledger pending entries for the modification of a Payment Request. No entries will be created if the 56 * calculated change is zero (meaning no change was made). Also, no encumbrance entries will be created. 57 * 58 * @param preq PaymentRequestDocument which holds the accounts to create the entries 59 */ 60 public void generateEntriesModifyPaymentRequest(PaymentRequestDocument preq); 61 62 public void generateEntriesModifyInvoice(InvoiceDocument inv); 63 64 /** 65 * Generates general ledger pending entries for the creation of a Credit Memo 66 * 67 * @param cm CreditMemoDocument which holds the accounts to create the entries 68 */ 69 public void generateEntriesCreateCreditMemo(VendorCreditMemoDocument cm); 70 71 /** 72 * Generates general ledger pending entries for the creation of a Invoice 73 * 74 * @param inv InvoiceDocument which holds the accounts to create the entries 75 */ 76 public void generateEntriesCreateInvoice(InvoiceDocument inv); 77 78 /** 79 * Generates general ledger pending entries for the cancellation of an Accounts Payable document. 80 * 81 * @param apDocument AccountsPayableDocument which holds the accounts to create the entries for the cancellation 82 */ 83 public void generateEntriesCancelAccountsPayableDocument(AccountsPayableDocument apDocument); 84 85 /** 86 * Generates general ledger pending entries for the amendment of a Purchase Order 87 * 88 * @param po PurchaseOrderDocument which holds the accounts to create the entries 89 */ 90 public void generateEntriesApproveAmendPurchaseOrder(PurchaseOrderDocument po); 91 92 /** 93 * Generates general ledger pending entries for when a Purchase Order is closed which will disencumber all the remaining 94 * encumbrances 95 * 96 * @param po PurchaseOrderDocument which holds the accounts to create the entries 97 */ 98 public void generateEntriesClosePurchaseOrder(PurchaseOrderDocument po); 99 100 /** 101 * Generates general ledger pending entries for when a Purchase Order is reopened which will calculate the funds to be 102 * re-encumbered 103 * 104 * @param po PurchaseOrderDocument which holds the accounts to create the entries 105 */ 106 public void generateEntriesReopenPurchaseOrder(PurchaseOrderDocument po); 107 108 /** 109 * Generates general ledger pending entries for when a Purchase Order is voided 110 * 111 * @param po PurchaseOrderDocument which holds the accounts to create the entries 112 */ 113 public void generateEntriesVoidPurchaseOrder(PurchaseOrderDocument po); 114 115 }